[Haskell] A road for Haskell into the kernel of a full-fledged OS

oleg at pobox.com oleg at pobox.com
Fri Jun 2 12:41:17 EDT 2006

	I'm attending a USENIX conference and just had a nice talk
with Andrew Tanenbaum. As some may know, he's working on the new
version of Minix, Minix3. It is actually working, now with the X
windows interface:


Andrew Tanenbaum said that it is important for a language like OCaml
or Haskell to get more visibility among the OS developers; and Minix
offers a very good way to do that. Minix3 is based on micro-kernel;
all of the OS services (memory manager, file system, all the drivers,
etc.) run as regular processes communicating through a well-defined
protocol. It is irreleveant what language these services are written
in, so long as they obey the protocol. Some of Andrew Tanenbaum's
students are interested in re-writing some of Minix3 OS services (like
device drivers or file systems, currently written in C) in Ocaml and
Cyclone. He is interested in the outcome. Haskell is a good candidate
too. It is quite instructive to compare a device driver in Haskell
with the original C driver -- it terms of length, speed, time to
write, number of bugs, etc. Andrew Tananbaum suggested that the
terminal driver may be the best start, because it is 
quite stand-alone, small and its protocol is simple.

	With Minix, we can replace one kernel service of the
full-fledged, working OS with the one written in Haskell -- and
immediately see how it all works. If it doesn't, the rest of OS still
works and so we can unload the faulty service and load another
implementation. Minix3 does indeed offer an easy road to the OS kernel 
for a language other than C. I said that there may be quite a bit of
interest in Haskell community in such a project. I wonder if I'm


More information about the Haskell mailing list