intermezzOS is a hobby operating system. This repository is for its kernel. See the website for more.
Also, feel free to join us at #intermezzOS on Freenode’s IRC network, if you
want to chat.
To build intermezzOS, first you'll need the source:
$ git clone https://github.com/intermezzOS/kernel
$ cd kernelNext, make sure you're using nightly Rust, and that you have the source
code installed as well. The official way to do this is with the rustup
tool from Rust's website.
$ rustup override add nightly
$ rustup component add rust-src
$ rustup update nightlyYou'll also need xargo. To get it:
$ cargo install xargoYou'll also need some other things installed on your system; how you get them depends on what system you're running. Consult their documentation to figure out exactly how to install:
nasmldgrub-mkrescue: you may also need to installxorrisoqemu-system-x86_64
If you're on Bash On Windows, you'll need the grub-pc-bin package, as well as
an X server of some kind, like
xming. You'll also need to run
this:
$ export DISPLAY=:0You can put it in your ~/.bashrc file to have it automatically work on each
session.
If you're on macOS, you can install the dependencies using Homebrew with the following commands:
$ brew tap homebrew/bundle
$ brew bundleYou'll also need to set this in your ~/.cargo/config:
[target.x86_64-unknown-intermezzos-gnu]
linker = "/usr/local/bin/x86_64-pc-elf-gcc"After all that setup, it’s as easy as:
$ make runThis will:
- Build libcore for our x86_64-unknown-intermezzos-gnu target with Xargo
- Build the Rust code with Cargo
- Compile the bit of assembly needed to boot
- Link it all together
- Build an ISO out of it all
- Run that ISO in qemu
This project is dual licensed under Apache2/MIT. See the two LICENSE-* files
for details.
The intermezzOS project has a Code of Conduct, please observe it.