creating an operating system

Talk about just about anything else that is non-gaming here, but keep it clean
User avatar
RCBH928
Next-Gen
Posts: 6063
Joined: Wed Apr 02, 2008 6:40 am

creating an operating system

Post by RCBH928 »

Hello,

I know almost nothing about writing software, but I am curious .
How tough is it to write an operating system like Windows or Linux?

I am under the impression that it is almost impossible and really expensive. Plus, the whole world has like only 3 OS's , and basically they are really old just with updates. Any other OS, is really insignificant and not relevant to the every day world.

In addition, I can be wrong but, I believe writing software needs a working computer and there are a lot of those in addition to a lot of talented programmers world wide but hardly any one attempting to write something different.

On the opposite side, there are many devices in the world with their own operating systems. For example cell phones, consoles, cars(the ones with control panel monitor), and many more electronic devices that have their own operating system.

If you know anything about the topic, your input is highly appreciated. I am just curious .
User avatar
DerekG52
32-bit
Posts: 277
Joined: Tue Sep 30, 2008 10:45 am

Re: creating an operating system

Post by DerekG52 »

Depends how complicated you want this OS to be. The source code for unix is not terribly long, but you need to know all of the in's and out's of how a computer operates before undertaking any sort of project like that. At an extremely basic level it needs to know how to manage memory, start and handle processes, accept user input, display information, communicate with other devices via drivers.

Based on your request it sounds analogous to saying "Hi, I'm interested in building a car but have only ever driven one and know nothing how it works." That isn't to say it can't be done, but there is a lot to learn. Pick up a textbook on operating systems to get a knowledge base of how the pieces work and fit together before trying to actually code it.

If you don't have coding experience, that is a whole other set of skills you will need to acquire. Analogous to learning how to use the tools required to build the car.

How old are you by the way? If this sort of thing interests you, perhaps a computer science degree is in your future.

Edit: The process is not necessarily expensive, everything started from a basic command line. It has taken decades of expanding upon that to get to where we are. Again, look at the car analogy. We didn't suddenly have cars that can top 200mph without first creating one that can go 20mph.

Ideally, the way any well run software project works is by taking baby steps. You develop a little at a time, gathering feedback as you go and make changes or add features as necessary.

The unix code base has been written and tweaked by some of the best minds in computer science. The algorithms they have designed have been optimized and perfected over the years, which is part of the reason why unix is typically light weight and yet just as powerful as any Windows or Mac OS.
Last edited by DerekG52 on Tue May 04, 2010 9:40 am, edited 1 time in total.
Image
Image
TurboC
Newbie
Posts: 9
Joined: Tue Apr 29, 2008 7:51 am
Location: Canada

Re: creating an operating system

Post by TurboC »

In my opinion, it is true that writing from scratch an OS should be insane and complex. We have to take into consideration that you need to implement many layers of software, from the first boot lines to high-end OpenGL graphic display, without passing beside the bunch of protocols a “regular” (read mainstream) OS need (Bluetooth, Wi-Fi, but also legacy ones to be retrocompatible).

The difference between an OS from a specific device and a regular OS is that the first one is made from one or some specific tasks. A cellphone is made for many, but known tasks. A computer have not possibility limit.

