The UNIX Time-Sharing System (1974)
chsasank.github.io
chsasank.github.io
Introduction and Overview of the Multics System https://multicians.org/fjcc1.html
Thirty Years Later: Lessons from the Multics Security Evaluation https://www.acsac.org/2002/papers/classic-multics.pdf
Is this saying that if I had a removable disk mounted at /mnt/foo and issued “cd ..” in that directory, I’d remain in /mnt/foo instead of moving up to /mnt? When did this change to the current behavior?
If you examine an unmounted filesystem however, the raw /.. directory entry points to the same place as /. directory entry.
"no link" literally means no link. It's the straightforward meaning of (an ordinary, not symbolic) "link" in Unix filesystems. They cannot cross devices.
And on disc, ".." in the root is a link to the same directory. (POSIX allows for it to be this, which is the conventional Unix behaviour, or not to exist, which is the case on some non-Unix filesystems and operating systems where conceptually there is stuff "above" the root.)
Executing "cd .." ignores what is on disc at a mount point, and traverses the mount upwards.
Remember that "filesystem" has three meanings: the on-disc format of a DASD volume, the overall tree abstraction presented by the operating system, or what is presented by an FS driver.
Youch. Was the PDP-11 really so unreliable?
There were a lot of wire-wrap connections on those things. If they had been done right you were good. Done wrong, and your system was haunted until someone found the loose wire. We had an 11/45 with a flaky Unibus bay that could be "fixed" with a little percussive ablation. Finally got DEC to get serious about the problem, and they spent several days tracking down a bad socket.
I don't miss wire wrap. At all.
We have it good these days. Rack a bunch of servers, run them hard for years with only DIMM replacements or maybe the odd SSD, and recycle them once the bathtub failures start edging up. I don't want to think about the comparable compute power; my wristwatch runs rings around that 11/45. We live in the future.
https://upload.wikimedia.org/wikipedia/commons/f/f7/PDP-10_1...
Can you imagine trying to fault-find this with just a schematic, a meter, and a scope?
The reliability we think of with modern computers is, I think, mostly a consequence of very high integration. Few solder joints to go wrong.
The PDP-6 predates the integrated circuits of the PDP-11 models, and had a board as part of the ALU path that almost always blew at least one of the 36 boards (one for each bit in the machine word) on a power cycle.
There are some interesting points where current design is almost exactly the same, only slightly developed. Stderr was missing in this paper, for example.
I guess I can't really appreciate the benefit they describe here, because I'd need to know the alternatives and prior art:
> Another important aspect of programming convenience is that there are no “control blocks” with a complicated structure partially maintained by and depended on by the file system or other system calls.
> The discussion of I/O in §3 above seems to imply that every file used by a program must be opened or created by the program in order to get a file descriptor for the file. Programs executed by the Shell, however, start off with two open files which have file descriptors 0 and 1. As such a program begins execution, file 1 is open for writing, and is best understood as the standard output file. Except under circumstances indicated below, this file is the user’s typewriter. Thus programs which wish to write informative or diagnostic information ordinarily use file descriptor 1. Conversely, file 0 starts off open for reading, and programs which wish to read messages typed by the user usually read this file.
> always concerned themselves with building a comfortable relationship
> with the machine and with exploring ideas and inventions in
> operating systems. We have not been faced with the need to satisfy
> someone else's requirements, and for this freedom we are grateful.
>
> Dennis M. Ritchie and Ken Thompson (1974)
UNIX occupies 42K bytes."
Compare that to Ubuntu's requirements in 2020:
https://help.ubuntu.com/community/Installation/SystemRequire...
>"Ubuntu Desktop Edition
o 2 GHz dual core processor
o 4 GB RAM (system memory)
o 25 GB of hard-drive space (or USB stick, memory card or external drive but see LiveCD for an alternative approach)
o VGA capable of 1024x768 screen resolution
o Either a CD/DVD drive or a USB port for the installer media
o Internet access is helpful"
For example, my first experience with containers was with HP-UX Vault, likewise for most fancy filesystems that GNU/Linux might be getting.
There are certainly examples of very compact Unix-like OSes that nonetheless offer memory protection, paging/virtual memory, preemptive multitasking, and a system call interface.
As for that last: The PDP-11 was a 16-bit architecture, which got somewhat interesting to work with when software began to grow functionality beyond what would comfortably fit in that address space. The 32-bit PDP-11 was going to be called the Virtual Address Extension, or the VAX; instead, the VAX was turned into a machine rather more elaborate than a "better PDP-11".
"Sufficient Flash to accommodate OpenWrt firmware image
* 4MB min (won't be able to install GUI (LuCI))
* 8MB better (will fit GUI and some other applications)
Sufficient RAM for stable operation
* 32MB min, 64MB better"
(Directly from https://openwrt.org/supported_devices)
Still a few magnitudes more than the PDP-11/45, though.
"Please use the original title, unless it is misleading or linkbait; don't editorialize."