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 OS X, you might want to use this
script to get
them. You'll also need to set this in your ~/.cargo/config:
[target.x86_64-unknown-intermezzos-gnu]
linker = "/Users/yourusername/opt/bin/x86_64-pc-elf-gcc"Where yourusername is your username.
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.