Operating Systems and Other Bits

The items on this page are things connected with the Operating Systems course that I teach.

There is an animated simple kernel which shows how processes are managed within an operating system, you can run this under Windows (3.1, 95 or NT) and can create processes, make them manipulate semaphores and put them on the delay queue. It will give you a better feeling about how an operating system manages processes. It was written as a group project by 4th year Computer Science students at Imperial College. This program requires a minimum screen size of 800x600.

For those of you with a PC and some programming experience there is a simple kernel written in C for a bare IBM PC clone computer. It includes all the code necessary to initialise your computer and enables you to write small tasks and play with a real operating system. There is a program included to create a boot floppy which will load your kernel into your PC. You really need a Linux system to compile and link this kernel, it may be possible to build it under Windows but it does include some assembler and might be difficult to change. It needs a bare machine, 386 or better (after all it is an operating system) with at least 4M of memory to run. It only uses about 100K or so but it maps out 4M for any large processes that you may want to create.

The Narc emulation is a set of Excel macros written by Jeff Magee to show how a code is assembled, loaded and run in a simple computer. This computer has a Program Counter, an accumulator and a link register for a subroutine call. Click on the name to download the file. Depending on your browser you will end up with a text HQX file or a self-extracting binary. Use stuffit or stuffitexpander on the HQX file or double-click on the self-extracting file. You will have a folder with several Excel macro files in it. Double click on the exec to run the demo.
 

Animated Simple Kernel
Not A Real Computer (Mac)
Not A Real Computer (Windows)
Simple Kernel in C This is a gzipped tar file. You need to compile it under Linux, this will produce a boot floppy which you can then use to boot your PC