gitwtfhub

wtf is how-to-make-a-computer-operating-system?

samypesse/how-to-make-a-computer-operating-system — explained in plain English

Analysis updated 2026-05-18

22,411CAudience · developerComplexity · 4/5LicenseSetup · easy

TL;DR

An online book and tutorial for building a minimal UNIX-style operating system from scratch in C and C++, with working code you can follow step by step.

Mindmap

mindmap
  root((repo))
    What it does
      Boot a simple OS
      Load shell interface
      Manage hardware
      Run programs
    Learning path
      CPU boot process
      Memory management
      Process creation
      Kernel hardware talk
    Tech stack
      C language
      C++ language
      Build tools
    Use cases
      Deep computer understanding
      OS internals learning
      Kernel development study
      Educational project

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Learn how operating systems work internally by building a minimal UNIX-style OS from scratch.

REASON 2

Understand CPU boot sequences, memory management, and kernel-to-hardware communication through hands-on coding.

REASON 3

Study process creation and scheduling by implementing core OS features in C and C++.

REASON 4

Build foundational knowledge for kernel development or systems programming careers.

What's in the stack?

CC++Assembly

How it stacks up

samypesse/how-to-make-a-computer-operating-systemiovisor/bccfastfetch-cli/fastfetch
Stars22,41122,40022,509
LanguageCCC
Setup difficultyeasyhardeasy
Complexity4/54/52/5
Audiencedeveloperops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · easy Time to first run · 30min

Requires a C/C++ compiler and assembler toolchain, cross-compiler setup may add complexity for some platforms.

Use freely for any purpose including commercial. Keep the notice and disclose changes to the patent grant.

Wtf does this do

This repository is an online book and tutorial that walks through how to build a simple computer operating system from scratch using C and C++. An operating system is the foundational software on a computer, the layer that manages hardware, runs programs, and provides the interface between software and the physical machine. Most people use one (Windows, macOS, Linux) without ever thinking about how it works internally. The goal of this course is not just theory but building something real: a minimal UNIX-style OS that can boot, load a command-line shell, and be extended further. The project includes source code alongside the explanations so readers can follow along step by step. You would use this if you are a programmer who wants to understand computers at a deep level, how the CPU boots, how memory is managed, how processes are created, and how the kernel communicates with hardware. It is an educational project originally written by the author in high school, then revised and translated from French to English for a broader audience. The source code is written in C and C++. No specific runtime or framework is required beyond a basic build environment.

Yoink these prompts

Prompt 1
I want to understand how operating systems work. Walk me through the first steps of building a bootable OS using this tutorial, starting with the boot process.
Prompt 2
Show me how to set up the build environment and compile the first chapter's code from this OS tutorial.
Prompt 3
Explain the memory management section of this OS project and how it differs from user-space programming.
Prompt 4
I'm stuck on the process creation chapter. Help me debug my C code against the tutorial's implementation.
Prompt 5
What are the prerequisites I need before starting this OS-building tutorial, and how long does it typically take?

Frequently asked questions

wtf is how-to-make-a-computer-operating-system?

An online book and tutorial for building a minimal UNIX-style operating system from scratch in C and C++, with working code you can follow step by step.

What language is how-to-make-a-computer-operating-system written in?

Mainly C. The stack also includes C, C++, Assembly.

What license does how-to-make-a-computer-operating-system use?

Use freely for any purpose including commercial. Keep the notice and disclose changes to the patent grant.

How hard is how-to-make-a-computer-operating-system to set up?

Setup difficulty is rated easy, with roughly 30min to a first successful run.

Who is how-to-make-a-computer-operating-system for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.