References
Courses
For your coding homeworks
x86-64 Machine-Level Programming (2005, by Randal E. Bryant and David R. O’Hallaron)
Extended reading
Software optimization resources by Agner (some "next-level" reading materials)
Revolution OS (2001, Documentary)
What Every Programmer Should Know About Memory (2007, Ulrich Drepper)
Understanding the Linux Virtual Memory Manager (2004, Mel Gorman)
Linkers and Loaders (1999, John R. Levine)
Special Topics: papers on OS design
[HotOS'19] Unikernels: The Next Stage of Linux's Dominance
[HotOS'19] A fork() in the road
[HotOS'19] I'm Not Dead Yet!: The Role of the Operating System in a Kernel-Bypass Era
[OSDI'18] The benefits and costs of writing a POSIX kernel in a high-level language
[SOSP'95] Exokernel: an operating system architecture for application-level resource management
[OSDI'14] IX: A Protected Dataplane Operating System for High Throughput and Low Latency
[SOSP'97] The Performance of u-kernel based Systems
[SOSP'13] From L3 to seL4 What Have We Learnt in 20 Years of L4 Microkernels?
[Security'18] Meltdown: Reading Kernel Memory from User Space