Main Page
Contents
- 1 New MR12.8 Release!
- 2 Purpose
- 3 Installing Multics
- 4 Useful Links
- 5 Multics Documentation
- 6 Multics Sources
- 7 Latest Release
- 7.1 New Features in MR12.8
- 7.1.1 Add azm Support for Select Multics Commands and Active Functions (MCR10098)
- 7.1.2 Enhancements to index_set command/active function (MCR10099)
- 7.1.3 Update multics_libraries_ for sss.incl and log directories (MCR10104)
- 7.1.4 Update mbuild (mb) Command to Handle the Case Where Source and Object Archives Overflow (MCR10102)
- 7.1.5 Move All Help-related Commands and Subroutines Out of bound_info_rtns_ and Into a new bound_help_ bound segment (MCR10103)
- 7.1.6 Update history_comment (hcom) Command for .info Segments (MCR10105)
- 7.1.7 Improve mbuild's read Request, Improve Support for the bind Command, Fix Issues When Installing exec_coms (MCR10109)
- 7.1.8 Fix mbuild (mb) to Handle Unknown Suffixes More Gracefully, Add Support for .git Source Files (MCR10114)
- 7.1.9 Uniform Numeric Strings for Multics Programs (MCR10101)
- 7.1.10 Change index_set for New Features of its numeric_to_ascii_base_ Supporting Subroutine (MCR10118)
- 7.1.11 Increase Default Process Directory Segment Quota (MCR10122)
- 7.1.12 Updated mbuild (mb) to Version 2.0 (MCR10126)
- 7.1.13 Increase Memory Limits on GTSS Programs So That Jovial and Algol Compilers Run (MCR10130)
- 7.1.14 analyze_multics (azm) Improvements (MCR10129)
- 7.1.15 patch_ring_zero (prz) Info Segment Added (MCR10136)
- 7.1.16 Add time() prototype to time.h (MCR10133)
- 7.1.17 Added Support for New ID PROM Fields to Bootload CPU Startup Message (MCR10137)
- 7.2 New Features in MR12.7
- 7.3 Features that were new in MR12.6f
- 7.1 New Features in MR12.8
- 8 Multics Resources
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
- Getting Started
- Stability of the System
- Multics Release Info
- Using Multics
- Linux-to-Multics Command Mapping
- Administering Multics
- Helpful Hints
- Frequently Asked Questions (FAQ)
- Multics Technical Bulletins (MTBs)
- Multics Change Requests (MCRs)
- File a Multics Bug
- If you are prompted for a username/password, use "anonymous" as the username and "multics" as the password.
- Changing Multics
Multics Documentation
- Multics Common Commands Manual
- Multics Commands Manual
- Multics Pocket Reference
- New User's Intro to Multics Part 1
- New User's Intro to Multics Part 2
- An Introductory Multics Course
- How Multics Command and Active Function Programs Report Errors
- An Introduction to the Multics Storage System
- Files Versus Segments
- Multics Original Documentation Archive
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.
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.