Programming an OS from scratch?

Status
Not open for further replies.

Dillon_Reyna

Beta member
Messages
3
Hello all!

My name is Dillon, I'm new to the forums.

As we all know, these past few weeks have been a great loss of those such as Steve Jobs, Dennis Ritchie, and William Figel. I myself being an entrepreneur was looking for a new company to bring to the market. The death of these superpowers has enlightened me to attempt to walk the same roads as they did.

So I ask you, how do I build an Operating System from scratch?
How do I design a desktop layout?
How do I control user-interface?
What is the basic Operating System supposed to be capable of, and how do I accomplish that?
 
ummm...

To be honest, this is one of those things where if you have to ask, then you just can't do it...
I'm not just being an ass there, things are a lot different now.

Firstly, I'm going to take your dennis ritchie example, he and another guy made the orginal unix. but that was built on top of existing work and ideas, and it was a text interface (no GUI) all he really had to worry about from a interface point of view was the colour and size of the text, and the way the slashes went to indicate file paths.

nowadays you have to think about text sizes and dithering, and DPI and all other things used to display just one letter on the screen.
you're also going to need to think about the background, how that's set, how you access programs, how programs are arranged, how you interface with the hardware, how you conceptualise this access to users...

look at Dos, the windows 1, windows 2, windows 3.1 3.11, 95 98 98se ME and the NT 3 / 4 windows 2000, XP, Vista and now 7
there is a progression there.

yes, MS started as a company that was a handful of geeks, but that's just not really possible nowadays.

there are probably more people on the team that designed the start button on the latest version of windows than there were doing every single part of the OS on windows 1!


After that, to have anyone actually use your OS you're going to need to have programs that run on it (not just programs, but probably games and such too).
and even when you've got all the programs in existence working on it, you're then going to need to convince people to move away from windows, Mac OS or linux, and to do that it needs to be better and cheaper than those.


It's an incredibly long and difficult road ahead that you're about to embark on.

Basically, my advice to you is don't start building an OS from scratch.

Take an existing OS, like the Linux kernel, and build a new OS working from that work, that way you can still start on your own. and you can still build an OS, but you'll end up with something that already has an lot of software for it already, and something that already will work on different platforms and architectures.
 
I have to agree here.

As much as I admire you for your entusiasm in reality even if you are a super programming wizard to compete with the likes of Linux, Windows or OSX you have to have the following:

1. Past OS platform attempts to build on
2. Multiple programmers working on different areas
3. Financial backing and advertising

Bear in mind when Steve Jobs set up his business computing was very much a small market and as such the ability to come up with something useful was easier, back then the alternative to a desktop was either a pen and paper or a typewriter.

Maybe focus on the App market to start, get some apps released and go from there?

Daniel Hunt
Stroudy IT
www.stroudyit.co.uk
 
I echo what others have said already. Take MS for instance. The first OS they actually developed was Win NT. DOS was purchased and until Win NT all Windows versions were not OSes but were simply GUIs built on top of DOS.

Win NT was actually based on an OS called VMS from a company called DEC.

Linux is OpenSource which means that you are free to download the source code and modify it to suit your use. That would be the place to start, if you get to the point where you completely understand the Linux kernal so that you can modify it to do your bidding, then you might be in a position to think about developing your own OS from scratch.
 
These days you just don't - pretty much all of the open source variants died off other than Linux because of the sheer amount of coding and maintenance they require. This wasn't so much of a problem 15 years ago when you could create a perfectly usable OS just writing drivers for a keyboard and mouse. These days though things are very different, a usable OS has to be one that supports a variety of sound cards, graphics cards, TV cards, chipsets, fingerprint scanners... you name it. Assuming you do create an OS that people can write drivers for, you're gambling that people will actually use it and jump on board to create the drivers they need, which is pretty much nil unless your OS offers something substantially different from what's out there already (unlikely.)

Of course if you're looking for the technical challenge that's different - brush up on lots of C and ASM first though, it's still tough. As an enterprise start up though, forget it - it's never going to make you any money, just the opposite unless you really can fill a niche and fill it well. As said above, personally I think the best thing to do if you're interested is to play around with Linux and go from there.

Sorry to burst the bubble, but that's the sad truth these days!
 
Thanks for the information everybody! I knew it even sounded hard but... wow. Hahaha. I'll start with a Linux base and see what I can do from there. Marketing and sales shouldn't be much of a hassle. With so many different companies, and Apple starting to slow down, it shouldn't be hard to break out within the next few years.

Thanks!
 
Thanks for the information everybody! I knew it even sounded hard but... wow. Hahaha. I'll start with a Linux base and see what I can do from there. Marketing and sales shouldn't be much of a hassle. With so many different companies, and Apple starting to slow down, it shouldn't be hard to break out within the next few years.

Thanks!

Well if you start from a Linux base remember licensing-wise you can't really sell what you do, and even if you find a way to do it you'll have to convince others that your minor Linux version is worth paying for over others...!

I still think you're underestimating how (practically) impossible this task is, from every perspective - but wish you the best of luck.
 
Well if you start from a Linux base remember licensing-wise you can't really sell what you do, and even if you find a way to do it you'll have to convince others that your minor Linux version is worth paying for over others...!

I still think you're underestimating how (practically) impossible this task is, from every perspective - but wish you the best of luck.

I understand how nearly impossible this is. But hey, I've got a few techie friends/connections, so I figure it's at least worth a shot right!:D
 
But hey, I've got a few techie friends/connections
Well to put it in perspective (and without meaning to boast) I'm currently doing a PhD heavily revolving around programming - and this isn't something I'd feel comfortable tackling!
 
if you really want to create an OS from the ground up, I'd recommend looking at some other architecture htan x86 or x64perhaps try looking at some lesser chips putting output to a lcd matrix (lilke you get in child toys).

work on getting programs from an SD card (Using a standard FAT filesystem)

look at simple input/output (like serial ports).

then you might just creat a decent embedded OS that you could feasibly put into shop tills/fuel pumps/child toys/weather stations/ etc etc etc (anything where low power requirements are key.
 
Status
Not open for further replies.
Back
Top Bottom