path to lispos ???
Rainer Joswig
joswig@lavielle.com
Fri, 20 Mar 1998 01:56:00 +0100
At 15:07 19.03.98 -0500, you wrote:
>On a purely social level, I think that any project trying to design an
>operating systems from scratch over the Internet is likely to fail.
>Copying an OS is simple:
You could try to implement something along the lines of the
Interlisp environment (this already exists as an emulation
for the PC) or the Lisp machines of MIT heritage
(LMI Lambda, TI Explorer, Symbolics, ...). But this
is difficult. You could also look at Apple's now defunct Newton OS.
>hundreds of potential volunteers. It is much better to clone something
>that someone else has already designed (as in Linux).
Yes, you are right on this one. But this is also one of
the **************big************* weaknesses of Linux:
it is just a copy. (A copy of something I'm not a particular
fan of.)
Some random thoughts:
- make an overview of what is freely available for Lisp
(implementations, GUI code, applications, tools, ...).
- take care of the public available Lisp code of choice.
The best start for a CL-based system currently is CMU CL, IMHO.
- document. Document. DOCUMENT. ****DOCUMENT****!!!!!!
- brush up code that is available and desirable, but not actively
maintained (defsystem, UIMS code, ...).
- set up a web site: www.lispos.org . Don't use
http://somemachine.somedepartment.someuniversity.edu//~whoever/cant-remember/obscure.html
Put everything you have well documented on the web site. You can
not afford to lose people by bad documentation (GUILE currently has
no real documentation - a big mistake). The Symbolics Lisp machine
had very good documentation. Don't care less.
- identify people with time. Assign responsibilities (takes care about the docs,
ensures the web site, maintains the file server, compares the
implementations, ...)
- write a position paper. Circulate widely. Try to get donations (machines,
source, man power, ...). Provide regular updates on the project
state. Remind people every month/week about this project. Every
CS student should know about it.
- start implementing an interface (telnet server with vtxxx, CL-HTTP
access, X-based GUI (with editor, listener, inspector, command interpreter,
backtrace, HTML browser, ...), ...).
Maybe something along the lines of a CL-based Emacs-environment. Then
the Lisp development system will also be everybody's favorite
editor environment.
- Implement a CL-HTTP-based chat system for the developers.
- implement extensive introspective documentation access
(class graphs, package overviews, method overviews, apropos,
describe, documentation, ...)
- what about storing and retrieving objects?
- start implementing TCP/IP services
-- write a mail server (SMTP, POP, IMAP).
-- write a pop mail client.
-- write a DNS server
-- write a DNS client
- document. Document. DOCUMENT. ****DOCUMENT****!!!!!!
- write a file browser (like the Mac finder, ...).
- Start porting packages (SK8, ...).
- implement a more sophisticated defsystem (with patches, CLOS-based,
versions, access rights, web interface, ...).
- Reimplement C-based software in Lisp. Make the code clearer and
better documented (easy).
- develop access methods to databases.
- start writing a kernel.
- memory allocation
- process scheduling
- security
- develop a file system
...