Building my own OS | Sololearn: Learn to code for FREE!


Building my own OS

I want to build my own OS and I want to know what programming language should I learn? I already know Java.But i saw that will not help.Should I learn C or C++ for building OS??

1/7/2017 1:02:29 PM

Hamza Merdzanic

10 Answers

New Answer


There are 2 books that can get you started. The C Programming Language 2nd Edition by Brian Kernighan and Dennis Ritchie and Advanced Programming in the UNIX Environment 2nd Edition by W. Richard Stevens and Stephen A. Rago You will need a mastery of C to embark on this as you enter the world of system programming. But take it from me, it's not as painful as it seems... it's much much worse! And then you graduate. 😎


Design a OS in now days from scratch might still be a hard work but not imposible if you have the will and a great team of developers with you. You will need at least Assembly, but that would be painful for you because you will have to handle and consider the diferences among a lot of procesors that your OS will have to support, because the Assemby language differs from one to another . So you will need something that can help you a bit with that problem and you can focus on what is more important without redesigning your system for each processor, for your epic quest you will need a general purpose language like C/C++, Java, C# , etc. I would recomend you to use C or C++, they are fast, reliable, and support Assemby code inline with your C/C++[1] code, giving you a great control over hardware and performance without going crazy writing everything on Assembly.


Before learning any language, you should learn basically what are the different component of an OS ^^ If you always plan to build one by your own, meaning from scratch/zero, you need a lot of practice before starting your project, and of technical knowlendge... Well so, my advice to you, is rather to build it totally from nothing, learn to build it ( ie: from a gnu/linux/debian base -- you just need to learn command line terminal :P ) at least at first, to have a good view of the work intended to make an OS ;)


@Theo: ... and so, what's: ++ C++ ?:P Whitout joking, C is still a relevant proven language that continue to be widely useful, especially on low level programming, for which oriented object concept aren't adapted... and it's widely too anchored in the adn of a lot of languages which have succeeded.


You probably can do it in a virtual instalation of a linux, but you probably too add problems sources, and at least lower performances in compiling... Looking at documentations/tutorial, even without do it, will certainly learn a lot to you ;)


I have not tried this myself, but this may help. (other may comment)


#visph -- yeah! The problem is that I do not use Linux,I am windows user... Can I do that with VirtualBox?? And also, I am ready to learn anything I just started c++ course here and after that I will learn Assembly


I asked it to a friend yesterday. So, he said: "You should not start a house by the roof, but once you're in it for real, and you'll know when it is, you'll want to play a little with Minix first."


Ekansh, I thought C was replaced by C+ and then C++. You're saying that C is still a relevant language?


I saw a Web page that says that I should learn C to build OS and C ++ for games is that right? I mean should I learn C now instead C++¿¿?