FunOS

References

Official FunOS Dogma.
Similar work includes: Ocelot Scheme and Nasos.
Why Scheme?

Operating systems to look at include: RPIX, TUNIS, SPIN, Plan9, QNX, and VSTa.

Lisp Machine References

Immediate Goals

The Assembly Layer

Figure out what needs to be done in order to boot the machine; write assembly that does that.

We should be able to grab stuff from the Linux kernel (see linux/arch/i386/; 4k lines). Linux 0.01 (1.5k lines of assembly) or Linux 0.12 (3k lines) may be more accessible.
Note: __asm__(instruction : outputs : inputs : clobbered registers)
The Java OS boot routine might be good too (license?).

The Caml Layer

This implements FunScheme. This is the foundation for all that follows.

Make Scheme programs work.

The Scheme Kernel

We'll need to implement Scheme debugging tools to prepare for future work. We'll need an Emacs too (eventually).

How does the OS work?
Dave helps here. He's familiar with OS construction.

User Space

There are two directions here: the Linux API and a Scheme environment.

Down the Linux branch, we need a Linux-based hello world program to work. Then more stuff.

Bigger Projects

Extend FunScheme

Dave wants the bottom layer in Caml because it makes a good test case for his ML compiler research. I'm still unconvinced that we wouldn't be better off using Scheme48. Maybe Dave could rewrite the Scheme48vm in Caml? :) Scheme48 macros suck, though. T?

We should probably avoid low-level language add-ons unless they're absolutely necessary.

Other Stuff