x86-64 kernel in Rust
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
emu/hda
kernel
notes
rake
sysroot
targets
user
util/rlib_ir
vendor
verifier
.gitignore
.gitmodules
.travis.yml
README.md
Rakefile
appveyor.yml
rustfmt.toml

README.md

Avery operating system

Build Status

Avery is an operating system written in Rust designed around fast remote procedure calls and capability-based security. To achieve fast remote procedure calls on x86 it uses software isolated processes in a single address space. The isolation is done using an LLVM IR pass which transforms the IR into a form where it is trivial to prove isolation. This means that you currently need a LLVM based compiler (like clang or rustc) to compile code for this OS. The kernel has a unrelated verifier which ensures that any loaded code must be isolating, which means that the compiler stack does not need to be trusted.

Dependencies

  • git
  • curl
  • libiconv
  • bison
  • patch
  • diffutils
  • texinfo
  • libssl-dev
  • libtool
  • autoconf
  • automake
  • python
  • gcc
  • cmake 3.6
  • rake
  • ninja (optional)
  • qemu (optional)

Installing dependencies on Windows

  • Install and update MSYS2
  • All commands must be run in a MSYS2 MINGW shell
  • Run pacman -S ruby and then run rake deps_msys

Installing dependencies on OS X

  • Install command line tools, xcode-select --install
  • Using Homebrew
    • brew install git openssl cmake ninja qemu autoconf

Building

You can then build the kernel with rake. This will take a while as it builds LLVM, Clang, Rust and other things. rake qemu builds and runs the kernel in QEMU.