NOTICE
I am continually working to improve the approach for virtual machines. Check the most recent post to have an idea on how things are changing. Also, please, leave a comment when you find something that need to be improved.
Introduction
Host
- Windows
- Vendor: Generic
- CPU: 1 x Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz 3.79 GHz
- RAM: 128GB
- OS: Windows 10 64-bits
- macOS
- Vendor: Apple MacBook Pro MacBookPro18,3
- CPU: Apple M1 Pro
- RAM: 32GB
- OS: macOS 13.1 (22C65) Darwin 22.2.0
- Linux
- Vendor: Apple Inc. MacPro6,1/Mac-F60DEB81FF30ACF6, BIOS 430.140.2.0.0 04/18/2022
- CPU: Intel(R) Xeon(R) CPU E5-1650 v2 @ 3.50GHz
- RAM: 64GB
- OS: Linux Fedora 37 Workstation
Guest
- PDP-11
- CPU:
- Memory:
- OS: 2.9BSD
Virtualization
- SimH 4.1 (from GitHub)
Pending
- Additional disks
- Network
- ps hangs
- /etc/reboot (and /etc/shutdown) is not working
- Instructions for Windows (no Cygwin), *BSD
References
Steps
- bold text is user input from the keyboard
- red text are control characters typed by the user
- blue text is automatic input from SimH input processing
- fuchsia text are automatic control characters input from SimH input processing
-
Preparation
-
Windows 10 + cygwin
- Install Cygwin with b2zip (or 7z), uudecode, wget
-
Define base directory structure
$ sRootEmulatorsDirectory=/cygdrive/m/; export sRootEmulatorsDirectory
-
macOS
- Install brew
-
Install additional tools. uudecode is installed with macOS already.
$ brew install wget p7zip
-
Define base directory structure
$ sRootEmulatorsDirectory=~/Desktop/; export sRootEmulatorsDirectory
- Linux
-
Install additional tools. uudecode is installed with Linux already.
$ sudo dnf install -y wget p7zip
-
Define base directory structure
$ sRootEmulatorsDirectory=/Volumes/vol000/; export sRootEmulatorsDirectory
-
Install additional tools. uudecode is installed with Linux already.
- FOR ALL OSes: Create directory strucuture
$ mkdir -p "${sRootEmulatorsDirectory}/Emulators/SimH/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/SimH/mirror/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/SimH/guests/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/SimH/guests/pdp-11_2-9bsd/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/SimH/guests/by-platform/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/SimH/guests/by-platform/pdp-11/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/SimH/guests/by-os/" $ mkdir -p "${sRootEmulatorsDirectory}/Emulators/SimH/guests/by-os/2-9bsd/" $ ln -sf "${sRootEmulatorsDirectory}/Emulators/SimH/guests/pdp-11_2-9bsd" "${sRootEmulatorsDirectory}/Emulators/SimH/guests/by-platform/pdp-11/2-9bsd" $ ln -sf "${sRootEmulatorsDirectory}/Emulators/SimH/guests/pdp-11_2-9bsd" "${sRootEmulatorsDirectory}/Emulators/SimH/guests/by-os/2-9bsd/pdp-11" $ cd "${sRootEmulatorsDirectory}/Emulators/SimH/mirror/"
-
Windows 10 + cygwin
- Install SimH 4.1 from here. This is another fork project from the original emulator. The compilation process can vary, depedning omn the OS.
-
If this is the first time, make a local copy of the simulator
$ git clone https://github.com/open-simh/simh.git simh-4.1 Cloning into 'simh-4.1'... remote: Enumerating objects: 35175, done. remote: Counting objects: 100% (104/104), done. remote: Compressing objects: 100% (66/66), done. remote: Total 35175 (delta 46), reused 86 (delta 38), pack-reused 35071 Receiving objects: 100% (35175/35175), 78.76 MiB | 21.77 MiB/s, done. Resolving deltas: 100% (27237/27237), done. Updating files: 100% (1580/1580), done.
-
Otherwise, update your local copy
$ ( cd simh-4.1 && git fetch --all -v ) POST git-upload-pack (155 bytes) From https://github.com/open-simh/simh = [up to date] master -> origin/master = [up to date] Alpha-CPU -> origin/Alpha-CPU = [up to date] AsyncTmxr -> origin/AsyncTmxr = [up to date] AutoConfigure -> origin/AutoConfigure = [up to date] Bryan-HP-Current -> origin/Bryan-HP-Current = [up to date] BufferedConsole -> origin/BufferedConsole = [up to date] ControlFlow -> origin/ControlFlow = [up to date] Extra-VAXen -> origin/Extra-VAXen = [up to date] FastAsynchIO -> origin/FastAsynchIO = [up to date] HP2100Extensions -> origin/HP2100Extensions = [up to date] KDP -> origin/KDP = [up to date] SerialMux -> origin/SerialMux = [up to date] Supnik-Current -> origin/Supnik-Current = [up to date] VAX-11-BootBlock-Fixup -> origin/VAX-11-BootBlock-Fixup = [up to date] simtools -> origin/simtools = [up to date] v3.9-0-rc1 -> origin/v3.9-0-rc1 = [up to date] vms-pcap -> origin/vms-pcap
-
Compile your simulator. Output can vary depending on your host operating system.
$ ( cd simh-4.1 && make pdp11 && ./BIN/pdp11 ) lib paths are: /usr/lib ../windows-build/winpcap/WpdPack/Lib /lib/ /usr/lib/ include paths are: /usr/lib/gcc/x86_64-pc-cygwin/11/include /usr/include /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../lib/../include/w32api ../windows-build/winpcap/WpdPack/Include using libm: /usr/lib/libm.a using librt: /usr/lib/librt.a using libpthread: /usr/lib/libpthread.a /usr/include/pthread.h using semaphore: /usr/include/semaphore.h using libdl: /usr/lib/libdl.a /usr/include/dlfcn.h using libedit: /usr/include/editline/readline.h using mman: /usr/include/sys/mman.h using libSDL2: /usr/include/SDL2/SDL.h *** No SDL ttf support available. BESM-6 video panel disabled. *** *** Info *** Install the development components of libSDL2-ttf packaged by your *** Info *** operating system distribution and rebuild your simulator to *** Info *** enable this extra functionality. *** Warning *** *** Warning *** pdp11 Simulator is being built WITHOUT *** Warning *** libpcap networking support *** Warning *** *** Warning *** To build simulator(s) with libpcap networking support you *** Warning *** should read 0readme_ethernet.txt and follow the instructions *** Warning *** regarding the needed libpcap development components for your *** Warning *** cygwin platform *** Warning *** *** Warning *** *** Warning *** pdp11 Simulator is being built WITHOUT LAN networking support *** Warning *** *** Warning *** To build simulator(s) with networking support you should read *** Warning *** 0readme_ethernet.txt and follow the instructions regarding the *** Warning *** needed libpcap components for your cygwin platform *** Warning *** *** *** pdp11 Simulator being built with: *** - compiler optimizations and no debugging support. GCC Version: 11.3.0. *** - WITHOUT Local LAN networking support. *** - Local LAN packet transports: NAT(SLiRP) *** - video capabilities provided by libSDL2 (Simple Directmedia Layer). *** - Per simulator tests will be run. *** *** git commit id is 4e159a04ed6291509b685dc06f620389b3373cce. *** git commit time is 2023-01-04T13:22:12-0700. *** gcc -std=gnu99 -U__STRICT_ANSI__ -O2 -finline-functions -fgcse-after-reload -fpredictive-commoning -fipa-cp-clone -fno-unsafe-loop-optimizations -fno-strict-overflow -DSIM_GIT_COMMIT_ID=4e159a04ed6291509b685dc06f620389b3373cce -DSIM_GIT_COMMIT_TIME=2023-01-04T13:22:12-0700 -DSIM_COMPILER="GCC Version: 11.3.0" -DSIM_BUILD_TOOL=simh-makefile -I . -Werror -D_GNU_SOURCE -DUSE_READER_THREAD -DSIM_ASYNCH_IO -DHAVE_SEMAPHORE -DHAVE_SYS_IOCTL -DSIM_HAVE_DLOPEN=a -DHAVE_EDITLINE -DHAVE_UTIME -DHAVE_GLOB -DHAVE_SHM_OPEN -DHAVE_WINMM ./PDP11/pdp11_fp.c ./PDP11/pdp11_cpu.c ./PDP11/pdp11_dz.c ./PDP11/pdp11_cis.c ./PDP11/pdp11_lp.c ./PDP11/pdp11_rk.c ./PDP11/pdp11_rl.c ./PDP11/pdp11_rp.c ./PDP11/pdp11_rx.c ./PDP11/pdp11_stddev.c ./PDP11/pdp11_sys.c ./PDP11/pdp11_tc.c ./PDP11/pdp11_tm.c ./PDP11/pdp11_ts.c ./PDP11/pdp11_io.c ./PDP11/pdp11_rq.c ./PDP11/pdp11_tq.c ./PDP11/pdp11_pclk.c ./PDP11/pdp11_ry.c ./PDP11/pdp11_pt.c ./PDP11/pdp11_hk.c ./PDP11/pdp11_xq.c ./PDP11/pdp11_xu.c ./PDP11/pdp11_vh.c ./PDP11/pdp11_rh.c ./PDP11/pdp11_tu.c ./PDP11/pdp11_cpumod.c ./PDP11/pdp11_cr.c ./PDP11/pdp11_rf.c ./PDP11/pdp11_dl.c ./PDP11/pdp11_ta.c ./PDP11/pdp11_rc.c ./PDP11/pdp11_kg.c ./PDP11/pdp11_ke.c ./PDP11/pdp11_dc.c ./PDP11/pdp11_dmc.c ./PDP11/pdp11_kmc.c ./PDP11/pdp11_dup.c ./PDP11/pdp11_rs.c ./PDP11/pdp11_vt.c ./PDP11/pdp11_td.c ./PDP11/pdp11_io_lib.c ./PDP11/pdp11_rom.c ./PDP11/pdp11_ch.c ./PDP11/pdp11_dh.c ./PDP11/pdp11_ng.c ./PDP11/pdp11_daz.c ./PDP11/pdp11_tv.c ./PDP11/pdp11_mb.c ./display/display.c ./display/sim_ws.c ./display/ng.c ./display/vt11.c ./scp.c ./sim_console.c ./sim_fio.c ./sim_timer.c ./sim_sock.c ./sim_tmxr.c ./sim_ether.c ./sim_tape.c ./sim_disk.c ./sim_serial.c ./sim_video.c ./sim_imd.c ./sim_card.c -DVM_PDP11 -I ./PDP11 -Islirp -Islirp_glue -Islirp_glue/qemu -DHAVE_SLIRP_NETWORK -DUSE_SIMH_SLIRP_DEBUG slirp/*.c slirp_glue/*.c -DUSE_NETWORK -DUSE_DISPLAY -DHAVE_LIBSDL -DUSE_SIM_VIDEO `sdl2-config --cflags` `sdl2-config --libs` -o BIN/pdp11 -lm -lrt -lpthread -ldl -ledit -lwinmm BIN/pdp11 RegisterSanityCheck </dev/null Running internal register sanity checks on PDP-11 simulator. *** Good Registers in PDP-11 simulator. PDP-11 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 sim> q Goodbye
-
The simulator program is available in the BIN directory from the compiled git repository. To make life easier, the best is to create a link to the program. I can create a link into /usr/bin or into the
guest directory. I will go with the later.
-
Windows 10 + cygwin
$ cd "${sRootEmulatorsDirectory}/Emulators/SimH/guests/pdp-11_2-9bsd" $ ln -s ../../mirror/simh-4.1/BIN/pdp11.exe pdp11-4.1 $ ls -laF pdp11-4.1 lrwxrwxrwx 1 afberendsen None 36 Feb 19 15:26 pdp11-4.1.exe -> ../../mirror/simh-4.1/BIN/pdp11*
-
macOS and Linux
$ cd "${sRootEmulatorsDirectory}/Emulators/SimH/guests/pdp-11_2-9bsd" $ ln -s ../../mirror/simh-4.1/BIN/pdp11 pdp11-4.1 $ ls -laF pdp11-4.1 lrwxrwxrwx 1 afberendsen None 36 Feb 19 15:26 pdp11-4.1 -> ../../mirror/simh-4.1/BIN/pdp11*
-
Windows 10 + cygwin
-
Build the guest (it is assumed that you are in the guest data directory)
-
For the pre-build image
-
Download pre-build image
$ wget https://pspodcasting.net/simh/29bsd.tar.gz --2023-02-23 05:56:44-- https://pspodcasting.net/simh/29bsd.tar.gz Resolving pspodcasting.net (pspodcasting.net)... 37.221.196.112 Connecting to pspodcasting.net (pspodcasting.net)|37.221.196.112|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 12646958 (12M) [application/octet-stream] Saving to: ‘29bsd.tar.gz’ 29bsd.tar.gz 100%[=============================================================>] 12.06M 23.5MB/s in 0.5s 2023-02-23 05:56:45 (23.5 MB/s) - ‘29bsd.tar.gz’ saved [12646958/12646958] $
-
Unpack package
$ # cygwin => 7z x 29bsd.tar.gz $ # macOS => 7zz x 29bsd.tar.gz $ # Linux => 7za x 29bsd.tar.gz 7-Zip [64] 15.14 : Copyright (c) 1999-2015 Igor Pavlov : 2015-12-31 p7zip Version 15.14.1 (locale=en_GB.UTF-8,Utf16=on,HugeFiles=on,64 bits,16 CPUs Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz (A0655),ASM,AES-NI) Scanning the drive for archives: 1 file, 12646958 bytes (13 MiB) Extracting archive: 29bsd.tar.gz -- Path = 29bsd.tar.gz Type = gzip Headers Size = 10 Everything is Ok Size: 277155840 Compressed: 12646958 $ tar -xv --strip-components=1 -f 29bsd.tar 29bsd/root.rl02 29bsd/29bsd.ini 29bsd/swap.rl02 29bsd/main.disk 29bsd/README $ ls -la total 553684 drwxrwxrwx+ 1 afberendsen None 0 Feb 23 05:57 . drwxrwxrwx+ 1 afberendsen None 0 Feb 23 05:52 .. -rw-r--r--+ 1 afberendsen None 754 Jan 26 21:57 29bsd.ini -rw-r--r--+ 1 afberendsen None 277155840 Jan 27 11:08 29bsd.tar -rw-rw-rw-+ 1 afberendsen None 12646958 Jan 27 11:08 29bsd.tar.gz -rw-r--r--+ 1 afberendsen None 2536 Jan 26 22:29 README -rw-r--r--+ 1 afberendsen None 256185344 Jan 26 22:32 main.disk lrwxrwxrwx 1 afberendsen None 35 Feb 23 05:55 pdp11-4.1 -> ../../mirror/simh-4.1/BIN/pdp11 -rw-r--r--+ 1 afberendsen None 10478080 Jan 26 22:32 root.rl02 -rw-r--r--+ 1 afberendsen None 10478080 Jan 20 17:29 swap.rl02 $
-
Update the initialization file. Check the lines in red below and update the 29bsd.ini file accordingly.
set cpu 11/70 set cpu 2M set cpu fpp ;The CIS option can't be disabled on a 11/70 CPU ;set cpu nocis show cpu ;set cpu idle set tti 7b set tto 7b set rl0 rl02 set rl1 rl02 set rl2 dis set rl3 dis att rl0 root.rl02 att rl1 swap.rl02 set rk dis set hk dis set rq dis set tq dis set xq dis set rx dis set cr dis ;set rha dis set ptp dis set ptr dis set pclk ena set rp0 rm05 att rp0 main.disk set dz lines=8 set dz 7b att dz -m 4000 expect ": " send "rl(0,0)rlunix\n"; continue expect "#" send "\x04"; continue boot rl0
-
Download pre-build image
-
If using the tape image
- Create the setup files (valid for all OSes).
-
tTestTape.ini
set cpu 11/70 set cpu 2M set cpu fpp show cpu set tti 7b set tto 7b set rl0 disable set rl1 disable set rl2 disable set rl3 disable set rk disable set hk disable set rq disable set tq disable set xq disable set rx disable set cr disable set rha disable set ptp disable set ptr disable set pclk enable set rp0 rm05 attach -r tm0 2.9BSDinstall.tap set dz lines=8 set dz 7b attach dz -m 4429 expect ": " send "tm(0,1)\n"; continue expect "File:" send "tm(0,2)\n"; continue expect ": " quit boot tm0
-
tInstallFromTape.ini
set cpu 11/70 set cpu 2M set cpu fpp show cpu set tti 7b set tto 7b set rl0 rl02 set rl1 rl02 set rl2 disable set rl3 disable set rk disable set hk disable set rq disable set tq disable set xq disable set rx disable set cr disable set ptp disable set ptr disable set pclk enable set rp0 rm05 if not exist disk0000_2-9_root_rl02.dsk attach -n rl0 disk0000_2-9_root_rl02.dsk if not exist disk0001_2-9_swap_rl02.dsk attach -n rl0 disk0001_2-9_swap_rl02.dsk if not exist disk0002_2-9_test_rp0.dsk attach -n rp0 disk0002_2-9_test_rp0.dsk if exist disk0000_2-9_root_rl02.dsk attach rl0 disk0000_2-9_root_rl02.dsk if exist disk0001_2-9_swap_rl02.dsk attach rl0 disk0001_2-9_swap_rl02.dsk if exist disk0002_2-9_test_rp0.dsk attach rp0 disk0002_2-9_test_rp0.dsk attach -r tm0 2.9BSDinstall.tap set dz lines=8 set dz 7b attach dz -m 4429 expect ": " send "tm(0,3)\n"; continue expect "file system:" send "rl(0,0)\n"; continue expect "file sys size:" send "8500\n"; continue expect "interleaving factor (m; 5 default):" send "5\n"; continue expect "interleaving modulus (n; 10 default):" send "10\n"; continue expect ": " send "tm(0,4)\n"; continue expect "Tape?" send "tm(0,6)\n"; continue expect "Disk?" send "rl(0,0)\n"; continue expect "Last chance before scribbling on disk." send "\n"; continue expect ": " send "tm(0,5)\n"; continue expect "File:" send "rl(0,0)\n"; continue expect ": " send "rl(0,0)rlunix\n"; continue expect "# " send "cd /mdec; dd if=rluboot of=/dev/rl0 count=1; fsck -y /dev/rl0\n"; continue expect "# " send "cat > /etc/fstab\n/dev/rl0:/:rw:7:1\n\x04"; continue expect "# " send "cd /dev\n"; continue expect "# " send "sh MAKE tm0\n"; continue expect "# " send "df\n"; continue expect "# " send "mkfs /dev/xp0h 248000\n"; continue expect "# " send "mount /dev/xp0h /usr;cd /usr;mt -t /dev/nrmt0 fsf 7;tar xpfv /dev/rmt0\n"; continue expect "# " send "cd /dev\nmknod swap b 8 1\n"; continue expect "# " send "cat > /etc/fstab\n/dev/rl0:/:rw:7:1\n/dev/xp0h:/usr:rw:7:2\n/dev/rl1:swap:sw:0::0\n\x04"; continue expect "# " send "cat > /etc/ttytype\nansi tty00\nansi tty01\nansi tty02\nansi tty03\nansi tty04\nansi tty05\nansi tty06\nansi tty07\n\x04"; continue expect "# " send "cat > /etc/dtab\n# Device Configuration Table\n# Clock and console are pre-configured and should not be listed here\n#\n# Dev# Addr Vector Br Handler(s) ; Comment\nxp ? 176700 254 5 xpio ; SMD disk (RP04/5/6, RM)\n#rk ? 177400 220 5 rkio ; RK05\n#hk ? 177440 210 5 hkio ; RK06/7\nrl ? 174400 160 5 rlio ; RL01/02\n#rp ? 176700 254 5 rpio ; RP03\n#ht 0 172440 224 5 htio ; TM03/TE16, etc.\ntm 0 172520 224 5 tmio ; TM-11\n#ts 0 172520 224 5 tsio ; TS-11\n#dh ? 160020 370 5 dhin dhou ; DH11 terminal mux\n#dm ? 170500 360 4 dmin ; DM-11 BB DH Modem Control\ndz ? 160100 300 5 dzin dzdma ; DZ11 terminal mux\n#dz ? 160110 320 5 dzin dzou ; DZ11 if pseudo-DMA not enabled\n#dn 0 175200 300 5 dnou ; DN-11 dialer\n# kl 1 176500 300 5 klin klou ; DL-11\n#vp ? 177500 174 4 vpio ; Versatec; should be before lp\nlp ? 177514 200 4 lpio ; LP-11 line printer\n\x04"; continue expect "# " send "sync;sync;sync;sync;\n\x05"; continue boot tm0 quit
-
dBoot.ini
set cpu 11/70 set cpu 2M set cpu fpp show cpu set tti 7b set tto 7b set rl0 rl02 set rl1 rl02 set rl2 disable set rl3 disable attach rl0 2.9BSD-root.rl02 attach rl1 swap.rl02 set rk disable set hk disable set rq disable set tq disable set xq disable set rx disable set cr disable set rha disable set ptp disable set ptr disable set pclk enable set rp0 rm05 attach rp0 test.disk set dz lines=8 set dz 7b attach dz -m 4429 expect ": " send "rl(0,0)rlunix\n"; continue expect "# " send "fsck -y /dev/rl0\n"; continue expect "# " send "\x04"; continue boot rl0
- Download the tape tar ball from here.
$ wget --output-document=2.9BSDinstall.tap.bz2 'http://sourceforge.net/projects/bsd42/files/Install%20tapes/2.X%20BSD/2.9BSDinstall.tap.bz2/download'--2023-02-23 21:41:33-- http://sourceforge.net/projects/bsd42/files/Install%20tapes/2.X%20BSD/2.9BSDinstall.tap.bz2/download Resolving sourceforge.net (sourceforge.net)... 104.18.11.128, 104.18.10.128, 2606:4700::6812:a80, ... Connecting to sourceforge.net (sourceforge.net)|104.18.11.128|:80... connected. HTTP request sent, awaiting response... 301 Moved Permanently Location: https://sourceforge.net/projects/bsd42/files/Install%20tapes/2.X%20BSD/2.9BSDinstall.tap.bz2/download [following] --2023-02-23 21:41:33-- https://sourceforge.net/projects/bsd42/files/Install%20tapes/2.X%20BSD/2.9BSDinstall.tap.bz2/download Connecting to sourceforge.net (sourceforge.net)|104.18.11.128|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://downloads.sourceforge.net/project/bsd42/Install%20tapes/2.X%20BSD/2.9BSDinstall.tap.bz2?ts=gAAAAABj9899MZOPVBwGH7ucnUeFsOr1y88DW2kGlJvYoDJgV4dDuDrnpQ8lATmUCHkjjEjLWyhQvghq38beOB2ovPLVgNKkVw%3D%3D&use_mirror=master&r= [following] --2023-02-23 21:41:34-- https://downloads.sourceforge.net/project/bsd42/Install%20tapes/2.X%20BSD/2.9BSDinstall.tap.bz2?ts=gAAAAABj9899MZOPVBwGH7ucnUeFsOr1y88DW2kGlJvYoDJgV4dDuDrnpQ8lATmUCHkjjEjLWyhQvghq38beOB2ovPLVgNKkVw%3D%3D&use_mirror=master&r= Resolving downloads.sourceforge.net (downloads.sourceforge.net)... 204.68.111.105 Connecting to downloads.sourceforge.net (downloads.sourceforge.net)|204.68.111.105|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://master.dl.sourceforge.net/project/bsd42/Install%20tapes/2.X%20BSD/2.9BSDinstall.tap.bz2?viasf=1 [following] --2023-02-23 21:41:34-- https://master.dl.sourceforge.net/project/bsd42/Install%20tapes/2.X%20BSD/2.9BSDinstall.tap.bz2?viasf=1 Resolving master.dl.sourceforge.net (master.dl.sourceforge.net)... 216.105.38.12 Connecting to master.dl.sourceforge.net (master.dl.sourceforge.net)|216.105.38.12|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 9840273 (9.4M) [application/octet-stream] Saving to: ‘2.9BSDinstall.tap.bz2’ 2.9BSDinstall.tap.bz2 100%[======================================================================>] 9.38M 680KB/s in 16s 2023-02-23 21:41:51 (602 KB/s) - ‘2.9BSDinstall.tap.bz2’ saved [9840273/9840273] $
- Expand the tar package
$ 7z x 2.9BSDinstall.tap.bz2 7-Zip [64] 15.14 : Copyright (c) 1999-2015 Igor Pavlov : 2015-12-31 p7zip Version 15.14.1 (locale=en_GB.UTF-8,Utf16=on,HugeFiles=on,64 bits,16 CPUs Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz (A0655),ASM,AES-NI) Scanning the drive for archives: 1 file, 9840273 bytes (9610 KiB) Extracting archive: 2.9BSDinstall.tap.bz2 -- Path = 2.9BSDinstall.tap.bz2 Type = bzip2 Everything is Ok Size: 40132708 Compressed: 9840273 $
- Check the tape file
$ ./pdp11-4.1 tTestTape.ini PDP-11 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 Disabling XQ CPU 11/70, FPP, RH70, autoconfiguration enabled, idle disabled 2MB /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/tTestTape.ini-18> set rha disable Command not allowed /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/tTestTape.ini-23> attach tm0 2.9BSDinstall.tap %SIM-INFO: TM0: Tape Image '2.9BSDinstall.tap' scanned as SIMH format /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/tTestTape.ini-26> attach dz -m 4429 %SIM-INFO: Listening on port 4429 Modem control activated 70Boot : tm(0,1) cat File: tm(0,2) Contents of this tape: File 0: 2 copies of magtape bootstrap (2 blocks total) The standalone bootstrap File 1: A file to console copy program File 2: This file File 3: The program mkfs File 4: The program restor File 5: The program icheck File 6: A dump of the root file system File 7: A tar format dump of the /usr filesystem (extract with: Goodbye $
- Install the OS into the disk, from the tape. The entire proces is automatic. The /etc/reboot (and /etc/shutdown) have a problem and the system is not halting. It is necessary to use a work-around for it.
$ ./pdp11-4.1 tInstallFromTape.ini PDP-11 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 Disabling XQ CPU 11/70, FPP, RH70, autoconfiguration enabled, idle disabled 2MB /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/tMakeRoot.ini-24> attach -n rl0 disk0000_2-9_root_rl02.dsk %SIM-INFO: RL0: Creating new file: disk0000_2-9_root_rl02.dsk /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/tMakeRoot.ini-25> attach -n rl0 disk0001_2-9_swap_rl02.dsk %SIM-INFO: RL0: Creating new file: disk0001_2-9_swap_rl02.dsk /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/tMakeRoot.ini-26> attach -n rp0 disk0002_2-9_test_rp0.dsk %SIM-INFO: RP0: Creating new file: disk0002_2-9_test_rp0.dsk /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/tMakeRoot.ini-32> attach -r tm0 2.9BSDinstall.tap %SIM-INFO: TM0: unit is read only %SIM-INFO: TM0: Tape Image '2.9BSDinstall.tap' scanned as SIMH format /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/tMakeRoot.ini-35> attach dz -m 4429 %SIM-INFO: Listening on port 4429 Modem control activated 70Boot : tm(0,3) Mkfs file system: rl(0,0) file sys size: 8500 interleaving factor (m; 5 default): 5 interleaving modulus (n; 10 default): 10 isize = 5440 m/n = 5 10 Exit called 70Boot : tm(0,4) Restor Tape? tm(0,6) Disk? rl(0,0) Last chance before scribbling on disk. End of tape 70Boot : tm(0,5) Icheck File: rl(0,0) rl(0,0): files 238 (r=145,d=10,b=27,c=56,q=0,l=0) used 1917 (i=94,ii=0,iii=0,d=1823) free 6241 missing 0 70Boot : rl(0,0)rlunix Berkeley UNIX (Rev. 2.9.1) Sun Nov 20 14:55:50 PST 1983 mem = 1979072 CONFIGURE SYSTEM: xp 0 csr 176700 vector 254 attached rk ? csr 177400 vector 220 skipped: No CSR hk ? csr 177440 vector 210 skipped: No CSR rl 0 csr 174400 vector 160 attached rp ? csr 176700 vector 254 interrupt vector already in use ht 0 csr 172440 vector 224 skipped: No CSR tm 0 csr 172520 vector 224 attached ts 0 csr 172520 vector 224 interrupt vector already in use dh ? csr 160020 vector 370 skipped: No CSR dm ? csr 170500 vector 360 skipped: No autoconfig routines dz ? csr 160110 vector 320 skipped: No CSR dz ? csr 160110 vector 320 skipped: No CSR dn 0 csr 175200 vector 300 skipped: No autoconfig routines vp ? csr 177500 vector 174 skipped: No autoconfig routines lp 0 csr 177514 vector 200 attached Erase=^?, kill=^U, intr=^C # cd /mdec; dd if=rluboot of=/dev/rl0 count=1; fsck -y /dev/rl0 0+1 records in 0+1 records out /dev/rl0 File System: / ** Checking /dev/rl0 ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Free List 238 files 1916 blocks 6242 free # cat > /etc/fstab /dev/rl0:/:rw:7:1 CTRL+D# cd /dev # sh MAKE tm0 # df Filesystem Mounted on kbytes used free % used /dev/rl0 / 8158 1916 6242 23% # mkfs /dev/xp0h 248000 isize = 65488 m/n = 5 10 # mount /dev/xp0h /usr;cd /usr;mt -t /dev/nrmt0 fsf 7;tar xpfv /dev/rmt0 Tar: blocksize = 20 x ./70/adb, 28204 bytes, 56 tape blocks x ./70/make, 18182 bytes, 36 tape blocks x ./70/dump, 9806 bytes, 20 tape blocks x ./70/restor, 12464 bytes, 25 tape blocks x ./70/rogue, 82920 bytes, 162 tape blocks x ./70/csh, 55488 bytes, 109 tape blocks x ./70/ex, 135854 bytes, 266 tape blocks x ./bin/lex, 31826 bytes, 63 tape blocks ... x ./ingres/lib/READ_ME, 259 bytes, 1 tape blocks x ./ingres/version, 92 bytes, 1 tape blocks x ./ingres/.cshrc, 64 bytes, 1 tape blocks x ./ingres/.login, 158 bytes, 1 tape blocks x ./ingres/.exrc, 27 bytes, 1 tape blocks # cd /dev # mknod swap b 8 1 # cat > /etc/fstab /dev/rl0:/:rw:7:1 /dev/xp0h:/usr:rw:7:2 /dev/rl1:swap:sw:0::0 # cat > /etc/ttytype ansi tty00 ansi tty01 ansi tty02 ansi tty03 ansi tty04 ansi tty05 ansi tty06 ansi tty07 CTRL+D# cat > /etc/dtab # Device Configuration Table # Clock and console are pre-configured and should not be listed here # # Dev# Addr Vector Br Handler(s) ; Comment xp ? 176700 254 5 xpio ; SMD disk (RP04/5/6, RM) #rk ? 177400 220 5 rkio ; RK05 #hk ? 177440 210 5 hkio ; RK06/7 rl ? 174400 160 5 rlio ; RL01/02 #rp ? 176700 254 5 rpio ; RP03 #ht 0 172440 224 5 htio ; TM03/TE16, etc. tm 0 172520 224 5 tmio ; TM-11 #ts 0 172520 224 5 tsio ; TS-11 #dh ? 160020 370 5 dhin dhou ; DH11 terminal mux #dm ? 170500 360 4 dmin ; DM-11 BB DH Modem Control dz ? 160100 300 5 dzin dzdma ; DZ11 terminal mux #dz ? 160110 320 5 dzin dzou ; DZ11 if pseudo-DMA not enabled #dn 0 175200 300 5 dnou ; DN-11 dialer # kl 1 176500 300 5 klin klou ; DL-11 #vp ? 177500 174 4 vpio ; Versatec; should be before lp lp ? 177514 200 4 lpio ; LP-11 line printer CTRL+D# sync;sync;sync;sync # /etc/shutdown -h +1 Shutdown at 16:58 (in 1 minute) [pid 446] # Shutdown at 16:58 (in 1 minute) System shutdown time has arrived reboot: Invalid argument Erase=^?, kill=^U, intr=^C #CTRL+E Simulation stopped, PC: 004632 (MOV (SP)+,177776) sim> q Goodbye $
-
For the pre-build image
First look
Pre-packaged version
There is a problem with the shutdown routine, more precisely with /etc/reboot. It fails and returns to the login prompt.
$ ./pdp11-4.1 29bsd.ini PDP-11 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 To boot the system, type rl(0,0)rlunix at the ":" prompt after 70Boot This will boot the system in single user mode, to enter normal multiuser mode, hit Control-D. At this point you can login as root or guest without any password. To halt the system: su, kill -1 1, sync; sync; sync, Control-E, quit. Disabling XQ /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/29bsd.ini-17> set cpu nocis %SIM-ERROR: The CIS option can't be disabled on a 11/70 CPU CPU 11/70, FPP, RH70, autoconfiguration enabled, idle disabled 2MB /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/29bsd.ini-26> att rl0 root.rl02 %SIM-INFO: RL0: Amount of data in use in disk container 'root.rl02' cannot be determined, skipping autosizing /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/29bsd.ini-27> att rl1 swap.rl02 %SIM-INFO: RL1: Amount of data in use in disk container 'swap.rl02' cannot be determined, skipping autosizing /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/29bsd.ini-40> att rp0 main.disk %SIM-INFO: RP0: Amount of data in use in disk container 'main.disk' cannot be determined, skipping autosizing /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/29bsd.ini-43> att dz -m 4000 %SIM-INFO: Listening on port 4000 Modem control activated :boot 70Boot : rl(0,0)rlunix Berkeley UNIX (Rev. 2.9.1) Sun Nov 20 14:55:50 PST 1983 mem = 1979072 CONFIGURE SYSTEM: xp 0 csr 176700 vector 254 attached rl 0 csr 174400 vector 160 attached tm 0 csr 172520 vector 224 attached dz 0 csr 160100 vector 300 attached lp 0 csr 177514 vector 200 attached Erase=^?, kill=^U, intr=^C # CTRL+DWed Dec 31 18:23:39 PST 1969 Mounted /usr on /dev/xp0h Berkeley Unix 2.9BSD :login: root Welcome to the 2.9BSD (Berkeley) UNIX system. # echo $PATH /usr/ucb:/bin:/usr/bin:/etc:. # ls /usr/ucb /bin /usr/bin /etc /bin: # cmp e icheck mt pstat strip vi [ cp echo iostat mv pwd stty view adb csh ed kill ncheck ranlib su wc ar date edit l newgrp restor sync who as dcheck ex ld nice rm tail write cat dd expr ln nm rmail tar yes cc df false login od rmdir tee chgrp diff fgrep ls oldcsh sh test chmod du file mail passwd size time chown dump find make pr sleep touch clri dumpdir grep mkdir ps sort true /etc: accton fstab mkfs psdatabase umount admclean fstab.sample mklost+found rc update autoconfig getty mknod reboot utmp cron group motd savecore vipw ddate hostname mount shutdown wall dmesg ident mtab termcap dtab init passwd ttys fsck localhostname proto ttytype /usr/bin: 512dumpdir dc look prep sh uuencode 512restor delrem lookbib prfile spell uulog Mail deroff lorder primes split uuname ac diff3 ls printenv struct uusend at dumpdir m4 prof sum uusnap awk egrep mesg ptx sync uustat basename enroll mkdir px tabs uux bc eqn neqn pxp tbl why cal f77 nohup quot tp write calendar factor nroff ratfor tr xget cb find ovadb refer troff xsend checkeq join pcc remind tsort yacc checkobj learn pi restor tty col lex pix rev unifdef comm lint plot sa uniq crypt login pr sed uudecode /usr/ucb: Mail clear eyacc la pack ssp uptime RESET clock f last page strings users apropos colcrt finger lastcomm printenv sysline vmstat astags colrm fmt leave prmail tabify vsh bad144 compact fold link pubindex tod w badsect count from lock renice tra whatis bugformat ctags getNAME m11 reset tset whereis catman cxref gets mail sccs u which ccat daytime grep man script ul whoami checknr diffdir head mkstr see uncompact xstr chfn double indent more sendbug unexpand chsh error iul msgs setup unpack ckdir expand l11 num soelim untmp # who root console Dec 31 18:23 # dmesg Dec 31 18:25 Berkeley UNIX (Rev. 2.9.1) Sun Nov 20 14:55:50 PST 1983 mem = 1979072 # mount xp0h on /usr # iostat 5 TTY DK0 SEEK DK1 TRANSFER DK2 TRANSFER PERCENT tin tout sps msps tps msps mspt tps msps mspt usr nic sys idle 0 9 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 11 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 1 14 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 14 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 2 16 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 CTRL+Z^Z Stopped # iostat 5 10 TTY DK0 SEEK DK1 TRANSFER DK2 TRANSFER PERCENT tin tout sps msps tps msps mspt tps msps mspt usr nic sys idle 0 10 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 12 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 # w 6:31pm up 8 mins, 1 user, load average: 0.00, 0.00, 0.00 User tty login@ idle JCPU PCPU what root console 6:23pm w # whoami root.sys # which df /bin/df # which ps /bin/ps # ps CTRL+Z^Z Stopped # /etc/shutdown -h +1 Shutdown at 18:42 (in 1 minute) [pid 70] # *** System shutdown message from root *** System going down in 60 seconds *** System shutdown message from root *** System going down in 30 seconds *** System shutdown message from root *** System going down IMMEDIATELY *** System shutdown message from root *** System going down IMMEDIATELY Shutdown at 18:42 (in 1 minute) System shutdown time has arrived reboot: Invalid argument Berkeley Unix 2.9BSD :login:CTRL+E Simulation stopped, PC: 004632 (MOV (SP)+,177776) sim> q Goodbye $
Tape build version
$ ./pdp11-4.1 dBoot.ini PDP-11 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 Disabling XQ CPU 11/70, FPP, RH70, autoconfiguration enabled, idle disabled 2MB /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/dBoot.ini-24> set rha disable Command not allowed /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/dBoot.ini-28> set rp0 rm05 Unit already attached /cygdrive/m/Emulators/SimH/guests/pdp-11_2-9bsd/dBoot.ini-31> attach dz -m 4429 %SIM-INFO: Listening on port 4429 Modem control activated :boot 70Boot : rl(0,0)rlunix Berkeley UNIX (Rev. 2.9.1) Sun Nov 20 14:55:50 PST 1983 mem = 1979072 CONFIGURE SYSTEM: xp 0 csr 176700 vector 254 attached rl 0 csr 174400 vector 160 attached tm 0 csr 172520 vector 224 attached dz 0 csr 160100 vector 300 attached lp 0 csr 177514 vector 200 attached Erase=^?, kill=^U, intr=^C # fsck -y /dev/rl0 /dev/rl0 File System: / ** Checking /dev/rl0 ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Free List 244 files 1919 blocks 6239 free # CTRL+DWed Dec 31 16:58:21 PST 1969 Mounted /usr on /dev/xp0h Berkeley Unix 2.9BSD :login: root Welcome to the 2.9BSD (Berkeley) UNIX system. # echo $PATH /usr/ucb:/bin:/usr/bin:/etc:. # ls /usr/ucb /bin /usr/bin /etc /bin: # cmp e icheck mt pstat strip vi [ cp echo iostat mv pwd stty view adb csh ed kill ncheck ranlib su wc ar date edit l newgrp restor sync who as dcheck ex ld nice rm tail write cat dd expr ln nm rmail tar yes cc df false login od rmdir tee chgrp diff fgrep ls oldcsh sh test chmod du file mail passwd size time chown dump find make pr sleep touch clri dumpdir grep mkdir ps sort true /etc: accton fstab mkfs psdatabase umount admclean fstab.sample mklost+found rc update autoconfig getty mknod reboot utmp cron group motd savecore vipw ddate hostname mount shutdown wall dmesg ident mtab termcap dtab init passwd ttys fsck localhostname proto ttytype /usr/bin: 512dumpdir dc look prep sh uuencode 512restor delrem lookbib prfile spell uulog Mail deroff lorder primes split uuname ac diff3 ls printenv struct uusend at dumpdir m4 prof sum uusnap awk egrep mesg ptx sync uustat basename enroll mkdir px tabs uux bc eqn neqn pxp tbl why cal f77 nohup quot tp write calendar factor nroff ratfor tr xget cb find ovadb refer troff xsend checkeq join pcc remind tsort yacc checkobj learn pi restor tty col lex pix rev unifdef comm lint plot sa uniq crypt login pr sed uudecode /usr/ucb: Mail clear eyacc la pack ssp uptime RESET clock f last page strings users apropos colcrt finger lastcomm printenv sysline vmstat astags colrm fmt leave prmail tabify vsh bad144 compact fold link pubindex tod w badsect count from lock renice tra whatis bugformat ctags getNAME m11 reset tset whereis catman cxref gets mail sccs u which ccat daytime grep man script ul whoami checknr diffdir head mkstr see uncompact xstr chfn double indent more sendbug unexpand chsh error iul msgs setup unpack ckdir expand l11 num soelim untmp # who ; dmesg ; mount ; df ; iostat 5 5 ; whoami which df ; ps root console Dec 31 16:58 Dec 31 17:00 Berkeley UNIX (Rev. 2.9.1) Sun Nov 20 14:55:50 PST 1983 mem = 1979072 xp0h on /usr Filesystem Mounted on kbytes used free % used /dev/rl0 / 8158 1921 6237 24% /dev/xp0h /usr 243905 37243 206662 15% TTY DK0 SEEK DK1 TRANSFER DK2 TRANSFER PERCENT tin tout sps msps tps msps mspt tps msps mspt usr nic sys idle 1 34 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 16 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 0 13 0 0.0 0 0.0 0.0 0 0.0 0.0 0 0 0 100 root.sys CTRL+Z^Z Stopped # sync ; sync ; sync ; sync #CTRL+E Simulation stopped, PC: 004632 (MOV (SP)+,177776) sim> q Goodbye $
Comments
Post a Comment