I have a project, I have to do for a university assignment I have to design an operating system “don’t worry I don’t have to do any programming I just have to come up with a proposal and presentation”

My question to you all is, are there elements from each of the commercial and open source operating system that you would combine to make the best operating system.

For example, would you take the GUI from one the speed from the other and the reliability from the third?

Are there elements in the three big boys operating systems that they have gotten completely wrong or need improving?

Recommended Answers

All 2 Replies

My question to you all is, are there elements from each of the commercial and open source operating system that you would combine to make the best operating system.

While looking at prior art is a good way to get started, I wouldn't buy an OS that's nothing more than a mishmash of existing competitors. I'd rather buy the mature competitor and tailor it to fit my needs.

For example, would you take the GUI from one the speed from the other and the reliability from the third?

Somehow I doubt that any OS in history has been pitched as being slow or unreliable. Those aren't elements of the OS design, they're problems with the implementation.

Are there elements in the three big boys operating systems that they have gotten completely wrong or need improving?

Well, it seems you already have pre-existing bias. So, I'd start by taking the two of the three "big boys" you think are slow and unreliable, then identify why you think that's the case, and design competing features that correct what you believe the problem is.

A GUI has little to do with an operating system. There are currently about two core operating system types:

  • Monolithic kernel
  • Micro kernel

as well as

  • Determinist real time
  • Non-deterministic not real time
  • Non-deterministic soft real time

There may be some that are, at least on the surface, a combination of those first two. Linux is an example of a monolithic kernel. QNX, now the operating system used by Blackberry (RIM) on their new BB-10 devices, is a micro kernel design. MS Windows is a bit of both.

If you want a system that can be used for applications such as fly-by-wire avionics, nuclear power plant controls, high-speed industrial control systems, then you need a deterministic real time operating system. If you are running a workstation, web server, etc, then a non-deterministic not real time system will work just fine. If you need something that can run many industrial systems such as warehouse conveyor systems, then a non-deterministic soft real time system may be the thing. Again, QNX is an example of the first type, Windows an example of the second, and Linux (with RT scheduling enabled) is an example of the third.

There are also variations of how user-space (applications) communicates with the kernel and drivers. For that there is the system call method, ioctl calls (both of which are used by Linux), and then there is the message passing method (used by QNX and some other operating systems). There has been a great deal of debate as to which method, syscall or message passing, is more efficient.

Combine all of these factors, and you have a good range of things to think about when designing a modern operating system, but one thing stands out, and that is what is your intended use for it? To a great extent, that will determine the approaches that you take in your project. Good luck.

commented: Great summary! +13
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.