Starting in 1996,Alexa Internet has been donating their crawl data to the Internet Archive. Flowing in every day, these data are added to theWayback Machine after an embargo period.
This book (CS:APP) stems from an introductory systems course that wedeveloped at Carnegie Mellon University in the Fall of 1998, called"Introduction to Computer Systems" (ICS). The presentation is based onthe following principles, which aim to help the students become betterprogrammers and to help prepare them for upper-level systems courses:
Students should be introduced to computer systems from the perspectiveof a programmer, rather from the more traditional perspective of asystem implementer.What does this mean?
Students should get a view of the complete system, comprising thehardware, operating system, compiler, and network.
Students learn best by developing and evaluating real programs thatrun on real machines.
We cover data representations, machine level representations of Cprograms, processor architecture, program optimizations, the memoryhierarchy, linking, exceptional control flow (exceptions, interrupts,processes, and Unix signals), performance measurement, virtual memoryand memory management, system-level I/O, basic network programming,and basic concurrent programming. These concepts are supported byseries of fun and hands-on lab assignments. See the manuscriptPreface for more details.
Course Materials for Instructors and Students
TheStudent Site containsadditional material for the students.
TheInstructor Sitecontains a complete turnkey solution for teaching the course.