OSD Home

PostScript files (foo.ps), GZIP'ed PostScript files (foo.psz, foo.ps.gz), and many PDF files can be viewed with GhostScript and GhostView: http://www.cs.wisc.edu/~ghost/index.htm

pdftotext, which is part of xpdf, converts PDF files to plain text. It does this far better than either Adobe Acrobat Reader or GhostScript/GhostView: http://www.foolabs.com/xpdf/download.html

Books:

- Protected Mode Software Architecture, by Tom Shanley, Mindshare Inc, (ISBN 0-201-55447-X)
- Operating Systems: Design and Implementation, by Andrew S. Tanenbaum (ast) (ISBN 0-13-637406-9)
- Modern Operating Systems, by ast (ISBN 0-13-588187-0). Available in German as Moderne Betriebssysteme (ISBN 3-446-17472-9)
- Developing your own 32-bit operating system, by Richard Burgess. Includes MMURTL source code.
- Operating Systems Concepts, by Silberschatz and Galvin (ISBN 0-201-50480)
- Operating Systems, by Deitel (ISBN 0-201-18038-3)
- The Logical Design of Operating Systems, by Bic and Shaw (ISBN 0-13-540139-9)
- Operating Systems, by Stallings (ISBN 0-02-415493-8)
- The Design and Implementation of the 4.3BSD Unix Operating System, by Leffler, McKusick, Karels and Quarterman (ISBN 0-201-06196-1)
- The Design of the Unix Operating System, by Bach (ISBN 0-13-201757-1). "Authoritative description of the internals of System V Release 2 Unix."

Mini-reviews, from alt.os.development:

> Books I've found useful were Maurice Bach's Unix design book, Jolitz's 386BSD kernel book, The 4.4BSD daemon book, and Comer's XINU books. The code which these books describe can be found on the net. The Jolitz book is good for system i386 initialisation. I got all these books from Amazon.com.

> I rate Tanenbaum's books higher for thoughts, ideas, providing several options to many problems. MMURTL OS itself isn't much of value. It's simple, it's for i386+, somehow it works, but this is where it ends. It's memory management isn't good, VM is absent, many things are really primitive. I'd not recommend to get it.

> Don't bother with mmurtl -- you could get more information from online tutorials than that book. Get a copy of OS:D&I by Tanenbaum instead, which gives you stuff you won't find online.

More book reviews: http://www.mega-tokyo.com/forum/index.php?board=1;action=display;threadid=1251

Assorted tutorials:

- x86 assembly language
  - The Art of Assembly Language Programming: http://webster.cs.ucr.edu/Page_asm/ArtofAssembly/ArtofAsm.html
  - Free x86 asm tutorial using NASM: http://www.drpaulcarter.com/pcasm/
- MAKE:
  - (horribly incomplete)
  - How to write a Makefile: http://vertigo.hsrl.rutgers.edu/ug/make_help.html
- `ld` (the GNU linker):
  - Tutorial for ld (also horribly incomplete)
  - Using ld, the GNU linker: http://www.astro.uni-bonn.de/~webstw/cm/gnu/ld.html
- Inline asm with GCC:
  - http://www.delorie.com/djgpp/doc/brennan/brennan_att_inline_djgpp.html
  - Another document about GCC inline asm
  - http://osdev.neopages.net/tutorials/gccasmtut.php?the_id=68

Tutorial operating systems, with source code:

- NachOS; a tutorial OS written in C++: http://www.cs.washington.edu/homes/tom/nachos/ (more an OS simulator than a real OS)
- Topsy: GPL, written in C, runs on MIPS R3000-based eval board, uses memory protection. No x86 or PC port. http://www.tik.ee.ethz.ch/~topsy/
- Minix: http://www.cs.vu.nl/~ast/minix

Lecture notes, texts, etc:

- Sample chapters from 'Modern Operating Systems' by Dr. Andy Tanenbaum (author of Minix): http://www.cs.vu.nl/~ast/books/mos2
- Raphael Finkel's 'OS Vade Mecum':
  - 2371K uncompressed PostScript: ftp://ftp.cs.uky.edu/cs/manuscripts/vade.mecum.2.ps
  - PDF: http://www.nondot.org/sabre/os/files/Misc/vade.mecum.2.pdf
- Thomas Narten's CS 162 lecture notes: http://www.cs.washington.edu/homes/tom/cs162sp95/ (PostScript)
- CS460 lecture notes at Washington State Univ. http://www.eecs.wsu.edu/~cs460/
- Jim Mooney's CS356 notes at West Virginia Univ: http://www.csee.wvu.edu/~jdm/classes/cs356/notes/index.html
- Jim Plusquellic's CMPE 310 lecture notes at UMBC: http://www.csee.umbc.edu/~plusquel/310
- Ian Graham's INT2010 lecture notes at Griffith Uni: http://www.onthenet.com.au/~grahamis/int2010/int2010.html

Other OS pages:

- POSIX specs now online: http://www.opengroup.org/onlinepubs/007904975/toc.htm
- Code your own OS: http://www.openbg.net/sto/os/
- SigOPS pages on writing your own OS: http://www.acm.uiuc.edu/sigops/roll_your_own/
- OS FAQ: http://www.osdev.org/osfaq2/
- Operating Systems Resource Center: http://www.nondot.org/sabre/os

Non-English pages:

- Créez votre système d'exploitation (OS): http://www.linuxmag-france.org/produit.php?produit=175
- Réaliser son propre OS: http://inferno.cs.univ-paris8.fr/~am/tutorial/os/tutorial00.html
- ¿Cómo se crean los Sistemas Operativos?: http://www.arrakis.es/~jespejo/

Ralf Brown's famous Interrupt List:
http://www.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html,
http://www.ctyme.com/rbrown.htm

CPU and PC hardware information:

- Intel 386 Programmer's Reference Manual: http://my.execpc.com/~geezer/os/386intel.zip (858K text file PKZIPped to 207K)
- Same as above, in PDF format: http://www.microsym.com/386intel.pdf
- Official Intel docs for Intel CPUs and motherboard chipsets: http://x86.ddj.com/intel.doc/inteldocs.htm
- Lotsa PC hardware info: http://bochs.sourceforge.net/techdata.html

## REPORT BUGS OR ERRORS IN THIS DOCUMENT