/arceos

An experimental modular OS written in Rust.

Primary LanguageRustApache License 2.0Apache-2.0

ArceOS

An experimental modular operating system (or unikernel) written in Rust.

🚧 Working In Progress.

Features & TODOs

  • Architecture: riscv64, aarch64
  • Platform: QEMU virt riscv64/aarch64
  • Multi-thread
  • Cooperative FIFO scheduler
  • VirtIO net/blk drivers
  • TCP net stack using smoltcp
  • File system
  • Compatible with Linux apps
  • Synchronization/Mutex
  • Interrupt driven device I/O
  • Async I/O
  • Kernel preemption
  • SMP

Build & Run

Rust apps

make ARCH=<arch> APP=<app> LOG=<log> NET=[on|off] FS=[on|off] run

Where <arch> can be one of riscv64, aarch64.

<log> can be one of off, error, warn, info, debug, trace.

<app> can be one of helloworld, memtest, exception, multitask, httpclient, echoserver. (See the apps/ directory)

C apps

make ARCH=<arch> APP=<app> LOG=<log> NET=[on|off] FS=[on|off] APP_LANG=c run

Design