WhatCodeCraves

Kernel Designs

I really enjoyed my introductory operating systems class at Berkeley. The class focused on classic high level OS concepts like process models, virtual memory, concurrency, and more. To go along with the material, teams of 4 formed to implement components in a toy OS called Nachos. The purpose of this was to keep students focused on the concepts rather than wade through the quagmire that is x86 assembly.

I was very proud of the finished project. We wrote basic processes and threads with priorities, memory manangement, system calls, and a C chat program. All of this could be booted up and ran on the virtual 'Machine' object that emulated a MIPs architecture machine.

Unfortunately, I did not follow up with more advanced topics after the class, and while those high level concepts are solid fundamentals, I sorely wish to see what designs have been tried in practice, along with their benefits and drawbacks. Rather than dive blindly into the source of popular open source kernels from Linux and BSD, I plan to start by reading some research papers on kernel design. Hopefully this will refresh my memory about some key terms while letting me survey what's available.