Skip to main content

IT - Virtualization - 2.11BSD on PDP-11 on SimH 4.1 for Windows 10 x64

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

Pending

  • Additional disks
  • Network

References

  • 2.11BSD pre-build SimH from here.
  • SimH 4.1 here
  • Documentation for version SimH 4.0 here.
  • Documentation for version SimH 3.12-3 here.
  • Classic SimH web-site here.
  • SIMH FAQ here.

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
  1. 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
    
    
  2. Install cygwin
    1. install bzip2 (or 7z), uudecode, and wget
  3. Install SimH 4.1 from here. This is another fork project from the original emulator.
    $ cd /cygdrive/m/Emulators/SimH/mirror/
    1. 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.
    2. 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
      
  4. 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-11bsdln -s ../../mirror/simh-4.1/BIN/pdp11.exe pdp11-4.1.exels -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*
  5. If using the pre-build image
    1. 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]
      
      $
    2. 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
      $
    3. 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
      
  6. If using the tape image
    1. Transfer contents of tape to disk
      1. Create tboot.ini file to allow the initial disk set-up and code transfer from the tape.

      2. 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.
        
          
    2. (once) Create the boot loader. 
      1. Create a file called boot.uue, with following contents

      2. Decode the text file into a binary file.

    3. Create a dboot.ini file wwhich will be used to load the OS
          
    4. Load the simulator for 4BSD

    5. Authenticate with root account

    6. 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: rootecho $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
$

Tape build version


  

Comments

Popular posts from this blog

TV Series - The Brokenwood Mysteries [NZ] (2014) - Season 10

 

Movie - Sin City: A Dame to Kill For (2014)

 

Movies - Deadpool & Wolverine (2024)