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, xv6 (Unix Version 6)
- Unix util
- System Call
- Page Table
Database_Management_System CMU15-445
- 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
- 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
๐ Building a Modern Computer From First Principles
Noam Nisan and Shimon Schocken (MIT Press)
๐Computer Systems: A Programmer's Perspective
Randal E. Bryant and David R. O'Hallaron, Carnegie Mellon University
Cambridge CompSci
Game Engine
๐จโ๐ปUnreal Engine
Source code: https://docs.unrealengine.com/5.2/en-US/downloading-unreal-engine-source-code/