42-archive/kernel-rs
2019-01-16 22:30:06 +01:00
..
mk pci first commit 2019-01-16 22:30:06 +01:00
multiboot2-elf64@32552947aa multiboot crate update 2018-04-12 14:31:58 +02:00
src pci first commit 2019-01-16 22:30:06 +01:00
x86@229c4acbbe timer done 2018-06-06 16:59:16 +02:00
.gitignore Merge branch 'master' of https://github.com/jzck/kernel 2018-02-12 16:25:45 +01:00
.gitmodules modules https 2018-08-24 23:53:00 +02:00
.travis.yml travis and readme 2018-02-21 15:52:44 +01:00
Cargo.toml it compiles, update for rust 2018 2019-01-15 23:16:36 +01:00
Makefile it compiles, update for rust 2018 2019-01-15 23:16:36 +01:00
README.md it compiles, update for rust 2018 2019-01-15 23:16:36 +01:00
x86-bluesnow.json switched qemu to qemu-system-i386, even though it doesnt change anything useful 2018-05-17 16:46:02 +02:00
Xargo.toml heap allocator in place, no free yet 2018-03-12 17:48:24 +01:00

Kernel from scratch (KFS) series of projects at Ecole 42 !

documentation

building

git submodule udpate --init

  • nasm compiles the bootcode
  • ld links the bootcode and rust binary
  • grub-mkrescue builds the iso (need xorriso and mtools)
  • xargo builds rust code

See .travis.yml to get an ubuntu environment ready
on archlinux pacman -S rustup make grub xorriso mtools binutils gcc qemu
on voidlinux xbps-install -S rustup make grub xorriso mtools binutils gcc qemu nasm

rust setup

We build on nightly channel because of some cool features not yet in stable.
We need the rust sources to build with xargo for cross-compiling to custom platform.

rustup component add rust-src
rustup override add nightly
rustup default nightly
cargo install xargo

running

  • make iso builds a bootable iso with grub
  • make qemu runs the iso,
  • make qemu-reload reloads the CD

todo

  • remove assembly for a pure rust entry point
  • replace grub with something lighter (no bootloader at all with qemu -kernel ?)

inspiration