home.social

Search

30 results for “confconf”

  1. @russss If only there was a conference for conference organizers; we could call it #confconf! ;)

    But in all seriousness, more conferences are starting to steal our #FOSDEM devroom concept and it's working really well for them; e.g. #IndiaFOSS did so quite successfully last year. Never been at #emf #emfcamp so I don't know the programme and space availability, of course.

  2. @russss If only there was a conference for conference organizers; we could call it #confconf! ;)

    But in all seriousness, more conferences are starting to steal our #FOSDEM devroom concept and it's working really well for them; e.g. #IndiaFOSS did so quite successfully last year. Never been at #emf #emfcamp so I don't know the programme and space availability, of course.

  3. @russss If only there was a conference for conference organizers; we could call it #confconf! ;)

    But in all seriousness, more conferences are starting to steal our #FOSDEM devroom concept and it's working really well for them; e.g. #IndiaFOSS did so quite successfully last year. Never been at #emf #emfcamp so I don't know the programme and space availability, of course.

  4. @russss If only there was a conference for conference organizers; we could call it #confconf! ;)

    But in all seriousness, more conferences are starting to steal our #FOSDEM devroom concept and it's working really well for them; e.g. #IndiaFOSS did so quite successfully last year. Never been at #emf #emfcamp so I don't know the programme and space availability, of course.

  5. ConfConf 2026 has been announced!

    Website: confconf.org/

    What: A free conference for organisers of conferences around free and open source software and hardware, and the surrounding ecosphere

    Dates: June 6&7 2026

    Location: Sofia, Bulgaria

    Cost: free, supported by FOSDEM and Grafana Labs

    If you are a conference organiser of a conference in FOSS ecosphere and would like to attend, reach out to request a voucher.

  6. Some more impressions from #confconf.

    We spent two intense days of talking about how to organize conferences, found several tools others want to start adopting, and built many connections across the world.

    Everyone who attended loved it and we're certain to have another in 2026. Likely in the EU or Asia. We have several hosting offers, including Seoul, Hanoi, and India

    We certainly need to move continents to keep the audience fresh, but we have not decided for next time yet. Opinions welcome

  7. Et c'est parti pour la première édition de #confconf !

    C'est un événement pour regrouper les équipes d'organisation d'événements autour du logiciel libre, initié par @fosdem. L'occasion de faire du lien, voir ce que font les autres événements, comment ils travaillent, comment ils gèrent des problématiques communes et de réfléchir ensemble pour faire mieux !

    Beaucoup de choses qui pourraient être utiles pour les #JdLL2026 😀

    Plus d'infos sur confconf.org/

    @jdll #JdLL

  8. Opening talk of #confconf !

    Two more structured talks: about the #FOSDEM video box and what #eventinfra is. Then, unconference!

  9. Opening talk of #confconf !

    Two more structured talks: about the #FOSDEM video box and what #eventinfra is. Then, unconference!

  10. Opening talk of #confconf !

    Two more structured talks: about the #FOSDEM video box and what #eventinfra is. Then, unconference!

  11. Opening talk of #confconf !

    Two more structured talks: about the #FOSDEM video box and what #eventinfra is. Then, unconference!

  12. Dinner and a walk through a park festival at day 0 of #confconf in #Sofia, #Bulgaria

    Just in those photos you see people who made #FOSDEM, #DENOG, #DebConf, #PromCon, #GrafanaCon, #CCC / #38c3, #WHY2025, #IndiaFOSS, #COSCUP, #FOSSASIA, and others happen. And more people will come tomorrow.

    We're looking to have a packed agenda over this coming weekend, and I will try and do my best to update this thread with tidbits and information.

  13. Dinner and a walk through a park festival at day 0 of #confconf in #Sofia, #Bulgaria

    Just in those photos you see people who made #FOSDEM, #DENOG, #DebConf, #PromCon, #GrafanaCon, #CCC / #38c3, #WHY2025, #IndiaFOSS, #COSCUP, #FOSSASIA, and others happen. And more people will come tomorrow.

    We're looking to have a packed agenda over this coming weekend, and I will try and do my best to update this thread with tidbits and information.

  14. Dinner and a walk through a park festival at day 0 of #confconf in #Sofia, #Bulgaria

    Just in those photos you see people who made #FOSDEM, #DENOG, #DebConf, #PromCon, #GrafanaCon, #CCC / #38c3, #WHY2025, #IndiaFOSS, #COSCUP, #FOSSASIA, and others happen. And more people will come tomorrow.

    We're looking to have a packed agenda over this coming weekend, and I will try and do my best to update this thread with tidbits and information.

  15. Dinner and a walk through a park festival at day 0 of #confconf in #Sofia, #Bulgaria

    Just in those photos you see people who made #FOSDEM, #DENOG, #DebConf, #PromCon, #GrafanaCon, #CCC / #38c3, #WHY2025, #IndiaFOSS, #COSCUP, #FOSSASIA, and others happen. And more people will come tomorrow.

    We're looking to have a packed agenda over this coming weekend, and I will try and do my best to update this thread with tidbits and information.

  16. Well, that cat is kinda out of the bag. I sent messages publicly to two accounts instead of private by accident. Deleted as they contained direct registration links

    #ConfConf is an unconference about organizing conferences. Also see confconf.org

    It's organized by four #FOSDEM people, myself included.

    We are focusing on OSS and hacker conferences, and in particular for the first edition it's invite-only.

    If you believe you fit the profile feel free to poke me and we can have a look

  17. Opening talk of #confconf !

    Two more structured talks: about the #FOSDEM video box and what #eventinfra is. Then, unconference!

  18. With my #FOSDEM, #ConfConf, and many other hats on:

    We will be organizing another ConfConf.org ! An (un)conference about organizing conferences.

    6th and 7th of June in #Sofia, #Bulgaria

    Same as last year, we will be focusing on #OpenSource and #Community conferences. We will either remain invite -only or closely review all registrations to make sure it's community people.

    1/n

  19. Dinner and a walk through a park festival at day 0 of #confconf in #Sofia, #Bulgaria

    Just in those photos you see people who made #FOSDEM, #DENOG, #DebConf, #PromCon, #GrafanaCon, #CCC / #38c3, #WHY2025, #IndiaFOSS, #COSCUP, #FOSSASIA, and others happen. And more people will come tomorrow.

    We're looking to have a packed agenda over this coming weekend, and I will try and do my best to update this thread with tidbits and information.

  20. @russss If only there was a conference for conference organizers; we could call it #confconf! ;)

    But in all seriousness, more conferences are starting to steal our #FOSDEM devroom concept and it's working really well for them; e.g. #IndiaFOSS did so quite successfully last year. Never been at #emf #emfcamp so I don't know the programme and space availability, of course.

  21. 紙吹雪クラウンが彩る歌・雑談・ホラー ENdless第2世代ConiConfetti配信の楽しみ方【EN】Vタレ名鑑※日本語記事・各国語翻訳あり

    2026/3/24 改稿

    #EN
    #VTuber
    #ENdless

    enghaishin.com/vtare-coniconfe

  22. Confetti Crown: Songs, Chit-chat and Horror – How to Enjoy ENdless 2nd Generation ConiConfetti Streams [EN] VTuber Directory *Japanese article with translations into various languages available

    24 March 2026 – Revised

    #EN
    #VTuber
    #ENdless

    enghaishin.com/vtare-coniconfe

  23. UNIX Fourth Edition on SIMH v3.12-5

    UNIX v4 was officially released for the DEC PDP-11/45 computers on November 1973, when those computers were the only computers eligible for this version of UNIX. Since then, it was thought to be lost until November 7th when the tape has been rediscovered. Apparently, this tape was sitting somewhere in one of the storage rooms in the University of Utah.

    The Computer History Museum has further handled this by letting bitsavers.org conduct the recovery process, where the tape has been successfully recovered to a raw tape, which has then been uploaded publicly to the Internet Archive for publication, and the installation instructions were then laid out for simh.

    So, we have followed the instructions on how to set up a minimal UNIX v4 system on an Arch Linux host using simh version v3.12-5. First, we have downloaded the system tape files.

     [aptivi@archapt ~]$ mkdir uv4  [aptivi@archapt ~]$ cd uv4  [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/disk.rk  --2026-04-01 13:56:49--  squoze.net/UNIX/v4/disk.rk  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 2494464 (2.4M) [application/octet-stream]  Saving to: ‘disk.rk’   disk.rk                       100%[================================================>]   2.38M   511KB/s    in 5.8s       2026-04-01 13:56:55 (423 KB/s) - ‘disk.rk’ saved [2494464/2494464]   [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/unix_v4.tap  --2026-04-01 13:57:47--  squoze.net/UNIX/v4/unix_v4.tap  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 2572452 (2.5M) [application/octet-stream]  Saving to: ‘unix_v4.tap’   unix_v4.tap                   100%[================================================>]   2.45M   332KB/s    in 6.9s       2026-04-01 13:57:54 (365 KB/s) - ‘unix_v4.tap’ saved [2572452/2572452]   [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/install.ini  --2026-04-01 13:58:00--  squoze.net/UNIX/v4/install.ini  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 68 [text/plain]  Saving to: ‘install.ini’   install.ini                   100%[================================================>]      68  --.-KB/s    in 0s         2026-04-01 13:58:00 (10.9 MB/s) - ‘install.ini’ saved [68/68] 

    Afterwards, we have installed UNIX v4 files from the installation tape. The install.ini file contained the following contents:

     set cpu 11/45  att rk0 disk.rk  att tm0 unix_v4.tap  d sr 2  boot -o tm 

    We had to use the mcopy command to install the system to the rk disk, then use uboot, with writing k and unix to boot to the installed kernel. Depending on your host distribution, the executable file for running the PDP11 simulator is either simh-pdp11 or pdp11.

     [aptivi@archapt uv4]$ simh-pdp11 install.ini   PDP-11 simulator V3.12-5  Disabling XQ  =mcopy  'p' for rp; 'k' for rk  k  disk offset  0  tape offset  75  count  4000  =uboot  k  unix  mem = 64530   login: root  # ls  bin  dev  etc  lib  mnt  tmp  unix  usr  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  sim> exit  Goodbye 

    The Unix files have been successfully written to the rk disk, so we need to boot to Unix from it with boot.ini as the configuration file for simh.

    Hint: CTRL + D to log out from your user account. CTRL + E to stop the simulation.

     set cpu 11/45  set tc en  att rk0 disk.rk  d sr 2  boot rk 

    Again, we have to write both k and unix to boot to the kernel.

     [aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/boot.ini  --2026-04-01 13:59:55--  squoze.net/UNIX/v4/boot.ini  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 76 [text/plain]  Saving to: ‘boot.ini’   boot.ini                      100%[================================================>]      76  --.-KB/s    in 0s         2026-04-01 13:59:55 (13.3 MB/s) - ‘boot.ini’ saved [76/76]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64530   login: root  # 

    Now, we need to make device files for tape disk controllers using /etc/mknod and create them on /dev. This is needed to be able to read tapes on the installed system. They will be persistent across reboots.

     # chdir /dev  # /etc/mknod mt0 b 2 0  # /etc/mknod tap0 b 1 0  # /etc/mknod tap1 b 1 1  # /etc/mknod tap2 b 1 2  # /etc/mknod tap3 b 1 3  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776) 

    Now that we have the tape device files, we can now read from tapes. We will recompile the kernel to integrate the enhanced rk driver. After the recompilation, we’ll reboot the system to the new kernel and create device files for rk.

     [aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/sys.tp  --2026-04-01 14:02:21--  squoze.net/UNIX/v4/sys.tp  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 17408 (17K) [application/octet-stream]  Saving to: ‘sys.tp’   sys.tp                        100%[================================================>]  17.00K  8.45KB/s    in 2.0s       2026-04-01 14:02:25 (8.45 KB/s) - ‘sys.tp’ saved [17408/17408]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64530   login: root  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  boot.ini> # type k  Unknown command  boot.ini> # type unix  Unknown command  sim> att tc1 sys.tp  TC1: 16b format, buffering file in memory  sim> c   # chdir /usr/sys  # tp 1t  run  dmr/run  dmr/rk.c  ken/run  conf/conf.c     5 entries     9 used   544 free    33 last  END  # chdir /usr/sys/dmr  # mv rk.c rk.c.orig  # chdir ../  # rm -f conf/conf.c  # tp 1x  END  # sh run  alloc.c:  clock.c:  fio.c:  iget.c:  main.c:  nami.c:  prf.c:  rdwri.c:  sig.c:  60: Warning: assignment understood  61: Warning: assignment understood  slp.c:  subr.c:  sys1.c:  sys2.c:  sys3.c:  sys4.c:  sysent.c:  text.c:  trap.c:  bio.c:  cat.c:  dc.c:  dh.c:  dhdm.c:  dhfdm.c:  dn.c:  dp.c:  dv.c:  kl.c:  lp.c:  malloc.c:  mem.c:  partab.c:  pc.c:  pipe.c:  rf.c:  rk.c:  rp.c:  tc.c:  tm.c:  tty.c:  vs.c:  vt.c:  # mv a.out /unix  /unix: 0644 mode y  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  sim> exit  Goodbye  TC1: writing buffer to file  [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64529   login: root  # chdir /dev  # rm -f null  # /etc/mknod mem c 1 0  # /etc/mknod kmem c 1 1  # /etc/mknod null c 1 2  # /etc/mknod rk0 b 0 0  # /etc/mknod rk1 b 0 1  # /etc/mknod rk2 b 0 2  # /etc/mknod rk3 b 0 3  # ls -l  total 0  crw-rw-rw- 1 root    1,  1 Jun 12 19:54 kmem  crw-rw-rw- 1 root    1,  0 Jun 12 19:54 mem  brw-rw-rw- 1 root    2,  0 Jun 12 19:52 mt0  crw-rw-rw- 1 root    1,  2 Jun 12 19:54 null  brw-rw-rw- 1 root    0,  0 Jun 12 19:54 rk0  brw-rw-rw- 1 root    0,  1 Jun 12 19:54 rk1  brw-rw-rw- 1 root    0,  2 Jun 12 19:54 rk2  brw-rw-rw- 1 root    0,  3 Jun 12 19:54 rk3  brw-rw-rw- 1 root    1,  0 Jun 12 19:52 tap0  brw-rw-rw- 1 root    1,  1 Jun 12 19:52 tap1  brw-rw-rw- 1 root    1,  2 Jun 12 19:52 tap2  brw-rw-rw- 1 root    1,  3 Jun 12 19:52 tap3  crw--w--w- 1 root    0,  0 Jun 12 19:55 tty8  # ps a   0     0 ???d??H??`?? ak??Z? ????? k?  ?     0     1 /etc/init     8     7 -     8    17 ps a      0     6 /etc/update    # 

    To verify that the new driver works properly, we’ll copy the UNIX source code to the second rk disk. We’ll then make it as a mount point as /usr/source for the source code files that will be located there.

     sim> att tm0 src.tap  TM: creating new file  sim> att rk1 src.rk  RK: creating new file  sim> c   # /etc/mkfs /dev/rk1 4872  isize = 103  # /etc/mount /dev/rk1 /mnt  # chdir /usr/source  # tp mr *   256 entries  1194 used  1256 last  END  # tp mt  s1/ac.c  s1/ar.s  s1/as11.s  s1/as12.s  s1/as13.s  s1/as14.s  s1/as15.s  s1/as16.s  s1/as17.s  s1/as18.s  s1/as19.s  s1/as21.s  s1/as22.s  s1/as23.s  s1/as24.s  s1/as25.s  s1/as26.s  s1/as27.s  s1/as28.s  s1/as29.s  s1/bas0.s  s1/bas1.s  s1/bas2.s  s1/bas3.s  s1/bas4.s  s1/bas5.s  s1/basx.s  s1/cal.c  s1/cat.s  s1/cc.c  s1/cdb.c  s1/check.c  s1/chmod.c  s1/chown.s  s1/clri.s  s1/cmp.s  s1/comm.c  s1/cp.c  s1/date.c  s1/db1.s  s1/db2.s  s1/db3.s  s1/db4.s  s1/dc1.s  s1/dc2.s  s1/dc3.s  s1/dc4.s  s1/dc5.s  s1/dd.c  s1/df.c  s1/diff1.c  s1/diff2.s  s1/dsw.s  s1/du.s  s1/dump.c  s1/echo.c  s1/ed1.s  s1/ed2.s  s1/ed3.s  s1/exit.c  s1/fc.c  s1/fed1.s  s1/fed2.s  s1/fed3.s  s1/find.c  s1/form1.s  s1/form2.s  s1/form3.s  s1/form4.s  s1/form5.s  s1/form6.s  s1/getty.s  s1/glob.c  s1/goto.c  s1/grep.s  s1/if.c  s1/init.c  s1/kill.s  s1/ld1.s  s1/ld2.s  s1/ldx.s  s1/ln.c  s1/login.c  s1/lpd.s  s1/lpr.c  s1/ls.c  s2/mail.c  s2/mesg.s  s2/mkdir.s  s2/mkfs.c  s2/mknod.c  s2/mount.c  s2/msh.s  s2/mv.c  s2/nice.c  s2/nm.c  s2/nohup.c  s2/od.c  s2/passwd.s  s2/pfe.s  s2/pr.c  s2/prof.c  s2/ps.c  s2/pwd.c  s2/restor.c  s2/rew.s  s2/rm.c  s2/rmdir.s  s2/sa.c  s2/sh.c  s2/size.c  s2/sleep.c  s2/sort.c  s2/split.c  s2/strip.s  s2/stty.c  s2/su.c  s2/sum.s  s2/sync.c  s2/tee.c  s2/time.s  s2/tp1.s  s2/tp2.s  s2/tp3.s  s2/tp4.s  s2/tr.c  s2/tty.s  s2/typo.c  s2/umount.c  s2/uniq.c  s2/update.s  s2/wc.c  s2/who.c  s2/write.s  s3/atan.s  s3/atof.s  s3/atoi.s  s3/compar.s  s3/crypt.s  s3/ctime.c  s3/dpadd.s  s3/ecvt.s  s3/exp.s  s3/fakfp.s  s3/fp1.s  s3/fp2.s  s3/fp3.s  s3/fpx.s  s3/gamma.s  s3/get.s  s3/hypot.s  s3/ldiv.s  s3/log.s  s3/mesg.s  s3/mon.s  s3/nlist.s  s3/pow.s  s3/put.s  s3/qsort.s  s3/rand.s  s3/sin.s  s3/sqrt.s  s3/switch.s  s3/ttyn.s  s4/abort.s  s4/atan.s  s4/atan2.s  s4/atof.s  s4/chdir.s  s4/chmod.s  s4/chown.s  s4/close.s  s4/cos.s  s4/crand.s  s4/creat.s  s4/crt0.s  s4/crypt.s  s4/dup.s  s4/ecvt.s  s4/errlst.c  s4/execl.s  s4/execv.s  s4/exit.s  s4/exp.s  s4/ffltpr.s  s4/floor.s  s4/fltpr.s  s4/fmod.s  s4/fork.s  s4/fstat.s  s4/gamma.s  s4/getc.s  s4/getchr.s  s4/getcsw.s  s4/getgid.s  s4/getpw.c  s4/getuid.s  s4/gtty.s  s4/hmul.s  s4/hsw.s  s4/kill.s  s4/link.s  s4/locv.s  s4/log.s  s4/ltod.s  s4/makdir.s  s4/mcrt0.s  s4/mdate.s  s4/mknod.s  s4/mon.c  s4/mount.s  s4/nargs.s  s4/nice.s  s4/nlist.s  s4/open.s  s4/perror.c  s4/pipe.s  s4/pow.s  s4/printf.s  s4/prof.s  s4/putc.s  s4/putchr.s  s4/qsort.c  s4/read.s  s4/reset.s  s4/retrn.s  s4/rin.c  s4/rsave.s  s4/sbrk.s  s4/seek.s  s4/setgid.s  s4/setuid.s  s4/signal.s  s4/sin.s  s4/sleep.s  s4/sqrt.s  s4/ssw.s  s4/stat.s  s4/stime.s  s4/stty.s  s4/switch.s  s4/sync.s  s4/time.s  s4/times.s  s4/umount.s  s4/unlink.s  s4/wait.s  s4/write.s  s7/roff1.s  s7/roff2.s  s7/roff3.s  s7/roff4.s  s7/roff5.s  s7/roff7.s  s7/roff8.s  s7/suftab.s   256 entries  1194 used  1256 last  END  # chdir /mnt  # mkdir s1 s2 s3 s4 s7  # chown bin *  # chmod 755 *  # tp mx  END  # chdir /usr/source/s1  # rm -f [a-f]*  # rm -f *  # chdir ../s2  # rm -f *  # chdir ../s3  # rm -f *  # chdir ../s4  # rm -f [a-f]*  # rm -f *  # chdir ../s7  # rm -f *  # chdir ..  # rmdir *  # chdir /  # /etc/umount /dev/rk1  # /etc/mount /dev/rk1 /usr/source  # ed /etc/rc  70  $  /etc/update  i  /etc/mount /dev/rk1 /usr/source  .  w  102  q  #  

    Adding users to this system isn’t as straightforward as the modern Unix distributions; you’ll need to directly modify the /etc/passwd file to add a new entry that contains a new user, aptivi.

     # ed /etc/passwd  30  $  bin::3:1::/bin:  a  aptivi::10:1::/usr/aptivi:  .  w  57  q  # mkdir /usr/aptivi  # chown aptivi /usr/aptivi  #   login: aptivi  % who  aptivi  tty8 Jun 12 20:03  %   login: root  # passwd aptivi test  #   login: aptivi  Password:   % 

    As the site that provided us this tutorial claimed that we can install the B programming language compiler, but our tests have failed due to errors in the installation process.

     [aptivi@archapt uv4]$ wget http://squoze.net/B/b.tp  --2026-04-01 14:15:13--  squoze.net/B/b.tp  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 137216 (134K) [application/octet-stream]  Saving to: ‘b.tp’   b.tp                          100%[================================================>] 134.00K   168KB/s    in 0.8s       2026-04-01 14:15:14 (168 KB/s) - ‘b.tp’ saved [137216/137216]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64529   login: root  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  boot.ini> # type k  Unknown command  boot.ini> # type unix  Unknown command  sim> at tc0 b.tp  TC0: 16b format, buffering file in memory  sim> c   # mkdir /usr/b  # chdir /usr/b  # mkdir bilib libb  # chown bin *  # chmod 755 *  # tp 0x  END  # sh install  libb.a: non existent  chdir  chmod  chown  close  creat  ctime  execl  execv  exit  fork  fstat  getchr  getuid  gtty  lchar  link  makdir  open  printf  printn  putchr  read  seek  setuid  sleep  stat  stty  time  unlink  wait  write  char  bilib.a: non existent  a  b1  b10  b102  b103  b11  b112  b113  b114  b115  b116  b117  b12  b120  b13  b14  b15  b16  b17  b2  b20  b3  b4  b5  b6  b7  c  f  n11  n123  n4  n6  n7  s  t  u10  u2  u3  u4  u5  u6  u7  va  vx  x  y  z  brt1  brt2  bc  File not found: /usr/lib/bilib.a  un: s  un: x  un: c  un: n4  un: b7  un: f  un: ix  un: n2  un: vx  un: t  un: n3  un: ivx  un: b1  un: u4  un: n1  un: b5  un: n11  un: va  un: iva  un: u10  un: u7  un: a  un: ia  un: b4  un: b14  un: b2  un: n6  un: z  un: b11  un: b114  un: u3  un: b3  un: b10  un: b15  un: b17  un: u5  un: y  un: u2  un: u6  un: b6  un: b116  un: b117  un: n7  un: ic  un: b103  un: b13  un: b20  un: b16  ba  File not found: /usr/lib/bilib.a  un: y  un: s  un: x  un: c  un: n4  un: b7  un: f  un: ix  un: n2  un: vx  un: t  un: n3  un: ivx  un: b1  un: iva  un: n1  un: b11  un: ia  un: z  un: n6  un: a  un: b17  un: b14  un: va  un: b114  un: u7  un: b5  un: b4  un: b15  un: u6  un: u3  un: n11  un: b3  un: u10  un: b10  un: b2  un: u2  un: n7  un: ic  un: b20  un: b16  B  i  Bus error -- Core dumped  Source file non-existent  B  i  Bus error -- Core dumped  Source file non-existent  #  

    Other than this error when it comes to the B programming language, the Unix system works.

    #news #simh #Tech #Technology #Unix #UNIXFourthEdition #UNIXV4 #update
  24. UNIX Fourth Edition on SIMH v3.12-5

    UNIX v4 was officially released for the DEC PDP-11/45 computers on November 1973, when those computers were the only computers eligible for this version of UNIX. Since then, it was thought to be lost until November 7th when the tape has been rediscovered. Apparently, this tape was sitting somewhere in one of the storage rooms in the University of Utah.

    The Computer History Museum has further handled this by letting bitsavers.org conduct the recovery process, where the tape has been successfully recovered to a raw tape, which has then been uploaded publicly to the Internet Archive for publication, and the installation instructions were then laid out for simh.

    So, we have followed the instructions on how to set up a minimal UNIX v4 system on an Arch Linux host using simh version v3.12-5. First, we have downloaded the system tape files.

     [aptivi@archapt ~]$ mkdir uv4  [aptivi@archapt ~]$ cd uv4  [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/disk.rk  --2026-04-01 13:56:49--  squoze.net/UNIX/v4/disk.rk  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 2494464 (2.4M) [application/octet-stream]  Saving to: ‘disk.rk’   disk.rk                       100%[================================================>]   2.38M   511KB/s    in 5.8s       2026-04-01 13:56:55 (423 KB/s) - ‘disk.rk’ saved [2494464/2494464]   [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/unix_v4.tap  --2026-04-01 13:57:47--  squoze.net/UNIX/v4/unix_v4.tap  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 2572452 (2.5M) [application/octet-stream]  Saving to: ‘unix_v4.tap’   unix_v4.tap                   100%[================================================>]   2.45M   332KB/s    in 6.9s       2026-04-01 13:57:54 (365 KB/s) - ‘unix_v4.tap’ saved [2572452/2572452]   [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/install.ini  --2026-04-01 13:58:00--  squoze.net/UNIX/v4/install.ini  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 68 [text/plain]  Saving to: ‘install.ini’   install.ini                   100%[================================================>]      68  --.-KB/s    in 0s         2026-04-01 13:58:00 (10.9 MB/s) - ‘install.ini’ saved [68/68] 

    Afterwards, we have installed UNIX v4 files from the installation tape. The install.ini file contained the following contents:

     set cpu 11/45  att rk0 disk.rk  att tm0 unix_v4.tap  d sr 2  boot -o tm 

    We had to use the mcopy command to install the system to the rk disk, then use uboot, with writing k and unix to boot to the installed kernel. Depending on your host distribution, the executable file for running the PDP11 simulator is either simh-pdp11 or pdp11.

     [aptivi@archapt uv4]$ simh-pdp11 install.ini   PDP-11 simulator V3.12-5  Disabling XQ  =mcopy  'p' for rp; 'k' for rk  k  disk offset  0  tape offset  75  count  4000  =uboot  k  unix  mem = 64530   login: root  # ls  bin  dev  etc  lib  mnt  tmp  unix  usr  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  sim> exit  Goodbye 

    The Unix files have been successfully written to the rk disk, so we need to boot to Unix from it with boot.ini as the configuration file for simh.

    Hint: CTRL + D to log out from your user account. CTRL + E to stop the simulation.

     set cpu 11/45  set tc en  att rk0 disk.rk  d sr 2  boot rk 

    Again, we have to write both k and unix to boot to the kernel.

     [aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/boot.ini  --2026-04-01 13:59:55--  squoze.net/UNIX/v4/boot.ini  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 76 [text/plain]  Saving to: ‘boot.ini’   boot.ini                      100%[================================================>]      76  --.-KB/s    in 0s         2026-04-01 13:59:55 (13.3 MB/s) - ‘boot.ini’ saved [76/76]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64530   login: root  # 

    Now, we need to make device files for tape disk controllers using /etc/mknod and create them on /dev. This is needed to be able to read tapes on the installed system. They will be persistent across reboots.

     # chdir /dev  # /etc/mknod mt0 b 2 0  # /etc/mknod tap0 b 1 0  # /etc/mknod tap1 b 1 1  # /etc/mknod tap2 b 1 2  # /etc/mknod tap3 b 1 3  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776) 

    Now that we have the tape device files, we can now read from tapes. We will recompile the kernel to integrate the enhanced rk driver. After the recompilation, we’ll reboot the system to the new kernel and create device files for rk.

     [aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/sys.tp  --2026-04-01 14:02:21--  squoze.net/UNIX/v4/sys.tp  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 17408 (17K) [application/octet-stream]  Saving to: ‘sys.tp’   sys.tp                        100%[================================================>]  17.00K  8.45KB/s    in 2.0s       2026-04-01 14:02:25 (8.45 KB/s) - ‘sys.tp’ saved [17408/17408]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64530   login: root  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  boot.ini> # type k  Unknown command  boot.ini> # type unix  Unknown command  sim> att tc1 sys.tp  TC1: 16b format, buffering file in memory  sim> c   # chdir /usr/sys  # tp 1t  run  dmr/run  dmr/rk.c  ken/run  conf/conf.c     5 entries     9 used   544 free    33 last  END  # chdir /usr/sys/dmr  # mv rk.c rk.c.orig  # chdir ../  # rm -f conf/conf.c  # tp 1x  END  # sh run  alloc.c:  clock.c:  fio.c:  iget.c:  main.c:  nami.c:  prf.c:  rdwri.c:  sig.c:  60: Warning: assignment understood  61: Warning: assignment understood  slp.c:  subr.c:  sys1.c:  sys2.c:  sys3.c:  sys4.c:  sysent.c:  text.c:  trap.c:  bio.c:  cat.c:  dc.c:  dh.c:  dhdm.c:  dhfdm.c:  dn.c:  dp.c:  dv.c:  kl.c:  lp.c:  malloc.c:  mem.c:  partab.c:  pc.c:  pipe.c:  rf.c:  rk.c:  rp.c:  tc.c:  tm.c:  tty.c:  vs.c:  vt.c:  # mv a.out /unix  /unix: 0644 mode y  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  sim> exit  Goodbye  TC1: writing buffer to file  [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64529   login: root  # chdir /dev  # rm -f null  # /etc/mknod mem c 1 0  # /etc/mknod kmem c 1 1  # /etc/mknod null c 1 2  # /etc/mknod rk0 b 0 0  # /etc/mknod rk1 b 0 1  # /etc/mknod rk2 b 0 2  # /etc/mknod rk3 b 0 3  # ls -l  total 0  crw-rw-rw- 1 root    1,  1 Jun 12 19:54 kmem  crw-rw-rw- 1 root    1,  0 Jun 12 19:54 mem  brw-rw-rw- 1 root    2,  0 Jun 12 19:52 mt0  crw-rw-rw- 1 root    1,  2 Jun 12 19:54 null  brw-rw-rw- 1 root    0,  0 Jun 12 19:54 rk0  brw-rw-rw- 1 root    0,  1 Jun 12 19:54 rk1  brw-rw-rw- 1 root    0,  2 Jun 12 19:54 rk2  brw-rw-rw- 1 root    0,  3 Jun 12 19:54 rk3  brw-rw-rw- 1 root    1,  0 Jun 12 19:52 tap0  brw-rw-rw- 1 root    1,  1 Jun 12 19:52 tap1  brw-rw-rw- 1 root    1,  2 Jun 12 19:52 tap2  brw-rw-rw- 1 root    1,  3 Jun 12 19:52 tap3  crw--w--w- 1 root    0,  0 Jun 12 19:55 tty8  # ps a   0     0 ???d??H??`?? ak??Z? ????? k?  ?     0     1 /etc/init     8     7 -     8    17 ps a      0     6 /etc/update    # 

    To verify that the new driver works properly, we’ll copy the UNIX source code to the second rk disk. We’ll then make it as a mount point as /usr/source for the source code files that will be located there.

     sim> att tm0 src.tap  TM: creating new file  sim> att rk1 src.rk  RK: creating new file  sim> c   # /etc/mkfs /dev/rk1 4872  isize = 103  # /etc/mount /dev/rk1 /mnt  # chdir /usr/source  # tp mr *   256 entries  1194 used  1256 last  END  # tp mt  s1/ac.c  s1/ar.s  s1/as11.s  s1/as12.s  s1/as13.s  s1/as14.s  s1/as15.s  s1/as16.s  s1/as17.s  s1/as18.s  s1/as19.s  s1/as21.s  s1/as22.s  s1/as23.s  s1/as24.s  s1/as25.s  s1/as26.s  s1/as27.s  s1/as28.s  s1/as29.s  s1/bas0.s  s1/bas1.s  s1/bas2.s  s1/bas3.s  s1/bas4.s  s1/bas5.s  s1/basx.s  s1/cal.c  s1/cat.s  s1/cc.c  s1/cdb.c  s1/check.c  s1/chmod.c  s1/chown.s  s1/clri.s  s1/cmp.s  s1/comm.c  s1/cp.c  s1/date.c  s1/db1.s  s1/db2.s  s1/db3.s  s1/db4.s  s1/dc1.s  s1/dc2.s  s1/dc3.s  s1/dc4.s  s1/dc5.s  s1/dd.c  s1/df.c  s1/diff1.c  s1/diff2.s  s1/dsw.s  s1/du.s  s1/dump.c  s1/echo.c  s1/ed1.s  s1/ed2.s  s1/ed3.s  s1/exit.c  s1/fc.c  s1/fed1.s  s1/fed2.s  s1/fed3.s  s1/find.c  s1/form1.s  s1/form2.s  s1/form3.s  s1/form4.s  s1/form5.s  s1/form6.s  s1/getty.s  s1/glob.c  s1/goto.c  s1/grep.s  s1/if.c  s1/init.c  s1/kill.s  s1/ld1.s  s1/ld2.s  s1/ldx.s  s1/ln.c  s1/login.c  s1/lpd.s  s1/lpr.c  s1/ls.c  s2/mail.c  s2/mesg.s  s2/mkdir.s  s2/mkfs.c  s2/mknod.c  s2/mount.c  s2/msh.s  s2/mv.c  s2/nice.c  s2/nm.c  s2/nohup.c  s2/od.c  s2/passwd.s  s2/pfe.s  s2/pr.c  s2/prof.c  s2/ps.c  s2/pwd.c  s2/restor.c  s2/rew.s  s2/rm.c  s2/rmdir.s  s2/sa.c  s2/sh.c  s2/size.c  s2/sleep.c  s2/sort.c  s2/split.c  s2/strip.s  s2/stty.c  s2/su.c  s2/sum.s  s2/sync.c  s2/tee.c  s2/time.s  s2/tp1.s  s2/tp2.s  s2/tp3.s  s2/tp4.s  s2/tr.c  s2/tty.s  s2/typo.c  s2/umount.c  s2/uniq.c  s2/update.s  s2/wc.c  s2/who.c  s2/write.s  s3/atan.s  s3/atof.s  s3/atoi.s  s3/compar.s  s3/crypt.s  s3/ctime.c  s3/dpadd.s  s3/ecvt.s  s3/exp.s  s3/fakfp.s  s3/fp1.s  s3/fp2.s  s3/fp3.s  s3/fpx.s  s3/gamma.s  s3/get.s  s3/hypot.s  s3/ldiv.s  s3/log.s  s3/mesg.s  s3/mon.s  s3/nlist.s  s3/pow.s  s3/put.s  s3/qsort.s  s3/rand.s  s3/sin.s  s3/sqrt.s  s3/switch.s  s3/ttyn.s  s4/abort.s  s4/atan.s  s4/atan2.s  s4/atof.s  s4/chdir.s  s4/chmod.s  s4/chown.s  s4/close.s  s4/cos.s  s4/crand.s  s4/creat.s  s4/crt0.s  s4/crypt.s  s4/dup.s  s4/ecvt.s  s4/errlst.c  s4/execl.s  s4/execv.s  s4/exit.s  s4/exp.s  s4/ffltpr.s  s4/floor.s  s4/fltpr.s  s4/fmod.s  s4/fork.s  s4/fstat.s  s4/gamma.s  s4/getc.s  s4/getchr.s  s4/getcsw.s  s4/getgid.s  s4/getpw.c  s4/getuid.s  s4/gtty.s  s4/hmul.s  s4/hsw.s  s4/kill.s  s4/link.s  s4/locv.s  s4/log.s  s4/ltod.s  s4/makdir.s  s4/mcrt0.s  s4/mdate.s  s4/mknod.s  s4/mon.c  s4/mount.s  s4/nargs.s  s4/nice.s  s4/nlist.s  s4/open.s  s4/perror.c  s4/pipe.s  s4/pow.s  s4/printf.s  s4/prof.s  s4/putc.s  s4/putchr.s  s4/qsort.c  s4/read.s  s4/reset.s  s4/retrn.s  s4/rin.c  s4/rsave.s  s4/sbrk.s  s4/seek.s  s4/setgid.s  s4/setuid.s  s4/signal.s  s4/sin.s  s4/sleep.s  s4/sqrt.s  s4/ssw.s  s4/stat.s  s4/stime.s  s4/stty.s  s4/switch.s  s4/sync.s  s4/time.s  s4/times.s  s4/umount.s  s4/unlink.s  s4/wait.s  s4/write.s  s7/roff1.s  s7/roff2.s  s7/roff3.s  s7/roff4.s  s7/roff5.s  s7/roff7.s  s7/roff8.s  s7/suftab.s   256 entries  1194 used  1256 last  END  # chdir /mnt  # mkdir s1 s2 s3 s4 s7  # chown bin *  # chmod 755 *  # tp mx  END  # chdir /usr/source/s1  # rm -f [a-f]*  # rm -f *  # chdir ../s2  # rm -f *  # chdir ../s3  # rm -f *  # chdir ../s4  # rm -f [a-f]*  # rm -f *  # chdir ../s7  # rm -f *  # chdir ..  # rmdir *  # chdir /  # /etc/umount /dev/rk1  # /etc/mount /dev/rk1 /usr/source  # ed /etc/rc  70  $  /etc/update  i  /etc/mount /dev/rk1 /usr/source  .  w  102  q  #  

    Adding users to this system isn’t as straightforward as the modern Unix distributions; you’ll need to directly modify the /etc/passwd file to add a new entry that contains a new user, aptivi.

     # ed /etc/passwd  30  $  bin::3:1::/bin:  a  aptivi::10:1::/usr/aptivi:  .  w  57  q  # mkdir /usr/aptivi  # chown aptivi /usr/aptivi  #   login: aptivi  % who  aptivi  tty8 Jun 12 20:03  %   login: root  # passwd aptivi test  #   login: aptivi  Password:   % 

    As the site that provided us this tutorial claimed that we can install the B programming language compiler, but our tests have failed due to errors in the installation process.

     [aptivi@archapt uv4]$ wget http://squoze.net/B/b.tp  --2026-04-01 14:15:13--  squoze.net/B/b.tp  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 137216 (134K) [application/octet-stream]  Saving to: ‘b.tp’   b.tp                          100%[================================================>] 134.00K   168KB/s    in 0.8s       2026-04-01 14:15:14 (168 KB/s) - ‘b.tp’ saved [137216/137216]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64529   login: root  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  boot.ini> # type k  Unknown command  boot.ini> # type unix  Unknown command  sim> at tc0 b.tp  TC0: 16b format, buffering file in memory  sim> c   # mkdir /usr/b  # chdir /usr/b  # mkdir bilib libb  # chown bin *  # chmod 755 *  # tp 0x  END  # sh install  libb.a: non existent  chdir  chmod  chown  close  creat  ctime  execl  execv  exit  fork  fstat  getchr  getuid  gtty  lchar  link  makdir  open  printf  printn  putchr  read  seek  setuid  sleep  stat  stty  time  unlink  wait  write  char  bilib.a: non existent  a  b1  b10  b102  b103  b11  b112  b113  b114  b115  b116  b117  b12  b120  b13  b14  b15  b16  b17  b2  b20  b3  b4  b5  b6  b7  c  f  n11  n123  n4  n6  n7  s  t  u10  u2  u3  u4  u5  u6  u7  va  vx  x  y  z  brt1  brt2  bc  File not found: /usr/lib/bilib.a  un: s  un: x  un: c  un: n4  un: b7  un: f  un: ix  un: n2  un: vx  un: t  un: n3  un: ivx  un: b1  un: u4  un: n1  un: b5  un: n11  un: va  un: iva  un: u10  un: u7  un: a  un: ia  un: b4  un: b14  un: b2  un: n6  un: z  un: b11  un: b114  un: u3  un: b3  un: b10  un: b15  un: b17  un: u5  un: y  un: u2  un: u6  un: b6  un: b116  un: b117  un: n7  un: ic  un: b103  un: b13  un: b20  un: b16  ba  File not found: /usr/lib/bilib.a  un: y  un: s  un: x  un: c  un: n4  un: b7  un: f  un: ix  un: n2  un: vx  un: t  un: n3  un: ivx  un: b1  un: iva  un: n1  un: b11  un: ia  un: z  un: n6  un: a  un: b17  un: b14  un: va  un: b114  un: u7  un: b5  un: b4  un: b15  un: u6  un: u3  un: n11  un: b3  un: u10  un: b10  un: b2  un: u2  un: n7  un: ic  un: b20  un: b16  B  i  Bus error -- Core dumped  Source file non-existent  B  i  Bus error -- Core dumped  Source file non-existent  #  

    Other than this error when it comes to the B programming language, the Unix system works.

    #news #simh #Tech #Technology #Unix #UNIXFourthEdition #UNIXV4 #update
  25. UNIX Fourth Edition on SIMH v3.12-5

    UNIX v4 was officially released for the DEC PDP-11/45 computers on November 1973, when those computers were the only computers eligible for this version of UNIX. Since then, it was thought to be lost until November 7th when the tape has been rediscovered. Apparently, this tape was sitting somewhere in one of the storage rooms in the University of Utah.

    The Computer History Museum has further handled this by letting bitsavers.org conduct the recovery process, where the tape has been successfully recovered to a raw tape, which has then been uploaded publicly to the Internet Archive for publication, and the installation instructions were then laid out for simh.

    So, we have followed the instructions on how to set up a minimal UNIX v4 system on an Arch Linux host using simh version v3.12-5. First, we have downloaded the system tape files.

     [aptivi@archapt ~]$ mkdir uv4  [aptivi@archapt ~]$ cd uv4  [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/disk.rk  --2026-04-01 13:56:49--  squoze.net/UNIX/v4/disk.rk  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 2494464 (2.4M) [application/octet-stream]  Saving to: ‘disk.rk’   disk.rk                       100%[================================================>]   2.38M   511KB/s    in 5.8s       2026-04-01 13:56:55 (423 KB/s) - ‘disk.rk’ saved [2494464/2494464]   [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/unix_v4.tap  --2026-04-01 13:57:47--  squoze.net/UNIX/v4/unix_v4.tap  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 2572452 (2.5M) [application/octet-stream]  Saving to: ‘unix_v4.tap’   unix_v4.tap                   100%[================================================>]   2.45M   332KB/s    in 6.9s       2026-04-01 13:57:54 (365 KB/s) - ‘unix_v4.tap’ saved [2572452/2572452]   [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/install.ini  --2026-04-01 13:58:00--  squoze.net/UNIX/v4/install.ini  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 68 [text/plain]  Saving to: ‘install.ini’   install.ini                   100%[================================================>]      68  --.-KB/s    in 0s         2026-04-01 13:58:00 (10.9 MB/s) - ‘install.ini’ saved [68/68] 

    Afterwards, we have installed UNIX v4 files from the installation tape. The install.ini file contained the following contents:

     set cpu 11/45  att rk0 disk.rk  att tm0 unix_v4.tap  d sr 2  boot -o tm 

    We had to use the mcopy command to install the system to the rk disk, then use uboot, with writing k and unix to boot to the installed kernel. Depending on your host distribution, the executable file for running the PDP11 simulator is either simh-pdp11 or pdp11.

     [aptivi@archapt uv4]$ simh-pdp11 install.ini   PDP-11 simulator V3.12-5  Disabling XQ  =mcopy  'p' for rp; 'k' for rk  k  disk offset  0  tape offset  75  count  4000  =uboot  k  unix  mem = 64530   login: root  # ls  bin  dev  etc  lib  mnt  tmp  unix  usr  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  sim> exit  Goodbye 

    The Unix files have been successfully written to the rk disk, so we need to boot to Unix from it with boot.ini as the configuration file for simh.

    Hint: CTRL + D to log out from your user account. CTRL + E to stop the simulation.

     set cpu 11/45  set tc en  att rk0 disk.rk  d sr 2  boot rk 

    Again, we have to write both k and unix to boot to the kernel.

     [aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/boot.ini  --2026-04-01 13:59:55--  squoze.net/UNIX/v4/boot.ini  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 76 [text/plain]  Saving to: ‘boot.ini’   boot.ini                      100%[================================================>]      76  --.-KB/s    in 0s         2026-04-01 13:59:55 (13.3 MB/s) - ‘boot.ini’ saved [76/76]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64530   login: root  # 

    Now, we need to make device files for tape disk controllers using /etc/mknod and create them on /dev. This is needed to be able to read tapes on the installed system. They will be persistent across reboots.

     # chdir /dev  # /etc/mknod mt0 b 2 0  # /etc/mknod tap0 b 1 0  # /etc/mknod tap1 b 1 1  # /etc/mknod tap2 b 1 2  # /etc/mknod tap3 b 1 3  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776) 

    Now that we have the tape device files, we can now read from tapes. We will recompile the kernel to integrate the enhanced rk driver. After the recompilation, we’ll reboot the system to the new kernel and create device files for rk.

     [aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/sys.tp  --2026-04-01 14:02:21--  squoze.net/UNIX/v4/sys.tp  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 17408 (17K) [application/octet-stream]  Saving to: ‘sys.tp’   sys.tp                        100%[================================================>]  17.00K  8.45KB/s    in 2.0s       2026-04-01 14:02:25 (8.45 KB/s) - ‘sys.tp’ saved [17408/17408]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64530   login: root  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  boot.ini> # type k  Unknown command  boot.ini> # type unix  Unknown command  sim> att tc1 sys.tp  TC1: 16b format, buffering file in memory  sim> c   # chdir /usr/sys  # tp 1t  run  dmr/run  dmr/rk.c  ken/run  conf/conf.c     5 entries     9 used   544 free    33 last  END  # chdir /usr/sys/dmr  # mv rk.c rk.c.orig  # chdir ../  # rm -f conf/conf.c  # tp 1x  END  # sh run  alloc.c:  clock.c:  fio.c:  iget.c:  main.c:  nami.c:  prf.c:  rdwri.c:  sig.c:  60: Warning: assignment understood  61: Warning: assignment understood  slp.c:  subr.c:  sys1.c:  sys2.c:  sys3.c:  sys4.c:  sysent.c:  text.c:  trap.c:  bio.c:  cat.c:  dc.c:  dh.c:  dhdm.c:  dhfdm.c:  dn.c:  dp.c:  dv.c:  kl.c:  lp.c:  malloc.c:  mem.c:  partab.c:  pc.c:  pipe.c:  rf.c:  rk.c:  rp.c:  tc.c:  tm.c:  tty.c:  vs.c:  vt.c:  # mv a.out /unix  /unix: 0644 mode y  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  sim> exit  Goodbye  TC1: writing buffer to file  [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64529   login: root  # chdir /dev  # rm -f null  # /etc/mknod mem c 1 0  # /etc/mknod kmem c 1 1  # /etc/mknod null c 1 2  # /etc/mknod rk0 b 0 0  # /etc/mknod rk1 b 0 1  # /etc/mknod rk2 b 0 2  # /etc/mknod rk3 b 0 3  # ls -l  total 0  crw-rw-rw- 1 root    1,  1 Jun 12 19:54 kmem  crw-rw-rw- 1 root    1,  0 Jun 12 19:54 mem  brw-rw-rw- 1 root    2,  0 Jun 12 19:52 mt0  crw-rw-rw- 1 root    1,  2 Jun 12 19:54 null  brw-rw-rw- 1 root    0,  0 Jun 12 19:54 rk0  brw-rw-rw- 1 root    0,  1 Jun 12 19:54 rk1  brw-rw-rw- 1 root    0,  2 Jun 12 19:54 rk2  brw-rw-rw- 1 root    0,  3 Jun 12 19:54 rk3  brw-rw-rw- 1 root    1,  0 Jun 12 19:52 tap0  brw-rw-rw- 1 root    1,  1 Jun 12 19:52 tap1  brw-rw-rw- 1 root    1,  2 Jun 12 19:52 tap2  brw-rw-rw- 1 root    1,  3 Jun 12 19:52 tap3  crw--w--w- 1 root    0,  0 Jun 12 19:55 tty8  # ps a   0     0 ???d??H??`?? ak??Z? ????? k?  ?     0     1 /etc/init     8     7 -     8    17 ps a      0     6 /etc/update    # 

    To verify that the new driver works properly, we’ll copy the UNIX source code to the second rk disk. We’ll then make it as a mount point as /usr/source for the source code files that will be located there.

     sim> att tm0 src.tap  TM: creating new file  sim> att rk1 src.rk  RK: creating new file  sim> c   # /etc/mkfs /dev/rk1 4872  isize = 103  # /etc/mount /dev/rk1 /mnt  # chdir /usr/source  # tp mr *   256 entries  1194 used  1256 last  END  # tp mt  s1/ac.c  s1/ar.s  s1/as11.s  s1/as12.s  s1/as13.s  s1/as14.s  s1/as15.s  s1/as16.s  s1/as17.s  s1/as18.s  s1/as19.s  s1/as21.s  s1/as22.s  s1/as23.s  s1/as24.s  s1/as25.s  s1/as26.s  s1/as27.s  s1/as28.s  s1/as29.s  s1/bas0.s  s1/bas1.s  s1/bas2.s  s1/bas3.s  s1/bas4.s  s1/bas5.s  s1/basx.s  s1/cal.c  s1/cat.s  s1/cc.c  s1/cdb.c  s1/check.c  s1/chmod.c  s1/chown.s  s1/clri.s  s1/cmp.s  s1/comm.c  s1/cp.c  s1/date.c  s1/db1.s  s1/db2.s  s1/db3.s  s1/db4.s  s1/dc1.s  s1/dc2.s  s1/dc3.s  s1/dc4.s  s1/dc5.s  s1/dd.c  s1/df.c  s1/diff1.c  s1/diff2.s  s1/dsw.s  s1/du.s  s1/dump.c  s1/echo.c  s1/ed1.s  s1/ed2.s  s1/ed3.s  s1/exit.c  s1/fc.c  s1/fed1.s  s1/fed2.s  s1/fed3.s  s1/find.c  s1/form1.s  s1/form2.s  s1/form3.s  s1/form4.s  s1/form5.s  s1/form6.s  s1/getty.s  s1/glob.c  s1/goto.c  s1/grep.s  s1/if.c  s1/init.c  s1/kill.s  s1/ld1.s  s1/ld2.s  s1/ldx.s  s1/ln.c  s1/login.c  s1/lpd.s  s1/lpr.c  s1/ls.c  s2/mail.c  s2/mesg.s  s2/mkdir.s  s2/mkfs.c  s2/mknod.c  s2/mount.c  s2/msh.s  s2/mv.c  s2/nice.c  s2/nm.c  s2/nohup.c  s2/od.c  s2/passwd.s  s2/pfe.s  s2/pr.c  s2/prof.c  s2/ps.c  s2/pwd.c  s2/restor.c  s2/rew.s  s2/rm.c  s2/rmdir.s  s2/sa.c  s2/sh.c  s2/size.c  s2/sleep.c  s2/sort.c  s2/split.c  s2/strip.s  s2/stty.c  s2/su.c  s2/sum.s  s2/sync.c  s2/tee.c  s2/time.s  s2/tp1.s  s2/tp2.s  s2/tp3.s  s2/tp4.s  s2/tr.c  s2/tty.s  s2/typo.c  s2/umount.c  s2/uniq.c  s2/update.s  s2/wc.c  s2/who.c  s2/write.s  s3/atan.s  s3/atof.s  s3/atoi.s  s3/compar.s  s3/crypt.s  s3/ctime.c  s3/dpadd.s  s3/ecvt.s  s3/exp.s  s3/fakfp.s  s3/fp1.s  s3/fp2.s  s3/fp3.s  s3/fpx.s  s3/gamma.s  s3/get.s  s3/hypot.s  s3/ldiv.s  s3/log.s  s3/mesg.s  s3/mon.s  s3/nlist.s  s3/pow.s  s3/put.s  s3/qsort.s  s3/rand.s  s3/sin.s  s3/sqrt.s  s3/switch.s  s3/ttyn.s  s4/abort.s  s4/atan.s  s4/atan2.s  s4/atof.s  s4/chdir.s  s4/chmod.s  s4/chown.s  s4/close.s  s4/cos.s  s4/crand.s  s4/creat.s  s4/crt0.s  s4/crypt.s  s4/dup.s  s4/ecvt.s  s4/errlst.c  s4/execl.s  s4/execv.s  s4/exit.s  s4/exp.s  s4/ffltpr.s  s4/floor.s  s4/fltpr.s  s4/fmod.s  s4/fork.s  s4/fstat.s  s4/gamma.s  s4/getc.s  s4/getchr.s  s4/getcsw.s  s4/getgid.s  s4/getpw.c  s4/getuid.s  s4/gtty.s  s4/hmul.s  s4/hsw.s  s4/kill.s  s4/link.s  s4/locv.s  s4/log.s  s4/ltod.s  s4/makdir.s  s4/mcrt0.s  s4/mdate.s  s4/mknod.s  s4/mon.c  s4/mount.s  s4/nargs.s  s4/nice.s  s4/nlist.s  s4/open.s  s4/perror.c  s4/pipe.s  s4/pow.s  s4/printf.s  s4/prof.s  s4/putc.s  s4/putchr.s  s4/qsort.c  s4/read.s  s4/reset.s  s4/retrn.s  s4/rin.c  s4/rsave.s  s4/sbrk.s  s4/seek.s  s4/setgid.s  s4/setuid.s  s4/signal.s  s4/sin.s  s4/sleep.s  s4/sqrt.s  s4/ssw.s  s4/stat.s  s4/stime.s  s4/stty.s  s4/switch.s  s4/sync.s  s4/time.s  s4/times.s  s4/umount.s  s4/unlink.s  s4/wait.s  s4/write.s  s7/roff1.s  s7/roff2.s  s7/roff3.s  s7/roff4.s  s7/roff5.s  s7/roff7.s  s7/roff8.s  s7/suftab.s   256 entries  1194 used  1256 last  END  # chdir /mnt  # mkdir s1 s2 s3 s4 s7  # chown bin *  # chmod 755 *  # tp mx  END  # chdir /usr/source/s1  # rm -f [a-f]*  # rm -f *  # chdir ../s2  # rm -f *  # chdir ../s3  # rm -f *  # chdir ../s4  # rm -f [a-f]*  # rm -f *  # chdir ../s7  # rm -f *  # chdir ..  # rmdir *  # chdir /  # /etc/umount /dev/rk1  # /etc/mount /dev/rk1 /usr/source  # ed /etc/rc  70  $  /etc/update  i  /etc/mount /dev/rk1 /usr/source  .  w  102  q  #  

    Adding users to this system isn’t as straightforward as the modern Unix distributions; you’ll need to directly modify the /etc/passwd file to add a new entry that contains a new user, aptivi.

     # ed /etc/passwd  30  $  bin::3:1::/bin:  a  aptivi::10:1::/usr/aptivi:  .  w  57  q  # mkdir /usr/aptivi  # chown aptivi /usr/aptivi  #   login: aptivi  % who  aptivi  tty8 Jun 12 20:03  %   login: root  # passwd aptivi test  #   login: aptivi  Password:   % 

    As the site that provided us this tutorial claimed that we can install the B programming language compiler, but our tests have failed due to errors in the installation process.

     [aptivi@archapt uv4]$ wget http://squoze.net/B/b.tp  --2026-04-01 14:15:13--  squoze.net/B/b.tp  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 137216 (134K) [application/octet-stream]  Saving to: ‘b.tp’   b.tp                          100%[================================================>] 134.00K   168KB/s    in 0.8s       2026-04-01 14:15:14 (168 KB/s) - ‘b.tp’ saved [137216/137216]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64529   login: root  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  boot.ini> # type k  Unknown command  boot.ini> # type unix  Unknown command  sim> at tc0 b.tp  TC0: 16b format, buffering file in memory  sim> c   # mkdir /usr/b  # chdir /usr/b  # mkdir bilib libb  # chown bin *  # chmod 755 *  # tp 0x  END  # sh install  libb.a: non existent  chdir  chmod  chown  close  creat  ctime  execl  execv  exit  fork  fstat  getchr  getuid  gtty  lchar  link  makdir  open  printf  printn  putchr  read  seek  setuid  sleep  stat  stty  time  unlink  wait  write  char  bilib.a: non existent  a  b1  b10  b102  b103  b11  b112  b113  b114  b115  b116  b117  b12  b120  b13  b14  b15  b16  b17  b2  b20  b3  b4  b5  b6  b7  c  f  n11  n123  n4  n6  n7  s  t  u10  u2  u3  u4  u5  u6  u7  va  vx  x  y  z  brt1  brt2  bc  File not found: /usr/lib/bilib.a  un: s  un: x  un: c  un: n4  un: b7  un: f  un: ix  un: n2  un: vx  un: t  un: n3  un: ivx  un: b1  un: u4  un: n1  un: b5  un: n11  un: va  un: iva  un: u10  un: u7  un: a  un: ia  un: b4  un: b14  un: b2  un: n6  un: z  un: b11  un: b114  un: u3  un: b3  un: b10  un: b15  un: b17  un: u5  un: y  un: u2  un: u6  un: b6  un: b116  un: b117  un: n7  un: ic  un: b103  un: b13  un: b20  un: b16  ba  File not found: /usr/lib/bilib.a  un: y  un: s  un: x  un: c  un: n4  un: b7  un: f  un: ix  un: n2  un: vx  un: t  un: n3  un: ivx  un: b1  un: iva  un: n1  un: b11  un: ia  un: z  un: n6  un: a  un: b17  un: b14  un: va  un: b114  un: u7  un: b5  un: b4  un: b15  un: u6  un: u3  un: n11  un: b3  un: u10  un: b10  un: b2  un: u2  un: n7  un: ic  un: b20  un: b16  B  i  Bus error -- Core dumped  Source file non-existent  B  i  Bus error -- Core dumped  Source file non-existent  #  

    Other than this error when it comes to the B programming language, the Unix system works.

    #news #simh #Tech #Technology #Unix #UNIXFourthEdition #UNIXV4 #update
  26. UNIX Fourth Edition on SIMH v3.12-5

    UNIX v4 was officially released for the DEC PDP-11/45 computers on November 1973, when those computers were the only computers eligible for this version of UNIX. Since then, it was thought to be lost until November 7th when the tape has been rediscovered. Apparently, this tape was sitting somewhere in one of the storage rooms in the University of Utah.

    The Computer History Museum has further handled this by letting bitsavers.org conduct the recovery process, where the tape has been successfully recovered to a raw tape, which has then been uploaded publicly to the Internet Archive for publication, and the installation instructions were then laid out for simh.

    So, we have followed the instructions on how to set up a minimal UNIX v4 system on an Arch Linux host using simh version v3.12-5. First, we have downloaded the system tape files.

     [aptivi@archapt ~]$ mkdir uv4  [aptivi@archapt ~]$ cd uv4  [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/disk.rk  --2026-04-01 13:56:49--  squoze.net/UNIX/v4/disk.rk  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 2494464 (2.4M) [application/octet-stream]  Saving to: ‘disk.rk’   disk.rk                       100%[================================================>]   2.38M   511KB/s    in 5.8s       2026-04-01 13:56:55 (423 KB/s) - ‘disk.rk’ saved [2494464/2494464]   [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/unix_v4.tap  --2026-04-01 13:57:47--  squoze.net/UNIX/v4/unix_v4.tap  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 2572452 (2.5M) [application/octet-stream]  Saving to: ‘unix_v4.tap’   unix_v4.tap                   100%[================================================>]   2.45M   332KB/s    in 6.9s       2026-04-01 13:57:54 (365 KB/s) - ‘unix_v4.tap’ saved [2572452/2572452]   [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/install.ini  --2026-04-01 13:58:00--  squoze.net/UNIX/v4/install.ini  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 68 [text/plain]  Saving to: ‘install.ini’   install.ini                   100%[================================================>]      68  --.-KB/s    in 0s         2026-04-01 13:58:00 (10.9 MB/s) - ‘install.ini’ saved [68/68] 

    Afterwards, we have installed UNIX v4 files from the installation tape. The install.ini file contained the following contents:

     set cpu 11/45  att rk0 disk.rk  att tm0 unix_v4.tap  d sr 2  boot -o tm 

    We had to use the mcopy command to install the system to the rk disk, then use uboot, with writing k and unix to boot to the installed kernel. Depending on your host distribution, the executable file for running the PDP11 simulator is either simh-pdp11 or pdp11.

     [aptivi@archapt uv4]$ simh-pdp11 install.ini   PDP-11 simulator V3.12-5  Disabling XQ  =mcopy  'p' for rp; 'k' for rk  k  disk offset  0  tape offset  75  count  4000  =uboot  k  unix  mem = 64530   login: root  # ls  bin  dev  etc  lib  mnt  tmp  unix  usr  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  sim> exit  Goodbye 

    The Unix files have been successfully written to the rk disk, so we need to boot to Unix from it with boot.ini as the configuration file for simh.

    Hint: CTRL + D to log out from your user account. CTRL + E to stop the simulation.

     set cpu 11/45  set tc en  att rk0 disk.rk  d sr 2  boot rk 

    Again, we have to write both k and unix to boot to the kernel.

     [aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/boot.ini  --2026-04-01 13:59:55--  squoze.net/UNIX/v4/boot.ini  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 76 [text/plain]  Saving to: ‘boot.ini’   boot.ini                      100%[================================================>]      76  --.-KB/s    in 0s         2026-04-01 13:59:55 (13.3 MB/s) - ‘boot.ini’ saved [76/76]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64530   login: root  # 

    Now, we need to make device files for tape disk controllers using /etc/mknod and create them on /dev. This is needed to be able to read tapes on the installed system. They will be persistent across reboots.

     # chdir /dev  # /etc/mknod mt0 b 2 0  # /etc/mknod tap0 b 1 0  # /etc/mknod tap1 b 1 1  # /etc/mknod tap2 b 1 2  # /etc/mknod tap3 b 1 3  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776) 

    Now that we have the tape device files, we can now read from tapes. We will recompile the kernel to integrate the enhanced rk driver. After the recompilation, we’ll reboot the system to the new kernel and create device files for rk.

     [aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/sys.tp  --2026-04-01 14:02:21--  squoze.net/UNIX/v4/sys.tp  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 17408 (17K) [application/octet-stream]  Saving to: ‘sys.tp’   sys.tp                        100%[================================================>]  17.00K  8.45KB/s    in 2.0s       2026-04-01 14:02:25 (8.45 KB/s) - ‘sys.tp’ saved [17408/17408]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64530   login: root  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  boot.ini> # type k  Unknown command  boot.ini> # type unix  Unknown command  sim> att tc1 sys.tp  TC1: 16b format, buffering file in memory  sim> c   # chdir /usr/sys  # tp 1t  run  dmr/run  dmr/rk.c  ken/run  conf/conf.c     5 entries     9 used   544 free    33 last  END  # chdir /usr/sys/dmr  # mv rk.c rk.c.orig  # chdir ../  # rm -f conf/conf.c  # tp 1x  END  # sh run  alloc.c:  clock.c:  fio.c:  iget.c:  main.c:  nami.c:  prf.c:  rdwri.c:  sig.c:  60: Warning: assignment understood  61: Warning: assignment understood  slp.c:  subr.c:  sys1.c:  sys2.c:  sys3.c:  sys4.c:  sysent.c:  text.c:  trap.c:  bio.c:  cat.c:  dc.c:  dh.c:  dhdm.c:  dhfdm.c:  dn.c:  dp.c:  dv.c:  kl.c:  lp.c:  malloc.c:  mem.c:  partab.c:  pc.c:  pipe.c:  rf.c:  rk.c:  rp.c:  tc.c:  tm.c:  tty.c:  vs.c:  vt.c:  # mv a.out /unix  /unix: 0644 mode y  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  sim> exit  Goodbye  TC1: writing buffer to file  [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64529   login: root  # chdir /dev  # rm -f null  # /etc/mknod mem c 1 0  # /etc/mknod kmem c 1 1  # /etc/mknod null c 1 2  # /etc/mknod rk0 b 0 0  # /etc/mknod rk1 b 0 1  # /etc/mknod rk2 b 0 2  # /etc/mknod rk3 b 0 3  # ls -l  total 0  crw-rw-rw- 1 root    1,  1 Jun 12 19:54 kmem  crw-rw-rw- 1 root    1,  0 Jun 12 19:54 mem  brw-rw-rw- 1 root    2,  0 Jun 12 19:52 mt0  crw-rw-rw- 1 root    1,  2 Jun 12 19:54 null  brw-rw-rw- 1 root    0,  0 Jun 12 19:54 rk0  brw-rw-rw- 1 root    0,  1 Jun 12 19:54 rk1  brw-rw-rw- 1 root    0,  2 Jun 12 19:54 rk2  brw-rw-rw- 1 root    0,  3 Jun 12 19:54 rk3  brw-rw-rw- 1 root    1,  0 Jun 12 19:52 tap0  brw-rw-rw- 1 root    1,  1 Jun 12 19:52 tap1  brw-rw-rw- 1 root    1,  2 Jun 12 19:52 tap2  brw-rw-rw- 1 root    1,  3 Jun 12 19:52 tap3  crw--w--w- 1 root    0,  0 Jun 12 19:55 tty8  # ps a   0     0 ???d??H??`?? ak??Z? ????? k?  ?     0     1 /etc/init     8     7 -     8    17 ps a      0     6 /etc/update    # 

    To verify that the new driver works properly, we’ll copy the UNIX source code to the second rk disk. We’ll then make it as a mount point as /usr/source for the source code files that will be located there.

     sim> att tm0 src.tap  TM: creating new file  sim> att rk1 src.rk  RK: creating new file  sim> c   # /etc/mkfs /dev/rk1 4872  isize = 103  # /etc/mount /dev/rk1 /mnt  # chdir /usr/source  # tp mr *   256 entries  1194 used  1256 last  END  # tp mt  s1/ac.c  s1/ar.s  s1/as11.s  s1/as12.s  s1/as13.s  s1/as14.s  s1/as15.s  s1/as16.s  s1/as17.s  s1/as18.s  s1/as19.s  s1/as21.s  s1/as22.s  s1/as23.s  s1/as24.s  s1/as25.s  s1/as26.s  s1/as27.s  s1/as28.s  s1/as29.s  s1/bas0.s  s1/bas1.s  s1/bas2.s  s1/bas3.s  s1/bas4.s  s1/bas5.s  s1/basx.s  s1/cal.c  s1/cat.s  s1/cc.c  s1/cdb.c  s1/check.c  s1/chmod.c  s1/chown.s  s1/clri.s  s1/cmp.s  s1/comm.c  s1/cp.c  s1/date.c  s1/db1.s  s1/db2.s  s1/db3.s  s1/db4.s  s1/dc1.s  s1/dc2.s  s1/dc3.s  s1/dc4.s  s1/dc5.s  s1/dd.c  s1/df.c  s1/diff1.c  s1/diff2.s  s1/dsw.s  s1/du.s  s1/dump.c  s1/echo.c  s1/ed1.s  s1/ed2.s  s1/ed3.s  s1/exit.c  s1/fc.c  s1/fed1.s  s1/fed2.s  s1/fed3.s  s1/find.c  s1/form1.s  s1/form2.s  s1/form3.s  s1/form4.s  s1/form5.s  s1/form6.s  s1/getty.s  s1/glob.c  s1/goto.c  s1/grep.s  s1/if.c  s1/init.c  s1/kill.s  s1/ld1.s  s1/ld2.s  s1/ldx.s  s1/ln.c  s1/login.c  s1/lpd.s  s1/lpr.c  s1/ls.c  s2/mail.c  s2/mesg.s  s2/mkdir.s  s2/mkfs.c  s2/mknod.c  s2/mount.c  s2/msh.s  s2/mv.c  s2/nice.c  s2/nm.c  s2/nohup.c  s2/od.c  s2/passwd.s  s2/pfe.s  s2/pr.c  s2/prof.c  s2/ps.c  s2/pwd.c  s2/restor.c  s2/rew.s  s2/rm.c  s2/rmdir.s  s2/sa.c  s2/sh.c  s2/size.c  s2/sleep.c  s2/sort.c  s2/split.c  s2/strip.s  s2/stty.c  s2/su.c  s2/sum.s  s2/sync.c  s2/tee.c  s2/time.s  s2/tp1.s  s2/tp2.s  s2/tp3.s  s2/tp4.s  s2/tr.c  s2/tty.s  s2/typo.c  s2/umount.c  s2/uniq.c  s2/update.s  s2/wc.c  s2/who.c  s2/write.s  s3/atan.s  s3/atof.s  s3/atoi.s  s3/compar.s  s3/crypt.s  s3/ctime.c  s3/dpadd.s  s3/ecvt.s  s3/exp.s  s3/fakfp.s  s3/fp1.s  s3/fp2.s  s3/fp3.s  s3/fpx.s  s3/gamma.s  s3/get.s  s3/hypot.s  s3/ldiv.s  s3/log.s  s3/mesg.s  s3/mon.s  s3/nlist.s  s3/pow.s  s3/put.s  s3/qsort.s  s3/rand.s  s3/sin.s  s3/sqrt.s  s3/switch.s  s3/ttyn.s  s4/abort.s  s4/atan.s  s4/atan2.s  s4/atof.s  s4/chdir.s  s4/chmod.s  s4/chown.s  s4/close.s  s4/cos.s  s4/crand.s  s4/creat.s  s4/crt0.s  s4/crypt.s  s4/dup.s  s4/ecvt.s  s4/errlst.c  s4/execl.s  s4/execv.s  s4/exit.s  s4/exp.s  s4/ffltpr.s  s4/floor.s  s4/fltpr.s  s4/fmod.s  s4/fork.s  s4/fstat.s  s4/gamma.s  s4/getc.s  s4/getchr.s  s4/getcsw.s  s4/getgid.s  s4/getpw.c  s4/getuid.s  s4/gtty.s  s4/hmul.s  s4/hsw.s  s4/kill.s  s4/link.s  s4/locv.s  s4/log.s  s4/ltod.s  s4/makdir.s  s4/mcrt0.s  s4/mdate.s  s4/mknod.s  s4/mon.c  s4/mount.s  s4/nargs.s  s4/nice.s  s4/nlist.s  s4/open.s  s4/perror.c  s4/pipe.s  s4/pow.s  s4/printf.s  s4/prof.s  s4/putc.s  s4/putchr.s  s4/qsort.c  s4/read.s  s4/reset.s  s4/retrn.s  s4/rin.c  s4/rsave.s  s4/sbrk.s  s4/seek.s  s4/setgid.s  s4/setuid.s  s4/signal.s  s4/sin.s  s4/sleep.s  s4/sqrt.s  s4/ssw.s  s4/stat.s  s4/stime.s  s4/stty.s  s4/switch.s  s4/sync.s  s4/time.s  s4/times.s  s4/umount.s  s4/unlink.s  s4/wait.s  s4/write.s  s7/roff1.s  s7/roff2.s  s7/roff3.s  s7/roff4.s  s7/roff5.s  s7/roff7.s  s7/roff8.s  s7/suftab.s   256 entries  1194 used  1256 last  END  # chdir /mnt  # mkdir s1 s2 s3 s4 s7  # chown bin *  # chmod 755 *  # tp mx  END  # chdir /usr/source/s1  # rm -f [a-f]*  # rm -f *  # chdir ../s2  # rm -f *  # chdir ../s3  # rm -f *  # chdir ../s4  # rm -f [a-f]*  # rm -f *  # chdir ../s7  # rm -f *  # chdir ..  # rmdir *  # chdir /  # /etc/umount /dev/rk1  # /etc/mount /dev/rk1 /usr/source  # ed /etc/rc  70  $  /etc/update  i  /etc/mount /dev/rk1 /usr/source  .  w  102  q  #  

    Adding users to this system isn’t as straightforward as the modern Unix distributions; you’ll need to directly modify the /etc/passwd file to add a new entry that contains a new user, aptivi.

     # ed /etc/passwd  30  $  bin::3:1::/bin:  a  aptivi::10:1::/usr/aptivi:  .  w  57  q  # mkdir /usr/aptivi  # chown aptivi /usr/aptivi  #   login: aptivi  % who  aptivi  tty8 Jun 12 20:03  %   login: root  # passwd aptivi test  #   login: aptivi  Password:   % 

    As the site that provided us this tutorial claimed that we can install the B programming language compiler, but our tests have failed due to errors in the installation process.

     [aptivi@archapt uv4]$ wget http://squoze.net/B/b.tp  --2026-04-01 14:15:13--  squoze.net/B/b.tp  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 137216 (134K) [application/octet-stream]  Saving to: ‘b.tp’   b.tp                          100%[================================================>] 134.00K   168KB/s    in 0.8s       2026-04-01 14:15:14 (168 KB/s) - ‘b.tp’ saved [137216/137216]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64529   login: root  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  boot.ini> # type k  Unknown command  boot.ini> # type unix  Unknown command  sim> at tc0 b.tp  TC0: 16b format, buffering file in memory  sim> c   # mkdir /usr/b  # chdir /usr/b  # mkdir bilib libb  # chown bin *  # chmod 755 *  # tp 0x  END  # sh install  libb.a: non existent  chdir  chmod  chown  close  creat  ctime  execl  execv  exit  fork  fstat  getchr  getuid  gtty  lchar  link  makdir  open  printf  printn  putchr  read  seek  setuid  sleep  stat  stty  time  unlink  wait  write  char  bilib.a: non existent  a  b1  b10  b102  b103  b11  b112  b113  b114  b115  b116  b117  b12  b120  b13  b14  b15  b16  b17  b2  b20  b3  b4  b5  b6  b7  c  f  n11  n123  n4  n6  n7  s  t  u10  u2  u3  u4  u5  u6  u7  va  vx  x  y  z  brt1  brt2  bc  File not found: /usr/lib/bilib.a  un: s  un: x  un: c  un: n4  un: b7  un: f  un: ix  un: n2  un: vx  un: t  un: n3  un: ivx  un: b1  un: u4  un: n1  un: b5  un: n11  un: va  un: iva  un: u10  un: u7  un: a  un: ia  un: b4  un: b14  un: b2  un: n6  un: z  un: b11  un: b114  un: u3  un: b3  un: b10  un: b15  un: b17  un: u5  un: y  un: u2  un: u6  un: b6  un: b116  un: b117  un: n7  un: ic  un: b103  un: b13  un: b20  un: b16  ba  File not found: /usr/lib/bilib.a  un: y  un: s  un: x  un: c  un: n4  un: b7  un: f  un: ix  un: n2  un: vx  un: t  un: n3  un: ivx  un: b1  un: iva  un: n1  un: b11  un: ia  un: z  un: n6  un: a  un: b17  un: b14  un: va  un: b114  un: u7  un: b5  un: b4  un: b15  un: u6  un: u3  un: n11  un: b3  un: u10  un: b10  un: b2  un: u2  un: n7  un: ic  un: b20  un: b16  B  i  Bus error -- Core dumped  Source file non-existent  B  i  Bus error -- Core dumped  Source file non-existent  #  

    Other than this error when it comes to the B programming language, the Unix system works.

    #news #simh #Tech #Technology #Unix #UNIXFourthEdition #UNIXV4 #update
  27. UNIX Fourth Edition on SIMH v3.12-5

    UNIX v4 was officially released for the DEC PDP-11/45 computers on November 1973, when those computers were the only computers eligible for this version of UNIX. Since then, it was thought to be lost until November 7th when the tape has been rediscovered. Apparently, this tape was sitting somewhere in one of the storage rooms in the University of Utah.

    The Computer History Museum has further handled this by letting bitsavers.org conduct the recovery process, where the tape has been successfully recovered to a raw tape, which has then been uploaded publicly to the Internet Archive for publication, and the installation instructions were then laid out for simh.

    So, we have followed the instructions on how to set up a minimal UNIX v4 system on an Arch Linux host using simh version v3.12-5. First, we have downloaded the system tape files.

     [aptivi@archapt ~]$ mkdir uv4  [aptivi@archapt ~]$ cd uv4  [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/disk.rk  --2026-04-01 13:56:49--  squoze.net/UNIX/v4/disk.rk  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 2494464 (2.4M) [application/octet-stream]  Saving to: ‘disk.rk’   disk.rk                       100%[================================================>]   2.38M   511KB/s    in 5.8s       2026-04-01 13:56:55 (423 KB/s) - ‘disk.rk’ saved [2494464/2494464]   [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/unix_v4.tap  --2026-04-01 13:57:47--  squoze.net/UNIX/v4/unix_v4.tap  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 2572452 (2.5M) [application/octet-stream]  Saving to: ‘unix_v4.tap’   unix_v4.tap                   100%[================================================>]   2.45M   332KB/s    in 6.9s       2026-04-01 13:57:54 (365 KB/s) - ‘unix_v4.tap’ saved [2572452/2572452]   [aptivi@archapt uv4]$ wget squoze.net/UNIX/v4/install.ini  --2026-04-01 13:58:00--  squoze.net/UNIX/v4/install.ini  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 68 [text/plain]  Saving to: ‘install.ini’   install.ini                   100%[================================================>]      68  --.-KB/s    in 0s         2026-04-01 13:58:00 (10.9 MB/s) - ‘install.ini’ saved [68/68] 

    Afterwards, we have installed UNIX v4 files from the installation tape. The install.ini file contained the following contents:

     set cpu 11/45  att rk0 disk.rk  att tm0 unix_v4.tap  d sr 2  boot -o tm 

    We had to use the mcopy command to install the system to the rk disk, then use uboot, with writing k and unix to boot to the installed kernel. Depending on your host distribution, the executable file for running the PDP11 simulator is either simh-pdp11 or pdp11.

     [aptivi@archapt uv4]$ simh-pdp11 install.ini   PDP-11 simulator V3.12-5  Disabling XQ  =mcopy  'p' for rp; 'k' for rk  k  disk offset  0  tape offset  75  count  4000  =uboot  k  unix  mem = 64530   login: root  # ls  bin  dev  etc  lib  mnt  tmp  unix  usr  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  sim> exit  Goodbye 

    The Unix files have been successfully written to the rk disk, so we need to boot to Unix from it with boot.ini as the configuration file for simh.

    Hint: CTRL + D to log out from your user account. CTRL + E to stop the simulation.

     set cpu 11/45  set tc en  att rk0 disk.rk  d sr 2  boot rk 

    Again, we have to write both k and unix to boot to the kernel.

     [aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/boot.ini  --2026-04-01 13:59:55--  squoze.net/UNIX/v4/boot.ini  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 76 [text/plain]  Saving to: ‘boot.ini’   boot.ini                      100%[================================================>]      76  --.-KB/s    in 0s         2026-04-01 13:59:55 (13.3 MB/s) - ‘boot.ini’ saved [76/76]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64530   login: root  # 

    Now, we need to make device files for tape disk controllers using /etc/mknod and create them on /dev. This is needed to be able to read tapes on the installed system. They will be persistent across reboots.

     # chdir /dev  # /etc/mknod mt0 b 2 0  # /etc/mknod tap0 b 1 0  # /etc/mknod tap1 b 1 1  # /etc/mknod tap2 b 1 2  # /etc/mknod tap3 b 1 3  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776) 

    Now that we have the tape device files, we can now read from tapes. We will recompile the kernel to integrate the enhanced rk driver. After the recompilation, we’ll reboot the system to the new kernel and create device files for rk.

     [aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/sys.tp  --2026-04-01 14:02:21--  squoze.net/UNIX/v4/sys.tp  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 17408 (17K) [application/octet-stream]  Saving to: ‘sys.tp’   sys.tp                        100%[================================================>]  17.00K  8.45KB/s    in 2.0s       2026-04-01 14:02:25 (8.45 KB/s) - ‘sys.tp’ saved [17408/17408]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64530   login: root  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  boot.ini> # type k  Unknown command  boot.ini> # type unix  Unknown command  sim> att tc1 sys.tp  TC1: 16b format, buffering file in memory  sim> c   # chdir /usr/sys  # tp 1t  run  dmr/run  dmr/rk.c  ken/run  conf/conf.c     5 entries     9 used   544 free    33 last  END  # chdir /usr/sys/dmr  # mv rk.c rk.c.orig  # chdir ../  # rm -f conf/conf.c  # tp 1x  END  # sh run  alloc.c:  clock.c:  fio.c:  iget.c:  main.c:  nami.c:  prf.c:  rdwri.c:  sig.c:  60: Warning: assignment understood  61: Warning: assignment understood  slp.c:  subr.c:  sys1.c:  sys2.c:  sys3.c:  sys4.c:  sysent.c:  text.c:  trap.c:  bio.c:  cat.c:  dc.c:  dh.c:  dhdm.c:  dhfdm.c:  dn.c:  dp.c:  dv.c:  kl.c:  lp.c:  malloc.c:  mem.c:  partab.c:  pc.c:  pipe.c:  rf.c:  rk.c:  rp.c:  tc.c:  tm.c:  tty.c:  vs.c:  vt.c:  # mv a.out /unix  /unix: 0644 mode y  # sync  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  sim> exit  Goodbye  TC1: writing buffer to file  [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64529   login: root  # chdir /dev  # rm -f null  # /etc/mknod mem c 1 0  # /etc/mknod kmem c 1 1  # /etc/mknod null c 1 2  # /etc/mknod rk0 b 0 0  # /etc/mknod rk1 b 0 1  # /etc/mknod rk2 b 0 2  # /etc/mknod rk3 b 0 3  # ls -l  total 0  crw-rw-rw- 1 root    1,  1 Jun 12 19:54 kmem  crw-rw-rw- 1 root    1,  0 Jun 12 19:54 mem  brw-rw-rw- 1 root    2,  0 Jun 12 19:52 mt0  crw-rw-rw- 1 root    1,  2 Jun 12 19:54 null  brw-rw-rw- 1 root    0,  0 Jun 12 19:54 rk0  brw-rw-rw- 1 root    0,  1 Jun 12 19:54 rk1  brw-rw-rw- 1 root    0,  2 Jun 12 19:54 rk2  brw-rw-rw- 1 root    0,  3 Jun 12 19:54 rk3  brw-rw-rw- 1 root    1,  0 Jun 12 19:52 tap0  brw-rw-rw- 1 root    1,  1 Jun 12 19:52 tap1  brw-rw-rw- 1 root    1,  2 Jun 12 19:52 tap2  brw-rw-rw- 1 root    1,  3 Jun 12 19:52 tap3  crw--w--w- 1 root    0,  0 Jun 12 19:55 tty8  # ps a   0     0 ???d??H??`?? ak??Z? ????? k?  ?     0     1 /etc/init     8     7 -     8    17 ps a      0     6 /etc/update    # 

    To verify that the new driver works properly, we’ll copy the UNIX source code to the second rk disk. We’ll then make it as a mount point as /usr/source for the source code files that will be located there.

     sim> att tm0 src.tap  TM: creating new file  sim> att rk1 src.rk  RK: creating new file  sim> c   # /etc/mkfs /dev/rk1 4872  isize = 103  # /etc/mount /dev/rk1 /mnt  # chdir /usr/source  # tp mr *   256 entries  1194 used  1256 last  END  # tp mt  s1/ac.c  s1/ar.s  s1/as11.s  s1/as12.s  s1/as13.s  s1/as14.s  s1/as15.s  s1/as16.s  s1/as17.s  s1/as18.s  s1/as19.s  s1/as21.s  s1/as22.s  s1/as23.s  s1/as24.s  s1/as25.s  s1/as26.s  s1/as27.s  s1/as28.s  s1/as29.s  s1/bas0.s  s1/bas1.s  s1/bas2.s  s1/bas3.s  s1/bas4.s  s1/bas5.s  s1/basx.s  s1/cal.c  s1/cat.s  s1/cc.c  s1/cdb.c  s1/check.c  s1/chmod.c  s1/chown.s  s1/clri.s  s1/cmp.s  s1/comm.c  s1/cp.c  s1/date.c  s1/db1.s  s1/db2.s  s1/db3.s  s1/db4.s  s1/dc1.s  s1/dc2.s  s1/dc3.s  s1/dc4.s  s1/dc5.s  s1/dd.c  s1/df.c  s1/diff1.c  s1/diff2.s  s1/dsw.s  s1/du.s  s1/dump.c  s1/echo.c  s1/ed1.s  s1/ed2.s  s1/ed3.s  s1/exit.c  s1/fc.c  s1/fed1.s  s1/fed2.s  s1/fed3.s  s1/find.c  s1/form1.s  s1/form2.s  s1/form3.s  s1/form4.s  s1/form5.s  s1/form6.s  s1/getty.s  s1/glob.c  s1/goto.c  s1/grep.s  s1/if.c  s1/init.c  s1/kill.s  s1/ld1.s  s1/ld2.s  s1/ldx.s  s1/ln.c  s1/login.c  s1/lpd.s  s1/lpr.c  s1/ls.c  s2/mail.c  s2/mesg.s  s2/mkdir.s  s2/mkfs.c  s2/mknod.c  s2/mount.c  s2/msh.s  s2/mv.c  s2/nice.c  s2/nm.c  s2/nohup.c  s2/od.c  s2/passwd.s  s2/pfe.s  s2/pr.c  s2/prof.c  s2/ps.c  s2/pwd.c  s2/restor.c  s2/rew.s  s2/rm.c  s2/rmdir.s  s2/sa.c  s2/sh.c  s2/size.c  s2/sleep.c  s2/sort.c  s2/split.c  s2/strip.s  s2/stty.c  s2/su.c  s2/sum.s  s2/sync.c  s2/tee.c  s2/time.s  s2/tp1.s  s2/tp2.s  s2/tp3.s  s2/tp4.s  s2/tr.c  s2/tty.s  s2/typo.c  s2/umount.c  s2/uniq.c  s2/update.s  s2/wc.c  s2/who.c  s2/write.s  s3/atan.s  s3/atof.s  s3/atoi.s  s3/compar.s  s3/crypt.s  s3/ctime.c  s3/dpadd.s  s3/ecvt.s  s3/exp.s  s3/fakfp.s  s3/fp1.s  s3/fp2.s  s3/fp3.s  s3/fpx.s  s3/gamma.s  s3/get.s  s3/hypot.s  s3/ldiv.s  s3/log.s  s3/mesg.s  s3/mon.s  s3/nlist.s  s3/pow.s  s3/put.s  s3/qsort.s  s3/rand.s  s3/sin.s  s3/sqrt.s  s3/switch.s  s3/ttyn.s  s4/abort.s  s4/atan.s  s4/atan2.s  s4/atof.s  s4/chdir.s  s4/chmod.s  s4/chown.s  s4/close.s  s4/cos.s  s4/crand.s  s4/creat.s  s4/crt0.s  s4/crypt.s  s4/dup.s  s4/ecvt.s  s4/errlst.c  s4/execl.s  s4/execv.s  s4/exit.s  s4/exp.s  s4/ffltpr.s  s4/floor.s  s4/fltpr.s  s4/fmod.s  s4/fork.s  s4/fstat.s  s4/gamma.s  s4/getc.s  s4/getchr.s  s4/getcsw.s  s4/getgid.s  s4/getpw.c  s4/getuid.s  s4/gtty.s  s4/hmul.s  s4/hsw.s  s4/kill.s  s4/link.s  s4/locv.s  s4/log.s  s4/ltod.s  s4/makdir.s  s4/mcrt0.s  s4/mdate.s  s4/mknod.s  s4/mon.c  s4/mount.s  s4/nargs.s  s4/nice.s  s4/nlist.s  s4/open.s  s4/perror.c  s4/pipe.s  s4/pow.s  s4/printf.s  s4/prof.s  s4/putc.s  s4/putchr.s  s4/qsort.c  s4/read.s  s4/reset.s  s4/retrn.s  s4/rin.c  s4/rsave.s  s4/sbrk.s  s4/seek.s  s4/setgid.s  s4/setuid.s  s4/signal.s  s4/sin.s  s4/sleep.s  s4/sqrt.s  s4/ssw.s  s4/stat.s  s4/stime.s  s4/stty.s  s4/switch.s  s4/sync.s  s4/time.s  s4/times.s  s4/umount.s  s4/unlink.s  s4/wait.s  s4/write.s  s7/roff1.s  s7/roff2.s  s7/roff3.s  s7/roff4.s  s7/roff5.s  s7/roff7.s  s7/roff8.s  s7/suftab.s   256 entries  1194 used  1256 last  END  # chdir /mnt  # mkdir s1 s2 s3 s4 s7  # chown bin *  # chmod 755 *  # tp mx  END  # chdir /usr/source/s1  # rm -f [a-f]*  # rm -f *  # chdir ../s2  # rm -f *  # chdir ../s3  # rm -f *  # chdir ../s4  # rm -f [a-f]*  # rm -f *  # chdir ../s7  # rm -f *  # chdir ..  # rmdir *  # chdir /  # /etc/umount /dev/rk1  # /etc/mount /dev/rk1 /usr/source  # ed /etc/rc  70  $  /etc/update  i  /etc/mount /dev/rk1 /usr/source  .  w  102  q  #  

    Adding users to this system isn’t as straightforward as the modern Unix distributions; you’ll need to directly modify the /etc/passwd file to add a new entry that contains a new user, aptivi.

     # ed /etc/passwd  30  $  bin::3:1::/bin:  a  aptivi::10:1::/usr/aptivi:  .  w  57  q  # mkdir /usr/aptivi  # chown aptivi /usr/aptivi  #   login: aptivi  % who  aptivi  tty8 Jun 12 20:03  %   login: root  # passwd aptivi test  #   login: aptivi  Password:   % 

    As the site that provided us this tutorial claimed that we can install the B programming language compiler, but our tests have failed due to errors in the installation process.

     [aptivi@archapt uv4]$ wget http://squoze.net/B/b.tp  --2026-04-01 14:15:13--  squoze.net/B/b.tp  Resolving squoze.net (squoze.net)... 93.128.9.138  Connecting to squoze.net (squoze.net)|93.128.9.138|:80... connected.  HTTP request sent, awaiting response... 200 OK  Length: 137216 (134K) [application/octet-stream]  Saving to: ‘b.tp’   b.tp                          100%[================================================>] 134.00K   168KB/s    in 0.8s       2026-04-01 14:15:14 (168 KB/s) - ‘b.tp’ saved [137216/137216]   [aptivi@archapt uv4]$ simh-pdp11 boot.ini   PDP-11 simulator V3.12-5  Disabling XQ  k  unix  mem = 64529   login: root  #   Simulation stopped, PC: 002040 (MOV (SP)+,177776)  boot.ini> # type k  Unknown command  boot.ini> # type unix  Unknown command  sim> at tc0 b.tp  TC0: 16b format, buffering file in memory  sim> c   # mkdir /usr/b  # chdir /usr/b  # mkdir bilib libb  # chown bin *  # chmod 755 *  # tp 0x  END  # sh install  libb.a: non existent  chdir  chmod  chown  close  creat  ctime  execl  execv  exit  fork  fstat  getchr  getuid  gtty  lchar  link  makdir  open  printf  printn  putchr  read  seek  setuid  sleep  stat  stty  time  unlink  wait  write  char  bilib.a: non existent  a  b1  b10  b102  b103  b11  b112  b113  b114  b115  b116  b117  b12  b120  b13  b14  b15  b16  b17  b2  b20  b3  b4  b5  b6  b7  c  f  n11  n123  n4  n6  n7  s  t  u10  u2  u3  u4  u5  u6  u7  va  vx  x  y  z  brt1  brt2  bc  File not found: /usr/lib/bilib.a  un: s  un: x  un: c  un: n4  un: b7  un: f  un: ix  un: n2  un: vx  un: t  un: n3  un: ivx  un: b1  un: u4  un: n1  un: b5  un: n11  un: va  un: iva  un: u10  un: u7  un: a  un: ia  un: b4  un: b14  un: b2  un: n6  un: z  un: b11  un: b114  un: u3  un: b3  un: b10  un: b15  un: b17  un: u5  un: y  un: u2  un: u6  un: b6  un: b116  un: b117  un: n7  un: ic  un: b103  un: b13  un: b20  un: b16  ba  File not found: /usr/lib/bilib.a  un: y  un: s  un: x  un: c  un: n4  un: b7  un: f  un: ix  un: n2  un: vx  un: t  un: n3  un: ivx  un: b1  un: iva  un: n1  un: b11  un: ia  un: z  un: n6  un: a  un: b17  un: b14  un: va  un: b114  un: u7  un: b5  un: b4  un: b15  un: u6  un: u3  un: n11  un: b3  un: u10  un: b10  un: b2  un: u2  un: n7  un: ic  un: b20  un: b16  B  i  Bus error -- Core dumped  Source file non-existent  B  i  Bus error -- Core dumped  Source file non-existent  #  

    Other than this error when it comes to the B programming language, the Unix system works.

    #news #simh #Tech #Technology #Unix #UNIXFourthEdition #UNIXV4 #update