Skip to content

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
Operating System Concepts
Modern Operating Systems
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.