On Thu, Jan 10, 2019 at 10:00 AM David <david(a)kdbarto.org> wrote:
Myself it was v6 (most likely the typesetter
version).
What I’d like to see discussed is how people today learn to write,
enhance, design, and otherwise get involved with an OS.
When I was teaching at UCSD my class on Unix Internals used writing a
device driver as the class project and covered an overview of the Unix OS
using the Bach book. Even then (the late 80’s) it was hard to do a deep
dive into the whole of the Unix system.
Today Linux is far too complex for someone to be able to sit down and make
useful contributions to in a few weeks possibly even months, unlike v6, v7
or even 32v. By the time of BSD 4.1[a,b,c] and 4.2 those had progressed to
the point that someone just picking up the OS source and trying to
understand the whole thing (VM, scheduling, buffer cache, etc) would take
weeks to months.
So what is happening today in the academic world to teach new people about
OS internals?
I'm a kernel engineer, but I don't have much of a formal background in
computer science; my training was in mathematics.
However, I audited the MIT OS course about a year ago (my office is across
the street from campus and Robert Morris and Adam Belay were kind enough to
let me sit in on the class and pester them with questions). They used JOS,
which has a fairly unique architecture, and xv6, which is a "modern"
re-implementation of most of v6.
I've seen some universities try to cover Linux (I believe my alma mater,
Columbia, does this), and I imagine that what that means is that they talk
about various subsystems at a relatively high level and give some very
focused programming assignments.
In the 90s there was a flurry of "teaching" operating systems. Things like
NACHOS and some successor systems were popular. I suspect Minix remains
popular in some circles, though I don't know.
I remember once in the 90s talking to some sysadmins; one of the Unix guys
got talking to the local VMS guru (who, by the way, was an amazingly
talented programmer--probably one of the best I've ever seen before or
since). They got to arguing about the merits of the respective systems and
the Unix guy incredulously said, "Unix is the textbook operating system..."
to which the VMS guy replied, "yeah, because the textbook was written about
Unix...". That's kind of a true statement and has always sort of stuck with
me.
The systems that influence me personally the most in my day-to-day work are
plan9, Unix, VMS (also in its other guise as Windows), Akaros, and to a
lesser extent L4, Multics, TOPS-20 and Minix.
- Dan C.