MR12.8
MR12.8 is the latest release of Multics.
Contents
Important Note Regarding Simulator Version
You must be using an R3.0.1 (or later) version of the dps8m simulator. If you are still using an older release of dps8, please upgrade your existing system to R3.0.1 first. Instructions for doing so may be found here: https://dps8m.gitlab.io/dps8m/Releases/#stable-release. The INI files provided as part of the MR12.8 release require at least an R3.0.1 simulator (the simulator commands and prerequisites changed from R2 to R3.0.1.
Upgrading an Existing MR12.7 System to MR12.8
There are two ways to upgrade an existing MR12.7 (or earlier) system to MR12.8. The first is by far the simplest way -- by using the MR12.7_to_MR12.8_upgrade.ini simulator script. The second, which more closely mimics the historical way site administrators would upgrade a real hardware-based Multics system, uses a trivial simulator boot script that simply boots the Multics system tape and lets the operator enter all the commands manually. These two procedures are described below.
Note: You can actually upgrade any version of Multics that currently runs directly to MR12.8. You do not need to first upgrade to MR12.7. Follow the same instructions as for upgrading an MR12.7 system (below).
Upgrading Using the MR12.7_to_MR12.8_upgrade.ini Simulator Script
This process assumes you have a directory populated with an existing, runnable MR12.7 Multics system using an R3.0.1 (or later) version of the dps8m simulator. The system should be shut down before you start.
- Make a backup of your whole directory in which you have the Multics system setup (or at least your *.dsk files)
- Make sure your dps8 (simulator) executable is version R3.0.1 or later.
- Make sure you have deleted the files base_system.ini and Devices.txt. These are no longer required with dps8 version R2.0 or later.
- In the directory with your existing system, add the following files from the MR12.8 distribution:
- All 6 MR12.8 tapes (see Release Artifacts)
- The MR12.7_to_MR12.8_upgrade.ini simulator script
- The MR12.8_boot.ini simulator script
- Make sure your directory contains:
- All *.dsk files required to boot your system
- If you have other logical volumes besides the root logical volume (RLV) in your MR12.7 system, update the MR12.7_to_MR12.8_upgrade.ini script to add each of these logical volumes. The script, as provided, only attaches the root.dsk (RLV) disk as disk0. If you have other disks, add additional lines of the form "attach diskN xxx.dsk" where N is an integer from 1 to 16 and where xxx is the name of the disk file containing your logical volume image.
- Update the MR12.8_boot.ini to incorporate other custom INI file changes, you require -- for example, if you define slave/autocall channels, you should include them in MR12.8_boot.ini.
- Change your working directory to your Multics directory.
- Run "dps8 MR12.7_to_MR12.8_upgrade.ini” (if dps8 isn't on your path, but in your Multics directory, you can use "./dps8 MR12.7_to_MR12.8_upgrade.ini" (Linux or macOS) or ".\dsp8 MR12.7_to_MR12.8_upgrade.ini" (Windows). Otherwise, reference the simulator executable by relative or absolute path.
- Wait about 20 minutes (more if your system is slow). The simulator script will shut down Multics and return to your command prompt when the upgrade is complete.
- Note that loading the 12.8LDD_STANDARD tape takes a very long time (due to its containing all the small include segments). Be patient.
When the script exits, you should have a bootable MR12.8 system in your current directory.
Boot your system by running the simulator with MR12.8_boot.ini as the script parameter (e.g. "dps8 MR12.8_boot.ini"). If you have more logical volumes than the root logical volume (RLV) be sure to update the MR12.8_boot.ini script to include disk attachments for those other logical volumes.
Note: If you skipped the step to fix the PDT cutoff dates when you upgraded your system to a prior MR12.6x release, you should follow the instructions in Step 5 of Section 4 in the [Software Installation Bulletin]. This should not normally be required since skipping this step would have rendered it impossible, in your existing system, to login to non-Initializer accounts.
Note 2: The reload_system_release command, used by the upgrade script, creates large map segments in the >reload_dir directory. These are not required for normal system operation. You may delete them in order to conserve disk space. Anyone on the SysAdmin project can delete the map segments, which have names like !BBBKQBlDQKxQzh.reload.map. Alternatively, in admin mode on the operator console, you may delete these map segments with a command such as "dl >reload_dir>**.reload.map".
Upgrading By Hand Using a Minimal Simulator Script
If you want to follow the instructions in the System Installation Bulletin (SIB) and perform an upgrade of a MR12.7 system the way site administrators would have done so in years past, you can following the instructions here.
This process assumes you have a directory populated with an existing, runnable MR12.7 Multics system using an R3.0.1 (or later) version of the dps8m simulator. The system should be shut down before you start.
- Make a backup of your whole directory in which you have the Multics system setup (or at least your *.dsk files)
- In the directory with your existing system, add the following files from the MR12.8 distribution:
- All 6 MR12.8 tapes (see Release Artifacts)
- The following (minimal) simulator script saved as "boot.ini":
attach -r tape0 12.8MULTICS.tap attach disk0 root.dsk clrautoinput autoinput \z boot iom0
- Make sure your directory contains:
- All *.dsk files required to boot your system
- If you have other logical volumes besides the root logical volume (RLV) in your MR12.7 system, update the boot.ini script to add each of these logical volumes. The above script only attaches the root.dsk (RLV) disk as disk0. If you have other disks, add additional lines of the form "attach diskN xxx.dsk" where N is an integer from 1 to 16 and where xxx is the name of the disk file containing your logical volume image.
- Update the MR12.8_boot.ini to incorporate other custom INI file changes, you require -- for example, if you define slave/autocall channels, you should include them in MR12.8_boot.ini.
- Make sure you have a recent copy of the dps8 simulator on your path or in your Multics directory.
- Change directories to your Multics directory.
- Follow the instructions in Section 4 of the MR12.8 System Installation Bulletin (SIB), however, you can skip Step 1 (which has you deleting the unbundled directories while booted using your existing system). This is not necessary. Start with Step 2.
- When you are asked to boot your system, run "dps8 boot.ini” (if dps8 isn't on your path, but in your Multics directory, you can use "./dps8 boot.ini" (Linux or macOS) or ".\dsp8 boot.ini" (Windows). Otherwise, reference the simulator executable by relative or absolute path.
- Follow all the steps in Section 4.
- Note that loading the 12.8LDD_STANDARD tape takes a very long time (due to its containing all the small include segments). Be patient.
- At the end of the instructions in Section 4, you will be left with a running MR12.8 system.
When you shut your system down, you can boot it again using the same minimal boot.ini (but be prepared to manually enter all the pre-bce and bce commands required to bring your system up). Alternatively, boot your system by running the simulator with MR12.8_boot.ini as the script parameter (e.g. "dps8 MR12.8_boot.ini"). If you have more logical volumes than the root logical volume (RLV) be sure to update the MR12.8_boot.ini script to include disk attachments for those other logical volumes.
Note: The reload_system_release command, used by the upgrade script, creates large map segments in the >reload_dir directory. These are not required for normal system operation. You may delete them in order to conserve disk space. Anyone on the SysAdmin project can delete the map segments, which have names like !BBBKQBlDQKxQzh.reload.map. Alternatively, in admin mode on the operator console, you may delete these map segments with a command such as "dl >reload_dir>**.reload.map".
Installing MR12.8 as a New System (QuickStart)
If you just want to bring up a brand new MR12.8 to play with it, use the QuickStart. Here are instructions for using it:
- Download and unzip the QuickStart, found here: MR12.8 QuickStart
- Download or build a simulator for your platform. See https://dps8m.gitlab.io/dps8m/Releases/#stable-release for details.
- Drop the "dps8" executable into your QuickStart folder
- Run "./dps8 MR12.8_boot.ini" (Linux or macOS) or ".\dps8 MR12.8_boot.ini" (Windows)
- Once booted, use another terminal window to telnet to Multics ("telnet localhost 6180" on Linux and macOS; for Windows, use putty or equivalent)
Cold Booting a New MR12.8 System from Scratch
You have three options if you'd like to create a fresh MR12.8 Multics system. You can use the QuickStart (see previous section), or you can perform a Multics cold boot yourself. There are two ways to perform the cold boot. The first, and easiest option, is to use the Script to cold boot MR12.8. (This is how the QuickStart was created). The second, is to manually install Multics using the instructions in the MR12.8 System Installation Bulletin. This second option is what site administrators would have done back in the days of Multics hardware-based implementations. It provides a near-authentic experience and allows maximum customization. Because all commands must be entered manually, it is more error prone, time consuming, and most likely frustrating. It is presented here because it more closely matches historical cold boots.
Cold Booting a New MR12.8 System Using the MR12.8_coldboot.ini Simulator Script
- Create a new directory
- In this directory, add the following files from the MR12.8 distribution:
- All 6 MR12.8 tapes (see Release Artifacts)
- The MR12.8_coldboot.ini simulator script
- The MR12.8_boot.ini simulator script
- Make sure you have a recent copy of the dps8 simulator on your path or in your Multics directory.
- Change directories to your Multics directory.
- Run "dps8 MR12.8_coldboot.ini” (if dps8 isn't on your path, but in your Multics directory, you can use "./dps8 MR12.8_coldboot.ini" (Linux or macOS) or ".\dsp8 MR12.8_coldboot.ini" (Windows). Otherwise, reference the simulator executable by relative or absolute path.
- Note that loading the 12.8LDD_STANDARD tape takes a very long time (due to its containing all the small include segments). Be patient.
When the script exits, you should have a bootable MR12.8 system in your current directory.
Boot your system by running the simulator with MR12.8_boot.ini as the script parameter (e.g. "dps8 MR12.8_boot.ini"). If you have more logical volumes than the root logical volume (RLV) be sure to update the MR12.8_boot.ini script to include disk attachments for those other logical volumes.
Note: The reload_system_release command, used by the coldboot script, creates large map segments in the >reload_dir directory. These are not required for normal system operation. You may delete them in order to conserve disk space. Anyone on the SysAdmin project can delete the map segments, which have names like !BBBKQBlDQKxQzh.reload.map. Alternatively, in admin mode on the operator console, you may delete these map segments with a command such as "dl >reload_dir>**.reload.map".
Cold Booting a New MR12.8 System Manually
If you want to follow the instructions in the System Installation Bulletin (SIB) and perform an cold boot of a MR12.8 system the way site administrators would have done so in years past, you can following the instructions here.
- Create a new directory
- In this directory, add the following files from the MR12.8 distribution:
- All 6 MR12.8 tapes (see Release Artifacts)
- The MR12.8_boot.ini simulator script
- The following (minimal) simulator script saved as "boot.ini":
attach -r tape0 12.8MULTICS.tap attach disk0 root.dsk clrautoinput autoinput \z boot iom0
- Make sure you have a recent copy of the dps8 simulator on your path or in your Multics directory.
- Change directories to your Multics directory.
- Follow the instructions in Section 5 of the MR12.8 System Installation Bulletin (SIB).
- When you are asked to boot your system, run "dps8 boot.ini” (if dps8 isn't on your path, but in your Multics directory, you can use "./dps8 boot.ini" (Linux or macOS) or ".\dsp8 boot.ini" (Windows). Otherwise, reference the simulator executable by relative or absolute path.
- Follow all the steps in Section 5.
- Note that loading the 12.8LDD_STANDARD tape takes a very long time (due to its containing all the small include segments). Be patient.
- At the end of the instructions in Section 5, you will be left with a running MR12.8 system.
When you shut your system down, you can boot it again using the same minimal boot.ini (but be prepared to manually enter all the pre-bce and bce commands required to bring your system up). Alternatively, boot your system by running the simulator with MR12.8_boot.ini as the script parameter (e.g. "dps8 MR12.8_boot.ini"). If you have more logical volumes than the root logical volume (RLV) be sure to update the MR12.8_boot.ini script to include disk attachments for those other logical volumes.
Note: The reload_system_release command, used in the above steps, creates large map segments in the >reload_dir directory. These are not required for normal system operation. You may delete them in order to conserve disk space. Anyone on the SysAdmin project can delete the map segments, which have names like !BBBKQBlDQKxQzh.reload.map. Alternatively, in admin mode on the operator console, you may delete these map segments with a command such as "dl >reload_dir>**.reload.map".
Release Artifacts
Here are some links to relevant MR12.8 artifacts:
- MR12.8 Software Release Bulletin
- MR12.8 System Installation Bulletin
- MR12.8 QuickStart
- Use this is you want the quickest path to a brand new MR12.8 system
- Do not use the QuickStart if you already have an existing system
- List of tickets fixed in MR12.8
- System Book for MR12.8
- Used by system hackers and to debug issues with the simulator
- Not needed by most users
- DPS8 Simulator INI files:
- Script to upgrade MR12.7 to MR12.8
- Use to upgrade an existing MR12.7 system to MR12.8
- Script to boot MR12.8
- Use to boot a MR12.8 system (upgraded or cold-booted)
- Script to cold boot MR12.8
- Use to cold boot a brand new MR12.8 system from release tapes
- Script to upgrade MR12.7 to MR12.8
- Tapes (All Tapes required for either Upgrade or Cold-Boot Installs)
- Single ZIP file with MR12.8 Release Tapes, SRB, SIB, system book, and simulator INI files:
- Listings Tape (hardcore listings)
- MR12.8 Hardcore Listings Tape
- Note: If you extract this tape onto a Multics system, the listing segments will be reloaded to the >ldd>listings directory. You will need about 30500 records of disk space/quota in order to load this tape. Please make sure you have enough disk space on the logical volume (LV) where your >ldd directory exists, or consider precreating the >ldd>listings directory on another LV. Alternatively, you can use a control file to direct the segments to be reloaded into a different directory.
- MR12.8 Hardcore Listings Tape
Most Important New Features of MR12.8
Highlights of MR12.8
MR12.8 is primarily a bugfix release -- 80 tickets were resolved for this. However, there are a few new features, listed below.
A brief description of known tickets addressed in this release is found the file Tickets_fixed_in_MR12.8 available on the Multics Wiki MR12.8 page.
The >aml library (and >ldd>aml) has been populated with a bunch of games and programs from the old MIT-MULTICS (and some from other sources). Note that while the >aml library is on the "linker" search path, by default, the documentation directory for the AML library (>doc>aml_info) is not. To add those info segments to your "info" search path, use the following command:
asp info >doc>aml_info
ADD AZM SUPPORT FOR SELECT MULTICS COMMANDS AND ACTIVE FUNCTIONS (MCR10098)
The analyze_multics (azm) command has been extended to
support the following (command) requests and active function
requests:
- calc, plus, minus, times, divide
These allow calculations to be performed for arguments to
azm requests.
- decimal, octal
These allow conversions from decimal to octal and octal to
decimal in azm request lines.
- index_set
This supports iterating over a ranges of integer values.
ENHANCEMENTS TO INDEX_SET COMMAND/ACTIVE FUNCTION (MCR10099)
The index_set (ixs) command (and azm request) now supports
control arguments to:
- specify which integers of a set specification triplet
(FIRST BOUND INCREMENT) are actually being supplied.
- separate one set specification from the next when several
sets are specified in one program invocation.
- allow set elements to be output in a different numeric
base other than decimal.
In addition, set specification triplets can now be provided
in bases other than decimal.
UPDATE MULTICS_LIBRARIES_ FOR SSS.INCL AND LOG DIRECTORIES
(MCR10104)
Now you can fetch include files by name using library_fetch
(lf). Other library commands also support the include file
library.
In addition, the library commands support a new log
directory, used by mbuild and other programs to manipulate
files in that directory. The log directory is used for the
Installations.log and Installations.info segments for a
given library. The location of this directory for
multics_libraries_ is >ldd>log.
UPDATE MBUILD (MB) COMMAND TO HANDLE THE CASE WHERE SOURCE AND
OBJECT ARCHIVES OVERFLOW (MCR10102)
Source and object archives (and indeed all archives) on
Multics are limited to 255 pages. Sometimes, when mbuild is
update source and object archives, the archives may attempt
to grow beyond 255. mbuild now reports that a source or
object archive overflow would occur. The user can then
manually split the overflowing archive into a pair of
archives. Then, mbuild will handle a build script file
which DELETEs the original bound segment and its
source/object archives, and then ADDs a new bound segment
using the split source and object archives. See MCR10102
for details.
mbuild now also can generate installation exec_coms where
the update_seg command is configured to specify the
appropriate log directory based on the library descriptor in
use.
MOVE ALL HELP-RELATED COMMANDS AND SUBROUTINES OUT OF
BOUND_INFO_RTNS_ AND INTO A NEW BOUND_HELP_ BOUND SEGMENT
(MCR10103)
An updated info_seg_ implementation and replaced help_
resulted in creating a new bound_help_ executable segment.
UPDATE HISTORY_COMMENT (HCOM) COMMAND FOR .INFO SEGMENTS
(MCR10105)
Now the history_comment (hcom) command fully supports .info
segments. It can add the appropriate info segment ":hcom:"
block if none is present, updating that block if it exists
when history comments are added.
IMPROVE MBUILD'S READ REQUEST, IMPROVE SUPPORT FOR THE BIND
COMMAND, FIX ISSUES WHEN INSTALLING EXEC_COMS (MCR10109)
Mbuild has been improved to make its read request diagnose a
build script line that references an existing segment using
the wrong library name. A minor issue is fixed in the bind
command not setting the required access mode when initiating
object archives/segments being bound together. R_ACCESS
will be the minimum required access to such segments. A
minor problem is fixed in installing exec_com segments:
always use their primary name when locating them in the
library.
FIX MBUILD TO HANDLE UNKNOWN SUFFIXES MORE GRACEFULLY. ADD
SUPPORT FOR .GDT SOURCE FILES (MCR10114)
In addition to fixes to mbuild to handle unknown suffixes
more gracefully, mbuild now supports installing .gdt source
files.
UNIFORM NUMERIC STRINGS FOR MULTICS PROGRAMS (MCR10101)
New subroutines are provided to perform conversions of
numeric strings between different bases. These are
foundational changes required to support fixing various
other programs' handling of numeric arguments. A new
implementation of the binary, octal, decimal, hexadecimal,
and radix commands is provided as well. Lots of other
commands/active functions are updated as a result of this
change: plus, minus, times, divide, quotient, mod, min,
trunc, floor, round. The result of all these changes is to
provide uniform treatment of input and output radixes in
numeric arguments passed to commands and active functions.
CHANGE INDEX_SET FOR NEW FEATURES OF ITS NUMERIC_TO_ASCII_BASE_ SUPPORTING SUBROUTINE (MCR10118)
The numeric_to_ascii_base_ subroutine has been rewritten to
support changes to index_set, including supporting adding an
output radix to the end of the returned string to allow
expressing non-decimal numbers.
INCREASE DEFAULT PROCESS DIRECTORY SEGMENT QUOTA (MCR10122)
Because issuing the "help hcs_" command resulted in
record_quota_overflow errors when the default process
directory quota was used, and because the default quota size
(1000 records) is very small, and limits the operation of
various commands, the default process directory quota was
raised to 2000. This only applies to new systems, as the
change is made in the defaults to the ed_installation_parms
command. Existing systems can similarly have their process
directory quota updated by issuing these commands:
cwd >sc1
ed_installation_parms
type p default_pdir_seg_quota
default_pdir_seg_quota: 1000
type c default_pdir_seg_quota 2000
type p default_pdir_seg_quota
default_pdir_seg_quota: 2000
type w
type q
UPDATED MBUILD TO VERSION 2.0 (MCR10126)
Mbuild has been updated to support support the developing,
auditing, and installing phases. Initially mbuild creates
an .mb segment for the developing phase. During audit, the
phase can be changed to auditing and auditing
progress/comments can be recorded in the .mb segment. The
install tag (e.g. MR12.8-1023) can be specified, so that it
can be automatically added to the update_seg logs.
In addition, the structure of an .mb segment has been
enhanced, such that the names of the developer, auditor, and
installer are recorded, along with the MCR number. mbuild
now manages the library descriptor in effect to prevent
inadvertent errors regarding having the wrong library
descriptor set when invoking mbuild. Mbuild also knows
about the log library, so that it can tell update_seg in
which directory to place the Installations.log and
Installations.info segments. The exec_com invoking
update_seg is updated to include the approval id (MCR id).
Support for ssl segments and exec_coms was added to mbuild
in this release.
Lots of other fixes were made to mbuild in this release.
See MCR101026 and the help files for mbuild for more info.
INCREASE MEMORY LIMITS ON GTSS PROGRAMS SO THAT JOVIAL AND ALGOL
COMPILERS RUN (MCR10130)
The memory limits on GTSS programs were increased to allow
Jovial and Algol compilers to run under GCOS.
Also, an issue with case comparisons of card names in the
GCOS batch simulator was also fixed.
ANALYZE_MULTICS IMPROVEMENTS (MCR10129)
Analyze_multics (azm) is updated to version 2.4. There are
several new or enhanced requests: cme, slte,
page_control_check, and aste. copy_deadproc/copy_liveproc
now correctly capture the UID for segments in the process
directory.
The new cme request displays the contents of a core_map
entry (CME).
The new slte request displays the contents of an segment
loader table entry (SLTE).
The new page_control_check request checks consistency
between the SST and core_map. Any errors found are
displayed.
PATCH_RING_ZERO (PRZ) INFO SEGMENT ADDED (MCR10136)
The useful privileged command, patch_ring_zero (prz), has
never had an info segment. One is provided in this release.
ADD TIME() PROTOTYPE TO TIME.H (MCR10133)
The time() function is documented to exist, but was
incorrectly prototyped in previous releases. This is fixed
in the current release.
ADDED SUPPORT FOR NEW ID PROM FIELDS TO BOOTLOAD CPU STARTUP
MESSAGE (MCR10137)
Upon startup a message is emitted to the bootload console
and the syserr log that includes all the ID PROM fields,
that are present. This is only supported for DPS8/M
processors (not L68 processors).
Also, a warning is emitted to the bootload console and the
syserr log when it is detected that an old simulator release
is running.
80 Tickets Resolved
There were 80 tickets (see: https://multics-trac.swenson.org/, and if you don't have an account there, use "anonymous" as the username and "multics" as the password when it asks for same) fixed in this release. See the Software Release Bulletin] for details.