I've assembled some notes from old manuals and other sources
on the formats used for on-disk file systems through the
Additional notes, comments on style, and whatnot are welcome.
(It may be sensible to send anything in the last two categories
directly to me, rather than to the whole list.)
All, IEEE Spectrum have asked me to write a paper on Unix to celebrate the
40th anniversary of the release of 1st Edition in November 1971. I'm after
ideas & suggestions!
I think my general thrust is that Unix is an elegant design, and the
design elements are still relevant today. The implementation is mostly
irrelevant (consider how much the code has changed from assembly -> C,
from the simple data structures in V7 through to current BSD), but the
original API is classic. Note that about 28 of the 1st Ed syscalls are
retained in current BSDs and Linux, and with the same syscall numbers.
I'm having some trouble thinking of the right way to explain what is
an elegant design at the OS/syscall level, so any inspirations/ideas
would be most welcome. I might highlight a couple of syscall groups:
open/close/read/write, and fork/exec/exit/wait.
If you have any references/URLs you think I should look at, please
pass them on to me.
I'm also trying to chase down some quotes; my memory seems to be failing me
but I'm sure I've seen these somewhere:
- in a paper, I think by Thompson & Ritchie, where they assert that the
kernel should provide no more than the most minimal services to the
userland programs. I thought this was the CACM paper, but I can't spot
this bit. Maybe it's in Thompson's preface to the Lions Commentary,
of which my copy is elsewere at present.
- I'm sure I remember someome (Kernighan?) say that Ritchie encouraged
them to espouse the use of processes as context switching was cheap,
but later measurements showed that in fact it wasn't that cheap in
the early versions of Unix.
Anyway, if you can think of good ideas/references about the elegance of
Unix, especially from the design perspective, I would much appreciate them.
> All, IEEE Spectrum have asked me to write a paper on Unix to celebrate the
> 40th anniversary of the release of 1st Edition in November 1971. I'm after
> ideas & suggestions!
of course this quote is always good for a chuckle:
Ken Thompson was once asked what he would do differently if he were
redesigning the UNIX system. His reply: "I'd spell creat with an e."
and I always liked this quote from Linus Torvalds:
On Tue, 22 Jun 1999, Rik van Riel wrote:
> The real issue here is paradigms. The classical "everything's
> a file" broke down with the advent of networking, sockets and
> non-blocking reads. At the moment the file paradigm is so much
> out of touch with computational reality that web servers need
> to fork for each client and people are crying out for asynchronous
> sendfile and other weird interfaces.
Sure. But I think it's still a valid paradigm to consider "everything is a
stream of bytes". And that's _really_ what the UNIX paradigm has been from
the first: the whole notion of pipes etc is not all that different from
> I'm also trying to chase down some quotes; my memory seems to be failing me
> but I'm sure I've seen these somewhere:
ugh..my memory is failing too at the moment. I'm sure I once read a
nice rant of sorts about how Unix has proven to be of sound design
that has adapted well to changes in the computing landscape...