killian
bd9cb4e8b7
|
12 months ago | |
---|---|---|
.. | ||
01 | 12 months ago | |
README.md | 12 months ago |
README.md
What is this?
This is the operating system that powers the 01.
No, I mean what's this folder?
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.
Setup & Usage
Clone this repo, then run OS/01/start.sh
.
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:
- Set up the language model
- Set up the interpreter
- 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:
- Be a fullscreen app for the user to use 01
- Turn the user's speech into text and send it to "/"
- Turn the interpreter's text into speech and play it for the user
Changes to Linux
We need to make the following changes:
- Modify the bootloader to just show white circle on black
- Auto start the start script,
start.sh
- Put detectors everywhere, which will put LMC Messages from the computer into
/01/core/queue
- (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".