MR12.8

From Multics Wiki
Jump to: navigation, search

MR12.8 is the latest release of Multics.

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:

  • 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.

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.