However, many developers start those type of projects. I am thinking about AtheOS (http://en.wikipedia.org/wiki/AtheOS) and MenuetOS (http://en.wikipedia.org/wiki/MenuetOS).

Also, you should refer to http://en.wikipedia.org/wiki/List_of_operating_systems to discover some interesting projects.
Hatta
Next-Gen
Posts: 4030
Joined: Tue May 06, 2008 8:33 pm

Re: creating an operating system

Post by Hatta »

The biggest part of writing a PC operating system is supporting vast range of PC hardware. That's why there are only a few major operating systems. It's a lot easier for smaller devices like phones, PDAs, etc. Writing an operating system for a simplified machine is something that a CS undergrad might do as a senior project.

Besides the major OSs that you've probably heard of (Windows, OSX, Linux, BSD), there are a number of smaller operating systems that people work on. Minix has been around forever and is designed as a teaching tool about operating systems. ReactOS is an up and coming Windows clone (run Windows software without windows), but it's not generally usable there. Haiku is a BeOS clone. Syllable is sorta inspired by AmigaOS.

Why would you want to run any of these? You probably wouldn't. Mostly to satisfy intellectual curiosity, do some problem solving, etc. For end users what matters is hardware support, and available applications. That's a lot of stuff to get working, and only the big OSs can manage that.
We are prepared to live in the plain and die in the plain!
User avatar
Ziggy
Moderator
Posts: 14913
Joined: Mon Jun 09, 2008 5:12 pm
Location: NY

Re: creating an operating system

Post by Ziggy »

kingmohd84 wrote:the whole world has like only 3 OS's , and basically they are really old just with updates. Any other OS, is really insignificant and not relevant to the every day world.


I guess you're talking about Windows, Linux and Mac. I guess you don't know that Google is coming out with an operating system which will be free. In fact, didn't they already release a beta for it? I don't know how I feel about it though, seems like Google is trying to take over the world.
User avatar
J T
Next-Gen
Posts: 12417
Joined: Wed Mar 25, 2009 6:21 pm
Location: Seattle

Re: creating an operating system

Post by J T »

Hatta wrote:The biggest part of writing a PC operating system is supporting vast range of PC hardware. That's why there are only a few major operating systems. It's a lot easier for smaller devices like phones, PDAs, etc. Writing an operating system for a simplified machine is something that a CS undergrad might do as a senior project.


Yeah, the AP computer science test I took way back in highschool was about understanding code for a really basic OS. Some of the basics aren't that hard to understand, but when you are trying to make a truly robust PC OS that can handle all the different kinds of hardware/software out there, then it gets complicated.
My contributions to the Racketboy site:
Browser Games ... Free PC Games ... Mixtapes ... Doujin Games ... SotC Poetry
User avatar
CRTGAMER
Next-Gen
Posts: 11933
Joined: Tue Jan 05, 2010 11:59 am
Location: Southern California

Re: creating an operating system

Post by CRTGAMER »

As much as I hate Windows bloated monopoly, I think that will be the mainstay. Look at how long free Linux has been trying to get a foothold. A better chance creating OS for say cell phones or smart device appliances.
Image
CRT vs LCD - Hardware Mods - HDAdvance - Custom Controllers - Game Storage - Wii Gamecube and other Guides:
CRTGAMER Guides in Board Guides Index: http://www.racketboy.com/forum/viewtopic.php?p=1109425#p1109425

Image
Image
User avatar
durkada
64-bit
Posts: 447
Joined: Wed Sep 13, 2006 1:46 am

Re: creating an operating system

Post by durkada »

The Google OS is, if memory serves, based on Linux -- similar to the Droid phones and most of their infrastructure.

But, let's be clear, there are many more OS's than just the three listed. AIX, FreeBSD, NetBSD, OpenBSD, Solaris, OpenSolaris, Plan 9, to name a few, are still viable. At some point, if this conversation continues, it may be worth while to distinguish between the Kernel and the OS. Linux is a kernel, the GNU is an OS.

To write one of equal calibre from scratch is a gargantuan feat. Not one of these was written by one person alone. And, of course, having a fundamental understanding of computer science is immensely helpful.

But, if you wanted to, you could just as easily try writing an OS that is, well, semi-pointless. Even these are tough -- you have to invent or implement someone else's filesystems, etc. FreeDOS is still kicking, and there are implementations that try to reverse engineer Winders. But people are still writing operating systems for legacy equipment, too -- such as the Commodore 64, Atari 8-bits, etc.
User avatar
AmishSamurai
Next-Gen
Posts: 2179
Joined: Tue Jun 30, 2009 9:06 pm
Location: Charleston, SC

Re: creating an operating system

Post by AmishSamurai »

Google OS is a reskinned Linux. So it will just be a higher-profile Ubuntu or Arch.
MrPopo wrote:The life lesson here is jobs will come and go, but Earthbound will always be there for you.


I'm a girl btw
User avatar
RCBH928
Next-Gen
Posts: 6063
Joined: Wed Apr 02, 2008 6:40 am

Re: creating an operating system

Post by RCBH928 »

Thanx for all the input,
I am not planning on writing a new OS, I am just curios .

But the information provided is confusing, because some people say its doable and another person says writing from scratch is almost impossible.
And I am talking about writing it from scratch.

It doesn't have to support a wide range of hardware, I just want to know how difficult it is to have a Windows like OS fully working, even if it is limited to a short range of hardware and I was wondering why its not happening although there are a lot of coders out there.

I know smaller OSes exist like Haiku , but I never understand why are they there and why would I want to use them.

now 2 questions come to mind,
1) Why would any one write a new OS? is it possible to write one from scratch that would be better than what is currently available? Does the world need a new OS? Or what we have now is the best thing human technology could get to , and any new OS will simply be mimicking what we already have?

2) If you need software to write software, then how did the first OS come out? What was the first OS?
Post Reply