Skip to content

3541/syzygy

Repository files navigation

syzygy

Boot screenshot

A kernel in Rust. Currently does very little other than boot and allocate memory. This is the second iteration of the project. See the old branch for the previous version, which currently is more featureful.

Building

Dependencies:

  • Rustup or a recent Rust nightly toolchain with the rust-src component.
    • The miri component is optional to build, but required for the test suite.
  • GHC.
  • Shake.
  • Make.
  • A C compiler.

Before doing anything, ensure all submodules are present and up to date. If this is the first build, run a git submodule update --init --recursive. When subsequently pulling the repository, make sure to use git pull --recurse-submodules.

The build system is written using Shake and requires a Haskell toolchain. The build script at scripts/shake.sh provides a convenient interface to the build system, recompiling it if necessary. Any arguments to the script are forwarded to the build system.

To build the kernel, run ./scripts/shake.sh. To run it in QEMU, simply run ./scripts/shake.sh run.

Build options, including kernel features, build targets, and QEMU options can be configured in cfg/*.cfg. shake.cfg is the currently-active configuration.

Inspirations include, in no particular order:

Releases

No releases published

Packages

No packages published