Open questions in OS design?

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
User avatar
bewing
Member
Member
Posts: 1401
Joined: Wed Feb 07, 2007 1:45 pm
Location: Eugene, OR, US

Re: Open questions in OS design?

Post by bewing »

I think you guys are idealistic dreamers, contemplating 1980-model year flying cars in the 1950's.

Computers 50 (and perhaps 100) years from now will act basically like the computers we have now. They may have more horsepower, they may get 6 times better gas mileage, they may go 10 times faster, but that's it. Once you have invented a product, it does not re-revolutionize itself -- it settles into a final form, instead. The revolution will come from a different direction, and result in a different product than a "computer".

As far as minor improvements in computer usability go, I think you hit it on the head when you said "we will know 10 years after it has happened." Everyone here (even the silly newbies) has an idea or two on how to improve usability. Some of them might even work. The main question is: who can bring one of those workable ideas to market, and sell the hell out of it?
thre3dee
Member
Member
Posts: 34
Joined: Mon Nov 03, 2008 7:42 pm

Re: Open questions in OS design?

Post by thre3dee »

I think one of the biggest problems with trying to do "different" and "totally radical" things in OS development is that the current and prior 10 - 30 years of computers all require a bunch of standard generic "operating system" code to merely work. The current CPU programming languages, BIOS interaction code, boot code, memory management code etc etc has to be fairly similar because these things are the basic requirements of an operating system to run. Its a consequence of the way computer hardware exposes itself to the programmer in current architectures. As a quite proficient C++ etc developer, but a newbie OS developer, the annoyance of learning obscure constants and bit flags and obscure register names to do something as generic as setting up a CPU in long mode is a big wall for me.

I'm ok with assembly, but I have next to no idea what to do in assembly to get something such as an ELF executable loaded from a disk (**shock horror**) into memory and execute the entry point.

In my short time looking at OS development, it almost seems that a lot of this obscurity has come along as legacy required code for the previous x86 processor such as things like the A20 gates and whatnot.

It would be interesting to see what a completely redesigned CPU and CPU programming architecture for modern 64-bit CPU systems would bring to the table.

By that I mean, one CPU mode (64-bit, not real mode and protected mode and long mode and eleventy-billionth mode), a simplified boot programming architecture, and other such things. Simplified and more human readable CPU programming language. Assembly is great but the interrupt and obscure array of CPU directive constants etc make it unfriendly. In other words, a more simplified but just as flexible language for programming a CPU that can be guaranteed a certain feature set, a single always on CPU mode etc.

Even simple things like a slightly higher level assembly language:

Code: Select all

eax = 1;  // mov eax, 1
ebx = eax;  // mov ebx, eax
ecx = eax * ebx;
getCPUCapabilities;
if (eax & CPU_SSE3) jump HasSSE3;
HasSSE3:
// do stuff with SSE3
User avatar
Firestryke31
Member
Member
Posts: 550
Joined: Sat Nov 29, 2008 1:07 pm
Location: Throw a dart at central Texas
Contact:

Re: Open questions in OS design?

Post by Firestryke31 »

Funny, just last weekend I was contemplating just how much money all of the hardware companies (and a lot of the software ones too) would save if everything were completely redesigned from the ground up. All of that silicon wasted on some feature no one uses anymore because it was made obsolete 2 years later, but remains because there might be some piece of software out there somewhere that uses it still.

Just dump it all and start without all of the outdated crud. Now would be the perfect time because we're just starting the big push to 64-bit hardware, and if Intel and Microsoft and a few other companies got together and came up with a pure-64bit system...

The only problem I see is this: who would buy it? Almost none of today's applications would work on it because it wouldn't have any of the backwards compatibility that 90% of the APIs depend on, and that's a big factor in an end user's purchasing decisions. "What? What do you mean my 2 month old game I just spent $45 on doesn't work on this? Oh well, I'll just stick to my old computer."
Owner of Fawkes Software.
Wierd Al wrote: You think your Commodore 64 is really neato,
What kind of chip you got in there, a Dorito?
bontanu
Member
Member
Posts: 134
Joined: Thu Aug 18, 2005 11:00 pm
Location: Sol. Earth. Europe. Romania. Bucuresti
Contact:

Re: Open questions in OS design?

