a broken kernel with a ton of bad design choices and copypasted code. It's actually not that bad anymore tho
- Run X server
- Full Linux binary compatibility
- Binary compatibility with other kernels
References:
- PenutOS
- nanobyte_os
- the OSDev wiki
- raspi3-tutorial
- Building an Operating System for the Raspberry Pi
- raspberry-pi-os
- Linux
This is now built using nix, there is a flake.nix but no instructions on how to use it written yet. Take a look at the CI!
first make sure you have all submodules. Simply clone like this
git clone --recurse-submodules https://github.com/theverygaming/vix.git
you already cloned the repo? then run git submodule update --init --recursive instead
now to build for x86 you need a few extra dependencies(aside from gcc and make), on ubuntu these are installed by running
sudo apt install nasm gcc-multilib g++-multilib xorriso grub-common grub-pc mtools python3 cmake pkg-config flex bison libncurses5-dev xxd
Now refer to the general build instructions
first you have to configure the kernel, you could either simply use the default config (make alldefconfig) or configure it yourself (make menuconfig)
then you can simply build with make and then make bootimg-x86-32 (if you have a x86_32 system, otherwise use the CROSS_COMPILE environment variable or on x86_64 you can use CXXFLAGS="-m32 -march=i386" LDFLAGS="-m elf_i386")
a bootable iso named vix.iso will be created
for other architectures look at the GitHub actions workflow
cd kernel
make clangd_compile_flags_txt