Main Page

From Multics Wiki
Jump to: navigation, search

Contents

New MR12.8 Release!

MR12.8 has been released. See: MR12.8 for information about this new release.

Purpose

The purpose of this wiki is to provide information to users wishing to run Multics under the DPS8M simulator. While other resources exist on both the subject of Multics and the DPS8M simulator, this Wiki focuses specifically on how to install the simulator and Multics on your machine, how to configure it and administer it, and then how to use it. It differs from the DPS8M-related sites whose focus of attention is on the simulator itself, and from the Multics-related sites, which provide historical, informational, nostalgic, etc. background on Multics. Where appropriate, this site links to those other sites rather than duplicate information.

Installing Multics

To get started and install Multics on your host system, follow the Getting Started link.

Useful Links

Multics Documentation

Multics Sources

If you want to download the entire source code of a Multics release, you can do it by following these steps:

  • Install a copy of the Git tool on your computer. More info on Git can be found here: https://git-scm.com/
  • In a web browser, visit the source repository: https://gitlab.com/atsampson/multics-history-repo.
  • Use the Clone button to copy the git repository URL to your clipboard.
  • In a terminal window on your computer, use the "git clone" command to create a copy of the repository on your computer. For example, use the command line: "git clone https://gitlab.com/atsampson/multics-history-repo". This will create a subdirectory in your current working directory called multics-history-repo with the source code. You will get a copy of the latest sources (currently MR12.8) that have been uploaded to that repository. This will download about 170 MB of source files. Each original .archive file will be represented as a directory of files.
  • You can switch to the sources of other releases of Multics using the "git checkout TAG" command. You can list the available tags with the "git tag --list" command.

The sources, as pulled from the repository will exist in the following directories:

  • documentation
  • library_dir_dir
  • system_library_3rd_party
  • system_library_tandd

The "documentation" directory contains all the "info segments" that are distributed with the release.

The "library_dir_dir" is where the system software sources are found. This directory contains the following subdirectories:

  • include: The "include" files used by the sources.
  • mcs: The source for the FNP.
  • system_library_1: The hardcore sources.
  • system_library_obsolete: Obsolete sources.
  • system_library_standard: Sources for programs in >sss.
  • system_library_tools: Sources for programs in >t.
  • system_library_unbundled: Sources for programs in >unb.

Latest Release

MR12.8 was released on 08/08/2023. New features in this release can be found in the Software Release Bulletin (SRB):

You can find the tapes, SRB, the Software Installation Bulletin (SIB), and other release artifacts here: Release Artifacts.

You can find a QuickStart for MR12.8 here: MR12.8 QuickStart, but only use it if you don't already have a Multics system. If you do, then ignore the QuickStart and upgrade your system as described here.

New Features in 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.

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 (mb) to Handle Unknown Suffixes More Gracefully, Add Support for .git 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 (mb) 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 (azm) 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.

New Features in MR12.7

Volume Pool Support for Hierarchy Backup

The Volume Backup support has long allowed tapes to be allocated from a volume pool, however up until this release, this support was not extended to the Hierarchy Backup daemons. If a volume pool is setup and configured for the incremental, catchup, or complete backup daemons, tapes will be allocated from the configured pool. A single pool can be used, or separate pools per backup type can be employed.

See the info segments for the backup_dump, start_dump, catchup_dump, and complete_dump commands for more info on using volume pools with the hierarchy backup commands. See also the updated documentation on these commands in the Multics Administration, Maintenance, and Operations Commands (GB64) manual errata -- gb64.errata.info.

History Comments Now Allowed in Info Segments

Prior to this release, it wasn't possible to include history comments to track changes in info segments. Now with an updated version of the history_comment (hcom) command, you can. See the instructions for adding history comments in info segment by issuing the command "help info_seg.hcom".

mbuild

A new subsystem, mbuild, has been introduced that helps developers prepare additions to the software libraries, or changes to software in those libraries. This system helps with compilation, source/object archive updating, binding, checking history comments, performing source comparisons, and installing changes to the system libraries.

The mbuild subsystem also helps system and library administrators manage installations into the system libraries.

verify_info, info_seg_, and help_

    The  validate_info_seg command  has been  replaced with  the
    verify_info  command.  The help_  subroutine now uses  a new
    info_seg_ subroutine to parse  info segments, and provides a
    more   powerful   user   interface   for   displaying   that
    information.


Features that were new in MR12.6f

Following is a list of new features since MR12.6e. The full list of new features since MR12.5 can be found in the SRB.

input_history

A new input_history_ I/O module was added to bound_video_ that allows recall and execution of previous input lines, as well as searching for prior input lines. The Multics video system provides functions for editing input lines as they are typed. It uses Emacs-like key bindings to edit input lines. However, it provides no mechanism for saving previous input lines, recalling those lines, and reexecuting them. The new input history functionality does just that. See input_history.info and input_history_.info for details.

call

A new call command invokes a subroutine with arguments given in a command line. It uses the declared entrypoint calling sequence to convert each command argument to a corresponding subroutine parameter's data type; invokes the subroutine; then displays any output values.

library_pathname

The library_pathname (lpn) command/active function was updated to return all matching pathnames when invoked as an active function. This command/AF was also updated to accept the -container control argument.

cv_ptr_

The cv_ptr_ subroutine was updated to handle pointers to hardcore segments.

pointer_info

The pointer_info (pin) command was added to provide a command-line interface to the interpret_ptr_ subroutine.

New Terminal Types

Added the VT102_132C_50L and VT102_132C_78L terminal types.

Multics Resources