This is small project about developing x86 kernel. Currently, I follow guides from https://wiki.osdev.org. I want to make it posix compliant as far as I can.
- VGA terminal output
- Memory management using paging (on for kernel space, as I don't have any user space). It uses my allocator from https://github.com/romasku/lpalloc.
- Interrupts handling (only prints IRQ number on display)
Build system is cmake. I suggest using qemu to run kernel (it is multiboot compliant kernel).
cmake CMakeLists.txt -B cmake-build-debug
cd cmake-build-debug
make
./tools/run-qemu.sh
To be able to build, you'll need a i686-elf-gcc cross-compiler. On arch, you can try to use i686-elf-gcc
AUR package.
If you use other distro/platform, please refer to osdev wiki, it has
comprehensive guide how to build cross compiler.
After installation, please make sure that i686-elf-gcc
executable is in your PATH. CMake script assume that it's there.
To be able to run, please install qemu. On Arch linux, it can be done using sudo pacman -S qemu
, on ubuntu, you can
use sudo apt install qemu
.
- Implement keyboard driver