GNU LUK

About LUK

LUK is a lean microkernel whose primary purpose is to teach the principles of microkernels. It runs on x86_32 PC hardware and boots from a USB memory stick. When it boots it is the sole system, there is no linux, windows or OSX.

LUK is written in C, Modula-2 and assembly language. All the lab exercises are available in C and (or Modula-2) students can study the microkernel in either language if desired. Students do not need to be familiar with Modula-2 in order to complete the C lab exercises.

LUK runs in 32 bit protected mode and can create an arbitary number of lightweight processes using the Executive module. It has a Timerhandler module for creating time related events a keyboard and screen device driver. There is also a very primative text based window device.

LUK coordinates interrupts and processes via semaphores implemented in the Executive. It currently uses a simple round robin scheduler to allocate processor time to the runnable processes.