Release 0.01 of LispOS
Rodrigo Ventura
yoda@isr.ist.utl.pt
Mon, 23 Mar 1998 12:18:57 +0100 (GMT+0100)
Hi. As I posted before, and generally anyone agrees,
experimental code is needed to get LispOS started. I've done some
experimenting with some concepts that were discussed before. Here's
what I got:
I think that the best plataform to begin with is a bare Linux
kernel. So, I compiled a bare-bones, minimal Linux kernel (about 200k
compressed kernel vmlinuz) and a minimal filesystem with just /dev and
corresponding generic devices (MAKEDEV generic). Next, a lisp virtual
machine that dialogs directly with the kernel. So, I picked scheme48
and statically compiled with. Ok, it still uses libc statically, but
that could be stripped of later, and replaced for a scheme interface
to the linux syscalls -- a generic way of making this interface is
needed. Maybe something like parsing the *.h files and translating it
into a module structure. But right now, it's just a statically linked
scheme48 without dynamic linking (modify a #define in some .h
file). Then I put the vm and the bootstrap image on /lispos, and
configured lilo to boot with init=/lispos/scheme48vm. The thing is, it
boots ok, and starts scheme48 right away! (what a surprise 8-).
Anyway, this is a minimal LispOS 8-)
What remains to be done? Well, everything I guess. My first
needs were:
* adjust the keymap to pt;
* readline facility would be great;
* an editor is required -- something like emacs?
* a scheme to save stuff other than the bulk image dump;
* and of course, ways to mount stuff, put the / writtable, etc.
I'm curious about RScheme, but I wonder whenever it is as easy
to dettach from the rest of UNIX as scheme48 was. From what was here
discussed, I find RScheme much more appealing.
Regards,
--
*** Rodrigo Martins de Matos Ventura, alias <Yoda>
*** yoda@isr.ist.utl.pt, http://www.isr.ist.utl.pt/~yoda
*** Instituto de Sistemas e Robotica, Polo de Lisboa
*** Instituto Superior Tecnico, Lisboa, Portugal
*** PGP Public Key available on my homepage
*** Key fingerprint = 0C 0A 25 58 46 CF 14 99 CF 9C AF 9E 10 02 BB 2A