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: http://www.minix3.org 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 right...