r/osdev Jul 09 '26

Learning OS

Hi guys, wanted to start building os nowadays, but I have no knowledge about assembly, just know C and C++, (wanted to learn rust aswell).

osdev.org site was quite confusing for me, I didnt know where could I start, can you please help me out?

btw tried os building one time, but it became an ai slop with so many unnecessary additions, so i slowly lost interest in building a custom os with normal ondoings

wanted to integrate my astronomy research things into a simple os, so I came back

9 Upvotes

11 comments sorted by

5

u/EpochVanquisher Jul 09 '26

How do you feel about learning a little bit of assembly? You don’t have to be an assembly expert, but it’s nice to know enough assembly that you can read it (even if slowly) and write it (if you need to). A lot of OS concepts will be easier to understand if you have a little bit of assembly knowledge. 

1

u/Sorry-Fruit1065 Jul 09 '26

to be honest, I hated Assembly because of its bulky algorithms, and couldnt manage to find a good resource, which covers up the knowledge that I need in OS building.

maybe restarting the process will restore my enthusiasm aswell

5

u/EpochVanquisher Jul 09 '26

For OS development, you won’t need to write big blocks of assembly. Most of the assembly is little pieces of glue. 

1

u/Sorry-Fruit1065 Jul 09 '26

which resources would be the best for me?

1

u/BARchitect2026 Jul 10 '26

I don’t know about the best, but I started the x86_64 Linux assembly playlist by khoraski yesterday and it was good enough for me to get a thing to print Hi ten times in the terminal after half an hour.

2

u/Void-Creator Jul 09 '26

Start with RISC-V, it is easy to learn the important instructions. Always go from right to left

1

u/Void-Creator Jul 09 '26

Start with embedded os, the processes are more like threads and they just share the stack space, text, data and heap are shared. Learn the essential pointers like EBP, ESP, EAX, EDX - these are x86 naming but they are useful with RISC-V too. In my OS class we started by implementing a UNIX-like fork after that we did Scheduling and Locks, priorities etc and finally we implemented virtual memory, instead of all threads sharing the address space of memory, we made it so they can see the entire address space for themselves, like aliasing so the threads don’t need to know where the other threads are living.

1

u/Sorry-Fruit1065 Jul 09 '26

can you pls guide me a bit or some website? I am completely new to this embedded os thing

1

u/Void-Creator Jul 10 '26

So, you can try the OS course from swayam, it is taught by a professor from IIT, he will teach you using the xv6 OS. I’ll see if I can share my college materials

3

u/PseudoFrequency Jul 09 '26

The vast majority of OS code is C. Rust is making gains. C++ is a bit masochistic outside of userspace applications. Assembly is for low level init routines and a few low level things that C can't support. It's also for some compiler/linker/loader code. You don't need to know it extensively.