Post by bontanu »

Firestryke31 wrote:Funny, just last weekend I was contemplating just how much money all of the hardware companies (and a lot of the software ones too) would save if everything were completely redesigned from the ground up. All of that silicon wasted on some feature no one uses anymore because it was made obsolete 2 years later, but remains because there might be some piece of software out there somewhere that uses it still.
That is a very wrong idea that I hear all over the world in dumb groups with applauses.

First of all you have no idea about silicon space.

The simple "legacy" devices are very well designed and optimized in times when silicon was tight and they use up a tiny amount of silicon space and provide a LOT of service in return.

The "new" things designed with a lot of desires and young stupid ideas and with a lot less knowledge are the ones that use up unnecessary space not the "legacy".

There will be no money saved but a lot of money lost.

Practically nobody really wants to service or support OLD versions but the clients do NOT want to pay for new versions before they have extracted enough value from the old ones and the new versions do not show huge improvements.

Push this too fast and you will loose your clients for somebody else or worst.
Just dump it all and start without all of the outdated crud.
Just a dumb idea.

Without that "outdated crud" 99% of hobby OS developed here would not work.

"New" things have tendency to be over complicated, secret, closed and available only to corporations and on paying big time money in order to pay for the "board of directors" mistress and new Lamborghini cars.

They also require teams of 100-10.000 programmers with huge paychecks and in the end they just waste resources with no serious achievements other than market hype.
Now would be the perfect time because we're just starting the big push to 64-bit hardware, and if Intel and Microsoft and a few other companies got together and came up with a pure-64bit system...
What is a "pure 64 bit system" ?

AFAIK both Windows and Linux/Unix have full 64bits versions of their OS from some time now. The problem is that they do not sell so well even if most of today hardware is 64 bits "ready" anyway... I write this on XP 32 even if I also have XP 64 on the same computer.

64 bits is nice in some areas but it is a huge waste and a very bad design in many other areas. High hopes for 64 bits are just day dreaming. Ultimately it might slowly impose itself but the speed of transition is clearly very low.

I have 64 bits hardware and I do not use it ... instead I prefer 32 bits because 64 is unstable has no drivers for some hardware and it imposes new requirements and limitations and wastes resources. I only use 64 bits for testing in order to be sure that my applications are compatible and ready to "jump" when the time comes... if ever :P
The only problem I see is this: who would buy it? Almost none of today's applications would work on it because it wouldn't have any of the backwards compatibility that 90% of the APIs depend on, and that's a big factor in an end user's purchasing decisions.
Exactly. Anybody that does not respect legacy is dumb and goes to direct bankruptcy. Maybe we can dump DOS today but WinXP 32... ? hahaha what a joke. Also the internal parts of CPU's that deal with "legacy" are minimal and removing them would not solve much.
"What? What do you mean my 2 month old game I just spent $45 on doesn't work on this? Oh well, I'll just stick to my old computer."
Absolutely. I do not waste money and resources to pay for dreams.

I actually expect "that" win98/win2k 10 years old application should run perfectly and I would first dump .NET or other dreams rather than to dump a well tested and proven application just because somebody has high hopes for 64bits.


Do not get me wrong, 64 bits does have it's place in the future and it is probably the last big change in address space size ... but it is going to propagate very slow (much slower than 16 to 32 bits switch) and only when it matures enough and only when it provides something that is a serious competitive advantage....

But NOT because some new kid dreams that things will become "better" by dumping the past... once you loose understanding of the past you are doomed to repeat it or to die because of lack of understanding and high hopes.

Consumers will buy the 64 bit hardware blindly because it is the "new hype" and there is no other option anyway BUT they will drop to a standard 32 bit OS when they notice the waste of resources and when their beloved applications do not run decently or when there is no driver for some hardware.

They have to fix this first.

In order to redesign from ground up correctly you have to:
- know the legacy inside out for good of for worst.
- have the courage to simplify things and not over complicate or bloat them
- have immense experience and knowledge

Exactly the things that new kids in town do not have and some of those actions are conflicting with corporations "best" interests ;)
Ambition is a lame excuse for the ones not brave enough to be lazy; Solar_OS http://www.oby.ro/os/
User avatar
Firestryke31
Member
Member
Posts: 550
Joined: Sat Nov 29, 2008 1:07 pm
Location: Throw a dart at central Texas
Contact:

