lytlnyblOS README

The project's README from github.com/red-mutt/lytlnyblOS. As one markdown file: README.md.

lytlnyblOS

lytlnyblOS (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!

Read the book

📖 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

Project status

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

What the directories in the repository are for

Building and running

No special hardware is required for this project. You will only need:

make 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.

Found an error in the guide?

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:

Contributing

Contributions are welcome, but scope is intentionally limited; please read CONTRIBUTING.md before opening a pull request.

License

Both the guide and source code have two different licenses, both found in the respective guide/ and lytlnybl/ directories.

Acknowledgements

See the book's Introduction for acknowledgements.

lytlnyblOS (red-mutt/lytlnyblOS)

gdb
Searching Database…

What is this?lytlnyblOS ('little nibble OS') is a small 32-bit operating system built from scratch to teach beginners OS development practically. You write every line of it yourself while following the companion book.
Is this a ready-made OS I can download, or more of a course?More of a guided course: the book at red-mutt.github.io/lytlnyblOS is the main entry point, and the repo holds the exact code taught in the book, chapter by chapter.
How do I build and run it?Run 'make run' inside lytlnybl/ — it assembles the bootloader and kernel, links them, writes the result into a disk image and boots it in QEMU.
What do I need installed before starting?NASM, an i686 cross-compiler for C, QEMU, Make and GDB, plus UNIX-like commands such as dd, rm, mkdir and cp. No special hardware is required — everything runs in a QEMU virtual machine.
Will it work on Windows?Linux is the primary supported environment; Windows users are directed to use WSL.
What will I have built by the end?A full boot-to-shell stack: a bootloader, entry into x86 protected mode (GDT/IDT, VGA text mode, interrupts), timer and keyboard drivers, memory management with paging, processes, scheduling, user mode, system calls, a C standard library, a filesystem, and a working shell.
Is the project finished, or still being written?It's complete: the OS and guide cover the whole journey from bootloader to a userspace shell. Ongoing work is mostly refining the guide — better explanations, fixing mistakes, easier to follow.
Does the book explain why things work, not just what to type?Yes — it goes in depth, explaining why something in the OS works the way it does, not just what it does.
What does the name lytlnyblOS mean?It stands for 'little nibble OS' — a nod to the small, from-scratch nature of the system you build by hand.
Creator
red-mutt
Size
8.5 MB
Stars
116
Updated
CommitOct 17
Age
2y
Commits · 90 Days