Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Reimagining Apple's Bauhaus OS (2021) (mikelevins.github.io)
6 points by mepian on June 15, 2022 | hide | past | favorite | 4 comments


The thoughts of this article resonates with me. For the past few years I've been wanting to create a desktop operating system that fully embraces component-based software, kind of like an updated version of OpenDoc for the modern era, and also eliminates the dichotomy between programmer and user, much like Lisp machines, Smalltalk environments, and the original vision of Unix.

Originally I was thinking about creating some type of modern Lisp or Smalltalk desktop environment in the spirit of Lisp machines and Smalltalk VMs such as Smalltalk-80 and Squeak. In fact I considered doing all the work inside Pharo or Squeak, though I'd like to code in Common Lisp. However, lately I've come to embrace Stephen Kell's paper "Unix, Plan 9 and the Lurking Smalltalk." I believe a system that is widely used is inevitably going to be a multi-language one, because different languages are most appropriate for different problems. For example, even though Unix has been implemented in C for most of its life, software written for Unix is written in a variety of languages. I'm thinking that instead of building a system entirely around Lisp or Smalltalk, I build a system, possibly leveraging the ideas of Plan 9, where processes are highly reflective and are capable of metaprogramming, but protocols instead of language constructs are used for communication, and facilities for supporting reflection and metaprogramming are done at the protocol level instead of the language level. While it may not be as elegant as Lisp- or Smalltalk-all-the-way-down, it will provide most of the same features.

The hardest part is finding the time to do all of this, since I'm busy with a full-time job and other hobbies. But hopefully I'll be able to work on this piecemeal over the next few years.


I'm playing along similar lines as the OP.

Using Linux as a base avoid a whole lot of code that is basically uninteresting to me (eg, drivers). And using Python (in my case) makes prototyping ideas quick and easy.

I've defined a "pseudo-kernel" API, which is implemented either using the Linux kernel and/or C libraries or uses various (small) services to emulate other functionality that would be in the kernel, if (or when) I end up writing it.

I can deploy to a Pinephone, a Raspberry Pi, or a PC trivially, and I can mostly test things on my laptop under macOS, which makes for a fairly productive development cycle.

Which means my few hours a week generally progresses things meaningfully, rather than being bogged down in the mechanics.


Thanks for the mention of "Unix, Plan 9, and the Lurkibg Smalltalk"... I hadn't seen it before.

I've been thinking a lot about Plan 9 lately, but undertaking a new implementation is almost certainly beyond me.

Previous Hacker News discussion of the paper:

https://news.ycombinator.com/item?id=7719685


No mention of the Dylan programming language in the article.

https://en.m.wikipedia.org/wiki/Apple_Dylan

Bauhaus OS was new to me.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: