Books and other resources
Posted: Wed Jan 09, 2002 12:00 am
I had a few books that I thought I'd mention,
and wanted to see what others recommended.
"Assembly Language Step by Step", by Jeff
Duntemann. Covers both 16 bit DOS and 32 bit Linux
code, with examples in NASM (and a description of
NASM-IDE). Excellent coverage of segmented memory
and the differences between r-mode and p-mode.
"Linkers and Loaders" by John Levine. Detailed
coverage of a subject that usually gets ignored
in general OS texts.
Any of Andrew Tannebaum's books on OS design.
"The Design of Everyday Things" by Donald A.
Norman. While not about computers per se, it
gives an excellent perspective on desiging
tools for use by non-experts. Anyone who writes
*any* software for others should read this.
"Programming Pearls" by Jon Bentley. A collection
of excellent essays on safe, secure and efficient
code. Again, every programmer should read this
book at least once.
"The Humane Interface" by Jef Raskin. Another
must-read, by one of the greatest interface
designers ever. You'll never look at software
the same way again.
"Computer Lib" by Ted Nelson. While it is now
many many years old, it still remains one
of the most inspirational books about what
computers *should* be like.
I've noted some examples of OSes written in
HLLs other than C or C++, or implement unusual
features such as object persistence. These may
give some different perspectives on design
issues.
The Oberon web page (http://www.oberon.ethz.ch/) The LISPOS page
(http://lists.tunes.org/mailman/listinfo/lispos)
LISP based Operating Systems
(http://vip.hex.net/~cbbrowne/lisposes.html)
JavaOS
(http://www.sun.com/javaos/)
TUNES
(http://www.tunes.org)
Merlin
(http://www.lsi.usp.br/~jecel/merlin.html)
Grasshopper
(http://www.psrg.cs.usyd.edu.au/Grasshopper/)
Sting
(http://www.neci.nj.nec.com/PLS/sting.html)
Apertos
(http://www.csl.sony.co.jp/project/Apertos/index.html)
Inferno
(http://www.vitanuova.com/inferno/index.html)
Plan 9
(http://www.vitanuova.com/plan9/main.html)
SPIN
(http://www.cs.washington.edu/research/p ... /spin/www/)
Flux
(http://www.cs.utah.edu/projects/flux/)
There are also a few attempts at comprehensive
lists of OS projects:
http://www.cs.arizona.edu/people/bridges/oses.html
http://tunes.org/Review/OSes.html
and wanted to see what others recommended.
"Assembly Language Step by Step", by Jeff
Duntemann. Covers both 16 bit DOS and 32 bit Linux
code, with examples in NASM (and a description of
NASM-IDE). Excellent coverage of segmented memory
and the differences between r-mode and p-mode.
"Linkers and Loaders" by John Levine. Detailed
coverage of a subject that usually gets ignored
in general OS texts.
Any of Andrew Tannebaum's books on OS design.
"The Design of Everyday Things" by Donald A.
Norman. While not about computers per se, it
gives an excellent perspective on desiging
tools for use by non-experts. Anyone who writes
*any* software for others should read this.
"Programming Pearls" by Jon Bentley. A collection
of excellent essays on safe, secure and efficient
code. Again, every programmer should read this
book at least once.
"The Humane Interface" by Jef Raskin. Another
must-read, by one of the greatest interface
designers ever. You'll never look at software
the same way again.
"Computer Lib" by Ted Nelson. While it is now
many many years old, it still remains one
of the most inspirational books about what
computers *should* be like.
I've noted some examples of OSes written in
HLLs other than C or C++, or implement unusual
features such as object persistence. These may
give some different perspectives on design
issues.
The Oberon web page (http://www.oberon.ethz.ch/) The LISPOS page
(http://lists.tunes.org/mailman/listinfo/lispos)
LISP based Operating Systems
(http://vip.hex.net/~cbbrowne/lisposes.html)
JavaOS
(http://www.sun.com/javaos/)
TUNES
(http://www.tunes.org)
Merlin
(http://www.lsi.usp.br/~jecel/merlin.html)
Grasshopper
(http://www.psrg.cs.usyd.edu.au/Grasshopper/)
Sting
(http://www.neci.nj.nec.com/PLS/sting.html)
Apertos
(http://www.csl.sony.co.jp/project/Apertos/index.html)
Inferno
(http://www.vitanuova.com/inferno/index.html)
Plan 9
(http://www.vitanuova.com/plan9/main.html)
SPIN
(http://www.cs.washington.edu/research/p ... /spin/www/)
Flux
(http://www.cs.utah.edu/projects/flux/)
There are also a few attempts at comprehensive
lists of OS projects:
http://www.cs.arizona.edu/people/bridges/oses.html
http://tunes.org/Review/OSes.html