If you are a new researcher in the Systems area of Computer Science , you might ask yourself how you should get started. First off is to define what Systems is. A good description from Stanford University is given below:
In this post, I will list some of the books and research papers that will introduce you to the area. Some items were taken from http://thor.cs.ucsb.edu/~ravenben/papers/coreos/. Reading these books/papers is important because they will introduce you to the vocabulary used in the field. There are three subareas that I'd like to emphasize: Computer Architecture/Organization, Operating Systems, Computer Networks. Each of these subareas may also have subareas.
Texbooks
Research Papers
(more to follow)
"Systems is the study of the design and implementation of computer systems such as compilers, databases, networks, and operating systems. Topics include the hardware/software interface, the networking stack, digital architecture, memory models, optimization, concurrency, privacy, security, distributed and large-scale systems, reliability and fault tolerance, and related algorithms and theoretical topics." -http://csmajor.stanford.edu/Tracks.shtml
In this post, I will list some of the books and research papers that will introduce you to the area. Some items were taken from http://thor.cs.ucsb.edu/~ravenben/papers/coreos/. Reading these books/papers is important because they will introduce you to the vocabulary used in the field. There are three subareas that I'd like to emphasize: Computer Architecture/Organization, Operating Systems, Computer Networks. Each of these subareas may also have subareas.
Texbooks
- Computer Organization and Design: The Hardware/Software Interface by Patterson and Hennessy
- Operating Systems Concepts by Silberschatz, Galvin, Gagne
- Computer Architecture: A Quantitative Approach
- Database System Concepts by Silberschatz, Forth, and Sudarshan
- Advanced Programming in the Unix Environment by Stevens
- The Design of the UNIX Operating System by Bach
- Readings in Computer Architecture by Hill et al
Research Papers
- The UNIX time-sharing system by Ritchie and Thompson
- Monitors: An Operating System Structuring Concept by Hoare
- Virtual Memory by Denning
- Disk Scheduling Revisted by Ousterhout et al
- Working Sets Past and Present by Denning
- Design and Implementation of the Sun Network Filesystem by Sandberg et al
- State of the Art: Where we are with the Ext3 filesystem by Cao et al
- Virtual Memory Management in the VAX/VMS Operating System by Levy et al
- The Transaction Concept: Virtues and Limitations by Gray
- Data Security by Dening et al
- Recovery Techniques for Database Systems by Verhofstad
- A Case for Redundant Arrays of Inexpensive Disks (RAID) by Patterson et al
- Virtual Memory, Processes, and Sharing in MULTICS by Daley et al
- The Multics Virtual Memory: Concepts and Design by Bensousssan et al
- Implementing Remote Procedure Calls by Birrell et al
- The Duality of Memory and Communication in the Implementation of a Multiprocessor Operating System by Young et al
- Mach: A New Kernel For UNIX Development by Accetta et al
- Memory Coherence in Shared Virtual Memory Systems by Li
- Simple But Effective Techniques for NUMA Memory Management by Bolosky
- Scheduler Activations: Effective Kernel Support for the User-Level Management of Parallelism by Anderson
- Time, Clocks, and the Ordering of Events in a Distributed System by Lamport
- Distributed Snapshots: Determining Global States of Distributed Systems by Chandy and Lamport
- How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs by Lamport
- Hierarchical Ordering of Sequential Processes by Dijkstra
- Solution of a Problem in Concurrent Programming Control by Dijkstra
- Transparent Process Migration: Design Alternatives and the Sprite Implementation by Douglis
- Grapevine: An Exercise in Distributed Computing by Birrell
- Experience with Grapevine: The Growth of a Distributed System by Schroeder
- Operating System Support for Database Management by Stonebraker
- The Protection of Information in Computer Systems by Saltzer
- Privacy and Authentication: An Introduction to Cryptography by Diffie
- Kerberos: An Authentication Service for Open Network Systems by Steiner
- The Structure of the THE Multiprogramming System by Dijkstra
- Survey of Virtual Machine Research by Goldberg
- A Library Implementation of POSIX Threads under UNIX by Mueller
- UNIX Implementation by Thompson
- Ethernet: distributed packet switching for local computer networks by Metcalfe
- A system for interprocess communication in a resource sharing by Walden
- The design philosophy of the DARPA Internet protocols by Clark
- A fast file system for UNIX by McKusick et al
- An experimental time-sharing system by Corbato
- The design and implementation of a log-structured file system by Rosenblum et al
- An implementation of a Log-Structured File System for UNIX by Seltzer et al
- Experience with processes and monitors in Mesa by Lampson et al
- First Draft of a Report on the EDVAC by Neumann
- Architecture of the IBM System/360 by Amdahl et al
- The Case for the Reduced Instruction Set Computer by Patterson et al
- A protocol for packet network intercommunication by Cerf et al
- End to end arguments in System Design by Saltzer
- Architectural Considerations for a New Generation of Protocols by Clark et al
- Packet Switching in Radio Channels: Part 1 .. by Kleinrock
- Congestion Avoidance and Control by Jacobson
- Congestion Avoidance in Computer Networks with Connectionless Layer by Jain et al
- Development of the Domain Name System by Mockapetris
(more to follow)