DEV Community

Cover image for SkiftOS: A Modern Operating System written in C++ from scratch
Marcos Oliveira
Marcos Oliveira

Posted on

SkiftOS: A Modern Operating System written in C++ from scratch

SkiftOS is an open source operating system developed practically from scratch, without relying on a Linux kernel or BSD.

Warning: the developer himself states that the project is still in its early stages and should not be used as a primary operating system or in production.

Developed primarily in C++20, it aims to combine:

  • simplicity;
  • modularity;
  • modern design;
  • clean APIs;
  • integrated graphical interface.

Unlike many hobby OS that focus only on the kernel, SkiftOS has practically its own entire stack:

  • Bootloader
  • Microkernel
  • Graphics framework
  • Standard library
  • UI toolkit
  • Desktop Environment
  • Native applications

All developed specifically for the system.

Main components:

  • Hjert: The system's microkernel.
  • Karm: The project's base library.
  • KarmUI: Reactive graphics framework inspired by modern technologies.
  • Hideo: The graphical environment (Desktop Environment).

Technologies used:

The project makes use of several modern technologies:


Installation

Currently the project does not have a traditional installer.

The recommended way is to compile the system from source code.

On Linux or macOS install:

  • Git
  • Clang (18+)
  • LLVM
  • Ninja
  • NASM
  • Python 3.11+
  • QEMU
  • SDL2
  • mtools
  • liburing

The official manual provides specific commands for Ubuntu and Arch Linux.

In short: clone the project

git clone https://codeberg.org/skift/os.git

cd skift
Enter fullscreen mode Exit fullscreen mode

Set up the environment:

./skift.sh tools setup
Enter fullscreen mode Exit fullscreen mode

Then check if everything was installed correctly:

./skift.sh tools doctor
Enter fullscreen mode Exit fullscreen mode

Install dependencies:

./skift.sh install
Enter fullscreen mode Exit fullscreen mode

Build:

To start the system in QEMU:

./skift.sh boot
Enter fullscreen mode Exit fullscreen mode

You can also run just the graphical shell:

./skift.sh run --release hideo-shell
Enter fullscreen mode Exit fullscreen mode

Or generate a disk image:

./skift.sh dist --format=hdd
Enter fullscreen mode Exit fullscreen mode

Usage

After starting the virtual machine, the system loads its own graphical interface.

Available features include:

  • window manager;
  • terminal;
  • text editor;
  • image viewer;
  • native applications;
  • integrated desktop.

There are still several limitations, as the project continues under active development.


SkiftOS is one of the most interesting hobby OS projects today. Instead of just implementing a functional kernel, it aims to deliver a complete experience, including microkernel, standard library, graphics framework, desktop, and its own applications.

For more information, visit the SkiftOS repository.

Top comments (0)