Salta al contenuto principale

in reply to Rob Ricci

We have some more information on this! One of @regehr's grad students

did some excellent sleuthing and figured out that this was received by Martin Newell : archive.org/details/unix_news_…

If that name sounds familiar to you, it's probably because his teapot is ubiquitous in computer graphics: graphics.cs.utah.edu/teapot/

cv.thalia.dev/
Questa voce è stata modificata (3 mesi fa)
in reply to Rob Ricci

Great talk on how recovering an old tape like this is done:

youtube.com/watch?v=7YoolSAHR5…

in reply to Rob Ricci

Some local stories about this tape:

attheu.utah.edu/science-techno…

ksltv.com/science-technology/u…

We're going to try to get it read in a couple of weeks

in reply to Rob Ricci

The attempt to read the UNIX V4 tape is underway!

reshared this

in reply to Rob Ricci

I'm told "there is data" but I honestly don't know what that means yet
Unknown parent

mastodon - Collegamento all'originale
Rob Ricci

Here's the document release you were waiting for today!

The UNIX V4 tape!

archive.org/details/utah_unix_…

#retrocomputing

Questa voce è stata modificata (1 mese fa)
in reply to Rob Ricci

Here's a copy of the filesystem that has been extracted as a .tar file: squoze.net/UNIX/v4/

reshared this

Unknown parent

mastodon - Collegamento all'originale
Rob Ricci
We have the binary image of the tape, link going up soon
Unknown parent

mastodon - Collegamento all'originale
mcc
I… I kinda want to write some SNOBOL
in reply to Rob Ricci

The more we look into this, the more it appears that this is a complete system or pretty close to it! There's a kernel, userspace binaries, source, including userland, kernel, device drivers, seems to be the full UNIX V4!
in reply to Rob Ricci

This has a `sh.c` from Jun 10, 1974 - is this the oldest known version of sh in C?
in reply to Rob Ricci

do you know if V4 Unix would have included anything like a source tree, including the kernel?

because if so, I suddenly find myself curious as to how long it'll be until
A. someone gets it running on a VM (or even on real hardware!), and
B. gets Doom to run on it... assuming it doesn't already

Unknown parent

mastodon - Collegamento all'originale
SnoopJ

@aud and so much of it `#include`s .c files

it was a different era

Unknown parent

mastodon - Collegamento all'originale
Rob Ricci
@aud @SnoopJ There may be some kernel source in `/usr/sys/ken` and `/usr/sys/dmr`, trying to figure this out...
Unknown parent

mastodon - Collegamento all'originale
Rob Ricci
long listing (UNIX kernel code)

Sensitive content

Unknown parent

mastodon - Collegamento all'originale
SnoopJ

@aud yea, I think "boot" is a far-too-modern paradigm here.

I don't know much about it at all but my coarse understanding is that you'd read in however much of the tape needed reading, then enter `/etc/init` and now your system is running.

As evidence to support my hand-waving argument, `/usr/source/s1/init.c` includes `case reboot` that basically re-enters `/etc/init`

in reply to SnoopJ

@aud and getting all the way down to brass tacks: that re-entry is done with `execl()`, which is implemented in assembly in `/usr/source/s4/execl.s`

Really not a lot of semantic distance between the user and "the operating system is just one program in a trenchcoat full of other programs"

in reply to Rob Ricci

Right right it's just… there's something that feels more visceral about writing SNOBOL from a C implementation on a recovered lost unix tape. Like eating cheese out of the mummy tomb. I know that there's cheese around the corner but THIS cheese has a forbidden thrill
Unknown parent

mastodon - Collegamento all'originale
Rob Ricci

@SnoopJ @aud Source for init in /usr/source/s1/init.c

maybe I will run this instead of systemd

Unknown parent

mastodon - Collegamento all'originale
Brad
@SnoopJ @aud Is that to avoid deleting utmp and wtmp? I didn’t know they once lived in /tmp but I guess it’s in the name…
in reply to Rob Ricci

@bk1e @aud love this comment from the scheduler:

```
/*
* no easy core,
* if this process is deserving,
* look around for
* oldest process in core
*/
```

weighing your process's soul to see if it is lighter than a feather

Questa voce è stata modificata (1 mese fa)
in reply to Rob Ricci

So far some of our folks think they have found Hunt The Wumpus and the C code for a Snobol interpreter
in reply to SnoopJ

I don't see any obvious "unix.c" files or anything... but I do see that unix binary, which I'm assuming is the kernel. What architecture and boot up chain would you even need to get that running, I wonder?... I realize I know nothing about boot up sequences from the 70s for UNIX. Did they have something we'd recognize as a BIOS, I wonder...
in reply to Rob Ricci

long listing (UNIX kernel code)

Sensitive content

in reply to Asta [AMP]

@aud @SnoopJ Well, at one point, you booted these things by toggling in the boot code using the switches on the front of the PDP, but I don't know the exact timeframe so I don't know if that would have been the way you booted in 1974
Unknown parent

mastodon - Collegamento all'originale
SnoopJ
@aud very cursed-looking glob
Unknown parent

mastodon - Collegamento all'originale
Rob Ricci

@SnoopJ @aud check out this 🔥 /etc/rc:

```
rm -f /etc/mtab
chdir /tmp
rm -f [a-t]* [x-z]* v*
chdir /
/etc/update
```

Unknown parent

mastodon - Collegamento all'originale
SnoopJ

@aud okay yes and if I had just slowed the heck down and read `/usr/sys/ken/main.c` a LITTLE more carefully I would see clearly that it is setting up `init` and then invoking the scheduler

welp

It's really cool how abstract-but-actually-very-concrete that is to me, someone who has functionally zero exposure to systems programming:

```
/*
* make init process
* enter scheduling loop
* with system process
*/

if(newproc()) {
expand(USIZE+1);
u.u_uisa[0] = USIZE;
u.u_uisd[0] = 6;
sureg();
copyout(icode, 0, 30);
return;
}
sched();
```

Questa voce è stata modificata (1 mese fa)
in reply to SnoopJ

@aud thinking about this a bit more in the context of that `unix` binary, I'm probably wrong, but we're well beyond what I know about UNIX here.

But consulting V7 setup, it looks like `unix` indeed was the entrypoint. Maybe my mental model of `init` as the effective base of a process tree is also too modern!

wolfram.schneider.org/bsd/7thE…

in reply to Rob Ricci

Thread about the .tap format for those who want to dig in more:

github.com/larsbrinkhoff/emacs…

in reply to Rob Ricci

Today in UNIX v4 news! Our local newspaper, @sltrib did a fantastic writeup on the tape: sltrib.com/news/education/2026…