Re: Open questions in OS design?

Post by Firestryke31 »

bontanu wrote:
Now would be the perfect time because we're just starting the big push to 64-bit hardware, and if Intel and Microsoft and a few other companies got together and came up with a pure-64bit system...
What is a "pure 64 bit system" ?

AFAIK both Windows and Linux/Unix have full 64bits versions of their OS from some time now. The problem is that they do not sell so well even if most of today hardware is 64 bits "ready" anyway... I write this on XP 32 even if I also have XP 64 on the same computer.

64 bits is nice in some areas but it is a huge waste and a very bad design in many other areas. High hopes for 64 bits are just day dreaming. Ultimately it might slowly impose itself but the speed of transition is clearly very low.

I have 64 bits hardware and I do not use it ... instead I prefer 32 bits because 64 is unstable has no drivers for some hardware and it imposes new requirements and limitations and wastes resources. I only use 64 bits for testing in order to be sure that my applications are compatible and ready to "jump" when the time comes... if ever :P
When I said this I meant not having to go through 16 and 32 bit modes, but just jump straight into 64-bit mode. And remember, if the companies do make this switch, that doesn't mean all of the existing hardware will instantaneously self-destruct, and it would be extremely stupid of them to just completely stop making the 'legacy' hardware. I mean, Zilog still makes/licenses the design for their z80 processor, because people (Texas Instruments I know for a fact) still use it. They do, however, sell improved processors for different applications. Intel could do this, in one line of chips just dump all of the legacy crud and sell it to, say, researchers that don't need/want it, or to Microsoft to make their next big O.S. for when it finally makes its way into home computers.
The "new" things designed with a lot of desires and young stupid ideas and with a lot less knowledge are the ones that use up unnecessary space not the "legacy".
I don't think this is quite right. Intel would not waste their money on a poor design. They would have it go through several revisions before they even start making prototypes (or, if not, they should). It's a whole lot cheaper to fix something in the design stage than the implementation stage.


I may not know much about silicon space, but I do know it's extremely annoying to deal with all of the legacy crap. If a client wants to keep the legacy software, make them use a legacy computer.
Owner of Fawkes Software.
Wierd Al wrote: You think your Commodore 64 is really neato,
What kind of chip you got in there, a Dorito?
bontanu
Member
Member
Posts: 134
Joined: Thu Aug 18, 2005 11:00 pm
Location: Sol. Earth. Europe. Romania. Bucuresti
Contact:

Re: Open questions in OS design?

Post by bontanu »

Firestryke31 wrote: When I said this I meant not having to go through 16 and 32 bit modes, but just jump straight into 64-bit mode.
This serves no purpose and gives no improvements since going from 16 to 32 to 64 is very simple. And do not forget that some applications still need 16 or 32 bits. Think a little: who would benefit from this? you? because you "feel" that it is complicated?
And remember, if the companies do make this switch, that doesn't mean all of the existing hardware will instantaneously self-destruct,
Never thought it would "self destruct" :P
and it would be extremely stupid of them to just completely stop making the 'legacy' hardware. I mean, Zilog still makes/licenses the design for their z80 processor, because people (Texas Instruments I know for a fact) still use it.
They do this because the market still asks for cheap and simple CPU's for preforming simple tasks. Not every appliance that needs a program and some logic inside does require a big and expensive CPU.
They do, however, sell improved processors for different applications.
Of course. Again because the market does ask for this.
Intel could do this, in one line of chips just dump all of the legacy crud and sell it to, say, researchers that don't need/want it, or to Microsoft to make their next big O.S. for when it finally makes its way into home computers.
Intel "could" sent robots to mars to play tango on the rocks.

However Intel has a duty to his shareholders and it in the business for doing profits not for making your dreams come true. They have their own dreams ;)

They do profit by making small incremental updates.
I don't think this is quite right. Intel would not waste their money on a poor design.
News flash: AMD designed it after Intel LOST a lot of money by doing "exactly" what you propose here. They lost and learned their lesson (hopefully).

BTW they still sell "that" design... for whoever might need it and it might work for "them" but apparently it does not work for the desktop PC market.

