This project was done to be a school projet, it's NOT an example... About why and how, everything is explained bellow.
There is an image.iso
which is the last working Turb-OS' ISO.
You can try to compile it by yourself, but Turb-OS is based on an old version of limine
.
Have a "usable" OS that can be used on embedded systems. Meaning we want to implement:
- dynamic allocation
- scheduling / multitasking
- minimal display
- clang
- lld
- LLVM
- Make
- nasm
- qemu
- xorriso
- wget
- tar You may encounter problems while compiling on the asm files, an error about reference. Using development version of those tools may solve it (I used to be on manjaro and have development version tools, didn't find yet where the bug comes from)
sudo apt-get install clang lld make nasm xorriso wget tar qemu-system-x86
if you're on windows, you need to compile with a WSL and run it with qemu ON WINDOWS
After cloning the repo, you can compile and run the OS by using:
make all
or to go faster and use multiple cores
make -j$(nproc --all)
- minimal display
- dynamic allocation
- interruptions
- keyboard input (PS/2)
- mouse input (PS/2)
- SMP
- UBSAN
- serial debugging
- kernel panic
- HPET (not tested)
- scheduler
- VFS