House is a demo of software written in Haskell, running in a standalone environment. It is a system than can serve as a platform for exploring various ideas relating to low-level and system-level programming in a high-level functional language. More details are available in our ICFP 2005 paper: A Principled Approach to Operating System Construction in Haskell.
House is based on
There is also work in progress on implementing an L4 compatible microkernel based on this platform (Rebekah Leslie and Mark P Jones).
qemu -m 256 -fda hOp.flp
),
or if written to a real floppy disk (cp hOp.flp /dev/fd0
),
directly on your PC.
Get a source bundle if you want study the source code, or
modify the source code and compile your own version of
House. In
addition to all the required source code, the bundle contains precompiled
Linux binaries of GHC (tested under RH9, FC3, FC4 and Ubuntu 6.06),
so that you can get
started quickly, without first having to compile the hOp version of
ghc-6.2 and its run-time system. To create a floppy image, you also need
to install the
genext2fs program.
If your Linux distribution uses gcc >=4.0, you may need to change the
CC=gcc
line in the kernel/Makefile
to use
an older version of gcc (e.g. CC=gcc-3.4
).
Source Bundle | Floppy Image | Notes |
---|---|---|
House-0.8.91.tar.bz2 | House.flp | Ported to GHC 6.8.2. See Kenny Graunke's page on House. |
House-0.8.tar.bz2 (26MB) | hOp-0.8.flp
| Updated license info. Interrupt handling fixes. |
House-0.7.tar.bz2 (26MB) | hOp-0.7.flp
| August 2006 version. Bug fixes. |
hOp-0.6.flp
| February 2006 version. Includes initial support for TCP and DHCP. Some changes to the interrupt handling. | |
hOp-0.5.flp
| Essentially the version that was demoed at ICFP 2005. | |
hOp-0.3.flp
| April 2005 version. | |
hOp-hw2004.flp
| Essentially the version that was demoed at the 2004 Haskell Workshop. It has some Gadget demos, and application binaries that can be run in a separate address space. See screendump-hw2004.png. | |
hOp-0.1.flp
| An early version with some Gadget demo applications. See screendump.png. |
The following applications are available in the House demo:
ls
in the shell window to get a list,
and the command run module
to run one.
tftp run host file
to load and run one.
Thomas Hallgren |
Last modified: Tue May 21 17:14:47 CEST 2019
|