mirror of
https://github.com/hexagonal-sun/moss-kernel.git
synced 2026-04-24 17:19:51 -04:00
Merge pull request #214 from FeltMacaroon389/FeltMacaroon389-patch-1
minor changes in consistency and formatting of terms
This commit is contained in:
24
README.md
24
README.md
@@ -7,18 +7,18 @@
|
||||
|
||||

|
||||
|
||||
**moss** is a Unix-like, Linux-compatible kernel written in Rust and Aarch64
|
||||
**moss** is a Unix-like, Linux-compatible kernel written in Rust and AArch64
|
||||
assembly.
|
||||
|
||||
It features an asynchronous kernel core, a modular architecture abstraction
|
||||
layer, and binary compatibility with Linux userspace applications. Moss is
|
||||
currently capable of running a dynamically linked Arch Linux aarch64 userspace,
|
||||
currently capable of running a dynamically linked Arch Linux AArch64 userspace,
|
||||
including bash, BusyBox, coreutils, ps, top, and strace.
|
||||
|
||||
## Features
|
||||
|
||||
### Architecture & Memory
|
||||
* Full support for aarch64.
|
||||
* Full support for AArch64.
|
||||
* A well-defined HAL allowing for easy porting to other architectures (e.g.,
|
||||
x86_64, RISC-V).
|
||||
* Memory Management:
|
||||
@@ -27,8 +27,8 @@ including bash, BusyBox, coreutils, ps, top, and strace.
|
||||
* Safe copy to/from userspace async functions.
|
||||
* Kernel and userspace page fault management.
|
||||
* Kernel stack-overflow detection.
|
||||
* Shared library mapping and relocation
|
||||
* `/proc/self/maps` support
|
||||
* Shared library mapping and relocation.
|
||||
* `/proc/self/maps` support.
|
||||
* Buddy allocator for physical addresses and `smalloc` for boot allocations
|
||||
and tracking memory reservations.
|
||||
* A full slab allocator for kernel object allocations, featureing a per-CPU
|
||||
@@ -76,7 +76,7 @@ x86) before running on bare metal.
|
||||
waker sets.
|
||||
* Sync Primitives: `spinlock`, `mutex`, `condvar`, `per_cpu`.
|
||||
* Test Suite: A comprehensive suite of 230+ tests ensuring functionality across
|
||||
architectures (e.g., validating Aarch64 page table parsing logic on an x86
|
||||
architectures (e.g., validating AArch64 page table parsing logic on an x86
|
||||
host).
|
||||
* Userspace Testing, `usertest`: A dedicated userspace test-suite to validate
|
||||
syscall behavior in the kernel at run-time.
|
||||
@@ -84,7 +84,7 @@ x86) before running on bare metal.
|
||||
## Building and Running
|
||||
|
||||
### Prerequisites
|
||||
You will need QEMU for aarch64 emulation, dosfstools and mtools to create the
|
||||
You will need QEMU for AArch64 emulation, as well as dosfstools and mtools to create the
|
||||
virtual file system.
|
||||
|
||||
```bash
|
||||
@@ -93,10 +93,10 @@ sudo apt install qemu-system-aarch64 dosfstools mtools
|
||||
|
||||
Additionally you will need a version of the [aarch64-none-elf](https://developer.arm.com/Tools%20and%20Software/GNU%20Toolchain) toolchain installed.
|
||||
|
||||
#### Any X86-64 Linux OS
|
||||
To install aarch64-none-elf on any os, download the correct release of `aarch64-none-elf` onto your computer, unpack it, then export the `bin` folder to path (Can be done via running
|
||||
#### Any x86_64 Linux OS
|
||||
To install `aarch64-none-elf` on any OS, download the appropriate release of `aarch64-none-elf` onto your computer, unpack it, then export the `bin` directory to PATH (Can be done via running:
|
||||
|
||||
`export PATH="~/Downloads/arm-gnu-toolchain-X.X.relX-x86_64-aarch64-none-elf/bin:$PATH"`, X is the version number you downloaded onto your machine.
|
||||
`export PATH="~/Downloads/arm-gnu-toolchain-X.X.relX-x86_64-aarch64-none-elf/bin:$PATH"`, where X is the version number you downloaded onto your machine.
|
||||
|
||||
in your terminal.)
|
||||
|
||||
@@ -105,7 +105,7 @@ There is experimental support for macOS in the scripts/mac-experimental folder.
|
||||
|
||||
#### NixOS
|
||||
|
||||
Run the following command
|
||||
Run the following command:
|
||||
|
||||
```bash
|
||||
nix shell nixpkgs#pkgsCross.aarch64-embedded.stdenv.cc nixpkgs#pkgsCross.aarch64-embedded.stdenv.cc.bintools
|
||||
@@ -159,7 +159,7 @@ moss is under active development. Current focus areas include:
|
||||
|
||||
## Non-Goals (for now)
|
||||
|
||||
* Binary compatibility beyond aarch64.
|
||||
* Binary compatibility beyond AArch64.
|
||||
* Production hardening.
|
||||
|
||||
Moss is an experimental kernel focused on exploring asynchronous design and
|
||||
|
||||
Reference in New Issue
Block a user