Skip to content

hhu-bsinfo/D3OS

Repository files navigation

A new distributed operating system for data centers, developed by the operating systems group of the department of computer science at Heinrich Heine University Düsseldorf

Requirements

For building D3OS, a rust nightly toolchain is needed. To install rust use rustup:

rustup toolchain install nightly
rustup override set nightly

The toolchain nightly-2024-12-02 is confirmed to work. If you are having problems with new versions, try:

rustup toolchain install nightly-2024-12-02
rustup override set nightly-2024-12-02

To run the build commands cargo-make is required. Install it with:

cargo install --no-default-features cargo-make

Furthermore, the following packages for Debian/Ubuntu based systems (or their equivalent packages on other distributions) need to be installed:

apt install build-essential nasm wget qemu-system-x86_64

Build and Run

To build D3OS and run it in QEMU, just execute:

cargo make --no-workspace

To build a release version of D3OS (much faster) and run it in QEMU, just execute:

cargo make --no-workspace --profile production

To only build the bootable image d3os.img, run:

cargo make --no-workspace image

Debugging

In a terminal with gdb

Open a terminal and compile and start D3OS in qemu halted by gdb with the following commands:

cargo make --no-workspace clean
cargo make --no-workspace debug

Open another terminal and start gdb with:

cargo make --no-workspace gdb

This will fire booting D3OS and stop in boot.rs::start.

Setting a breakpoint in gdb:

break kernel::naming::api::init

For further commands check GDB Quick Reference.

Creating a bootable USB stick

Using towboot

D3OS uses towboot which is already installed after you have successfully compiled D3OS.

Use following command (in the D3OS directory) to create a bootable media for the device referenced by /mnt/external

$ towbootctl install /mnt/external --removable -- -config towboot.toml

Using balenaEtcher

Write the file d3os.img using balenaEtcher to your USB stick.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published