-
Notifications
You must be signed in to change notification settings - Fork 3
Building
- Linux. Building not (yet) tested under Windows or other OSes.
- SIMH, a multi-system emulator. See the Multics SIMH page for references.
- IBM's decNumber library which provides decimal floating point support. Note that this same decNumber support is also included in GCC 4.2 and later, but is not enabled by default.
- GMP, the GNU multiple Precision Arithmetic Library which we use for 72-bit math.
You don't have to follow this structure. (In particular, the author's initial development was with simh as the top level directory.) However, this is the layout currently used by the author, matches the repository, and is what the provided makefiles expect:
multics-emul (or whatever name you prefer for the top level folder) + decNumber/ Downloaded separately + simh/ Downloaded separately + Makefile Top level makefile + bin/ + data/ Tapes + etc/ Ini files + listings/ PL/1 compiler outputs (for source level display of the Multics OS boot load) + sample/ Sample ini files, sample makefile for decNumber, etc + src/ Holds the Multics emulator source
# Download the emulator (creating new subdir multics-emul) git clone https://github.com/MichaelMondy/multics-emul.git # We need to get some dependencies into the project directory cd multics-emul # SIMH is provided as a git sub-module git submodule init git submodule update # Download decNumber # Not downloading entire GCC just to get decnumber: # git clone http://gcc.gnu.org/git/gcc.git wget http://download.icu-project.org/files/decNumber/decNumber-icu-368.zip unzip decNumber-icu-368.zip # Setup decNumber cp -i sample/Makefile.decNumber decNumber/Makefile # Install GMP if not already present sudo apt-get install libgmp-dev
SIMH comes with many emulators. One common development practice is to put a new emulator within the SIMH tree. However, the SIMH makefile is designed more for production builds than for iterative development. For example, it always recompiles everything and includes compiler options that that may not be combined with debugging. This project currently uses SIMH as a library. We keep the SIMH makefile unchanged, but "wrap" it with a makefile we provide. The sample makefiles will automatically rename the original SIMH makefile and install a wrapper makefile. See the sample makefiles, especially the "testkit" targets for more detail.
# Building cd multics-emul make
Next, see the page on Running