+ 5

Which language should I learn to develop my own Operating System, such as Microsoft, Linux, Ubuntu, Unix etc.

29th Jan 2018, 5:13 AM
Manu Ojha
Manu Ojha - avatar
6 Answers
+ 17
C/C++, assemblers and much knowledge of computer science and MATH
29th Jan 2018, 9:33 AM
\__(° = °)__/
+ 9
operating systems go much further then just a language, they have to function with as many different types of hardware as possible. it's a necessity to understand the hardware side of computers 100%. You have to know exactly what each part of the pc does, and know exactly how to make different parts of your pc commenicate. once you understand it all, you have to create your own compiler for a programming language you have to create. and this compiler must be compatible with all the different compilers motherboards can have. And during this process you won't get nice errors telling you what you did wrong, or on what line the error happened, it will just malfunction. and if you do really not understand one of your mistakes, you can't just post a question on SoloLearn, stackOverflow or github. because none of them will know the answer. For each piece of hardware you are programming you will have to either read the mile-long manual and/or contact all of the manufacturers just to fix your mistake that could be as simple as a typo. what I would recommend if anyone wants to create their own operating system. be grateful for all of the work smart people have done for us to have programming be as easy, understandable and accessible as it is right now. There is a reason there are only so few operating systems, and there is is a reason Microsoft is a multi billion dollar industry and has thousands of extremely skilled software developers. but hey, I won't stop you from dreaming ;)
29th Jan 2018, 6:37 AM
wout werkman
wout werkman - avatar
+ 4
the main purpose of an os is to manage resource (cpu time), now to do this you must have access to the hardware. So a compiled language would a good choice. like c, c++,rust, maybe go as well, you may also need assembly. also as martin said if you want to really do this start with something small like embedded systems, you will learn a lot about how to program at hardware lvl. for additional stuff https://wiki.osdev.org/Main_Page
29th Jan 2018, 9:02 AM
shobhit
shobhit - avatar
+ 3
If you're talking about a real OS that can run on a machine itself C/C++ will help, but you may also need some assembly knowledge (whatever processors the machines you plan for your OS to use will be the versions of assembly you'll need) and may need an optimizing compiler from your language of choice to that assembly. You'd be better off just playing with Linux -- from the kernel, which is part of the base of an OS, to the GUI it's *mostly* open source and easily customizable, though of course requires a lot of knowledge about what you're screwing with so you don't ruin the machine, as will trying to make your own OS (and will be far harder than playing with Linux).
29th Jan 2018, 6:20 AM
Tom Shaver
Tom Shaver - avatar
0
A google search can answer that
29th Jan 2018, 5:21 AM
Tejhan
Tejhan - avatar