Building a Minimal Kernel
As part of my Computer Science Bachelor at VU University Amsterdam, I have to do what is called a ‘Bachelor Project’. Essentially, I just had to pick a computer science related topic and do a project on it, along with a written report and presentation.
The topic I chose, was writing a small kernel. I decided to write the kernel in C, but was tempted to try and write it in Go or Rust.
The requirments were not very heavy:
- Enter Kernel Program from assembly
- Set up the CPU (GDT, MMU, Long Mode, etc.)
- Add some useful functionality, such as a network driver, filesystem etc.
The language the kernel is written in, is C.
Table of Contents:
- Bootstrapping
- Printing to the Screen
- Setting up the GDTs