# Bootleg OS
An experimental OS, ideally written in Moonshine
###### tags: `sketchdance`
Bootleg is my idea for a tiny, personal operating system. It is inspired by:
* [STEPS Toward the Reinvention of Programming](http://www.vpri.org/writings.php), i.e., the idea of an OS + core apps in < 30,000 lines of code
* [xv6](https://pdos.csail.mit.edu/6.828/2019/xv6.html) A simple unix-like OS
* [xv6, the good parts](/6eCvuYMSSuiOaSRLebjV2Q)
* [A constructive look at TempleOS](http://www.codersnotes.com/notes/a-constructive-look-at-templeos/)
* [TempleOS, the good parts](/aQIxqkd1Ro6eSa8TjIQcig)
* [Plan 9 / 9Front](http://fqa.9front.org/fqa0.html#0.1.1.1)
* [Mercury OS](https://scribe.rip/introducing-mercury-os-f4de45a04289) A designer re-thinks the OS
* [Collapse OS](http://collapseos.org/) An utterly minimal OS to run on scavenged hardware
* [Dusk OS](https://git.sr.ht/~vdupras/duskos) Collapse OS's bigger sibling
In addition to wanting to have my own personal OS to work in, hopefully productively, I want to make sure that Moonshine can also compile and build system of this complexity "from the ground up"
## Rendering the OS obsolete
Been talking with Azlen and some themes keep emerging:
* Scopeware / Lifestreams
* OpenDoc
* OLE
* A runtime that can eventually become the OS
* Detaching how systems look/behave from what they do, allow both to be customized independently
* A substrate like Box or DDOM so data is transparently shared among all my devices and also backed up / versioned
* Keep it simple
* Probably the web at first
* Data loosely coupled with transforms as needed. Something like XML or JSON where additional data can be layered on without breaking.
* Implement 80/20. A JPEG interpreter shouldn't need every edge case of the spec, but when it hits something unknown it can send that to a translator (a server that *does* know the edge cases) and get a simpler version back.
* Never say that we're rendering the OS obsolete out loud