Computer System Guidance
A collection of Computer System Projects, built up from,
- OS
- Concurrent and Distributed System
- Computer Architecture
- Networking, Security, Compiler, etc
Application domain
In addition, there are also references (paper, ebook, repo, tool, etc) that's interesting and helpful, ranging from beginner to advanced.
Projects
Operating System
MIT 6.S081 Operating_System
xv6 (Unix Version 6)
- Unix util
- System Call
- Page Table
Database Management System Design
CMU15-445 Database_Management_System
- Data Model (relation, key/value)
- Query (SQL)
- Indexing (tree, hash tables)
- Storage (heap, log-structure)
- Memory Management
- Buffer Pool Manager
- Disk Manager
- Transaction processing
- Concurrency Control
- ACID
- Atomicity: all or none
- Consistency: invariant
- Isolation: 2PL, TSO, OCC
- Durability & Recovery: Logging, Checkpoints
- Parallel architectures (multi-core, distributed)
Distributed System
MIT6.824-DS
- Consistency and Linearisability
- Fault Tolerance and replication
- Replicated State Machines
- Raft
- Byzantine Fault Tolerance
- Distributed Transactions
Case study
- Google Map Reduce, File System, Spanner
Scheduling Literature Review
🌐Review | Github
- Scheduler (OS)
- DVFS (cpufreq governor)
- Dynamic Resource Sleep (OS)
Reference
Software Construction
🌐MIT 6.031
- Topic 21: Concurrency
- 23: Mutual Exclusion
- 24: Message passing
- More on Software related topics
Cambridge CompSci
Building a Modern Computer From First Principles
🌐Modern_Computer_Official Website
Noam Nisan and Shimon Schocken (MIT Press)
Computer Systems: A Programmer's Perspective
📖Systems_Online Ebook
Randal E. Bryant and David R. O'Hallaron, Carnegie Mellon University
Game Engine
👨💻Unreal Engine
Source code: https://docs.unrealengine.com/5.2/en-US/downloading-unreal-engine-source-code/