Introduction
The Second Berkeley Software Distribution (2BSD), released in May 1979, included updated versions of the 1BSD software as well as two new programs by Joy that persist on Unix systems to this day: the vi text editor (a visual version of ex) and the C shell. Some 75 copies of 2BSD were sent out by Bill Joy. A further feature was a networking package called Berknet, developed by Eric Schmidt as part of his master's thesis work, that could connect up to twenty-six computers and provided email and file transfer.
After 3BSD (see below) had come out for the VAX line of computers, new releases of 2BSD for the PDP-11 were still issued and distributed through USENIX; for example, 1982's 2.8.1BSD included a collection of fixes for performance problems in Version 7 Unix, and later releases contained ports of changes from the VAX-based releases of BSD back to the PDP-11 architecture. 2.9BSD from 1983 included code from 4.1cBSD, and was the first release that was a full OS (a modified V7 Unix) rather than a set of applications and patches.
The most recent release, 2.11BSD, was first issued in 1991. In the 21st Century, maintenance updates from volunteers continued: patch #473 was released on January 25, 2022.
Host
- Vendor: Generic
- CPU: 1 x Intel(R) Core(TM) i7-10700K CPU @ 3.80GHz 3.79 GHz
- RAM: 128GB
- OS: Windows 10 64-bits
Guest
- PDP-11
- CPU:
- Memory:
- OS: 2.11BSD
Virtualization
- SimH 4.1 (from GitHub)
Pending
- Additional disks
- Network
References
Steps
- bold text is user input from the keyboard
- blue text is automatic input from SimH input processing
- red text are control characters typed by the user
- Prepare directory structure
$ mkdir -p /cygdrive/m/Emulators/SimH/ $ mkdir -p /cygdrive/m/Emulators/SimH/mirror/ $ mkdir -p /cygdrive/m/Emulators/SimH/guests/ $ mkdir -p /cygdrive/m/Emulators/SimH/guests/pdp-11_2-11bsd/ $ mkdir -p /cygdrive/m/Emulators/SimH/guests/by-platform/ $ mkdir -p /cygdrive/m/Emulators/SimH/guests/by-platform/pdp-11/ $ mkdir -p /cygdrive/m/Emulators/SimH/guests/by-os/ $ mkdir -p /cygdrive/m/Emulators/SimH/guests/by-os/2-11bsd/ $ ln -sf /cygdrive/m/Emulators/SimH/guests/pdp-11_2-11bsd /cygdrive/m/Emulators/SimH/guests/by-platform/pdp-11/2-11bsd $ ln -sf /cygdrive/m/Emulators/SimH/guests/pdp-11_2-11bsd /cygdrive/m/Emulators/SimH/guests/by-os/2-11bsd/pdp-11
- Install cygwin
- install bzip2 (or 7z), uudecode, and wget
- Install SimH 4.1 from here. This is another fork project from the original emulator.
$ cd /cygdrive/m/Emulators/SimH/mirror/
- 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 && 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.
$ cd /cygdrive/m/Emulators/SimH/guests/pdp-11_2-11bsd $ ln -s ../../mirror/simh-4.1/BIN/pdp11.exe pdp11-4.1.exe $ ls -laF pdp11-4.1.exe lrwxrwxrwx 1 afberendsen None 36 Feb 19 15:26 pdp11-4.1.exe -> ../../mirror/simh-4.1/BIN/pdp11.exe*
- If using the pre-build image
- Download pre-build image
$ wget https://pspodcasting.net/simh/211bsd.tar.gz --2023-02-22 23:56:36-- https://pspodcasting.net/simh/211bsd.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: 30736769 (29M) [application/octet-stream] Saving to: ‘211bsd.tar.gz’ 211bsd.tar.gz 100%[=============================================================>] 29.31M 27.9MB/s in 1.1s 2023-02-22 23:56:38 (27.9 MB/s) - ‘211bsd.tar.gz’ saved [30736769/30736769] $
- Unpack package
$ 7z x 211bsd.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, 30736769 bytes (30 MiB) Extracting archive: 211bsd.tar.gz -- Path = 211bsd.tar.gz Type = gzip Headers Size = 10 Everything is Ok Size: 159201280 Compressed: 30736769 $ tar -xv --strip-components=1 -f 211bsd.tar 211bsd/printer.txt 211bsd/README 211bsd/root.dsk 211bsd/211bsd.ini $ ls -lF total 340954 -rw-r--r--+ 1 afberendsen None 370 Jan 18 2022 211bsd.ini -rw-r--r--+ 1 afberendsen None 159201280 Jan 23 2022 211bsd.tar -rw-rw-rw-+ 1 afberendsen None 30736769 Jan 23 2022 211bsd.tar.gz -rw-r--r--+ 1 afberendsen None 2160 Jan 20 2022 README lrwxrwxrwx 1 afberendsen None 35 Feb 22 23:54 pdp11-4.1.exe -> ../../mirror/simh-4.1/BIN/pdp11.exe* -rw-r--r--+ 1 afberendsen None 0 Jan 16 2022 printer.txt -rw-r--r--+ 1 afberendsen None 159184896 Jan 23 2022 root.dsk $
- Update the initialization file. Check the lines in red below and update the 211bsd.ini file accordingly.
set tto 7b set dz lines=8 set dz 7b attach -am dz 8888 set ts enable set rq enable set RK disable set HK disable set TC disable set TM disable att lpt printer.txt attach xq eth0 set xq type=delqa set xq mac=00-50-56-01-01-01 set cpu 3072k attach rq root.dsk expect ": " send "\n"; continue expect "# " send "\x04"; continue boot rq
- If using the tape image
- Transfer contents of tape to disk
- Create tboot.ini file to allow the initial disk set-up and code transfer from the tape.
- Start-up the simulator with the tape boot ini file. This will transfer the OS from the tape into the virtual disk and leave the system ready for boot.
- (once) Create the boot loader.
- Create a file called boot.uue, with following contents
- Decode the text file into a binary file.
- Create a dboot.ini file wwhich will be used to load the OS
- Load the simulator for 4BSD
- Authenticate with root account
- Shutdown system
First look
Pre-packaged version
$ ./pdp11-4.1.exe 211bsd.ini PDP-11 simulator Open SIMH V4.1-0 Current git commit id: 4e159a04 Hit Enter at the : prompt, then Ctrl-D, you can now log in as root or guest. /cygdrive/m/Emulators/SimH/guests/pdp-11_2-11bsd/211bsd.ini-10> attach -am dz 8888 %SIM-INFO: Listening on port 8888 Modem control activated Auto disconnect activated Eth: Pcap capable device not found. You may need to run as root /cygdrive/m/Emulators/SimH/guests/pdp-11_2-11bsd/211bsd.ini-22> attach xq eth0 File open error 73Boot from ra(0,0,0) at 0172150 :ENTER : ra(0,0,0)unix Boot: bootdev=02400 bootcsr=0172150 2.11 BSD UNIX #1: Fri Jun 9 08:42:54 PDT 1995 root@SSU-64EN137:/usr/src/sys/SYSTEM ra0: Ver 3 mod 3 ra0: RD54 size=311200 attaching qe0 csr 174440 qe0: DEC DELQA addr 00:50:56:01:01:01 attaching lo0 phys mem = 3145728 avail mem = 1737664 user mem = 307200 September 12 05:36:23 init: configure system dz 0 csr 160100 vector 300 attached ra 0 csr 172150 vector 154 vectorset attached ts 0 csr 172520 vector 224 attached # CTRL-DFast boot ... skipping disk checks checking quotas: done. *** You need to edit /etc/netstart and /etc/hosts *** Assuming NETWORKING system ... add host 2bsd: gateway localhost add net default: gateway 192.168.1.254 starting system logger Sep 12 05:36:37 2bsd vmunix: ra0: Ver 3 mod 3 Sep 12 05:36:37 2bsd vmunix: ra0: RD54 size=311200 checking for core dump... preserving editor files clearing /tmp standard daemons: update cron accounting. starting network daemons: inetd. starting local daemons:Fri Sep 12 05:36:37 PDT 1986 Sep 12 05:36:37 2bsd September 12 05:36:37 init: kernel security level changed from 0 to 1 2.11 BSD UNIX (2bsd) (console) login: root # echo $PATH /bin:/sbin:/usr/sbin:/etc:/usr/ucb:/usr/bin:/usr/new # ls /bin /etc /usr/bin /sbin /usr/sbin /bin: [ chpass du ln pagesize sh test adb chsh e login passwd size time ar cmp echo ls ping sort tp as copyh ed mail pr strip true awk cp expr make ps stty wall cat csh false mkdir pwd su who cc date grep mt rcp sync write chflags dd hostid mv rm sysctl chfn df hostname nice rmail tar chgrp diff kill nm rmdir tcsh chmod disklabel ld od sed tee /etc: Mail.rc dtab.save hosts.equiv ntp.drift resolv.conf acctd.cf dumpdates hosts.pag passwd sendmail.cf aliases fstab inetd.conf passwd.dir services aliases.dir ftpusers init passwd.pag shells aliases.pag gettytab localtime phones syserrlst autoconfig group master.passwd printcap syslog.conf crash hosts motd protocols tcsh6.00strgs crontab hosts.allow netstart rc termcap disktab hosts.deny networks rc.local ttys dtab hosts.dir ntp.conf remote uucp /sbin: XNSrouted dumpdir icheck ncheck route testnet badsect dumpfs ifconfig newfs routed tunefs clri fastboot mkfs quotacheck savecore umount dcheck fsck mknod rdump shutdown dmesg gt307 mkpasswd reboot slattach dump halt mount restor swapon /usr/bin: addbib diction iostat nsquery spellout tty aedplot diff3 join nstest spline uname at dumbplot learn patch split uniq atoplot egrep lex plot struct units atq eqn lint plottoa style uucp atrm ex look printf sum uudecode basename explain lookbib prof t300 uuencode bc f77 lorder ptx t300s uulog bgplot fgrep lpq ranlib t4013 uuname cal file lpr ratfor t450 uupoll calendar find lprm refer tabs uuq cb fstat m4 renice tbl uusend checkeq gigiplot mailq rev tc uusnap col graph mesg roffbib tek uux comm groups mkdep ruusend tip whereis crontab hp7221plot mkerrlst shar tk whoami crtplot hpplot neqn sleep touch xargs crypt id newaliases sort tr yacc cu implot nohup sortbib traverse dc indxbib nroff spell troff deroff install nslookup spellin tsort /usr/sbin: ac edquota kgmon pac syslogd accton expreserve lpc pstat syslogd.org arff exrecover lpd quot timed arp flcopy lptest quotaoff timedc bad144 gettable makewhatis quotaon traceroute catman htable mkhosts repquota trpt chown idecrypt mklost+found rmt update chroot identconn mkproto rwhod uucico config implog named rxformat uuclean cron implogd ntp sa vipw dev_mkdb inetd ntpd sendmail zic diskpart itest ntpdc sysgen # dmesg Sep 12 05:37 ... <5>ra0: Ver 3 mod 3 ra0: RD54 size=311200 attaching qe0 csr 174440 qe0: DEC DELQA addr 00:50:56:01:01:01 attaching lo0 phys mem = 3145728 avail mem = 1737664 user mem = 307200 # df Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ra0a 150608 85931 64677 57% / /dev/ram 990 2 988 0% /tmp # mount /dev/ra0a on / /dev/ram on /tmp # /sbin/shutdown -h +1 Shutdown at 05:38 (in 1 minute) [pid 104] # *** System shutdown message from root@2bsd *** System going down in 60 seconds *** FINAL System shutdown message from root@2bsd *** System going down in 30 seconds *** FINAL System shutdown message from root@2bsd *** System going down IMMEDIATELY System shutdown time has arrived Sep 12 05:38:48 2bsd September 12 05:38:48 shutdown: halt by root: Sep 12 05:38:51 2bsd syslogd: going down on signal 15 syncing disks... done halting HALT instruction, PC: 000014 (MOV #1,12646) sim> q Goodbye $
Comments
Post a Comment