lytlnyblOS (little nibble OS) is a small, from scratch 32-bit operating system that comes with a complete guide book to teach beginners practically about OS development.
See the codelytlnyblOS (little nibble OS) is a small, from-scratch 32-bit operating system, built to teach beginners practically about OS development. It runs on a QEMU virtual machine. Built alongside The lytlnyblOS Book, a guide that walks through writing an OS from a 16-bit bootloader all the way through protected mode, interrupts, memory management, processes, a filesystem, userspace, and a working shell.
The code in this repo is the code taught in the book. Every part of it corresponds to something explained in the book; this is the whole point of the project.
Please use the website: 📖 red-mutt.github.io/lytlnyblOS for reading. Not the GitHub repository, for a better experience.
Here's a little video demo of what you'll be making:
https://github.com/user-attachments/assets/f02ed3cf-41a2-4a80-85b7-0d6aa5f0f7ae
This may not look like much to some, but remember: by the end of the book, you'll have your own custom operating system and the freedom to do whatever you want with it! You'll write every line of code!
📖 red-mutt.github.io/lytlnyblOS
The book goes in depth, explaining why something in the OS works the way it does, not just what it does. You'll make:
All in this order
The project is complete, with ongoing refinement
The operating system and accompanying guide are complete from start to finish. The project currently covers the full journey from bootloader to working user-space shell. I consider this project feature complete for its educational goals. Future work will be mainly focused on refining the guide, improving explanations, fixing mistakes and inconsistencies, and making the experience easier for others to follow.
Feedback and corrections are welcome, particularly from people working through the guide themselves. Feel free to read CONTRIBUTING.md
guide/ - Source for the book (made with mdbook).lytlnybl/ - Source for the operating system.blog_playground/ - Shows a history of the OS's creation, not intended for use and is unmaintained.No special hardware is required for this project. You will only need:
i686 cross-compiler for Cmake run in lytlnybl/ assembles the bootloader and kernel, links them, and writes the result
into the disk image, and boots it in QEMU.
This book assumes that you have access to many UNIX-like commands, like dd, rm, mkdir, and cp. Linux is the primary supported environment.
Windows users can use WSL.
Please open an issue. This is by far the most useful way to help this project.
If something in the book is unclear, technically wrong, out of date, or just
doesn't match the code in lytlnybl/, an issue takes two minutes to make
and helps everyone who reads the guide after you. You don't need to know what to
fix, just describe what you found:
Contributions are welcome, but scope is intentionally limited; please read CONTRIBUTING.md before opening a pull request.
Both the guide and source code have two different licenses, both found in the respective guide/ and
lytlnybl/ directories.
See the book's Introduction for acknowledgements.
179 commits
C
73.0%
Assembly
12.9%
CSS
5.3%
JavaScript
3.3%
Makefile
3.1%
Handlebars
1.9%
lytlnyblOS (little nibble OS) is a small, from scratch 32-bit operating system that comes with a complete guide book to teach beginners practically about OS development.
See the codelytlnyblOS (little nibble OS) is a small, from-scratch 32-bit operating system, built to teach beginners practically about OS development. It runs on a QEMU virtual machine. Built alongside The lytlnyblOS Book, a guide that walks through writing an OS from a 16-bit bootloader all the way through protected mode, interrupts, memory management, processes, a filesystem, userspace, and a working shell.
The code in this repo is the code taught in the book. Every part of it corresponds to something explained in the book; this is the whole point of the project.
Please use the website: 📖 red-mutt.github.io/lytlnyblOS for reading. Not the GitHub repository, for a better experience.
Here's a little video demo of what you'll be making:
https://github.com/user-attachments/assets/f02ed3cf-41a2-4a80-85b7-0d6aa5f0f7ae
This may not look like much to some, but remember: by the end of the book, you'll have your own custom operating system and the freedom to do whatever you want with it! You'll write every line of code!
📖 red-mutt.github.io/lytlnyblOS
The book goes in depth, explaining why something in the OS works the way it does, not just what it does. You'll make:
All in this order
The project is complete, with ongoing refinement
The operating system and accompanying guide are complete from start to finish. The project currently covers the full journey from bootloader to working user-space shell. I consider this project feature complete for its educational goals. Future work will be mainly focused on refining the guide, improving explanations, fixing mistakes and inconsistencies, and making the experience easier for others to follow.
Feedback and corrections are welcome, particularly from people working through the guide themselves. Feel free to read CONTRIBUTING.md
guide/ - Source for the book (made with mdbook).lytlnybl/ - Source for the operating system.blog_playground/ - Shows a history of the OS's creation, not intended for use and is unmaintained.No special hardware is required for this project. You will only need:
i686 cross-compiler for Cmake run in lytlnybl/ assembles the bootloader and kernel, links them, and writes the result
into the disk image, and boots it in QEMU.
This book assumes that you have access to many UNIX-like commands, like dd, rm, mkdir, and cp. Linux is the primary supported environment.
Windows users can use WSL.
Please open an issue. This is by far the most useful way to help this project.
If something in the book is unclear, technically wrong, out of date, or just
doesn't match the code in lytlnybl/, an issue takes two minutes to make
and helps everyone who reads the guide after you. You don't need to know what to
fix, just describe what you found:
Contributions are welcome, but scope is intentionally limited; please read CONTRIBUTING.md before opening a pull request.
Both the guide and source code have two different licenses, both found in the respective guide/ and
lytlnybl/ directories.
See the book's Introduction for acknowledgements.
179 commits
C
73.0%
Assembly
12.9%
CSS
5.3%
JavaScript
3.3%
Makefile
3.1%
Handlebars
1.9%