diff --git a/README.md b/README.md index 72deded7..eb3c62ff 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,10 @@ Rust Unix-like operating system. Main features ------------- -* Architecture support: - * [aarch64](/kernel/src/arch/aarch64) - * [x86_64](/kernel/src/arch/x86_64) - * [i686](/kernel/src/arch/i686) (Pentium Pro and later) +* Architecture support: + * [aarch64](kernel/src/arch/aarch64) + * [x86_64](kernel/src/arch/x86_64) + * [i686](kernel/src/arch/i686) (Pentium Pro and later) * Core features: * Kernel/userspace preemptive multithreading * Kernel-space multitasking with `async`/`await` runtime @@ -25,14 +25,14 @@ Main features * devfs * ext2 * Userspace features: - * [Kernel-user ABI](/lib/abi-def/yggdrasil.abi) generated from a rust-like description language + * [Kernel-user ABI](lib/abi-def/yggdrasil.abi) generated from a rust-like description language * Sanitized system calls better suited for use in Rust * Binary formats: ELF + `#!/...` shebangs - * C compatibility through a [custom Rust libc](/userspace/lib/ygglibc) + * C compatibility through a [custom Rust libc](userspace/lib/ygglibc) * Userspace multithreading * Synchronization primitives through futex-like interface * Unix-like signals and exceptions - * [Dynamic loader](/userspace/dyn-loader) for linking with shared libraries + * [Dynamic loader](userspace/dyn-loader) for linking with shared libraries * Hardware features: * PCI Express devices * NVMe drive support (read/write, currently x86_64 only, due to lack of MSI-X support on aarch64/i686). @@ -73,7 +73,7 @@ Prerequisites: * ~40G of free disk space for a full build * Patience -**NOTE** Full OS build requires you to build the `*-unknown-yggdrasil` +**NOTE** Full OS build requires you to build the `*-unknown-yggdrasil` Rust toolchain, which may take quite a while, so be prepared. Steps: @@ -103,14 +103,14 @@ Steps: ``` 2. Run `cargo xtask toolchain` to fetch, build and link the toolchain - + **NOTE** if toolchain fetch fails for some reason, try cloning directly from `https://git.alnyan.me/yggdrasil/yggdrasil-rust.git` with appropriate branch. 3. Run `cargo xtask` to build the OS. -Once the OS has been built, you can run it in QEMU by executing +Once the OS has been built, you can run it in QEMU by executing `cargo xtask qemu`. For more `xtask` commands, see `cargo xtask --help`. General plans (in no particular order) @@ -127,6 +127,6 @@ In addition to eternal code cleanup, I've been doing quite a lazy job at that la Navigation ---------- -* Kernel: [`/kernel`](/kernel) -* Userspace: [`/userspace`](/userspace) -* ABI definitions: [`/lib/abi-def`](/lib/abi-def) +* Kernel: [`kernel`](kernel) +* Userspace: [`userspace`](userspace) +* ABI definitions: [`lib/abi-def`](lib/abi-def)