The whole project is written in Rust 🦀, with some x86 assembly and C as needed, and currently includes the main requirements and bonus tasks for KFS 1 through 4, as well as additionnal progress for the next KFS projects.
- multiboot2 compliant boot code
- a gdt set at 0x800
- paging, physical and virtual memory management
- memory allocation through a kmalloc
- interrupts
- exceptions
- IRQs (PIT, keyboard)
- base for syscalls
- hidden Alsatian jokes 🥨
- hidden Italian jokes 🇮🇹
- Rust nightly toolchain for
i686-unknown-linux-gnu
target - gcc for i686-elf target (can be the i686-elf-gcc package from brew)
- nasm
- make
make
- grub-pc for 32bit x86 (not the efi one, not the x86_64 one)
It can be built from source by usingtools/build_objconv.sh
andtools/build_grub.sh
make iso
make run
Just boot build/elsos-i686.iso
This has been quickly tested on real hardware and should work, as long as there is a legacy bios with VGA text mode.