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:
"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)
0 comments:
Post a Comment