Polymorphic kinds
Alastair Reid
alastair@reid-consulting-uk.ltd.uk
Mon, 4 Aug 2003 18:52:54 +0100
> The ultimate goal is to write a
> prototype operating system in Haskell, using the GHC RTS as a kind of
> microkernel
As a useful stepping stone towards that goal, you might look at Utah's OSKit:
http://www.cs.utah.edu/flux/oskit/
It gives you a bunch of useful bits like bootloaders, device drivers,
filesystems and network stacks with well-defined interfaces which let you
quickly get a system up and running and then gradually replace the bits.
People have used the OSKit to build Scheme, Java and ML-based systems. See
the links at the end of this page:
http://www.cs.utah.edu/flux/oskit/projects.html
I'd also recommend reading the papers about the Janos project (a Java OS)
especially:
Processes in KaffeOS: Isolation, Resource Management, and Sharing in Java
Drawing the Red Line in Java.
both available from:
http://www.cs.utah.edu/flux/janos/pubs.html
These talk about OS features which appear to be redundant when you work in a
high-level, strongly-typed language but which prove to have significant value
when you look more closely.
Finally, I recommend looking at INRIA's Devil project
http://compose.labri.fr/prototypes/devil/
Devil is an IDL for defining the interface to devices - like what does each
bit in a control register or interrupt mask do? They have somewhat limited
goals but for what they do, they are many, many, many times better than the
status quo as exemplified by the Linux/*BSD/Windows/etc kernels.
Hope this is helpful.
--
Alastair Reid