Egdorf’s new Lisp Machine (March 18, 2007)
H.W. Egdorf has a proposal for something near to my heart:
The Unix system has always had its user-space look and feel defined by the Init process (typically in the program file /etc/init) which spawns and defines the configuration of the normal expected Unix environment. The development described here proposes to replace this set of user-level processes with a Lisp system. This Lisp-based environment will then be used as a new process to configure and define an environment similar to the Lisp Machine's in the user space provided by the Linux kernel.
I laud the goal, but I question the path. Yes, there are real advantages to intercepting init. You get to reuse the Linux kernel, which should be a perfectly fine kernel for something like a Lisp Machine, and you can reuse the Lisp Machine design for your reimplementation.
However, the next step requires an ugly choice. If you try to stay true to the Lisp Machine design, then you get the advantage of using a tried and true design, but you have a lot of reimplementation to do, and you will end up with an old system that predated the rise of the Internet.
Better, you can try to design an entirely new set of low-level utilities. This has the downside of being a from-scratch design, and of require quite a lot of work before you have anything you can really use. However, this approach is doable. It looks a lot like designing a new Linux distribution.
My thoughts have always been, though, to implement hacker’s OS by intercepting at a higher level: the user shell. I mean “shell” in a general sense, as that part of the software that interacts with the user, and thus I would include web browsers, window managers, and so on as shells. If you write a shell, then you can start modestly and then progressively write and incorporate more tools in a Lisp Machine style. This approach is just as powerful in the end, and it avoids a lot of costly mis-prioritized design, and it has the advantage that you get to play immediately.
So, I think of a hacker’s OS as starting with something like Emacs, or Squeak plus Command Shell.
Anyway, I wish Egdorf the best of luck. If he does no more than make a Linux distribution with Lisp at the core, that would be a marvelous step forward for personal operating systems.