@Mark . Talk about FUD ...
'Yup, I do buy an operating system: Linux'
1) Since when do you have to 'buy' linux ... it' free. like in zero paid ..
2) Even if you buy a specific 'distro' like Red Hat or Suse there are closed source modules in there. You may own the source to most of the distro.. but you are equally screwed with the closed off bits.
3) you cannot buy 'Linux'. You buy a system based on the kernel written by Linus & friends. Right now there are so many flavors , and some of them kinda play nice together, some don't ( package installer x does not work on distro y. Application compiled for distro y may not run on distro x, update of kernel modules breaks bunch of installed apps (windows has/had dll hell , linux distros have shared library hell) , Kernel API gets changed on purpose because that's how they want to force hardware manufacturers to release source for the drivers. )
I use commercial software (Cadence and Mentor Stuff) on a daily basis on Red Hat. Don't even try to get it running on other flavors. The software vendor specifies : you need this distro , this kernel , these libraries in these versions. anything else ... all bets are off, you are on your own , good luck , and don't come complaining if ti doesn;t work right. We only tested it with xyz and cannot support whatever flavor of linux you may be running.
When we licence the software it includes the right distro ... It goes that far that we have dedicated machines running only that software in that version of Red Hat. just to avoid trouble. We just use remote terminal running on a Windows box to work on the machines. Reason we use Red Hat there : PC hardware is cheaper than Sun hardware.
And don't come moaning : you have the source, you can recompile it if you want... 99.9$ of the people living on planet earth are not programmers. Of that 0.1% that are programmers , only 1 % can actually pull off compiling a block of source. As for modifying it . That number is even lower, and keep sdecreasing with the complexity of the application.
Take a look at a serious program like Quartus. Exists on Solaris, Windows and Linux (was originally Solaris Only) . Runs fine on Win98 , 2K XP and vista. Same binary. The linux version ? Sorry, Red hat only. Wanna try anything else ? feel free... we will not support it. People have tried it on Suse, Mandrake, Ubuntu, There is always something that doesn't work right.
Runs fine on all sorts of different Solaris versions though.
What i'm saying is : open source is good , but right now there is a wildgrow of distros that have too many base differences , and that makes it hard to make software that runs reliably on whatever distro you happen to be running.
If Linux would become mainstream today ( suppose microsoft calls it quits today , revokes all licences and tomorrow we all need to intall Linux ( Yay ! no more need to pay for the OS ) Hp will deliver machines with Red hat , Dell will use Ubuntu , IBM will uses Suse , Gateway will use Mandrake and other vendors will use whatever.
Think about the nightmare for the support teams and the frustration at the users side. " I downloaded program x. It runs fine on my neighbours hp , but my ibm won't run it. It won't even install because the package manager is different. And my other neighbour can't run it because he uses kde instead of gnome ..."
If i buy a program for windows i have a 95 % chance it will run on Win 2000 , XP and 80 % vista. ( nobody uses 3.1 , 95, 98 and Me anymore. Those versions went out with the dinosaurs ). Linux ? whatever is the 'favorite flavor of the moment i guess' And it shifts very quickly. Too quickly , and to many flavors sprout up . ubuntu , kubuntu , xubuntu, gobuntu. And every six months there is a new one , that starts the cycle all over again, Feisty Fawn , Gutsy Gibbon , Hardy Heron, whats the next one... Smelly Fart ?
Too tight control ( microsoft style) restricts freedom. No control leads to collapsing civilisation...
The ubuntu idea is good. But there are many more programs out there, than are offered through the system. And most of them don't target ubuntu. They target other distro's. Asking all those manufacturers/coders to adapt to all those distro's ? Ain't gonna work. Fix the OS . make it simple for software manufacturers.
It's time for the distro manufacturers to line up on a couple of points :
: package deployment system , library version control system , prerequisite control system, install local libraries with the app (disk storage these days is irrelevant. At 100$ for 750 Gig, i don't care if a programs needs 100 megs more diskspace ). That would make the end user experience more enjoyable. "Hey i got this cool program for linux based machines. Here , have a copy".
One click and it works right. Irrespective of that flavour you are running. Then you would have a truly free operating system. Free in the sense that end users can pick their distro freely , and are not longer tied to distro x , because app y won't run on it because the installer doesn't work or it is running the wrong desktop, or there are no drivers for my piece of hardware because the APi has changed, once more ....
I am convinced that distro manufacturers secretly hope that some application that only runs on their distro will become popular. So they get more marketshare. After all , the distro manufacturers are in it for the money too. If that would fall away , they would only gain marketshare if they truly have something to offer in the OS that others don't have ... And that is very very hard. An Os is just a means to run applications. You don't work with the OS (apart from some file navigation), you work with applications that run on it. And in the real world it's the applications that you wanna run that determine which OS you will run. If all apps run on all flavors of OS then it's damn hard to convince people to uses your version of the OS... if you pick the wrong color scheme for your gui you may fall out of grace...
I am not a windows freak. I use windows for aplication xyz , i use Red hat for application a,b,c, Solaris for d and e and i dabbled with ubuntu for a while too. I gave up. Because none of the software i want to use runs on it. Same reason i also gave up on Mandrake and Suse and MacOs and Dos , And win 3.1 and win 98 and NextStep and Irix and tons of others.
I wish we could have programs that wouldn't need operating systems. Just a tiny little boot manager. A very minimalistic system that can allocate a small virtual world for the application to live in , give access to keyboard, mouse, audio and a rechtangular area of screen real estate. Printing services can go through the same graphics api. Just a different 'screen size' depending on chosen paper. (printer is 300 dpi , paper is 8 1/2 by 11 ? : 2550 pixels by 3300 pixels is your 'screen' . now do the rest). Drivers would be simple. Grab the pixel data from the 'virtual page' and send to target , however that target requires it.
Networking services ? Every sandbox has a TCP/IP stack. Interprogram communication ? via tcp/ip tunnel directly between programs.
Programs would be compiled into a single file that contains all the executable code it needs. An application also has one settings file it can read/write (This minimalistic system would only allow it access to that file). Anything else is user data that can be stored in a hierarchical file system. No installers needed. Just copy those two files to a spot on your harddisk. And done. Don't need the program anymore ? erase the two files.
Such a minimalistic system could be written directly into the rom on the motherboard. Turn on the computer and in about 3 seconds its ready to use. Update of the Os : reflash the rom. Protect the OS against malware ? Write protect the rom. ( hardware switch ) nothing would 'auto run' Applications cannot corrupt each others settings or executables. They don't even see them. It's outside their sandbox. Only the program in ROM (let's call it the 'governator' for fun) can move programs to the folder that contains 'executable' files, and only on explicit request from the user. Applications could still corrupt user data. But that is solvable too. File Open and Save only gets access to the file specified by the user. Nothing else ! Applications simply can't write to different locations because the filesystem that they see only contain their own config file and the file that the user opens. Maybe they can have a scratchfile of their own too. Programs could still have multiple data files open. Every time the user clicks file-open and picks a file that file becomes visible int he file system of that application.
The file-open , file-save and file close services are given by the 'governator' to the application on the request of the user, Not the application. 'Opening' a file lets the application see the file in its sandbox. That's all. There is a root entry in every programs menu. That contains File Open , File Save , File Close and Exit.
Program crashes ? no problem. Governator is still running. Click Exit. Governator simply flushes the memory occupied by the runtime. Game over.
Anyway. One can only hope... as you already wrote. My name is Hope .. Vincent Hope...