If you haven't read the page on beginner mistakes at https://wiki.osdev.org/Beginner_Mistakes#A_Hard_Truth, that's great. It was written by a small group of people over 120 kg who decided that their personal frustration should be a universal rule.
First, there is no imposible, you can do it.
Second, stop listening those "intellectual" duchebags, they're just seeing themselves as superheros while staring on a terminal for over 12 hours in a day with eating pizza. So let's start to see why these osdev mods are lifeless.
1. The "10 Years Experience" Myth:
The wiki claims: "No one who isn't already a seasoned developer... should even be considering OS Dev yet."
Of course you have to learn how the cpu or ram working because that's the core part of writing a kernel. But here's the thing, you can learn programming and computer science with OS dev.
“Tell me and I'll listen,
Show me and I'll watch
Let me experience and I'll learn”
― Lao Tzu
It's just a poor designed advice. Also if you spend your 9 of 10 years with "ricing" your ugly linux distrubition that's also not considering learning tho.
You can even start OSdev from now even without knowing anything about computers. I wrote my first hello world kernel 3 years ago even without knowing what is memory, so yeah that didn't work. I didn't go far by writing the kernel, but it let me learn somethings about computers. I watched a lot video, i learned how the computers work. Even after that i quit writing it, it helped me to write better programs.
2. The "No Tutorials" Fallacy
What do you mean by no tutorial, you can even write a tutorial for making a nuclear reactor at your home which somebody actually did check here. There is also some super cool and beginner friendly tutorials out of the web like Philipp Oppermann's rust kernel tutorial. It helped a lot of people to understand basics of OSdev. I think this is just a makeup for their own laziness and ego about writing copy paste no comment "cool" files.
“An idiot admires complexity, a genius admires simplicity, a physicist tries to make it simple, for an idiot anything the more complicated it is the more he will admire it, if you make something so clusterfucked he can't understand it he's gonna think you're a god cause you made it so complicated nobody can understand it. That's how they write journals in Academics, they try to make it so complicated people think you're a genius”
- Terry a davis
3. Scope: Hobby vs. Commercial Product
The wiki spends paragraphs warning you that "your OS will never be Windows" and "you won't get rich."
Who the who cares this? Nobody is trying to pass the windows.
Linux just started as a university project.
Even the longest roads are starts with simple steps. Just do it! Just write it!
4. Emulation:
According to the wiki emulating a system takes years. This is only true if you are trying to reverse engineer undocumented Windows APIs (like ReactOS) or support obscure hardware. Also, you don't have to emulate Windows especially if you want to emulate binaries from other operating systems.
This is not magic. It’s just: “program calls syscall X → kernel handles X in a way the program expects.” That’s it.
There are FreeBSD and OpenBSD kernels, which are quite well documented and written simply which has a lot of ports (Freebsd has 40k which more than some of Linux distrubitions)
5. At the end
Here is the real “hard truth”:
-
You don’t need 10 years of experience to start OS dev.
-
You don’t need permission from grumpy wiki editors.
-
You don’t need to aim for a commercial product.
-
You definitely don’t need to be scared of words like “emulation” and “ABI.”
If you are willing to:
-
Read some docs,
-
Experiment,
-
Crash your kernel a thousand times,
-
And just try,
then you are “ready” enough.
Just start even it seems like nothing, write a hello world. Crash your kernel, browse internet for 8 hours for just to get keyboard input. Just try it, do not let other people empose their failures.
Ignore the "errrm actually" gatekeeper nerds. Wondering plus persistence beats 10 years of experience.
I believe you can do it!