Osdev-Notes là một bộ tài liệu mã nguồn mở hướng dẫn viết hệ điều hành từ đầu, dựa trên kinh nghiệm thực tế của các tác giả Ivan G và Dean T. Repo này giải quyết vấn đề thiếu tài liệu chi tiết, có cấu trúc cho người muốn xây dựng kernel từ con số 0, phù hợp với lập trình viên hệ thống muốn hiểu sâu về bootloader, quản lý bộ nhớ, lập lịch, và chạy ELF ở userspace.
Thank you for reading this post, don't forget to subscribe!Những điểm chính
- Bộ sách mã nguồn mở với 10 phần, bao gồm từ bootloader đến chạy ELF trong userspace, kèm mã nguồn mẫu.
- Có sẵn dưới dạng PDF miễn phí trên GitHub, đồng thời có thể mua sách in từ Lulu.
- Tác giả là những người đã tự viết kernel 32-bit và 64-bit, nội dung dựa trên kinh nghiệm thực chiến.
- Bao gồm nhiều chủ đề hiếm tài liệu: ACPI, APIC, framebuffer, VFS, tar filesystem, và hệ thống IPC.
- Cộng đồng hỗ trợ qua Discord và Fluxer, giúp người đọc giải đáp thắc mắc khi thực hành.
Osdev-Notes là gì và giải quyết vấn đề gì?

Osdev-Notes là một cuốn sách dạng khoá học được viết bởi Ivan G (dreamos82) và Dean T (DeanoBurrito), ban đầu là tập hợp ghi chú trong quá trình họ tự viết kernel. Nó giải quyết vấn đề lớn nhất của lĩnh vực osdev: thiếu tài liệu chất lượng, dễ hiểu, có cấu trúc logic. Thay vì các bài blog rải rác, repo này đưa ra lộ trình từ chọn bootloader, viết linker script, tạo ISO bootable, đến quản lý bộ nhớ, lập lịch, xử lý ngắt, và cuối cùng là chạy chương trình ELF ở userspace. Tất cả đều được minh hoạ bằng code thực tế từ hai dự án DreamOs64 và Northport.
Bạn có thể xem chi tiết tại repository gốc trên GitHub.
Những tính năng nổi bật của Osdev-Notes

Điểm mạnh đầu tiên là cấu trúc rõ ràng: 10 phần + phụ lục, mỗi phần chia nhỏ thành các chương có độ dài vừa phải. Ví dụ, Part 2 (Architecture and Basic Drivers) bao gồm Hello World, Higher Half Kernel, GDT, Interrupts, ACPI, APIC, Timers, và PS2 Keyboard Driver. Mỗi chương đều có code mẫu và giải thích lý do tại sao làm như vậy.
Thứ hai, tài liệu bao gồm cả những phần ít được đề cập: video output qua framebuffer, heap allocation, scheduler với locks, system calls, shared memory và message passing. Part 9 hướng dẫn chi tiết cách load và execute ELF – một bước quan trọng để có thể chạy chương trình người dùng.
Thứ ba, repo cung cấp mã nguồn hoàn chỉnh của các kernel mẫu: DreamOs64 (64-bit), Northport (64-bit với SMP và riscv), và DreamOs (32-bit). Người đọc có thể đối chiếu giữa lý thuyết và code thực tế.
Hạn chế: tài liệu yêu cầu kiến thức nền tảng vững về C và assembly x86. Không dành cho người mới bắt đầu lập trình. Ngoài ra, giấy phép CC BY-NC 4.0 có thể hạn chế việc sử dụng thương mại, dù điều này hiếm khi ảnh hưởng đến việc học tập.
Hướng dẫn cài đặt & sử dụng Osdev-Notes

Để bắt đầu, bạn cần clone repository về máy:
git clone https://github.com/dreamportdev/Osdev-Notes.git- Vào thư mục:
cd Osdev-Notes - Mở file PDF trong thư mục chính (bản master mới nhất được build từ master branch). Nếu muốn build lại, bạn cần LaTeX và các dependencies.
- Đọc theo thứ tự từ Part 0 đến Part 10.
Nếu muốn thực hành, bạn nên chuẩn bị môi trường: một cross-compiler (gợi ý dùng i686-elf-gcc hoặc x86_64-elf-gcc), QEMU để chạy thử, và NASM. Tài liệu có phụ lục về cross-compiler và debugging. Sau mỗi chương, bạn có thể thử viết lại code theo hướng dẫn và chạy trên QEMU.
Lưu ý: repo cũng cung cấp link Discord và Fluxer để hỏi đáp khi gặp lỗi. Tác giả thường xuyên cập nhật nội dung, vì vậy hãy theo dõi branch master.
Ai nên dùng — ai không nên?

Nên dùng: Lập trình viên hệ thống muốn hiểu sâu về OS kernel, sinh viên ngành Computer Science làm đồ án về hệ điều hành, những ai đã từng đọc các sách kinh điển như ‘Operating Systems: Design and Implementation’ và muốn thực hành từ đầu. Nếu bạn đã biết C và assembly cơ bản, đây là tài liệu lý tưởng.
Không nên: Người mới học lập trình, hoặc chưa từng viết chương trình C nào. Bạn sẽ bị ngợp bởi các khái niệm như linker script, pagination, APIC. Ngoài ra, nếu bạn chỉ muốn xây dựng OS nhanh chóng mà không cần hiểu sâu, có thể tìm các framework như MenuetOS hay KolibriOS sẽ phù hợp hơn. Cuối cùng, nếu bạn không có thời gian đọc hơn 200 trang, hãy chuẩn bị tinh thần vì đây là khoá học dài hạn.
Câu hỏi thường gặp
Osdev-Notes có miễn phí không?
Có, bản PDF được build từ master branch hoàn toàn miễn phí. Ngoài ra, bạn có thể mua sách in bản cứng hoặc bìa mềm từ Lulu với giá phải chăng.
Tôi cần biết những ngôn ngữ nào trước khi đọc?
Bạn cần thành thạo C và có kiến thức cơ bản về assembly x86 (NASM). Phụ lục có hướng dẫn NASM và cross-compiler, nhưng không thay thế kiến thức nền tảng.
Repo này có cập nhật thường xuyên không?
Có, tác giả vẫn đang phát triển song song với các dự án kernel của họ. Bạn nên theo dõi branch master để nhận bản mới nhất.
Tôi có thể đóng góp cho dự án không?
Repo khuyến khích đóng góp thông qua pull request, nhưng bạn phải tuân theo giấy phép CC BY-NC 4.0. Các vấn đề và ý tưởng có thể thảo luận trên Discord.
Có cần phần cứng thật để chạy kernel không?
Không, bạn có thể dùng QEMU để giả lập toàn bộ quá trình. Tài liệu có hướng dẫn chi tiết về cách tạo ISO bootable và chạy trên QEMU.
Kết luận
Osdev-Notes là một trong những tài liệu mã nguồn mở chất lượng nhất hiện nay về chủ đề viết hệ điều hành từ đầu. Với cấu trúc rõ ràng, code thực tế và cộng đồng hỗ trợ, nó xứng đáng là nguồn tài liệu chính cho bất kỳ ai muốn bước vào thế giới osdev. Hãy clone repo, mở PDF và bắt đầu viết kernel của riêng bạn ngay hôm nay!

