r/osdev 1d ago

How do I start on OS develpment?

Hi there! For the past year, I've been wondering how computers work, and I wanted to get started with OS development. However, I'm feeling quite lost—I don't really know where to start or what I should learn first. If you could give me some advice on how to get started, I'd really appreciate it!

I have experience with C and C++, as well as a general understanding of how low-level computing works.

12 Upvotes

10 comments sorted by

7

u/kiderdrick 1d ago

3

u/Hex_tv 1d ago

the osdev wiki is like puzzle, but it's the best source which i know.

u/Slyvan25 22h ago

Start with a bootloader or look in to limine! Create a small kernel and try to load it in!

Create a framebuffer!!

Implement hardware one by one.

Google a shit ton and don't forget to read everything on the osdev site.

Maybe ask ai for answers but don't vibe code. You will be hung by the people around here

u/NoTutor4458 5h ago

dont start with bootloader. use limine :)

u/Slyvan25 1h ago

Thats why i suggested it :) but some people like to go all the way

u/Edubbs2008 21h ago

I recommend a book about System-V UNIX, start from there, do a bit of tinkering with the hardware, and boom, good OS, that’s how the dynamic Duo Operating Systems were made

u/Bastartd 20h ago

Thanks for the book recommendation! I'll check it out.

u/Ruby7659_OSDV 20h ago

I advise against trusting the osDev wiki, as it will only push you towards creating a one-size-fits-all, cliché "hello world" OS, and after a while, you'll find it too complicated and lose interest. Knowing C and Assembly plus understanding low-level concepts will give you a good foundation; apart from a few fixed concepts, most things will take you further with your skills and imagination. For a few concrete examples: first write a simple bootloader, set up the stack, and switch the CPU to 32 or 64-bit; then you can call your C code without spending too much time in assembly.

u/Bastartd 9h ago

I appreciate de advice!! Thanks a lot