Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tomaka/redshirt
🧑🔬 Operating system
https://github.com/tomaka/redshirt
kernel peer-to-peer rust wasm
Last synced: about 1 month ago
JSON representation
🧑🔬 Operating system
- Host: GitHub
- URL: https://github.com/tomaka/redshirt
- Owner: tomaka
- License: gpl-3.0
- Created: 2019-09-07T21:33:31.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2023-03-13T14:57:07.000Z (over 1 year ago)
- Last Synced: 2024-09-27T02:22:55.162Z (about 1 month ago)
- Topics: kernel, peer-to-peer, rust, wasm
- Language: Rust
- Homepage:
- Size: 9.42 MB
- Stars: 1,427
- Watchers: 36
- Forks: 37
- Open Issues: 104
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
The **redshirt** operating system is an experiment to build some kind of operating-system-like
environment where executables are all in Wasm and are loaded from an IPFS-like decentralized
network.See the `docs/introduction.md` file for an introduction.
# How to test
**Important**: At the moment, most of the compilation requires a nightly version of Rust. See also https://github.com/tomaka/redshirt/issues/300.
Your C compiler must be recent enough to be capable of compiling to WebAssembly. This is for example the case for clang 9. See also https://github.com/tomaka/redshirt/issues/257.You also need to install the `wasm32-wasi` target, as the Wasm programs are compiled for Wasi, and the `rust-src` component in order to build the standalone kernel.
```
rustup toolchain install --target=wasm32-wasi nightly
rustup component add --toolchain=nightly rust-src
```Building the freestanding kernel is then done through the utility called `standalone-builder`:
```
cd kernel-standalone-builder
cargo +nightly run -- emulator-run --emulator qemu --target x86_64-multiboot2
```# Repository structure
Short overview of the structure of the repository:
- `docs` contains a description of what redshirt is and how it works. Start with `docs/introduction.md`.
- `interfaces` contains crates that provide definitions and helpers for Wasm programs to use
(examples: `tcp` for TCP/IP, `window` for windowing).
- `kernel` contains the code required to run the kernel.
- `kernel-standalone-kernel` contains a utility allowing to run and test the standalone kernel.
- `programs` contains Wasm programs.# Contributing
Please note that so far this is mostly a personal project. I reserve the right to change anything
at any time, including the license.