RustForge

foundry

Foundry OS: the operating system built on the Rustbelt kernel

foundry / rust / rbrt / README.md
840 bytes ยท raw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# rbrt: the Foundry OS Rust runtime

`ulib.rs` is the tiny runtime every Foundry OS Rust program includes:
raw Rustbelt/Linux syscall wrappers, `print!`/`println!`/`eprintln!`, a
`brk` heap (so `Vec` and `String` work), the `_start` entry point that calls
the program's `fn main() -> i64`, and the panic handler.

For milestone M1 it is still included as a *module* (`#[path = ...] mod ulib;`),
exactly as in the kernel repo, so the programs compile unchanged. Milestone
M1b turns it into a real library crate (`#[macro_export]` macros,
`#[panic_handler]`, `#[global_allocator]`).

`build.rs` here is the build script shared by all packages: it adds
`-T rust/link.ld` to the link.

The kernel repo keeps its own frozen copy of `ulib.rs` for its ABI test
programs (hello, forktest, ...), so the two copies may drift apart; that is
intended.