This resource is for incoming MSCS/MIT students at the UPLB-ICS who would like to specialize in Systems. Topics in Systems include: Operating Systems, Computer Architecture, Distributed Systems, Networks, Security, Compilers, and Virtual Machines.
In general, the goal of Systems is to understand how software and hardware interact and how to design efficient, robust, and secure systems.
The essay by James Mickens, The Night Watch, talks about what Systems people do compared to other 'computer' people.
The following textbooks cover the major topics in Systems. Textbooks are foundational resources. If you've understood (or even mastered) the contents of these textbooks, reading advanced and specialized technical materials, like conference papers and journal papers, will be easier.
- Computer Systems: A Programmers Perspective (Randal E. Bryant and David R. O'Hallaron)
- Computer Architecture: A Quantitative Approach (John L. Hennesy and David A. Patterson)
- Operating Systems: Three Easy Pieces (Remzi Arpaci-Dusseau and Andrea Arpaci-Dusseau)
- Data Communications and Networking (Behrouz A. Forouzan)
- Distributed Systems (Maarten Van Steen and Andrew S. Tanenbaum)
- The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling (Raj Jain)
- Computer Security: Principles and Practice (William Stallings and Lawrie Brown)
- (Optional) The C Programming Language (Brian W. Kernighan and Dennis M. Ritchie)
The following conferences and workshops are venues where the state-of-the-art in Systems are presented and published.
- SOSP – Symposium on Operating Systems Principles
- OSDI – Operating Systems Design and Implementation
- EuroSys – European Conference on Computer Systems
- APSys – Asia-Pacific Workshop on Systems
- HotOS – Workshop on Hot Topics in Operating Systems
- ISCA – International Symposium on Computer Architecture
- MICRO – IEEE/ACM International Symposium on Microarchitecture
- HPCA – IEEE International Symposium on High-Performance Computer Architecture
- ASPLOS – Architectural Support for Programming Languages and Operating Systems (interdisciplinary)
- NSDI – USENIX Symposium on Networked Systems Design and Implementation
- SoCC – ACM Symposium on Cloud Computing
- HotCloud – Hot Topics in Cloud Computing (workshop)
- USENIX Security – Strong in systems security
- IEEE S&P (Oakland) – IEEE Symposium on Security and Privacy
- NDSS – Network and Distributed System Security Symposium
- CCS – ACM Conference on Computer and Communications Security
- SecDev – IEEE Secure Development Conference (more applied)
- SIGCOMM – ACM Special Interest Group on Data Communication
- NSDI – Strong overlap with networks
- CoNEXT – International Conference on Emerging Networking Experiments and Technologies
- IMC – Internet Measurement Conference
- HotNets – Workshop on Hot Topics in Networks
- ATC – USENIX Annual Technical Conference (general systems, practical papers)
- FAST – Conference on File and Storage Technologies
Journals are usually used in other disciplines for archival purposes. Some conference papers become journal papers after additional reviews. In Systems, papers in top conferences are more prestigious/impactful than journal papers.
- TOCS - ACM Transactions on Computer Systems
- TC - IEEE Transactions on Computers (TC)
- JSS - Journal of Systems and Software
- CAL - IEEE Computer Architecture Letters
- TACO - ACM Transactions on Architecture and Code Optimization (TACO)
- TCC - ACM Transactions on Architecture and Code Optimization (TACO)
- TOS - ACM Transactions on Storage
- JPDC - Journal of Parallel and Distributed Computing
- TOPS - ACM Transactions on Privacy and Security
- TDSC - IEEE Transactions on Dependable and Secure Computing
- TON - IEEE/ACM Transactions on Networking
- Computer Networks (Elsivier)
- Performance Evaluation (Elsevier)
- Software: Practice and Experience (SPE)
- Concurrency and Computation: Practice and Experience (CCPE)
- USENIX Association
- ACM SIGOPS: Special Interest Group on Operating Systems
- ACM SIGARCH: Special Interest Group on Computer Architecture
- ACM SIGCOMM: Special Interest Group on Data Communication
- ACM SIGSAC: Special Interest Group on Security, Audit and Control
- IEEE Computer Society Technical Committee on Computer Architecture (TCCA)
A good understanding of the Linux kernel and its ecosystem is essential in Systems. You can install Linux (any distribution) on your main machine or on a VM. Mastery of the command line interface and shell are also important including the build tools. (https://kernel.org)
A great tool for analyzing network packets. (https://www.wireshark.org/)