Svein Ove Aas <firstname.lastname@example.org> wrote:
| ...writing a simple OS from scratch.
| It doesn't need to be self-hosting, but it isn't prohibited either, so I
| was thinking - maybe a C bootstrapper that takes care of the lowest-level
| details including a Lisp VM, and a self-hosting compiler on top of that.
| Ideally, the drivers - network, console, etc. - should be written in Lisp
| as well. Would this be fast enough?
Well, it was certainly fast enough for the Lisp Machines!! ;-} ;-}
But seriously, coding up drivers (except perhaps a few simple ones,
as proofs-of-concept), not to mention filesystems, is a *LOT* of work.
It would probably be better to spend your time on the "middle" layers
of the operating system: process scheduler, memory management, etc.
For the low-level driver stuff, may I suggest using the Utah OSkit
(part of the Flux Project)?
The OSKit is a framework and a set of 34 component libraries
oriented to operating systems, together with extensive documentation.
By providing in a modular way not only most of the infrastructure
"grunge" needed by an OS, but also many higher-level components,
the OSKit's goal is to lower the barrier to entry to OS R&D and
to lower its costs. The OSKit makes it vastly easier to create a
new OS, port an existing OS to the x86 (or in the future, to other
architectures supported by the OSkit), or enhance an OS to support
a wider range of devices, file system formats, executable formats,
or network services. The OSKit also works well for constructing
OS-related programs, such as boot loaders or OS-level servers atop
For language researchers and enthusiasts, the OSKit lets them
concentrate on the real issues raised by using advanced languages
inside operating systems, such as Java, Lisp, Scheme, or ML---
instead of spending six months or years groveling inside ugly code
and hardware. ...
The PLT guys used this to make MzScheme run on "bare iron":
[Note: I'm not suggesting using Scheme, only that they successfully
used the Flux OSkit to host MzScheme as an "operating system", so you
could presumably do something similar...]
 Though only for version up through versions 103p1. AFAICT,
versions 200+ no longer support the "bare iron" configuration.
Rob Warnock <email@example.com>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607