Running Unix programs under LispOS

Mike McDonald
Fri, 02 May 1997 14:26:50 -0700

>Date: Fri, 2 May 1997 11:30:07 -0600
>From: "P. Srinivas" <>
>To: CsO 3335 <>
>Subject: Re: Running Unix programs under LispOS

>This is what I was also thinking. Instead of the horrible
>monolithic Linux kernal, we are better of the Hurd along with
>micro kernal.
>Another note: People are suggesting that we start with linux
>and slowly re-implement all the linux in LISP.
>Unix coded in LISP will still be UNIX not a LISPOS. 
>We should try not to duplicate all the garbage of Unix. We should
>start with small micro kernal or a nano-kernal (is there any such
>thing?) and provide a very simple and powerful OS interface.

  I don't believe anyone was seriously suggesting that we reimplement
Unix in Lisp. I certainly wasn't. The idea is to start doing useful
work today on the part that don't need direct OS support. As more and
more of the system is functional and there's a need, replace services
provided by the Unix kernel with Lisp based ones. Not ones that
provide identical interfaces but better ones in terms of what lisp
wants. As an example, networking. We can start today by implementing a
generic networking layer in lisp that works on top of the existing
Unix socket/streams interface. Lisp apps would then be written to use
and provide the generic networking services. Later, the reliance on
the Unix networking code code be replaced by lisp based code that was
more tightly coupled to the generic networking system, not just
providing lisp based sockets. In fact, the stack portion of the
generic networking system should be written so that multiple
networking protocols can be supported on an equal basis. Each of those
protocols should provide the same interface to the upper layers of the
generic networking system. When we replace the virtual memory system
of Unix, we're not going to substitute another VM system that does the
same thing only written in lisp. No, we're going to provide better
support for our lisp based needs.

>Unix compatibility mode may come later, if needed.
>Just some thoughts.

  I kind of see the timeline looking something like this:

  LispOS based upon Unix -> native LispOS w/o Unix -> native LispOS
with other OS compatibility, including Unix

  I'd guess a lot of people would avoid the middle step, but it's
necessary. But that can be limited to the die hard types. I believe we
need the Unix environment inorder for us to bootstrap the LispOS. It's
really nice to have things like editors, news readers, Email while
writing things like editors, news readers, and Email. It also allows
us to use more people's talents. Not everyone wants to hack the kernel
code. (I know, it's hard to believe!) While the kernel types work on
their thing, the apps types can work on their's. Then, when the kernel
is ready, maybe there will be something to run on it.

  Mike McDonald