mikel evins <mikel <at> evins.net>
2004-02-03 20:17:04 GMT
The reason I downloaded Movitz and joined the list is that I'm
interested in OS development in Lisp. That interest has its roots in
two experiences: first, working with a Symbolics machine and Genera in
the late 80s; second, being a programmer working on an operating system
at Apple in the early nineties. The operating system was for a new
platform that eventually became the Newton, and everything except the
microkernel and the QuickDraw library were written in a new programming
language called Ralph; Ralph was later renamed Dylan, and later than
that its syntax was changed to something more familiar to C
programmers, but Ralph was originally just Scheme plus CLOS.
Working with Genera was a lot of fun, and quite different from any
other OS I've used. Working on the Dylan version of Newton's OS was
even more fun.
One of the things that the two had in common was that they were both
designed to be Lispy; that is, the abstractions and interfaces provided
were designed to be natural to the Lisp programmer.
There's a lot of code and a lot of documentation available about how to
write operating systems, but nearly all of it assumes that system
programmers will use C, and they are organized around that assumption.
If you assume that the system-programming language is Lisp and you
think about system programming in Lisp, things turn out a little
To take one example, I have experience working with Apple's QuickDraw
libraries on five different processors (6502, 68K, PowerPC, x86, and
ARM) and four operating systems (Apple IIGS, MacOS, Windows, and
NewtonOS). The versions of QuickDraw whose API was presented in C were