From: Will Senn <will.senn(a)gmail.com>
a deeper read will require the reader to have
knowledge beyond what is
required of most modern software developers (PDP-11 architecture,
assembly language, and UNIX are prerequisite).
Well, for pretty much any _operating system_ (as opposed to applications),
one will need to know something about the details of the machine it is
intended to run on; depending on which part of the OS one is looking at, it
will be more or less. E.g. switching processes probably requires a fair
amount, since one needs to know about internal CPU registers, etc; whereas
working on the file system, one probably doesn't need to know very much about
the machine.
It will also require access to a lab where the ideas
covered can be
experimented with.
Actually, Lions/V6 was used in operating systems courses using simulated
machines; one at MIT, 6.828 "Operating Systems Engineering":
https://pdos.csail.mit.edu/6.828/
used it for a while before the students started complaining about being
forced to learn an obsolete machine. They thereupon wrote a V6 clone for the
x86 architecture, 'XV6' (see the top of that page), which is apparently now
used for similar courses at quite a few other universities.
The v6 kernel ... packs in features that were either
unavailable in
larger more established systems or may have been present in some form,
but were orders of magnitude more lines of code and attendant
complexity. It was and remains an amazing operating system and worthy
of contemporary study.
I don't think you will find too many people here who disagree! ;-)
So, I was thinking that next up, I would write up
notes to help the
modern reader engage with v6 more easily in order to follow works like
Lyons.
Check around online to see what exists, first; there has been stuff written
since Lions! ;-)
Noel