Live data from Hacker News

Lisp Operating System (2015)

metamodular.com

11–20 of 63 posts

Re: Lisp Operating System (2015)

#11
post #8
post #5

I’m all for thinking outside the box but many of the complaints described in that are blamed on UNIX when in fact they were also adopted by a multitude of other non-UNIX platforms and reason they became common was because it simply made more sense for general computing. For example their “file system” (for want a better description) approach was tried on an IBM mainframe and it proved more cumbersome to maintain than…

That was my take away as well. Some interesting ideas - most of which aren't new - but the ideology felt very biased. To a fault even. I would still love to see a working version of this. Or even just a more traditional general computing OS but one which used FP (not necessarily LISP) as its primitive.

This article I read yesterday has one interesting take on what an OS designed on modern programming principles could look like. It has a loose treatment of technical FP terms, but the insights behind it are at least thought-provoking.

https://medium.com/@reinman/monoids-to-groupoids-492c3510511...

I believe we're in for a redesign of OS architectures, now that the 50's assumption of a single machine with a single OS kernel running all programs (or the 60's equivalent of several few mainframes communicating through a slow network) is no longer the main paradigm.

Re: Lisp Operating System (2015)

#13
post #12

The criticisms may or may not be correct, but I fail to see why a Lisp (and not another language) would be the answer to all of the issues here.

The points for Common Lisp are:

1. It is ANSI standardized and mature.

2. Common Lisp programs are safe. Some implementations violate safety for performance reasons, but this one certainly won't.

3. Common Lisp has the best error handling mechanism that I know of (Conditions, handlers and restarts).

4. The language is programmable, both at the syntax level (Macros) and at the object level (CLOS with the metaobject protocol). So new ideas from other programming languages can often just be ported.

5. The language has been designed for interactivity and safe incremental redefinition.

6. Lisp has already been used very successfully for operating system development (https://en.wikipedia.org/wiki/Lisp_machine).

This makes it pretty much the ideal choice for such a project.

Re: Lisp Operating System (2015)

#14
post #9

Summary: - We don't need separate processes if the language we use is inherently safe (e.g., modern Common Lisp). - Without process isolation, it is possible to share large, complicated and possibly mutable data structures (graphs, arrays, user-defined objects) system-wide. - Once it is possible to cheaply share and communicate arbitrary data structures, it is pointless to maintain designated 'file system'. - Not hav…

Should mention that Mezzano OS satisfies most of these design points and already runs.

https://github.com/froggey/Mezzano

Re: Lisp Operating System (2015)

#15
post #3

For the incremental development the author describes, you can do that atop any GNU/Linux host platform on which your CL implementation runs. To play with a bootable user experience, before you've replaced the host kernel and device support, you can strip down something like Debian Live. I previously did this for a Racket-based living room appliance project. A simpler example, without Racketisms, that uses only 2 shel…

> I'm also a fan of a variation on the author's approach: have your better/different language get a foothold on a working GNU/Linux system, alongside traditional apps, in a system the user could use as their daily driver, and incrementally replace all of userland.

That's incidentally what Emacs is to many of its users (myself included).

Re: Lisp Operating System (2015)

#16
post #9

Summary: - We don't need separate processes if the language we use is inherently safe (e.g., modern Common Lisp). - Without process isolation, it is possible to share large, complicated and possibly mutable data structures (graphs, arrays, user-defined objects) system-wide. - Once it is possible to cheaply share and communicate arbitrary data structures, it is pointless to maintain designated 'file system'. - Not hav…

Dan Ingalls wrote similarly in his Design Principles Behind Smalltalk [1], noting that "An operating system is a collection of things that don't fit into a language. There shouldn't be one."

[1] https://www.cs.virginia.edu/~evans/cs655/readings/smalltalk....

Re: Lisp Operating System (2015)

#17
This document talks a lot about deficiencies of the unix way, yet fails to give any concrete examples of advantage of the proposed new way where everything runs in the same address space, uses object storage, and is allowing users to run (!) "only code that has been produced from the high-level notation of the language".

I agree that there are technical problems with interoperability of programs and partially this may be due to the unix way. But the article does not analyze this and it is not clear that such a radical change is a good way to solve those problems. Even if theoretically yes, there are practical things to consider, such as the insane amount of work needed to switch. Perhaps the author just likes Lisp and has a solution in need of a problem.

Re: Lisp Operating System (2015)

#18
post #14
post #9

Summary: - We don't need separate processes if the language we use is inherently safe (e.g., modern Common Lisp). - Without process isolation, it is possible to share large, complicated and possibly mutable data structures (graphs, arrays, user-defined objects) system-wide. - Once it is possible to cheaply share and communicate arbitrary data structures, it is pointless to maintain designated 'file system'. - Not hav…

Should mention that Mezzano OS satisfies most of these design points and already runs. https://github.com/froggey/Mezzano

I wanted to also mention Mezzano - really easy to play with using VirtualBox.

A bit off topic, but when I miss the environment of the Xerox 1108 Lisp Machine that I had from 1982 to about 1987, I find the closest thing today that offers a similar experience is Pharo Smalltalk.

Re: Lisp Operating System (2015)

#19
Great write-up and I agree with many points. I don't think the 'Lisp language' is the key point here though, but the other OS properties like a single level store and composition methods richer than byte arrays.

Would be nice if the author referenced historical systems that overlap these ideas.

One is the Symbolics Genera system with 'data level integration' so apps shared rich data structures instead of uninterpreted bits. https://www.ifis.uni-luebeck.de/~moeller/symbolics-info/gene...

Another is Appolo Domain/OS which had a single level store: http://bitsavers.org/pdf/apollo/014962-A00_Domain_OS_Design_...

Post reply on HN