apps: Built-in KeyOS apps that are started on demand from the launcher. Each is a Rust binary crate, including asrcdirectory, and auidirectory that defines the Slint UI. Each app also includes localization dictionaries underi18n.os: KeyOS system services that run persistently. These typically include a binary and a library crate, and the latter provides a simple interface for sending KeyOS messages to the service. Most typical cross-app interactions are coordinated through gui navigation, including file selection and QR scanning.xtask: The image builder for the KeyOS system and apps. All options can be viewed withcargo xtask help, but most commonly used options are found in theJustfile.xous: The kernel KeyOS is built on.server: The interface definitions for KeyOS server messages. These can be synchronous or asynchronous requests, or subscriptions. Servers will typically define a Message, implement one of the message traits for it, and a handler, then include the message in the array returned by itsmessagesmethod.- Archive: Allows processes to send allocated memory sized as multiples of 4096 to other processes. This is useful from sending small structs with various parameters to sending large pieces of data for processing.
- Scalar: Allows processes to send up to 4 usize values.
- LendMut: Allows processes to lend others allocated memory in multiples of 4096 to other processes for processing and modification.
- Event: Allows processes to subscribe to event messages from other processes.
The [cosign2] tool is required to be installed in order to sign the OS image.
Refer to the cosign2 folder for information on how to install the tool and prepare the keys.
cargo install --path imports/cosign2/cosign2-binRun the simulator from the root of the repo with just sim. See DEVELOPMENT.md for info about dependencies.