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)

Searching Database…

这是什么?lytlnyblOS('little nibble OS')是一个从零开始编写的小型 32 位操作系统,目的是让初学者以动手实践的方式学习操作系统开发。跟随配套的书籍,每一行代码都由你自己亲手写出来。
这是一个可以直接下载的现成操作系统,还是更像一门课程?更像一门带引导的课程:red-mutt.github.io/lytlnyblOS 上的书是主要入口,仓库里存放的则是书中逐章教学的完整代码。
我该怎么构建并运行它?在 lytlnybl/ 目录里运行 'make run'——它会汇编引导程序和内核、进行链接、把结果写入磁盘镜像,然后在 QEMU 中启动。
开始之前我需要安装哪些东西?需要 NASM、C 语言的 i686 交叉编译器、QEMU、Make 和 GDB,还有 dd、rm、mkdir、cp 这类 UNIX 风格的命令。不需要特殊硬件——一切都在 QEMU 虚拟机里运行。
在 Windows 上能用吗?Linux 是主要支持的环境;Windows 用户建议使用 WSL。
学完之后我能做出什么?一套完整的从启动到 shell 的系统:引导程序、进入 x86 保护模式(GDT/IDT、VGA 文本模式、中断)、时钟和键盘驱动程序、基于分页的内存管理、进程、调度、用户模式、系统调用、C 标准库、文件系统,以及一个能用的 shell。
这个项目是已经完成了,还在继续编写中?已经完成:从引导程序到用户态 shell 的整个流程,操作系统和教程都有覆盖。目前的工作主要是打磨教程——把讲解写得更清楚、修正错误、让它更容易看懂。
书里会解释原理,而不是只告诉我该敲什么命令吗?会的——内容讲得很深入,会解释操作系统里某个部分为什么这样工作,而不只是它做了什么。
lytlnyblOS 这个名字是什么意思?它是 'little nibble OS' 的缩写——呼应这个系统小巧、完全从零亲手搭建的特点。
Creator
red-mutt
Size
8.5 MB
Stars
116
Updated
CommitOct 17
Age
2y
Commits · 90 Days