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 kernel
Next, 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 nightly
You'll also need xargo. To get it:
$ cargo install xargo
You'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:
nasm
ld
grub-mkrescue
: you may also need to installxorriso
qemu-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=:0
You 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 bundle
You'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 run
This 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.