Skip to content
@the-strife-project

The Strife Project

An OS based on beauty and security. Made with ❤️ by @jlxip.

Strife has been marked as finished. Read the farewell.


Strife is an x86-64 microkernel operating system made in C++ from scratch. It doesn't aim to be a substitute for any existing one, but:

  • It's an exercise for myself
  • It's a way to show the feasibility of the different ideas I propose
  • At the state it was on September 2022, it was my Bachelor Thesis

Strife is, according to Empedocles, the force that separates the elements.

The whole project aims to be three things:

  • Secure. It makes some already existing security measures as non-optional (ASLR, RELRO, NX stack...). Plus, the whole memory layout of the kernel is designed to be resistant to Meltdown and Spectre attacks.
  • Beautiful. When possible and appropiate, Strife gives simple solutions to complex problems, even if they're not the absolute fastest. I've done my very best to write easy to read code. Note, however, that the code is not a tutorial, do not take everything I do as the best solution, or even a good one. Have your own judgment.
  • Modular. Strife is not, unlike most hobbyist operating systems, a repository with thousands of files that all have to be compiled in order to get an ISO. It is an anarchic collection of drivers, services, tools, and a kernel, of course. Because of this, you choose what goes in and what's left out. A distribution is, hence, mandatory. An official one is given (link at the end of this README), which bundles everything.

The only parts that are not written by me are the bootloader (currently using Limine, which I recommend), and the userspace allocator (Durand's liballoc, which I will probably change in the future).

Lost? Understandable. There are a lot of repositories here. Ignore the list of GitHub and click here.

This is fruit of many years of research and debugging. It's the work of my life. Do not undervalue the thousands of hours of effort put into this project.

Click here to begin.

Pinned

  1. Strife Strife Public archive

    An OS based on beauty and security.

    Makefile 24

  2. projects projects Public archive

    Lost? Click here.

    1

  3. kernel kernel Public archive

    A microkernel I'm very proud of

    C++ 6

  4. stdlib stdlib Public archive

    Standard C++ library

    C++ 1

  5. STL STL Public archive

    C++ Standard Template Library

    C++ 1 2

  6. loader loader Public archive

    Program loader in userspace

    C++ 1

Repositories

Showing 10 of 29 repositories
  • .github Public

    Organization README

    the-strife-project/.github’s past year of commit activity
    0 0 0 0 Updated Dec 19, 2022
  • Strife Public archive

    An OS based on beauty and security.

    the-strife-project/Strife’s past year of commit activity
    Makefile 24 GPL-3.0 0 0 0 Updated Dec 11, 2022
  • AHCI Public archive

    AHCI driver

    the-strife-project/AHCI’s past year of commit activity
    C++ 1 GPL-3.0 0 0 0 Updated Aug 1, 2022
  • term Public archive

    Terminal driver

    the-strife-project/term’s past year of commit activity
    C++ 0 GPL-3.0 0 0 0 Updated Jul 28, 2022
  • stdlib Public archive

    Standard C++ library

    the-strife-project/stdlib’s past year of commit activity
    C++ 1 GPL-3.0 0 0 0 Updated Jul 23, 2022
  • kernel Public archive

    A microkernel I'm very proud of

    the-strife-project/kernel’s past year of commit activity
    C++ 6 GPL-3.0 0 0 0 Updated Jul 23, 2022
  • VFS Public archive

    Virtual Filesystem

    the-strife-project/VFS’s past year of commit activity
    C++ 0 GPL-3.0 0 0 0 Updated Jul 22, 2022
  • coreutils Public archive

    Standard utilities for the shell

    the-strife-project/coreutils’s past year of commit activity
    C++ 0 GPL-3.0 0 0 0 Updated Jul 22, 2022
  • StrifeFS Public archive

    The Strife Filesystem

    the-strife-project/StrifeFS’s past year of commit activity
    C++ 0 GPL-3.0 0 0 0 Updated Jul 22, 2022
  • keyboard Public archive

    Basic PS/2 keyboard driver

    the-strife-project/keyboard’s past year of commit activity
    C++ 0 GPL-3.0 0 0 0 Updated Jul 22, 2022

Top languages

Loading…

Most used topics

Loading…