User:Lionel/James Molloy's Kernel Development Tutorials

From OSDev Wiki
Jump to navigation Jump to search

This page is under construction! This page or section is a work in progress and may thus be incomplete. Its content may be changed in the near future.

James Molly's Kernel Development Tutorials are a set of 10 tutorials written in C that teach and guide an individual on how to create a unix-style kernel. This tutorial, while notorious for several bad design decisions, is still a great learning resource. It can be seen as a successor to Bran's Kernel Development Tutorials.

Design Choices

The kernel created with this tutorial has some... interesting design choices. In this context "interesting" equals "potentially destructive". points out most of them.

The Tutorial

The tutorial can be accessed at

Google Code Version

There is an experimental version of the tutorial avalable at . The tutorial seems to be more advanced, to the point of even including a working printf implementation.

Analysis of the tutorial

This tutorial implements:

  • A bootable kernel
  • A text mode terminal
  • Segmentation
  • Interrupts & (x86) Exception support
  • The PIT
  • Paging
  • A kernel heap
  • A Virtual Filesystem & Initrd
  • Preemptive Multitasking
  • Usermode (Ring 3)

Customising the Kernel

The Screen

I would recommend changing the function names to your liking. I would also recommend implementing printf().


Create your own paging implementation, as this one makes several bad design decisions which can cripple a kernel in the long run.

The heap

Create your own memory allocation system or use a premade one.

VFS & Initrd

Create your own Initrd filesystem.