Teaching OS design

Published on: 2006-6-26

Home | Archive

Teaching OS design


Operating Systems design is very much a `hands-on' course; there is no point in learning lots of text-book theory unless you get your hands dirty with code. What kind of code do you ask your students to play with? The Linux kernel is one option - but I feel it is too complex as far as a beginner is concerned. Then there are educational kernels like `Minix' - my brother had spent a considerable amount of time understanding the almost ten thousand lines of code which makes up Minix. He then switched over to a `pre-historic' Linux kernel and studied its working line by line. Yet another option is to study the working of lots of `toy' kernels available on the net. Depending on your aptitude for low level hacking and the amount of time you are willing to devote, one of these options might work for you. Are there high-quality, professionally written OS kernels which an undergraduate student can read, understand and modify as part of say a one semester OS coursework? I stumbled upon MicroC/OS some time back; the author of this OS has written an excellent book which explains the internals of MicroC/OS with great clarity. Students can use the book to find out how an OS does stuff like preemption and how locking/synchronization primitives (mutexes,sempahores) are implemented in practice. Better still, if you have motivated students who are willing to put in some effort, you can make them implement ideas in code on microcontrollers like the Atmel ATMega; this will be a really great learning experience for them. Look at the photo below to see what Anish and friends have done to visualize the classical dining philosophers problem on the OS which they have implemented on an ATMega8! philo2 There are great intellectual challenges involved in writing code - but engineering should be as much about doing stuff with your hands as it is with your brain - even if it is Computer Engineering. Taking a piece of cardboard, pasting some coloured paper (with a few sketches) on it and sticking up a few LED's is no big deal; but if you don't feel a bit of excitement when those LED's (your imaginary philosophers and forks!) finally light up, you should think twice before calling yourself an `engineer'.


Fri Apr 11 17:51:23 2008

Nachos is used by many universities to teach OS.


Tue May 20 05:22:04 2008

I want to learn os right from beginning


Thu Dec 17 05:13:46 2009

The link "excellent book " in this web page is not working.