hOp is a micro-kernel based on the RTS of GHC. It is meant to enable people to experiment with writing device drivers in Haskell. Currently, hOp is still very hackish, and IA32-specific. Contributions are welcome!
The RTS of GHC is truly an amazing piece of software. By removing the system-specific bits, and just adding a few lines of C and assembly code, it turns into a standalone micro-kernel that can be extended in our favorite language, Haskell.
All functions from the base hierarchical library outside of the System module is available. This includes threads and communication primitives and the foreign interface, which means experimenting with writing drivers in Haskell should be reasonably easy.
Jeremy Bobbio is working actively on hOp. You can follow his progress here.
A running hOp micro-kernel contains the following components:
Source release: hOp-2004-06-09.tar.bz2 README
In the version of hOp used to take this screenshot, the character in the top-right corner changes from red to green and vice-versa every time the GC runs.
After extracting files from the archive, run make boot and then make all. This will generate the kernel (kernel.gz) and a GRUB boot floppy (hOp.flp).
hOp was only tested to compile on IA32-GNU/Linux. It will not compile on anything other than IA32, and would probably require adjustments to compile on other platforms.
You need to have at least the following software installed on the system you use to build hOp:
The Makefiles in the source archive expect some things to be in some particular common places. If your system differs, you will need to adjust those.
Happy hacking.
Contact: Sébastien Carlier <
>.