Lecture 1
10 September 1998
Created 10/9/1998
If you aspire to the rank of an OS guru, you will have to read through
and understand the source code of one of the following OS's. Most of
these code are mind-boggling if not wrecking, but you will learn a lot
about OS, about programming, about computers, ...
Toy OS's
-
Minix.
The complete source code (in C) can be found in the "Minix book",
Operating Systems:
Design and Implementation. Minix used to be very popular among
computer science students. There is even a newsgroup devoted to
Minix: comp.os.minix.
Tanenbaum, the author, probably has made tons of money from the sale
of this book.
-
Nachos.
Developed by Berkeley, this toy OS is being used by hundreds of
schools in the US and elsewhere for learning OS. No book exists
yet for this OS, but there are plenty of articles written about it,
including this
online appendix (pdf format) of our textbook.
-
SOS
(Simple Operating System). This is an instructional OS that runs on a
hardware simulator. It's got both a C++ and Java version. The author
of the software, Charles Crowley, also wrote a book,
Operating Systems: A Design-Oriented Approach, that uses SOS
as the major example.
Real OS's with Source Code
There are plenty, but the two below are most popular.
-
Linux. Probably the champion of all, Linux is huge and
is constantly growing. You'll probably be better off by following a
book such as Linux Internals which is available in our
bookstore. There are many links on Linux. You may try HKUEEE's
Linux Documentation Project
(LDP) (mirror). Linux is hot, and if you have not put your hands on one
before, it is about time; otherwise, you'll be laughed at.
-
FreeBSD.
Of BSD fame, this free UNIX OS is stable and runs well on a PC.
There are a number of books written to explain its internal design.
Go to the library and search for "BSD UNIX".
Slides for Chapter 1
These are local copies, of two-page format. If you prefer a one-page
format, go to the
authors' page.
OS Comparison
The Four Camps
... according to Francis Lau.
-
MS Windows 98 & NT
-
UNIX (Linux, etc.)
-
Mac
-
Java
For discussion, read these two Byte articles:
Please Read
Chapters 1 and 2 of the textbook.