pull/1/head
killian 12 months ago
parent a15816e45e
commit e12ef87f2f

@ -1,11 +1,48 @@
# 01OS
# What is this?
This folder contains everything we would change about Ubuntu. A folder here represents a folder added to `root`.
This is the operating system that powers the 01.
# Plan
# No, I mean what's this folder?
1. We modify the bootloader to show a circle.
2. We modify linux so that the primary display is a virtual display, and the display the user sees is the secondary display.
3. We make a fullscreen app auto-start on the secondary display, kiosk mode chromium, in /01/app/index.html.
4. We also make it so that 01/core/main.py is run on start-up. This is the interpreter.
5. We put monoliths around the system, which put information into /01/core/queue.
It's the `diff` between 01OS and Ubuntu.
01OS should be a customized version of Linux. Ubuntu is popular, stable, runs on lots of different hardware. **(open question: Should this be Xubuntu, which is lighter? or something else?)**
We want to _build on_ Ubuntu by customizing the stable branch programatically, not by forking it — which would mean we'd have to maintain the underlying OS, merge in security patches, etc. Yuck.
This folder contains everything we want to change from the base Ubuntu. A folder here represents a folder added/modified at the `root`. You can think of it like the `diff` between 01OS and Ubuntu.
I imagine we'll use something like Cubic to then press this + Ubuntu into an ISO image.
# Structure
### `start.sh`
The start script's job is to start the `core` and the `app` (in full-screen mode).
### `/core`
The `core`'s job is to:
1. Set up the language model
2. Set up the interpreter
3. Serve the interpreter at "/"
### `/app`
The `app`'s job is to be the interface between the user and the interpreter. This could be text only, audio, video, who knows.
For the first version, I think we should just handle audio in/out. So the `app`'s job here is to:
1. Be a fullscreen app for the user to use 01
2. Turn the user's speech into text and send it to "/"
3. Turn the interpreter's text into speech and play it for the user
### Changes to Linux
We need to make the following changes:
1. Modify the bootloader to just show white circle on black
2. Auto start the start script, `start.sh`
3. Put detectors everywhere, which will put [LMC Messages](https://docs.openinterpreter.com/protocols/lmc-messages) from the computer into `/01/core/queue`
4. (open question: should we do this? do we want the first 01 to be ready for GUI control?) Make the display that's shown to the user (and filled with the `app`) the _secondary_ display. The primary display will be a normal Ubuntu desktop, invisible to the user. Why? So the interpreter can control the primary display "under the hood".

Loading…
Cancel
Save