Skip to content

mars-research/atmosphere

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Atmosphere

Atmosphere is a proving ground for novel isolation techniques and formal verification, written in Rust.

Development Setup

We use Nix to manage development dependencies. Install Nix with the following command:

# Using https://github.com/DeterminateSystems/nix-installer
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install

First enter nix

nix develop

You can now build and run Atmosphere with cd kernel && cargo run.

Atmo

Atmosphere builds with atmo, a build system that extends Cargo. Run atmo help for more information.

Run verification

atmo verify

Boot on real hardware

  • Copy the bootable binaries. If you have built with debug mode, look for the below binaries under the debug directory instead of release.
sudo cp target/x86_64-unknown-none/release/aloader /boot/
cat target/x86_64-unknown-aloader/release/{kernel,dom0} | sudo tee /boot/atmo >/dev/null
  • Add menuentry to grub.cfg (/boot/grub/grub.cfg)
menuentry "Atmosphere" {
  set root=(hd0,msdos1)
  echo "Loading Atmosphere..."
  multiboot2 /boot/aloader
  module2 /boot/atmo atmo
  boot
}
  • Update grub and reboot to select Atmo from the grub menu
sudo update-grub && sudo reboot

TODO

Wire up IPI for killing threads and TLB flush.

Wire up hugepages.

Kill container (halfway there..).

Bring back verification for Kernel init().

Adjust triggers in ProcessManager (almost there).

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 9