Click here to Skip to main content
15,887,776 members
Please Sign up or sign in to vote.
1.00/5 (3 votes)
See more:
Hi, I am going to create a Operating System, but I don`t know which Programming languages I should use?
I am fully aware how much work it takes to create a OS, but I think it will be fun.
But yeah Which programming languages should I use? Thanks:-)
Posted
Comments
Mehdi Gholam 21-Sep-15 13:48pm    
If you know what it takes, then you should know what programming language to use also...
PIEBALDconsult 21-Sep-15 13:56pm    
No you're not. You've already failed.

But, if you insist...
http://www.codeproject.com/Articles/29523/Cosmos-C-Open-Source-Managed-Operating-System
Afzaal Ahmad Zeeshan 21-Sep-15 17:26pm    
Creating an operating system is fun for you, even though you don't know which programming language to use? Then I think I should leave programming and start finding myself a good barber shop to work at. :sigh:

Try using something like, Java or C#, or let's say, Brainfuck (it's a programming language), or something like PHP. Create the OS in that language. The question doesn't make any sense buddy.
[no name] 21-Sep-15 21:07pm    
Hi, I am going to fly to Mars, but I don`t know which airline I should use?
I am fully aware how much work it takes to fly to Mars, but I think it will be fun.
But yeah Which airline should I use? ThanksSmile | :)

As Dave Kreskowiak already pointed out, C and Assembly are the most used programming languages for developing operating systems. If your target is a PC, I suggest you to read the great article series of ox3c0: "Beginning Operating System Development"[^] (at least to get an idea about the required effort).
 
Share this answer
 
Comments
Maciej Los 21-Sep-15 16:07pm    
5ed!
BTW: very interesting link.
CPallini 21-Sep-15 16:12pm    
Thank you.
If you have to ask this question you don't know what you're getting into.

Assembler and C are the most common, by far. If you did know what you were getting into, you'd know why these are picked and where to use them.
 
Share this answer
 
Comments
PIEBALDconsult 21-Sep-15 14:56pm    
"Assembler"

:cough: Assembly :cough:
Dave Kreskowiak 21-Sep-15 17:18pm    
Yeah, yeah. I did this on my phone and didn't feel like correcting the auto correct.

That's my story and I'm stickin' to it!
Patrice T 21-Sep-15 16:01pm    
+5
Maciej Los 21-Sep-15 16:06pm    
5ed!
The first thing to do is start looking at the environment you are going to run in, and the compilers or cross compilers that are available. And then you can start looking at how you are going to use them, given that many basic library functions (such as "get a character from the user" and "print this string") use operating system functions to do it...

This is not a simple task: the chances are that you will want to use a combination of languages: assembler (for the speed and compactness), C for the higher level readability without losing too much speed, and probably C++ to get the higher level abstractions (that will need the most modifications over the life of the OS) that aid readability and maintainability.

Languages you really can't use include Javascript, VB, and C#!

But I don't really think you understand how much work this involves. There is a good book which will be well worth reading: http://www.amazon.com/Developing-32-Bit-Operating-System-Cd-Rom/dp/0672306557[^] - but it's a bit basic these days, and it won't get you running with a Windows 10 clone by Christmas! Maybe a DOS clone, if you really put the time and effort in...
 
Share this answer
 
Comments
PIEBALDconsult 21-Sep-15 14:17pm    
"Maybe a DOS clone"

D'OH! :D
Patrice T 21-Sep-15 16:02pm    
+5
I don't want to be a nay sayer, but "wanting to make an OS" and "asking which language" at the same time are such opposite things that it is a safe bet to say that you will fail.
"Making an OS" require some very deep technical skills, and "asking which languages" show a lack of such skills.

Languages:
At one point or another, you will have to deal with bare metal and "assembler" is mandatory.
For a higher level language, the fact that you have to control memory allocation narrows the choice to probably "C" and may be "d".

If you give a real try, there is one sure thing, your skills will improve.
 
Share this answer
 
Comments
PIEBALDconsult 21-Sep-15 16:07pm    
Hear! Hear!

I definitely agree with your final statement.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900