Tips for creating an operating system

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
JProMi63
Posts: 1
Joined: Sat Jun 06, 2026 10:11 am

Tips for creating an operating system

Post by JProMi63 »

Hello! I'm a beginner in the field of operating systems. I've already created a "Hello World" program with an assembly script in QEMU, but I've never been able to get close to creating a kernel. What advice, books, and wiki pages (from OSDev, of course) can I use to learn more? I'm currently studying kernels and protected mode, but I don't think it's a good start.
User avatar
BenLunt
Member
Member
Posts: 1039
Joined: Sat Nov 22, 2014 6:33 pm
Location: USA
Contact:

Re: Tips for creating an operating system

Post by BenLunt »

JProMi63 wrote: ↑Sat Jun 06, 2026 10:18 am What advice, books, and wiki pages (from OSDev, of course) can I use to learn more?
Welcome to this hobby of ours. I started many years ago and have documented my findings through six books. It has been an enjoyable hobby for sure.

If your intent is to learn, my suggestion, and some others here may disagree, is to start with 16/32-bit legacy mode instead of EFI and 64-bit.

My reasoning is that with legacy mode, you get to learn and understand what actually happens when the power button is pushed. With EFI, all of that is done for you. EFI already boots the hardware, sets up paging, reads from a file system, initializes the screen, all of these things for you, and you fail to learn this boot process.

However, on the other side of this, if your intent is to get to a working stage quickly, not caring to learn the boot process, then by all means, start with EFI.

Anyway, just my opinion. I wish you good luck and please feel free to post questions, even myself finding this forum a great asset.

Ben
- https://www.fysnet.net/osdesign_book_series.htm
ashy5000
Posts: 8
Joined: Tue Jun 09, 2026 12:48 am

Re: Tips for creating an operating system

Post by ashy5000 »

BenLunt wrote: ↑Sat Jun 06, 2026 11:17 am With EFI, all of that is done for you. EFI already boots the hardware, sets up paging, reads from a file system, initializes the screen, all of these things for you, and you fail to learn this boot process.
I second avoiding EFI in your kernel- you'll learn a lot more (and have a lot more fun!) writing the drivers yourself. Personally, I use EFI with GRUB (which terminates boot services, disables paging, etc. before the kernel boots), so I can boot on real hardware while still not having my entire environment set up for me. I am pretty sure this is what most major OS's these days do.
- Ashy5000
https://github.com/Ashy5000/muse

Live long and prosper!
User avatar
pearmypie
Posts: 21
Joined: Sat Mar 01, 2025 8:06 pm
GitHub: https://github.com/ionutcatana

Re: Tips for creating an operating system

Post by pearmypie »

I have some video resources to recommend, all from prof. Harry Porter (hhp3 on YouTube). I find RISC-V a lot of fun to develop for, it can be as low level as you want (no firmware, no UEFI...) while being a modern 64-bit architecture. You're avoiding all the bulls**t from the 70s that x86 has to deal with.
Post Reply