Hi. I was wondering where I could get information on how to start building an OS? Any links would be helpful! I would also like to know what language would I have to build my OS in and how to make a GUI. Thanks!
Printable View
Hi. I was wondering where I could get information on how to start building an OS? Any links would be helpful! I would also like to know what language would I have to build my OS in and how to make a GUI. Thanks!
This question comes up many times on the forum here.
I am assuming that this is a prototype OS. Do you expect to actually boot this OS without the underlying control of Windows (or Linux or whatever).
No. I do not expect (yet) to have it boot without the underlying control of Windows.
Then I guess the next question to be asked is if you are planning a command line interpretor first?
I would suggest that it should be done that way.
So the experience gained will be in parsing text commands with qualifiers - executing the associated app - and displaying the results.
Digital Equipment Corp had a great command-line OS back in the 80's and 90's that used a parser/syntax called DCL (google for it)...
Basically it was:
COMMAND/QUALIFER=VALUE
but it extended very well...
COMMAND/QUALIFER=(VALUE1,VALUE2=SUBVALX)
There was a level of consistency to it that made it quite easy to use.
http://en.wikipedia.org/wiki/DIGITAL_Command_Language
If I expected it, I don't yet, but if I did, to boot without any underlying control, what would be the way to build it?
I would suggest that the language be either C, C++, or ASM. And as for the GUI, you realize that your grandchildren will die of old age before you complete this thing, right? A whole OS with a GUI is generally a large team project.
You need to write a bootstrapper in assembly language.Quote:
Originally Posted by sheikh78
Check out the flat assembler forums, they have some demos of working self-contained OS's (somewhere - there was a comptetition thread a while ago).
Yes, I do realize that. But the comment was funny.Quote:
Originally Posted by Shaggy Hiker
I don't know why, but I have a hunch "you are less than 30 years old"Quote:
Originally Posted by sheikh78
Building an OS is painfully difficult... Not to mention, extremely intricate.
A good comaprison is in biology. You don't learn about chlorophyl and cytoplasm and how to power a clock with a potato; then turn around and clone a human embryo for your next project.
And in actuality, cloning a human is probably easier than building your own OS.
Not if there's no GUI involved and it's not multi-tasking. Aside from the BIOS, CP/M was actually quite simple.Quote:
Originally Posted by sevenhalo
I knew you guys were going to start beating up on this post ;)
Learning command line parsing is a great programming skill to have.
True I am. But I'm not gonna say how old I really am.Quote:
Originally Posted by ComputerJy
It's easy enough to get an OS that boots. It's hard to get a command line working, but it's achievable.
Heaven help you if you want to do more than that ;)
I disagree, several groups have created OS's. Nobody yet has cloned a human (as far as we know). Technically possible, but only within the last few years.Quote:
Originally Posted by sevenhalo
By the way, I don't want to be seen as beating up on this post. While it is a wildly ambitious project, that in no way makes it a bad thing. Perhaps you will never finish, but so what. There are plenty of good OSs out there already, and it is unlikely that you would overtake Windows. However, along the way you will learn tons of stuff, and will likely head off to a good career as an UberGeek. Nothing wrong with that, most of us would be totally supportive.
I know my OS could never be good as Windows but I can try at least.
Why not just try starting with a shell .. a repalcement of Explorer.exe .. there are even free ones out there, i recently used Blackbox in a program i created that took over the PC and only launched its own programs ..
http://www.stardock.com/stardock/art...rimer2002.html
http://blogs.msdn.com/embedded/archi...30/403999.aspx
http://msdn.microsoft.com/library/de.../custshell.asp
http://www.geoshell.com/
and my favourite .. http://www.bb4win.org/ .. i totally edited it and created my own commands in a seperate exe program.
here's an IE kiosk example using the blackbox shell ....
http://www.bahamassecurity.com/WebInstallerIE.zip
(pm me for zip pass and how to use it)
A long time ago I saw a library collection for doing just this. Didn't download it, nor do I have the url to it. See what google has to say, I'm sure there is like 32948092384092834098234 websites that tell you step by step. There is even a site floating around that showed you how to create your own OS from the linux kernel. I don't have that link anymore, because thats not my field :p.
@sevenhalo
The diffuculty of this is how talented the programmer is. Bill Gates created MSDOS (I assume he created this from scratch....someone please correct me if I'm wrong, at least I'm 90% sure he had a huge hand in it because I could swear thats what got him the foot in the door so to speak in making his billions...). If the programmer can code 100+ lines of non buggy code in a day (I can code 100+ lines in a day, but 90% of it is going to be buggy xD) then he could easily accomplish this. Otherwise, this will be a project for his kid's kids to finish ;).
With 100 lines a day, you have Windows 95 in a bit more then 123 years. And remember that debugging and stuff like that usualy takes much more time then the actual coding...There is no way you are going to keep the same number of lines each day when you get close to the end of the project. In 100 years that is..
We all know one person can't do this. I was just stating some posibilitys.
Leave me alone its late where I am :(.
Every time I read that story I just have to laugh at how near-sighted IBM was and how lucky Bill Gates was...
3 or 4 things happened out of sheer stupidity and Gates never let go of the lead that gave MS on the market place! Now that's smart business.