Skip to content
/ Turb-OS Public

A small OS made in C/C++, made for a supervized project ! This project is NOT an example

License

Notifications You must be signed in to change notification settings

i5-650/Turb-OS

Repository files navigation

Turb-OS

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.

What's the goal ?

Have a "usable" OS that can be used on embedded systems. Meaning we want to implement:

  • dynamic allocation
  • scheduling / multitasking
  • minimal display

Tools used:

  • 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)

Install tools

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)

TODO LIST

  • minimal display
  • dynamic allocation
  • interruptions
  • keyboard input (PS/2)
  • mouse input (PS/2)
  • SMP
  • UBSAN
  • serial debugging
  • kernel panic
  • HPET (not tested)
  • scheduler
  • VFS

Quick preview

Starting and Commands

Starting and Commands

Filesystem

Filesystem

Drawing with the mouse

Drawing with the mouse

Multitasking

Multi-threading

About

A small OS made in C/C++, made for a supervized project ! This project is NOT an example

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •