CAIRO BOOKS's Description
This text identifies, examines, and illustrates fundamental concepts in
computer system design that are common across operating systems, networks,
database systems, distributed systems, programming languages, software
engineering, security, fault tolerance, and architecture. Through carefully
analyzed case studies from each of these disciplines, it demonstrates how to
apply these concepts to tackle practical system design problems. To support the
focus on design, the text identifies and explains abstractions that have proven
successful in practice such as, remote procedure call, client/service
organization, file systems, data integrity, consistency, and authenticated
messages. Most computer systems are built using a handful of such abstractions.
The text describes how these abstractions are implemented, demonstrates how
they are used in different systems, and prepares the reader to apply them in
This unique book is offered in an online / offline split: Chapters 1-6 are
included in the book available from Morgan Kaufmann in print or ebook form.
Chapters 7-11 are available online under a Creative Commons license. Download
them for free at http://www.elsevierdirect.com/companion.jsp?ISBN=9780123749574
Concepts of computer system design guided by fundamental principles.
Cross-cutting approach that identifies abstractions common to networking,
operating systems, transaction systems, distributed systems, architecture, and
Case studies that make the abstractions real: naming (DNS and the URL); file
systems (the UNIX file system); clients and services (NFS); virtualization
(virtual machines); scheduling (disk arms); security (TLS).
Numerous pseudocode fragments that provide concrete examples of abstract
Extensive support. The authors and MIT OpenCourseWare provide on-line, free
of charge, open educational resources, including additional chapters, course
syllabi, board layouts and slides, lecture videos, and an archive of lecture
schedules, class assignments, and design projects.