Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


How to Make a Computer Operating System in C++

Subscribe to updates I use How-to-Make-a-Computer-Operating-System

Statistics on How-to-Make-a-Computer-Operating-System

Number of watchers on Github 16920
Number of open issues 67
Average time to close an issue about 1 month
Main language C
Average time to merge a PR about 17 hours
Open pull requests 37+
Closed pull requests 9+
Last commit over 4 years ago
Repo Created about 6 years ago
Repo Last Updated almost 2 years ago
Size 5.85 MB
Homepage https://www.gitbo...
Organization / Authorsamypesse
Latest Release0.1.0
Page Updated
Do you use How-to-Make-a-Computer-Operating-System? Leave a review!
View open issues (67)
View How-to-Make-a-Computer-Operating-System activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating How-to-Make-a-Computer-Operating-System for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

How to Make a Computer Operating System

Online book about how to write a computer operating system in C/C++ from scratch.

Caution: This repository is a remake of my old course. It was written several years ago as one of my first projects when I was in High School, I'm still refactoring some parts. The original course was in French and I'm not an English native. I'm going to continue and improve this course in my free-time.

Book: An online version is available at (PDF, Mobi and ePub). It was generated using GitBook.

Source Code: All the system source code will be stored in the src directory. Each step will contain links to the different related files.

Contributions: This course is open to contributions, feel free to signal errors with issues or directly correct the errors with pull-requests.

Questions: Feel free to ask any questions by adding issues or commenting sections.

You can follow me on Twitter @SamyPesse or GitHub.

What kind of OS are we building?

The goal is to build a very simple UNIX-based operating system in C++, not just a proof-of-concept. The OS should be able to boot, start a userland shell, and be extensible.


How-to-Make-a-Computer-Operating-System open issues Ask a question     (View All Issues)
  • over 3 years Alternative completed guide on OS development
  • over 3 years Translate into Korean
  • over 3 years 404 Not found BIG TIME
  • over 4 years makefile commands for building the kernel
  • over 4 years how to setup my development environment? can you tell me in detail?
  • over 4 years How i can run on Windows
  • almost 5 years can i translate into chinese?
  • almost 5 years Will you continue writing the book ?
  • almost 5 years Chapter 2: "make run" fails
  • almost 5 years It has been discontinued?
  • about 5 years need some help?
  • over 5 years qemu installation problem under lucid 32
  • over 5 years Chapter 3 - bootdisk/* no such file or directory
  • over 5 years qemu command is not now available to Ubuntu 14.04 LTS
  • over 5 years question
  • almost 6 years Multiple labels of same name in start.asm
  • almost 6 years regarding the web page
  • almost 6 years Encoding::CompatibilityError
  • almost 6 years Why you stopped releasing again
  • almost 6 years Why you stoped releasing?
  • about 6 years putc() method problem
  • about 6 years unexplained files, independent src directories for each chapter
  • about 6 years Is there any detailed documentation for chapters?
  • about 6 years Are including a section for creating your own REPL ?
  • about 6 years Chapter 2 spelling and how to exit qemu?
  • about 6 years Explain losetup offset in
How-to-Make-a-Computer-Operating-System open pull requests (View All Pulls)
  • adding booting info
  • Fix typos and grammar issues
  • Update Makefile
  • Update
  • Make various small corrections
  • Changing 'printf' to 'print'
  • Introducing a New User Defined Signal
  • Add missing parenthesis
  • Added install_irq
  • Added links b/w chapters.
  • Correct Grammar
  • fixed typo "its"
  • Added some delays and root function.
  • create Chinese version of Chapter-1
  • Grammar fix
  • name chapter9 consistent with other chapter names
  • Switch to Ubuntu Xenial
  • Update
  • Rename Chapter-9
  • Setenv
  • Update
  • Grammar and prose updates for Chapters 1-9
  • Updated Readme
  • Update Vagrantfile
  • Grammar changes for Readme
  • Update
  • change old release vagrant file and add
  • for testing
  • Add links to the next chapters
  • Updated to Ubuntu Xenial/Grub2
  • Create Windows 10
  • Fixes compilation/run errors
  • Wording fixes
  • Slight wording edit
  • Switched comma to semi-colon
  • Fixed typos and edited wording
  • Fixed run-on sentences and awkward wording
How-to-Make-a-Computer-Operating-System list of languages used
How-to-Make-a-Computer-Operating-System latest release notes
0.1.0 0.1.0

The book is now hosted on

Other projects in C