Search
30 results for “confconf”
-
@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.
-
@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.
-
@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.
-
@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.
-
ConfConf 2026 has been announced!
Website: https://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.
-
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
-
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 https://confconf.org/
-
Opening talk of #confconf !
Two more structured talks: about the #FOSDEM video box and what #eventinfra is. Then, unconference!
-
Opening talk of #confconf !
Two more structured talks: about the #FOSDEM video box and what #eventinfra is. Then, unconference!
-
Opening talk of #confconf !
Two more structured talks: about the #FOSDEM video box and what #eventinfra is. Then, unconference!
-
Opening talk of #confconf !
Two more structured talks: about the #FOSDEM video box and what #eventinfra is. Then, unconference!
-
-
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.
-
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.
-
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.
-
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.
-
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 https://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
-
Opening talk of #confconf !
Two more structured talks: about the #FOSDEM video box and what #eventinfra is. Then, unconference!
-
With my #FOSDEM, #ConfConf, and many other hats on:
We will be organizing another https://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
-
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.
-
@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.
-
📣 v0.25.0 of CNF Test Suite is available!
Including updated test categories, new #microservices tests and @[email protected] updates
How #cloudnative are your #CNFs?
👀 Get started at https://github.com/cncf/cnf-testsuite/releases/tag/v0.25.0
🐦🔗: https://twitter.com/cnfconformance/status/1493643296924704769
-
紙吹雪クラウンが彩る歌・雑談・ホラー ENdless第2世代ConiConfetti配信の楽しみ方【EN】Vタレ名鑑※日本語記事・各国語翻訳あり
2026/3/24 改稿
-
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
-
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 http://squoze.net/UNIX/v4/disk.rk --2026-04-01 13:56:49-- http://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 http://squoze.net/UNIX/v4/unix_v4.tap --2026-04-01 13:57:47-- http://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 http://squoze.net/UNIX/v4/install.ini --2026-04-01 13:58:00-- http://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.inifile contained the following contents:set cpu 11/45 att rk0 disk.rk att tm0 unix_v4.tap d sr 2 boot -o tmWe had to use the
mcopycommand to install the system to the rk disk, then useuboot, with writingkandunixto boot to the installed kernel. Depending on your host distribution, the executable file for running the PDP11 simulator is eithersimh-pdp11orpdp11.[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 GoodbyeThe Unix files have been successfully written to the rk disk, so we need to boot to Unix from it with
boot.inias 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 rkAgain, we have to write both
kandunixto boot to the kernel.[aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/boot.ini --2026-04-01 13:59:55-- http://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/mknodand 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-- http://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/sourcefor 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/passwdfile 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-- http://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 -
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 http://squoze.net/UNIX/v4/disk.rk --2026-04-01 13:56:49-- http://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 http://squoze.net/UNIX/v4/unix_v4.tap --2026-04-01 13:57:47-- http://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 http://squoze.net/UNIX/v4/install.ini --2026-04-01 13:58:00-- http://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.inifile contained the following contents:set cpu 11/45 att rk0 disk.rk att tm0 unix_v4.tap d sr 2 boot -o tmWe had to use the
mcopycommand to install the system to the rk disk, then useuboot, with writingkandunixto boot to the installed kernel. Depending on your host distribution, the executable file for running the PDP11 simulator is eithersimh-pdp11orpdp11.[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 GoodbyeThe Unix files have been successfully written to the rk disk, so we need to boot to Unix from it with
boot.inias 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 rkAgain, we have to write both
kandunixto boot to the kernel.[aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/boot.ini --2026-04-01 13:59:55-- http://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/mknodand 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-- http://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/sourcefor 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/passwdfile 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-- http://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 -
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 http://squoze.net/UNIX/v4/disk.rk --2026-04-01 13:56:49-- http://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 http://squoze.net/UNIX/v4/unix_v4.tap --2026-04-01 13:57:47-- http://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 http://squoze.net/UNIX/v4/install.ini --2026-04-01 13:58:00-- http://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.inifile contained the following contents:set cpu 11/45 att rk0 disk.rk att tm0 unix_v4.tap d sr 2 boot -o tmWe had to use the
mcopycommand to install the system to the rk disk, then useuboot, with writingkandunixto boot to the installed kernel. Depending on your host distribution, the executable file for running the PDP11 simulator is eithersimh-pdp11orpdp11.[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 GoodbyeThe Unix files have been successfully written to the rk disk, so we need to boot to Unix from it with
boot.inias 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 rkAgain, we have to write both
kandunixto boot to the kernel.[aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/boot.ini --2026-04-01 13:59:55-- http://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/mknodand 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-- http://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/sourcefor 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/passwdfile 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-- http://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 -
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 http://squoze.net/UNIX/v4/disk.rk --2026-04-01 13:56:49-- http://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 http://squoze.net/UNIX/v4/unix_v4.tap --2026-04-01 13:57:47-- http://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 http://squoze.net/UNIX/v4/install.ini --2026-04-01 13:58:00-- http://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.inifile contained the following contents:set cpu 11/45 att rk0 disk.rk att tm0 unix_v4.tap d sr 2 boot -o tmWe had to use the
mcopycommand to install the system to the rk disk, then useuboot, with writingkandunixto boot to the installed kernel. Depending on your host distribution, the executable file for running the PDP11 simulator is eithersimh-pdp11orpdp11.[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 GoodbyeThe Unix files have been successfully written to the rk disk, so we need to boot to Unix from it with
boot.inias 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 rkAgain, we have to write both
kandunixto boot to the kernel.[aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/boot.ini --2026-04-01 13:59:55-- http://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/mknodand 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-- http://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/sourcefor 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/passwdfile 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-- http://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 -
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 http://squoze.net/UNIX/v4/disk.rk --2026-04-01 13:56:49-- http://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 http://squoze.net/UNIX/v4/unix_v4.tap --2026-04-01 13:57:47-- http://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 http://squoze.net/UNIX/v4/install.ini --2026-04-01 13:58:00-- http://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.inifile contained the following contents:set cpu 11/45 att rk0 disk.rk att tm0 unix_v4.tap d sr 2 boot -o tmWe had to use the
mcopycommand to install the system to the rk disk, then useuboot, with writingkandunixto boot to the installed kernel. Depending on your host distribution, the executable file for running the PDP11 simulator is eithersimh-pdp11orpdp11.[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 GoodbyeThe Unix files have been successfully written to the rk disk, so we need to boot to Unix from it with
boot.inias 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 rkAgain, we have to write both
kandunixto boot to the kernel.[aptivi@archapt uv4]$ wget http://squoze.net/UNIX/v4/boot.ini --2026-04-01 13:59:55-- http://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/mknodand 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-- http://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/sourcefor 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/passwdfile 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-- http://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