Operating Systems
Last updated
Was this helpful?
Last updated
Was this helpful?
This is a lab-based class with no explicit lectures. We will do two two-to-three hour labs each week. You should be able to complete almost all of the lab in one sitting. Assuming it's useful I will do some kind of optional discussion section on Fridays.
By the end of the class you will have built your own simple, clean OS for the widely-used, ARM-based raspberry pi --- including interrupts, threads, virtual memory, and a simple file system. Your OS should serve as a good base for interesting, real, sensor-based / embedded projects.
This book helps you gain the foundational knowledge required to write an operating system from scratch. Hence the title, 0 to 1.
After completing this book, at the very least you will learn:
How to write an operating system from scratch by reading hardware datasheets. In the real world, it works like that. You won’t be able to consult Google for a quick answer.
A big picture of how each layer of a computer is related to the other, from hardware to software.
Write code independently. It’s pointless to copy and paste code. Real learning happens when you solve problems on your own. Some examples are given to kick start, but most problems are yours to conquer. However, the solutions are available online for you to examine after giving it a good try.
Linux as a development environment and how to use common tools for low-level programming.
x86 assembly in-depth.
How a program is structured so that an operating system can run.
How to debug a program running directly on hardware with gdb and QEMU.
Linking and loading on bare metal x86_64, with pure C. No standard library. No runtime overhead.