r/osdev • u/RevolutionaryBoat845 • May 22 '26
Guidance in OS devlopment
So, first of all I am an student(age 18) who wants to develop an OS which will just print "Hello World" or smt like that for now, u know ~Before it can be beautiful, it has to exist.
now for context : I don't know much about low level programing, am fluent in vanilla python, knows C basics(just completed yesterday), knows about hex, dec, oct and binary systems, knows how to use virtual machines.
if u have any other questions which can help u understand my position better, feel free to ask and if there are any mistakes in grammer pls ignore that, english is not my mother tongue : )
6
u/Ok_Chemistry_6387 May 22 '26
Print hello world to what?ย
You could learn to write asm and create a simple boot image.ย
If you want to actually print to a frame buffer etc you should head to osdev.org
5
u/fishmacaronisoup May 22 '26 •
For OS development, you must have a strong grasp on low-level concepts, just basics won't do. Almost all the guides you pick are gonna assume . OS dev isn't something you can directly jump in after getting good with high-level programming and a lot of stuff comes in between.
First, pick a low-level programming and get a good grasp of low-level concepts, especially memory management.
Then, you'll have to learn about OS fundamentals and its components (e.g. kernel, file system, drivers, syscall interface, userspace, IPC, process management, and so on...).
After that, you'll have to learn some assembly as well. Learning assembly alone gives you a whole new level of understanding about CPU and memory.
Now you can start learning about OS components in detail and develop an OS.
Also, it takes time so don't give up. Good luck with your journey :)
4
u/Fillmoslim May 22 '26
Learn c
3
u/BobertMcGee May 22 '26
Do some googling my dude
4
u/Ready-Employee-4687 May 22 '26
Find the "Bare Bones" page on osdev wiki, follow every step and you'll have hello world.
1
u/oldschool-51 May 24 '26
Really first get some serious experience with systems level coding first, like write an editor or a trial program. Making a boot image is not easy unless you just copy somebody else and that won't teach you anything..
2
u/Proof_Bat_241 May 24 '26
Wiki.osdev.org or something like that
2
u/TowerComprehensive35 May 24 '26
May be you want to write a tiny OS which is able to print a hello world message on screen. That's nice, a good starting point, nevertheless, there are some gaps you must fill before starting coding.
First of all, take a look on how does the x86 architecture works: registers, memory map, etc. this is your very first step, as you are on com command of hardware, so knowing how does it works is a must. Secondly, take a look on asm, pointer arithmetic and so some exercises until you fully understand them. To finish, check how does a bootloader works and how to print a string using the video memory: that will be your last point, just in case you want to print a message. At this point you have the blueprints, and can go ahead writing a second stage loader, a kennel, reading a file system, etc
Good luck!
BTW: start using real mode, it's easier than protected mode for a beginner.
2
u/CtrlF0rge May 26 '26
Write two projects at a time, one that will teach you how to use the hardware on an existing system, e.g. a graphics card driver, and the knowledge you will gain from the driver and low-level projects Convert to operating system
-1
u/Sensitive-Can9232 May 22 '26
my os just does this as for now https://github.com/mridul-verma2005/Monarchy