Operating Systems¶
| Step | Book | Course | Video |
|---|---|---|---|
| Step 1: Learning the basic | Operating Systems: Three Easy Pieces | MIT 6.S081: Operating System Engineering |
Bilibili Official |
| Operating Systems: Principles and Practice | UCB CS162: Operating Systems and System Programming |
Bilibili Youtube |
|
| Step 2: explore the design decisions of specific operating systems | Lion's commentary on Unix | ||
| The Design and Implementation of the FreeBSD Operating System | |||
| Mac OS X Internals | |||
| Linux Kernel Development |
A great way to consolidate your understanding of operating systems is to read the code of a small kernel and add features. One choice is xv6,
a port of Unix V6 to ANSI C and x86, maintained for a course at MIT. OSTEP has an appendix of potential xv6 labs full of great ideas for potential projects.