Jump to content

kernel parts

nooblinuxdude

Hi I am trying to learn C, but while I am a beginner and have barely scratched the surface of programming my end goal is to be able to build my own independent kernel and after that make it open source to make a full blown OS that I intend to daily drive from scratch. I know this may sound like a lot but I am in my mid-teens so I have a lot of time to spare. If someone can tell me how to go over the linux kernel github page I would appreciate it (it is a labyrinth of dirs and files and I don't know where I should begin in the github tree). I would also appreciate if someone could recommend me a book for learning about the kernel and the OS so I can learn how they work and what are the parts of it. Thanks 🙂

Link to comment
Share on other sites

Link to post
Share on other sites

While the Linux Kernel may have started out as a one person project, it has had contributions from over 15K people by now.

 

There is also much more to an OS than just its kernel. You also need apps that run on top of it, to make it actually useful.

 

Developing a "simple" kernel is one thing, developing and entire OS from scratch is virtually impossible for a single person if you want to go beyond a command line with rudimentary commands.

 

Learning about kernel development is certainly worthwhile, but try to keep your goals somewhat realistic. Otherwise, you'll likely end up frustrated instead.

Remember to either quote or @mention others, so they are notified of your reply

Link to comment
Share on other sites

Link to post
Share on other sites

I do realize that, thats why I want to only develop a kernel and then work my way up with other contributors hopefully 🙂 (sorry I was only posting from an alt acc cuz apparently my primary acc was locked out cuz I forgot my password and then I needed to fetch by backup 2FA code which was a whole hurdle 😅)

Link to comment
Share on other sites

Link to post
Share on other sites

If you want to have a look at recent "from scratch" OS development you might want to check out serenity OS

https://serenityos.org/

 

Started by one guy, although it's been 5 years and there are about 1K contributors by now. But there are quite a few records of the progress, and video streams of him coding and explaining things.

F@H
Desktop: i9-13900K, ASUS Z790-E, 64GB DDR5-6000 CL36, RTX3080, 2TB MP600 Pro XT, 2TB SX8200Pro, 2x16TB Ironwolf RAID0, Corsair HX1200, Antec Vortex 360 AIO, Thermaltake Versa H25 TG, Samsung 4K curved 49" TV, 23" secondary, Mountain Everest Max

Mobile SFF rig: i9-9900K, Noctua NH-L9i, Asrock Z390 Phantom ITX-AC, 32GB, GTX1070, 2x1TB SX8200Pro RAID0, 2x5TB 2.5" HDD RAID0, Athena 500W Flex (Noctua fan), Custom 4.7l 3D printed case

 

Asus Zenbook UM325UA, Ryzen 7 5700u, 16GB, 1TB, OLED

 

GPD Win 2

Link to comment
Share on other sites

Link to post
Share on other sites

One resource that helped me out a lot when I was interested in this kind of thing is the OSDev Wiki. It has lots of great guides and info about writing a kernel and incorporating it into an operating system.

 

https://wiki.osdev.org/Expanded_Main_Page

 

This is a good tutorial to get started. It lists the tools you need and shows how to use assembly and C for a kernel that prints Hello World.

https://wiki.osdev.org/Bare_Bones

Computer engineering grad student, cybersecurity researcher, and hobbyist embedded systems developer

 

Daily Driver:

CPU: Ryzen 7 4800H | GPU: RTX 2060 | RAM: 16GB DDR4 3200MHz C16

 

Gaming PC:

CPU: Ryzen 5 5600X | GPU: EVGA RTX 2080Ti | RAM: 32GB DDR4 3200MHz C16

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×