LispOS directly on hardware or on Unix kernel?

Martin Cracauer
Tue, 29 Apr 97 22:13:28 +0200

Reginald S. Perry writes:
> >"Mike" == Mike McDonald <> writes:
> >   Well, I guess I'm in the third camp that wants a native PC based
> > system that's tailored to run LISP, not Smalltalk, not ML, not JAVA.
> > If someone wants to write emulators for those things in Lisp,
> > fine. I believe that yet another universal VM is neither a relevant
> > nor useful goal.
> I am in this camp also. I want to stick in a boot floppy that boots
> LISP/OS. This is also why I would disagree with implementing it on top
> of Linux. Having a lisp OS obviates the need for signals and all of
> the associated Unix crap. If you really want to avoid doing work at
> that level I would propose taking something like the Mach 4 server and
> implementing the OS as a service on top of that. But even then I would
> think that you mess up the advantages you get from implementing
> Lisp/OS directly on top of the hardware. Even NT had to connect
> certain parts of the OS directly to the machine and avoid the HAL and
> such. 

I certainly don't want a bytecode machine, too.

But I think your goal to set Lisp on top of the hardware is out of

The CPU interface and hardware drivers alone are reason enough. If you
don't like Unix sematics, you probably don't want to tangle with i386
and Adaptec 2940, not to speak of junk like Atapi CDROMs.

The same applies for Video card drivers. I see no other change to get
these than to run the X11 server of XFree86. 

If we need X11 anyway, we also need a Unix kernel with almost full
features. We wouldn't need to use any of the commandline X11 tools and
we don't need the X toolkit and other stuff that makes X11 ugly.

Leaving the GUI problem out, I think it is definitvly better to start
with a kernel we have source for (like FreeBSD or Linux) and add
replacements for those parts we don't like. You could do your own
messaging stuff instead of Unix signals. The FreeBSD VM is quite
programmable, Lisp-specific features (i.e. GC only of pages-in pages)
could be done quite easily.

I already talked to John Dyson, who implemented the FreeBSD virtual
memory system and he was quite interestedt to work with the "List
processing" guys to make "his" system the best quice. 

Talking of John's implementation, I would like to use a kernel like
FreeBSD's also for the reason of performance and matureness, too. The
FreeBSD VM several times faster than the NetBSD one, for example. Just
define a workload that causes a lot of paging and run it on both

I'd say we can't do that well without investing as much time as John
did. John is one of the most respected VM hackers and it took hom
years of his free-software time to implement this. Not to speak of all
the problems that have been seen and fixed with all free OSes.

I don't know what you are used to in the Unix world, but I think you
would be surprised how badly most of the key FreeBSD folks try to get
things right. They didn't invent the idea of ASCII streams to couple
commandline tools and they shoot a Posix spec to the moon on each
first sunday of a quarter. But what they do, what and how they modify
and reimplement in their system, is usually the best solution for the
problem at hand and not "worse-is-better".

They are C programmer (OK, most, one Modula-3 guy who implemented an
important Network service) and they won't change their system to be

But you can tak to them about what you think is right and even if it
doesn't fit their needs (what is likely given the differences in
language, runtime model, used tools), they usually get the idea what
the hell you are talking about. Most likely they are willing to give
your the assitance you need to make your own additions working on
FreeBSD and keep your sources in a way that future work FreeBSD
doesn't break it.

Martin Cracauer <>
Fax +49 40 522 85 36