A successful lisp machine?

Harvey J. Stein abel@netvision.net.il
Wed, 30 Apr 1997 02:40:33 +0300


Martin Cracauer writes:
 > Harvey Stein wrote:
 > 
 > [...]
 > > I thing the best bet is to:
 > > 
 > >    1. Start with Linux (or one of the free BSDs for that matter) + a
 > >       lisp or scheme.
 > >    2. Write a loadable kernel module and/or the kernel patches needed
 > >       so that the lisp side doesn't have to fight the operating system.
 > 
 > Do you want to put the Lisp system in the kernel or a LKM?
 > 
 > Or just the "support" stuff such as memory tuning interfaces to
 > synchronice paging and GC and or replacement for the siggnal
 > messaging mechanism? 

Well, I don't know about *me* putting it in... ;-).  But I think it's
a fairly subtle problem to decide exactly what hooks need to go into
the kernel proper, what should go in as a kernel module, and what
should stay in user space.  Some of the issues, as I see them, are:

   -I suppose one needs to put enough in to make Lisp perform well and
    interact well with libC, libraries written in C in general, and
    the kernel system calls themselves.
   -If the changes aren't *too* big, one might be able to get them
    folded into the official kernel release.
   -If the changes *are* big, one might be able to get a minimal set
    of hooks into the official kernel release, and put most of the
    needed code into a loadable kernel module.  The dosemu people
    have been known to do something along these lines.
   -If everything that's needed can be done in a loadable kernel
    module, then one doesn't need to convince any kernel developers
    that one's changes should get folded into the source tree - just
    distribute the module separately.
   -Since kernel memory is nonpagable, one typically wants to do as
    much as possible in user space so that memory can be better
    managed.  I hear that system call overhead in Linux is fairly low,
    so this shouldn't imply much of a performance penalty.

In any case, I'd expect that 

   a) it'd be difficult to get a full Lisp system into the official
      kernel sources, and 
   b) it probably wouldn't be so desirable anyway.

So, the answer to your question is that I was mostly thinking of using
a loadable kernel module for the support stuff, and begging the kernel
developers to add whatever additional hooks are needed by said
module.

-- 
Harvey J. Stein
Berger Financial Research
abel@netvision.net.il