HiroyuYulin wrote:
Hey everyone! I'm a recent EE grad that has gone the software route for my career, so I've missed some CS-specific work in school. I've always regretted not taking an operating systems course- to me, operating systems are black magic.
Please recommend a way to learn OS design and theory! It would be awesome if there are exercises and projects along the way.
VidMate MobdroCan't recommend doing it via books, and studying existing systems. Have a look at the existing
Books wiki page.
I'd particularly recommend "The Design and Implementation of the FreeBSD Operating System" and "Windows Internals" to give a flavour of the black magic in contemporary modern operating systems.
Another good place to start would be with
Xv6. For me, having an out of the box setup that you can GDB into and step through the code helps cement how things work, and takes the black magic away. Running up Xv6 in qemu and attaching GDB is what gave me the confidence to start my own implementation.