In this loss they also lost the market pole position and for that short time AMD took the opportunity and designed a small incremental update from 32 to 64 bits ... this AMD design is called the x64 today. Intel had no option but to follow AMD or to loose even more money.
They would have it go through several revisions before they even start making prototypes (or, if not, they should). It's a whole lot cheaper to fix something in the design stage than the implementation stage.
No kidding?
I may not know much about silicon space, but I do know it's extremely annoying to deal with all of the legacy crap.
It might be annoying for you because you do not have the required skills and level of understanding . However Intel has no deal with you to keep you happy because of your "feelings"
If a client wants to keep the legacy software, make them use a legacy computer.
That clients pays money and deserves respect. They might have contracts that are binding by law. They can direct their money to somebody ELSE... as they DID towards AMD when Intel did what you propose....

Intel is not alone on the market and does not have a monopoly in order to dictate in a despotic way. Any mistake they make will be instantly speculated by it's competitors that are more "compatible".

Do not worry, this kind of things will happen some day but in very small incremental steps and with less loss IF the step taken is wrong.
Ambition is a lame excuse for the ones not brave enough to be lazy; Solar_OS http://www.oby.ro/os/
User avatar
Firestryke31
Member
Member
Posts: 550
Joined: Sat Nov 29, 2008 1:07 pm
Location: Throw a dart at central Texas
Contact:

Re: Open questions in OS design?

Post by Firestryke31 »

I'm just wondering where you got the idea that I thought it would benefit me. I never said I wanted it, I just wondered how different things would be if they just did a complete refactor of the hardware and software. I used Intel and Microsoft as examples, and nothing more. For all I care, it could be Zilog and Apple that come out with the next pure 128-bit platform that blows away all existing computers. I don't care about the next big computer system, I'm happy with the one I have, and I'll develop my software for it. I don't find the transition form 32 to 64 bit hard, because I'm not dealing with it. I don't have a 64-bit computer. I don't need a 64 bit computer, and I'm not going to waste my time on something I don't need or want.

It's not my dream to see this, just a simple brainstorm I had on a free weekend that I saw was somewhat relevant to the conversation. I don't care whether it happens or not.

I'll admit I'm not as knowledgeable about computers as I'd like, and I didn't fully think through the whole thing including downsides, but like I said, it was just a brainstorm I had during some free time.

Your post, especially towards the end where you brought my "feelings" into play, just seemed a little rude to me, and I learn far better when people don't insult me.

I see no reason to continue to explain my idea, because I didn't care too much about it to begin with. Plus, this has more to do with economics than OS development.
Owner of Fawkes Software.
Wierd Al wrote: You think your Commodore 64 is really neato,
What kind of chip you got in there, a Dorito?
User avatar
Colonel Kernel
Member
Member
Posts: 1437
Joined: Tue Oct 17, 2006 6:06 pm
Location: Vancouver, BC, Canada
Contact:

Re: Open questions in OS design?

Post by Colonel Kernel »

Firestryke31 wrote:I see no reason to continue to explain my idea, because I didn't care too much about it to begin with. Plus, this has more to do with economics than OS development.
That's exactly why your idea got jumped on. A lot of suggestions along the lines of "Let's dump everything and start over to design the One True Computer System!" sound like communist-style central planning, which I guess offends some people. :P
Top three reasons why my OS project died:
  1. Too much overtime at work
  2. Got married
  3. My brain got stuck in an infinite loop while trying to design the memory manager
Don't let this happen to you!
LoseThos
Member
Member
Posts: 112
Joined: Tue Oct 30, 2007 6:41 pm
Location: Las Vegas, NV USA
Contact:

Re: Open questions in OS design?

Post by LoseThos »

That's exactly why your idea got jumped on. A lot of suggestions along the lines of "Let's dump everything and start over to design the One True Computer System!" sound like communist-style central planning, which I guess offends some people.
God help us if one of those standards organizations did it! I'd much rather have a for-profit company do it. If ISO did it, I guarentee we'd have support for binary-coded decimal ;-)


This document is hilarious, yet sad:
http://users.telenet.be/it3.consultants ... O9960.html

It's in octal and uses 1 based offsets for structures. The format is terrible with everything under the sun thrown in there. Standards organizations have feature bloat. That ISO9660 is terrible!
Post Reply