Most of the algorithms in the book are defined in the C programming language. For those not familiar with C, the following documents are useful.
C and C++ in 5 days. A good tutorial for quickly getting up to speed on C. By Philip Machanick, University of the Witwatersrand, South Africa.
C Language Tutorial. A good, relatively concise overview to get you started..
The C Cheat Sheet This 74-page document enables the beginning C programmer to get started with the language and write small-to-medium-size programs involving simple I/O, file manipulation, and arithmetic computations. Lots of examples. By Andrew Sterian, Grand Valley State University.
Programming in C A detailed tutorial on the use of C. It covers all of the basic elements of C and then provides an excellent introduction to interprocess communication, semaphores, shared memory, threads, concurrency, and more.
An Introduction to C Programming for Java Programmers. If you know Java, this introduction will quickly make it easy for you to read C. By Mark Handley, University College, London
C for Java Programmers. Another good introduction for the Java-literate. By Jason Maassen, VU University, Amsterdam
Useful Web Sites
Computer Science Student Resource Site: Help and advice for the long-suffering, overworked student.
Errata sheet: Latest list of errors, updated at most monthly. File name is Errata-OS7e-mmyy. If you spot any errors, please contact me at .
Chapter 1 - Computer System Overview
WWW Computer Architecture Home Page: A comprehensive index to information relevant to computer architecture researchers, including architecture groups and projects, technical organizations, literature, employment, and commercial information.
CPU Database. Information on hundreds of commercial processors spanning the past 40 years. In addition, site provides a methodology to separate the effect of technology scaling from improvements on other frontiers (e.g., architecture and software), allowing the comparison of machines built in different technologies.
Processor Emporium. Interesting and useful collection of information.
ACM Special Interest Group on Computer Architecture. Information on SIGARCH activities and publications, good set of useful links.
IEEE Technical Committee on Computer Architecture. Copies of TCCA newsletter, useful links.
Computer Architecture Resources Maintained by BEN JULIANO, Associate Dean, College of Engineering, Computer Science, and Construction Management (ECC), California State University, Chico.
Chapter 2 - Operating System Overview
Operating Systems at the Open Directory Project A massive organized directory of OS-related links.
The Operating System Resource Center A useful collection of documents and papers on a wide range of OS topics.
Operating System Technical Comparison Includes a substantial amount of information on a variety of operating systems.
ACM Special Interest Group on Operating Systems. Information on SIGOPS publications and conferences.
IEEE Technical Committee on Operating Systems and Applications. Includes an online newsletter and links to other sites.
The comp.os.research FAQ: Lengthy and worthwhile FAQ covering operating system design issues.
UNIX Guru Universe: Excellent source of UNIX information.
Linux Documentation Project: The name describes the site.
IBM's Linux Website. Provides a wide range of technical and user information on Linux. Much of it is devoted to IBM products but there is a lot of useful general technical information.
Windows Development: Good source of information on Windows internals.
Timesharing: A marvelous 1983 tutorial video on timesharing, with Corbato.
Chapter 4 - Threads
POSIX Threads An informative overview.
Chapter 8 - Virtual Memory
The Memory Management Reference A good source of documents and links on all aspects of memory management.
Chapter 13 - Embedded Operating Systems
Embedded.com: Wide variety of information on embedded systems.
eCos: Downloadable software, information, and links on eCos.
TinyOS Community Forum: Downloadable software, information, and links on TinyOS.
Chapter 14 - Computer Security Threats
Computer Security Resource Center: Maintained by NIST; contains a broad range of information on security threats, technology, and standards.
CERT Coordination Center: The organization that grew from the computer emergency response team formed by the Defense Advanced Research Projects Agency. Site provides good information on Internet security threats, vulnerabilities, and attack statistics.
Vmyths: Dedicated to exposing virus hoaxes and dispelling misconceptions about real viruses.
Chapter 15 - Computer Security Techniques
Password Usage and Generation: NIST documents on this topic
Biometrics Consortium: Government-sponsored site for the research, testing, and evaluation of biometric technology.
NIST RBAC site: Includes numerous documents, standards, and software on RBAC
Snort: Web site for Snort, an open source network intrusion prevention and detection system.
SecureList: Site maintained by commercial antivirus software provider. Good collection of useful information on viruses, hackers, and spam.
Chapter 16 - Distributed Processing, Client/Server and Clusters
IEEE Computer Society Task Force on Cluster Computing An international forum to promote cluster computing research and education.
SQL Standards Good source of information and documents.
SQL Resources A lot of useful information and links.
Appendix D - Object Oriented Design
Object Management Group Industry consortium that promotes CORBA and related object technologies.