You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
main 5952889359
Add spin lock and use for global VGA screen
2 months ago
.cargo Initial commit 3 months ago
isofiles/boot/grub Initial commit 3 months ago
ld Initial commit 3 months ago
scripts Initial commit 3 months ago
src Add spin lock and use for global VGA screen 2 months ago
.envrc Initial commit 3 months ago
.gitignore Initial commit 3 months ago
COPYING Initial commit 3 months ago
Cargo.lock Initial commit 3 months ago
Cargo.toml Initial commit 3 months ago
README.md Initial commit 3 months ago
flake.lock Initial commit 3 months ago
flake.nix Initial commit 3 months ago
i386-unknown-none.json Initial commit 3 months ago
i386-unknown-none.txt Improve Meson + Cargo integration 2 months ago
meson.build Add spin lock and use for global VGA screen 2 months ago
meson_options.txt Initial commit 3 months ago
shell.nix Initial commit 3 months ago

README.md

x86os

Environment Setup

Flakes

Nix with flake support is recommended.

nix develop

Legacy Nix

Not recommended, but fully functional.

nix-shell

Direnv

If you have direnv and Nix with flakes available, just do

direnv allow

and everything else will be taken care of.

Without Nix

Roughly these packages are required, the specific names vary from distro to distro.

rust
clang
nasm
qemu
grub2
xorriso
gdb
meson
ninja

Compiling

To setup a build folder run:

meson build -Drelease=<true/false>

to then build x86os run:

meson compile -C build

to run the resulting kernel run:

./scripts/run-in-qemu.sh build/x86os