Linked by Thom Holwerda on Sat 15th May 2010 19:23 UTC
OSNews, Generic OSes There's one complaint we here at OSNews get thrown in our faces quite often: what's up with the lack of, you know, operating system news on OSNews? Why so much mobile phone news? Why so much talk of H264, HTML5, and Flash? Where's the juicy news on tomorrow's operating systems? Since it's weekend, I might as well explain why things are the way they are. Hint: it has nothing to do with a lack of willingness.
Thread beginning with comment 424863
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[3]: Comment by mtzmtulivu
by ricegf on Sun 16th May 2010 11:49 UTC in reply to "RE[2]: Comment by mtzmtulivu"
ricegf
Member since:
2007-04-25

"UNIX ... was not designed with multitasking in mind at all"

Not sure where you heard this (or maybe the message is getting garbled in transit?). Unix was the unexpected offspring of Multics - both were essentially *mainframe* operating systems that were built from the ground up to not only multitask, but also to handle multiple users as well.

Unix (via its second cousin Linux) scaled down from the big iron to servers, desktops, phones, embedded devices and watches; Windows scaled up from the microcomputer to servers, picking up multitasking (but still not good multi-user) along the way. (Mac OS/X is Unix with a proprietary shell; it could probably scale, too, if Apple let it out of its ivory tower.)

The rest of your rant is pretty much in sync with my 33 years experience, though. (Gads, where did the time go!?!)

Writing a new OS is harder than you think - Gnu Hurd has been in development for 20 years now, and they still don't have a beta release. And that's with backing from a major organization, FSF, where the kernel is a pretty visible initiative.

But please don't let that discourage you. Linus Torvolds was a hobbyist once, too, but I hear his little project - "nothing big and professional like gnu" - has done OK. Yours can, too!

Reply Parent Score: 2

RE[4]: Comment by mtzmtulivu
by Neolander on Sun 16th May 2010 18:08 in reply to "RE[3]: Comment by mtzmtulivu"
Neolander Member since:
2010-03-08

"UNIX ... was not designed with multitasking in mind at all"

Not sure where you heard this (or maybe the message is getting garbled in transit?). Unix was the unexpected offspring of Multics - both were essentially *mainframe* operating systems that were built from the ground up to not only multitask, but also to handle multiple users as well.

(as long as many other posts on the subject)

Yes, you're right, I've been going a bit too far in this part of my rant. What I had in mind was that...
1/You can *feel* that the UNIX family targeted people running one single task at a time on a dumb terminal. Example : run a CPU-intensive task in some kind of virtual terminal. Open a new tab or use Ctl+Alt+Fx and log in. Noticed how long it took for the shell to be ready ? Now run another CPU-intensive task in it, and try to open a new tab. Even slower. Notice that if you use an X11-based GUI, the whole UI becomes unresponsive. Try to run the CPU intensive task on the third tab. You can now go and do something else, the computer will be unresponsive to the point where it is unusable now. This was not an issue when people logged on a server with only one session at a time and ran only one program at a time. It's an issue for anything that's GUI-related.
2/Then, think about UNIX's traditional startup process : it runs a script shell, which then sequentially runs several tasks. If those tasks are IO-bound, the CPU will just wait for IO to complete. Many Linux distros are trying to get into parallel startup now, but they then have to get rid of the *huge* pack of script shells that are in use in the UNIX family.

Sure, UNIX knows how to put processes on multiple processors. If you ask for a new thread, it might even create a new one. But it's not optimized for people running multiple tasks, nor it's good at using multiple processes in its own code...

Writing a new OS is harder than you think - Gnu Hurd has been in development for 20 years now, and they still don't have a beta release. And that's with backing from a major organization, FSF, where the kernel is a pretty visible initiative.

But please don't let that discourage you. Linus Torvolds was a hobbyist once, too, but I hear his little project - "nothing big and professional like gnu" - has done OK. Yours can, too!

I know that it's hard. That's why I explained how small my chances of success are, and how long it'll take. After all, it's my third attempt. I already messed up two times. But this time, I have a good feeling. I feel like I have a global vision of what I want to do. I know where I go. I know where the information is. I've got some design doc around. Now it's just a matter of time... And as I said, it'll take at least 2 years till I get some usable GUI code (and probably 2 more years to complete the first GUI program in my roadmap, an IDE for making future development easier ^^)

Reply Parent Score: 1

RE[5]: Comment by mtzmtulivu
by porcel on Sun 16th May 2010 18:30 in reply to "RE[4]: Comment by mtzmtulivu"
porcel Member since:
2006-01-28

Good luck, but why is so wrong with every existing IDE out there (Netbeans, KDE4).

If you think that you can do better than the thousands of programmers and researchers working on say, Linux, I am waiting eagerly to see the fruits of your efforts.

But remember, two things. Release early, release often.

Let other people take a look at your grandiose plans. Your wonderful world-changing plans might not as revolutionary or new or even as great as you think them in your head. This is not to discourage you from creating the "next big thing", but being open should keep yourself motivated and intellectually honest as it means that you will be willing to cross-check your design decisions.

Best of luck

Reply Parent Score: 2

RE[5]: Comment by mtzmtulivu
by ricegf on Mon 17th May 2010 10:58 in reply to "RE[4]: Comment by mtzmtulivu"
ricegf Member since:
2007-04-25

You can *feel* that the UNIX family targeted people running one single task at a time on a dumb terminal. Example : run a CPU-intensive task in some kind of virtual terminal. Open a new tab or use Ctl+Alt+Fx and log in. Noticed how long it took for the shell to be ready ? ... It's an issue for anything that's GUI-related.

OK, I've experienced GUI slowness, and agree that neither Gnome nor KDE are outstanding in prioritizing the GUI over background tasks by default (I know Windows is far worse, but I can't speak to other GUI shells, as I haven't used them). They should do better - although even since early Unix, nice has been available to manually address this.

BUT. Unlike Windows, KDE or Gnome are NOT part of Unix - they are just GUI shells.

Counter-example: Install gnu screen (it's a textual window manager, more or less). Start a CPU-intensive task. Create a new screen. Repeat as long as you like. Performance degrades nicely - I know, because I've used this to run a bazillion cross-compiles simultaneously without any real performance problems.

What's more, I've used this to run a bazillion cross-compiles *on dozens of computers on the local network*. All using nothing more than the command line. I know that Windows can't do this natively (you have to pay for special software); I don't have experience with other OSes in this regard, so I can't say if this is a Windows short-coming or a *nix strength.

My point, though, is that non-optimal GUI responsiveness aside (and the GUI is not the kernel), *nix not only handles multi-processing well from the primitive command line, but even multi-computing.

If you successfully write a new OS, I hope you layer it nicely like *nix rather than create a soup like Windows, so that the GUI shell will be portable. Unlike Microsoft and Apple, us Linux folks LIKE choice.

(I suspect writing a better shell is a LOT harder than it looks. That's why I haven't done it. :-D )


Then, think about UNIX's traditional startup process : it runs a script shell, which then sequentially runs several tasks.


Yes. I can't imagine why you want to multi-task during startup, though. If you have a hardware issue,can you image debugging it in a multi-tasking scenario??? *shudders*

Reply Parent Score: 1