Page 1 of 1

Tips for creating an operating system

Posted: Sat Jun 06, 2026 10:18 am
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.

Re: Tips for creating an operating system

Posted: Sat Jun 06, 2026 11:17 am
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

Re: Tips for creating an operating system

Posted: Wed Jun 10, 2026 12:11 pm
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.

Re: Tips for creating an operating system

Posted: Fri Jun 12, 2026 5:25 pm
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.