Where Are Operating Systems Headed?
An anonymous reader writes "Dr. Dobb's Michael Swaine breaks down the question of where operating systems are headed. Among his teasers: Is Vista the last version of desktop Windows? (Counterintuitively, he says no.); Did Linux miss its window on the desktop? (Maybe.) And, most interestingly, are OSes at this point no longer necessary? He calls out the Symbian smartphone OS as something to keep an eye on, and reassures us that Hollywood-style OSes are not in our short-term future. Where do you weigh in on the future of operating systems? In ten years will we all be running applications via the internet?"
I think the author of the article is displaying a great deal of confusion over Operating Systems vs. Programming Platforms. Which is understandable. We've had the concept of "everything included on the CD is part of the operating system" idea drilled into our heads for the last decade or so. There has been little attempt to recognize how distinct different portions of today's "operating systems" actually are.
Consider for a moment: What is Debian on FreeBSD? Is it a FreeBSD operating system or a Linux operating system? Or is it a Frankenstein kitbash of both? The answer is, neither answer is correct. It is the FreeBSD kernel combined with the GNU Platform.
Separating the task of operating the hardware (traditionally the job of the kernel) from the higher level "platform" has a variety of implications. The most important implication is that the software is as portable as the platform is. It doesn't matter if the underlying kernel is FreeBSD, Linux, or Windows NT. If you software targets the GNU platform, it is portable across all those systems. At least at a source level, though binary compatibility is ideal.
Thus when programmers make the comment that Java "is like an Operating System", what they mean is that the Java Platform is sufficient to replace the platform that shipped with your operating system. While the focus is currently on integrating the disparate platforms, what you're starting to see is that the OS is taking a back seat to the platform. Programmers want portability across devices, and Information Technology wants more flexible deployment solutions. Combined, these two needs add up to a drive for further portability of platforms with an eye toward using the right kernel for the right deployment solution.
That is where "Operating Systems" are headed. Not the monoliths of yesteryear, but the flexibility to provide familiar functionality where you need it and when you need it.
Javascript + Nintendo DSi = DSiCade
What geek would run a operating system without using his or her head? We're not all mindless consumers.
Everybody is talking about running applications through the internet. Why would we, as consumers, want to do this? The RIAA and MPAA are attempting to limit our ability to make backups of things we purchase. Now, software appears to be heading in the same direction. If we start streaming applications, then we could easily get into a pay-as-you-use function, or some other horrid distribution system. Frankly, I would not want to be charged every time I open a text document, or an IM window, or an internet browser. And I don't like the idea of paying a subscription fee either. I think forcing people to stream applications through the internet will only push more people into using Linux, so that everything is right there on the machine.
The definition of an operating system I like to use is:
An OS is a collection of code that is used by software to manage access to system hardware via a well defined API, along with a collection of standardized utilities that provide for user access and management of system hardware and data structures and data streams associated with that hardware.
So, under this definition, the kernel is a peice of the OS, disk access utilities are part of the OS, but applets such as a mini word processor and paint program are mearly bundled utilities.
I'm worried that we're going to keep building on top of the macrokernels we already have, without cleaning up and simplifying things as we go. I'm worried that the future will be as presented in Vernor Vinge's A Deepness in the Sky, where everyone runs an operating system too large, un-modular, and spaghetti-like for anyone to understand, much less debug. Hurry with The Hurd, RMS!
Step into a huge movement. Don't Tread In Me.
Too bad you posted as AC. I was looking forward to a mature conversation about your assertions...
Oh wait, this is Slashdot. What am I thinking?
"Piter, too, is dead."
The vast, vast majority of internet-goers are already running a lot of stuff on the internet, like email, various activex controls, etc. which aren't technically traditionally installed apps, even if they're not entirely internet-based either. The transition phase is over, and now that more and more internet-based apps are coming out, it will just be a more diverse environment -- not just a "pc only" or "internet only" world.
stuff |
Two words: Consumer devices.
I think Steve Jobs has seen the future, and realised that the PC won't be so important, the action is all going to move to various types of devices aimed at consumers. So, he started with music players, is moving into portable video/gaming and now of course telephones, and has made the first steps towards TV. Television is the biggie of course, and I believe Jobs is being deliberately low key about his intentions there - with the low key announcement of the Apple TV box, for instance.
Here's a prediction, in the next few years Steve Jobs is going to make a presentation where he says something like "First we revolutionised the personal computer, then the music player and the telephone. Now we're going to revolutionise television..."
Symbian? You've got to be kidding me, right?
He definitely never looked at it or never tried to develop something on it.
If Symbian is your answer, you've got the wrong question.
Counterintuitively, he says no.
How is this counterintuitive? Of course Vista is not the last version of desktop Windows. You don't think Microsoft will want to retain their revenue stream in 5 years? Plus with China growing economically there will still be much demand for new computers with new OSs for many years.
In ten years will we all be running applications via the internet?
Maybe, but that doesn't mean there will be no OS. Even thin clients need some form of OS. Your web browser has run on hardware somehow.
Developers: We can use your help.
Why include things like "a mini word processor"? That gets into too much interpretation of what "mini" is.
I prefer to define an OS as the code that controls the local hardware.
If the OS allows some other app to control the local hardware then that OS has a "vulnerability" and is not "secure". There are lots of examples of that in history.
Apps run on the OS. And app can be something such as Java which can run apps itself. But Java should never be touching the local hardware.
I'm inspired by Ray Kurzweil's keynote at RSA Conference 2007.. http://singularity.com/
If you're a M$ hater, just wait until "sap and impurify your precious bodily fluids" is a system requirement.
Among other nanotechnological breakthroughs, Kurzweil says it will be possible to inject robotic blood cells that will enable you to "sit at the bottom of a swimming pool for 4 hours."
OK, for now I'll settle for Fedora Core 42 and nano-robots that will let me drink as much red wine as I want without getting a headache.
Give a man a fish and you have fed him for today. Teach a man to fish, and he'll say "WHERE'S MY FISH, YOU IDIOT?"
For a computer to be useful, you need hardware, applications, and input and output. That's it, nothing more.
Everything in between is there as a convenience.
Whether it's convenience library routines like math libraries, a hardware-abstraction or -virtualization layer, or things that let more than one application coexist and even communicate, or whatever, OSes and other "in between" parts of a computer are there to make the application more useful, easier to write and maintain, or both.
We will always have these in-between layers. Whether the "in between" layers of the 22nd century are anything like today's OSes only time will tell.
Personally, I think 10 years from now you will see just about every application running in an isolated environment, possibly a VM of sorts. In particular, applications which access machines or applications that are not "trusted" will be run isolated from other applications on the system. They will be able to save files to a scratchpad area and send events to certain other applications such as a printing subsystem, but that's about it. Applications will communicate with other applications on the same PC in much the same way distributed applications, such as a web application, communicate today.
By 2017, I also see most applications using virtually no local storage except security credentials and cached data. All "real data" will be stored on "the big server in the sky" or "the big server run by the IT department." The exceptions will be applications demanding extreme privacy, such as diaries and non-networked dayplanners, applications demanding offline use, such as cellphone notepads, and "convenience applications" like calculators and non-networked games.
By the time our Kindergarteners reach High School, the distinction between wristwatch, cellphone/PDA, and laptop/desktop/home-entertainment-center will be one of scale and purpose, not architecture or raw capability.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
Until devices and other hardware components have enough built-in intelligence to communicate with each other and with user programs, and until their built-in intelligence is presented to applications through a standardized communications interface, there will always be a role for operating systems.
And the reason is simply that this is the primary role of an O/S: to glue together many rather dumb components (some virtual, some non-local), and to provide a standard abstraction for them, so that applications can be programmed with a degree of sanity. Everything that O/Ss do can be considered in those terms.
Host operating systems will disappear when they are no longer needed. And *that* will happen only when/if their key functions have migrated into the hardware, so it's a defensible argument to say that actually they will never really disappear, but transform.
"The question of whether machines can think is no more interesting than [] whether submarines can swim" - Dijkstra
I envisioned a modular OS where the core provided essential features and all the trappings were completely pluggable. Don't like the UI framework? Use a different one. Same for the filesystem, etc. At the heart of the OS I expected to see a sort of object database where all these features were installed and managed, with some sort of OpenDOC layer on top to retrieve modules as needed. Of course, I was way off the mark, but this is the kind of OS I would like to see in the future.
Unix has this to some degree, partially by virtue of it being old, but there exists no structured management system for the packages at this basic level (that I'm aware of). And while I grant that one isn't necessary (the shell/filesystem combination is fine for package management), the lack of one tends to complicate things from a user perspective. Linux has made great progress over the years in achieving high-level usability, but many low-level tasks still require a good bit of domain knowledge and thought, largely because of the filesystem/shell nature of how these tasks are typically performed. If this process could be simplified and in turn made more reliable (it's a bad example, but compare installing an application on MacOS compared to any other operating system), then I think things would be moving in the right direction. This isn't to say that being able to mess with the core of things is bad, but it should be an option, not a requirement.
In 10 years, your OS choice will be pretty much irrelevant. With virtualization built into desktop processors, you could just go ahead and run a hybrid linux/bsd/windows/osx box and run whatever application you want or need natively. Your host OS would be irrelevant.
Ok, Apple will keep it's fiefdom - but there's really nothing in that world I'd miss.
I would love to see some sort of unified driver type - your driver and hardware not tied to an OS, but that's unlikely.
I don't need no instructions to know how to rock!!!!
Operating systems are headed right at the top, with #include .
Step into a huge movement. Don't Tread In Me.
Big Deal. I can do that NOW, without any nano-anything. Heck, I bet YOU can, too!
Now, if you insist on filling the pool with water... <grin>
While the author correctly identifies a huge potential market for smartphones in the coming years, maybe his assumptions about Symbian are a little naive.
These smartphones are becoming popular because they are becoming more and more like a standard PC every day. The only exception being the user interface (if anyone has an idea how to fix this, give me a call ! I promise to share in the huge profits ! ).
This is facilitated by the increasing processor power that these phones have available to them. Symbian was designed for small memory, low performance processors which incredibly strict power consumption requirements and limited connectivity running in a highly controlled environment (i.e. software environment).
The cost of developing drivers for Symbian (with all its quirks) is enormous. At the moment, the semiconductor companies are getting hit with the cost of this development. This will not last forever, they will always strive for the cheapest possible solution - and this helps explain Linux large penetration in this market.
The company that holds the best cards in this field is Apple. They have waited until mobile devices have become powerful enough to run (only slightly modified) standard PC kernels (XNU). This is going to save them a fortune in the years to come. Microsoft has missed this boat - they are trying to split their OS into as many different branches/versions/flavours as possible, while neglecting the requirement to try and maintain a common "brand" across all devices.
[ Monday is a terrible way to spend one seventh of your life. ]
Think of a computer as a layer of platforms. Applications can target any platform unless some part of the platform stack restricts such access.
A typical PC:
CPU and other hardware, BIOS, OS kernel including kernel-level library routines and virtual-machine subsystems, OS-supplied and 3rd-party library routines including OpenGL and non-kernel virtual machines, and applications. For the sake of simplicity I'm ignoring complex scenarios like OSes running in a VM that's running in an OS that's running in a VM.
In principle, applications can "call" functions at any level in the stack, although in modern OSes the kernel blocks direct access to the BIOS and some other hardware and the chip itself blocks access to privileged instructions by unprivileged applications.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
I dispute that. And even if Linux does die out, its legacy will continue.
Linux has had a huge positive effect. For one thing, it gave the GNU project a serious kick-start. Sure it was possible to run GNU on a BSD kernel before Linux came along; but next to nobody actually did. Anyway, BSD had its own set of Open Source userland utilities, and still hardly anybody used it. Suddenly Linux came along, and Open Source was trendy. Linux had its limitations, for sure; and some of the people who tried Linux moved over to BSD for what at the time were valid reasons. Some of them moved back when Linux cleaned its act up. These peole might never have tried a free OS, if it had not been for some young upstart Finn with a bee in his bonnet about performance of monolithic vs. microkernels.
Do you think Solaris would have been open-sourced -- possibly even under GPLv3! -- if it hadn't been for the fact that GNU/Linux posed a credible threat to it?
If anything is "headed to the landfill", it's the whole Closed Source model -- or more strictly, the egregious idea of keeping the Source Code of a program secret from its own users. The extent of the damage that this has done is just beginning to sink in, ever so slowly. Within a generation, there will be more than one country in the world where it will be illegal not to supply Source Code with software, even if you are not allowed to give out copies of it.
Je fume. Tu fumes. Nous fûmes!
Hardware + software = device. No amount of mindless drooling by Gartner "analysts" will change that. Sure, the OS may get smaller, and Nathan Myhrvold's much feared vision of the "Megaserver" (see here) may be fulfilled - oh wait, it already has. But at the end of the day, a device with some semblance of UI presentation to get the "'net goo" off of the Interweb tubes to the glass will still be required. And to print. And to play audio, video, and store info locally. Because at the end of the day, sure you can store stuff up in the cloud. But it has to come down at some point or another in order to be useful enough to even keep. Hence, an operating system (or embedded OS, whatever) is necessary.
The point of Internet applications, or equally, Intranet applications, is "run anywhere" convenience.
My ISP offers webmail. If I use it instead of POP, I can read my mail anywhere, anytime. In exchange, I lose the privacy that comes with keeping my data local. I also lose the ability to read my mail when the ISP has a hiccup.
Google offers maps. In most cases Google Maps is a lot more convenient than firing up my local street-maps program. It's also "run anywhere."
On the other hand, I don't think I'd want my doctor to put my medical records on any online database unless it was very secure and run by trustworthy people and didn't allow unencrypted connections.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
I think operating systems will increasing become less and less of a concern for all of us, except for hardware scientists. Those of us more interested in applications care more about the platform, which I see over time being standardized in freedesktop.org, with various implementations or bindings in about every major "platform" interpreter/machine, be it C(++)/Kernel, the JVM, the CLR, or Mozilla. I also see all the major scripting languages having JVM and .NET ports one day.
random underscore blankspace at ya know hoo dot comedy.
The problem with relying on the internet, or any network, is that it becomes the single point of failure. If no local copy of the files you need exists, you're SOL if something happens halfway between you and the server. And unless a tremendous breakthrough occurs in the construction and deployment of fiber optic cables, bandwidth will be another problem. If everyone starts keeping all of the files they need on the internet without caching them to local drives, you'll suck up bandwidth like a sponge.
I decided to give linux on the desktop another go, I've been trying it about every other year for about 12 years now. During that time I've seen windows progress from 3.1, to Vista. Sure, there's a lot to hate about microsoft, but if you cant look at that evolution and tell me they've significantly improved the product, you're just being a zealot.
/dev/dsp or what? What the fuck? I think ESD is what I want to use, but now all sound is delayed by a half second. What about all the piles of graphics libraries, what's a game developer supposed to work with? DirectX may be kludgy in a lot of ways, but it's a HUGE asset for Windows.
During the same time, I've seen the linux desktop evolve - well none. OpenOffice works, but it just feels clunky - it feels like the versino of word I used on win 3.1 so long ago. MPlayer will start and randomly not play sound. Sound is still a big kludgy wtf-is-goin-on type thing. Should I be using ALSA, or ESD or
Bon Echo feels bloaty and slow - but firefox under windows XP on the same hardware is snappy and responsive. I'm using nvidias latest drivers, and glx.
I dunno, it's usable, but it was usable in the early 90s. I know that things have improved, but it still feels like the same experience I had back then - right down to fucking around with monitor frequencies by hand?. The big difference is that file is called xorg.conf now. What the fuck is up with that? Are people still using monitors without EDID? Even if a handful are, why are we still designing for that outside case? Why cant I just have " Section Montior / EDID True / End Section" or something like that?
The one thing that's gotten me excited is NX, and when I can migrate a session from windows to unix and back, and hijack the local desktop, then maybe I'll be a bit happier and find a little more use for my linux machine. Of course, Windows already does all of this.
Linux, in my home, is still just a big thing that runs samba so I can store all my porn on a computer built out of spare parts.
I don't need no instructions to know how to rock!!!!
...not that I have any idea for a new one, but the OS as we know it is one of the prime examples of a system whose rationale is "we've always done it that way."
People have forgotten that the original goal of the "operating system" was nothing other than to automate the function of the "operator," reducing personnel costs and making sure that the computer wasn't sitting around at $200 an hour waiting for someone to square up the next deck of cards and load them into the hopper.
The only people who think they can tell you what an OS really is are the students who have recently memorized some textbook definition. An OS is an intertwingled hairball of utterly arbitrary functionality. It has evolved from competitors copying whatever it is that another competitor did, messing some things up, adding some cool stuff, and doing random things dictated by marketing strategy.
Want to bundle HyperCard, but you promised the database vendors you wouldn't compete with them? Easy, don't call HyperCard a database, call it part of the "system software." Want to hide the fact that your graphical shell could run on a competitor's operating system? Easy, just say Windows is part of--no, wait, IS--the operating system. And so it goes.
It is quite possible to use a computer without an operating system. I'm not saying any of these are viable paradigms for today, but none of the original versions of BASIC required an operating system. MUMPS is largely self-contained, no OS needed.
There is an opportunity for some kind of brand-new conceptualization. No, I don't know what it is. If I did, I'd promoting on it. But, yes, I think it's very likely that twenty years from now the idea of an operating system will seem as quaint as the idea of a front panel with lights and switches on it. There was a time when nobody believed you could run a computer without _that_, either.
"How to Do Nothing," kids activities, back in print!
There was a time when people tried to cram an http server into Linux.
It may still be there but it's not used outside special-purpose environment.
Likewise, until recently people tried to cram almost every filesystem and pseudo-filesystem under the sun into the Linux kernel. With the advent of FUSE, future pseudo-filesystems and even real ones will be in userland. Sure they won't perform as well but at least they won't kill the kernel when they bug out.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
People still can't wake up and smell the Hummis. The debate never has been about the direction of technology, but about the direction of freedom and liberty. The saying "the stone rejected by the builders has become the corner stone" has never been more true. People go on and on about how this feature matters, or that GUI, or such and such technology, ease of immediate use, or this and that driver/optimisation, consumer/corporate adoption, or DRM - and they still gon't get it. When people have the freedom to copy and modify without being punished and fenced off, those things will come naturally and more, when they don't then it does not matter how nice it is - it will eventually be overtaken and become obsolete. Free markets are not about technology or markets, but about freedom and people using it to create wealth and opportunity where it hasn't existed before. If that doesn't define the free software movement, then I don't know what does.
the egregious idea of keeping the Source Code of a program secret from its own users
As long as your biggest market is people who want it done for them, and as long as it's affordable, the OS will continue to drop into their hands. The price increase for the various iterations of Vista show that Microsoft is at least aware of Windows' continuing strength.
If you want OSS to blossom, it has got to become sexy and work with much less nerd/geek presence. Symbian happens to power smart phones, but it's not sexy either. It can't spoil you in that "mainstream-moves-the-most-water" way, like Windows can.
well, maybe not in 10 years, but maybe 20, nobody will have a PC-as-we-know-it. Maybe some of us, geeks and nerds, will keep some beige boxes on the basement. But majority of the people will carry and interact with highly portable or tiny embedded systems - but with double+ computing power of what we have now ( wild prediction). Which leads to the conclusion that the OS of the future is not what we know of now ( as in Desktop Loaded with a OS called Windows). At least for the client/consumer part. So, Symbian, Linux have great chances for belonging to future. WinCE maybe, possibly. OSX in the iPhone. For all of them video/audio streaming will be a standard. Communication will focus on all major areas: Personal Area Network ( some kind of network between all gadgets on us), LAN ( device at home, or near vicinity), and WAN ( accessing the internet - or whatever will be called in 20years).
;)...
On the server side, we will build huge machine-servers, capable of virtualization. Which here i see lots of players, Linux included, but i see no OS from Microsoft. I see Google here too, as provinding enterprise-level services to all of us (aka email, office, anything else). Speaking of that, there is a reason why Google does not build a OS: it's irrelevant. We should follow the pack-leader
And, not to forget, on the enterprise side, i assume a big load of thin-clients will prevail. Maybe Windows-as-it-is-now has a slight chance here...
I dispute that. And even if Linux does die out, its legacy will continue.
This is very true. Not to mention if 'Linux' dies it will just be the kernel. there is so much more to a linux distro/application stack than just the kernel.
If anything is "headed to the landfill", it's the whole Closed Source model -- or more strictly, the egregious idea of keeping the Source Code of a program secret from its own users.
This is the key statement. Do you think people these days would be buying Dells and running Solaris on them if Solaris wasn't open sourced? No; they would be too afraid that Sun would pull another quick one and decide that Solaris 11 (or whatever) wouldn't be released on x86. People forget about history, but not when this stuff happened so recently. Over time people may forget exactly why, but using Open Source Software will become second nature. People will start asking why there's no open development process, why there's not publicly available mailing lists, why the documentation for a peice of software isn't editable by the users, why the end users can't directly submit a bug request. All of those things lend themselves to a faster and more adaptable development process, and quicker turn around time for the customer. Why call up your proprietary vendor, sit on the phone waiting for an hour only to find out some information that you could have just looked up if their data sat in an externally viewable location? Transparency is also a great tool for the customer to evaluate the real quality of a product and the people behind it.
"but money is the God of Algiers & Mahomet their prophet." - Rich. O'Bryen June 8th 1786
My wife has a symbian. She can't get off the fucking thing. Some days she takes meals on it.
You should see her. Sometimes she's moaning so loud I expect her head to start spinning 360*.
But phone?
It's got attachments, and I admit I'm a bit confused by it sometimes, but I'm pretty sure it DOESNT have a mouthpiece.
Now that sounds like an OS full of gaping holes.
Terrible security, that.
Ignore this signature. By order.
robotic blood cells that will enable you to "sit at the bottom of a swimming pool for 4 hours."
I wonder what those "blood cells" are going to do with all that HCO3-? Lung physiology doesn't simply consist in oxygenating the blood. The lung also has to get rid of that excess CO2 (dissolved in the blood as HC03-), otherwise the blood pH will decrease very quickly leading to respiratory acidosis and death. I'm not sure how you can breathe out without breathing in, though...
Oh, and we won't forget about how those lungs you're not using will collapse as the gasses in them get absorbed over those 4 hours. It's called atelectasis. Then think about how this prevents the lung from cleaning itself, and how many bacteria will have reproduced in those static lungs in 4 hours. The person will be looking forward to a severe bilateral pneumonia within a day or so. Whoever proposed this is obviously NOT a physician - or needs to review physiology rather urgently. It's a terrible idea.
Seven puppies were harmed during the making of this post.
What, no pony?
I can't decide if this post is interesting, funny, insightful, or flamebait.
Because the future is filled with so so many devices, the winner in "operating systems" will be those which are the most portable. And in that category, we have four clear winners for different parts of the software stack:
Linux: most portable kernel for talking to the hardware.
GNU: most portable userspace.
JVM: most portable VM for taking to userspace and scripting languages.
Mozilla: most portable platform for web collaboration, especially if Firefox 3 goes forward with the "information broker" role it wants to fulfill.
These four levels give us a good solid platform for the shifting hardware landscape. Because no matter what, everything always comes back to physical devices, physical presence of some kind.
random underscore blankspace at ya know hoo dot comedy.
Now, for my own personal experience, I prefer Ubuntu and hardly ever use my windows desktop. Even over VNC, my Ubuntu desktop is more responsive than Windows XP on the Dell, and much better than Windows 2k on the laptop. Infact, the only thing that runs on the laptop anymore is vncviewer, so it's essentially a dumb terminal. Since installing Dapper, I upgraded to Edgy with no problems, and plan on upgrading to Feisty as soon as the upgrade path gets tested. Edgy performs better on the same hardware than Dapper did, and Feisty looks to accomplish the same thing. When was the last time a Windows upgrade resulted in better performance on the same hardware?
http://www.mhall119.com
...that's where, except of course for Plan 9 which will stay right where it is until or unless something better than Rio gains favor. At which point it too will go to hell in a handbasket.
It's the nature of the beast.
Caveat Utilitor
What the hell! Don't the people who are pushing applications via the internet remember anything about the mainframe/dumb terminal dark ages??? When the network (internet) is down, you're basically fu**ed! And dontcha just love the idea of ALL your private data residing on some server out there somewhere? This is a really dumb, bad idea that just won't die! But, like some other really bad ideas (Origami, anyone?) Microsoft just keeps beating the drums for this online applications thing, which they will be happy to provide to you for a (phe)nominal fee and everlasting monthly payments. Thanks anyway, but this kid is going to pass!
Do you know that today's computers are really fast? I mean, those GHz processors are incredibly fast, it is unbelievable what they are able to do in a second. But you might not know it from just using a computer.
In my daily work I often receive very slow responses from both Windows and Linux machines. I often have to wait seconds for things that should (and could) be instant. I mean after the screen saver on my desktop machine locks the screen, the next user request invariably will be to unlock it. The OS should know that. And it should sit there waiting for any sign that its master wants to work again and then it should instantly present the password dialog.
Or what about those apps where I have to look for seconds at animated splash screens saying that they load this or that module or plugin. Why can't the OS provide means for loading pre-initialized applications (some folks might remember the undump utility).
There are possible performance improvements all over the place, which could be achieved by using techniques like caching or using database technology or being able to hint to the operating system which ressources might be needed next. Together with maybe a little more RAM this could create a really reactive user experience.
I often wonder how you can spend so much money for creating software and come up with such bad and slow design :-).
And you have it.
BEGIN RANT
Isolated processes, running on hardware or VMs, or as processes under an OS. Using network semantics to communicate. A simple model -- forget about threads and the attendant semantic issues. The model is already supported, and even "Windows" can participate (although that locks us into the SOCKETS API). On top of that we can have RPC, shared storage, time and identification services, etc.
Works wonders, and it has brought us to where we are today. The model can continue growing. Except that it really isn't the "preferred" model for Windows development. Indeed, the preferred Windows methodology is to use MSVC, and bind the application code into the GUI. Windows doesn't even ship with an X server!
For HPC, we need somewhat different models -- the latencies imposed by typical network stacks do not permit the performance levels needed by the computation "parcels". But, this is (generally) dealt with by source language extensions, that hide the interconnect issues.
Is this the future? Maybe, (or not, I am horrible at this game). But it is the present. My home computer is a network. Storage is centralized into a RAID-5 server, serving out NFS directories, including HOME directories, and Operating Environment pieces. Using automount, of course, to give a consistent internal view of the filesystem. Stations use NIS for login, and automount maps, etc. giving consistent login and home directories and tools. NTP keeps the time the same on the different parts. IMAP provides consistent mail services. DHCP handles the mundane assignment of IP address space assignment, and informing the parts of where such things as the local NTP resources are. It doesn't matter whether a part is running on a machine, or under a Virtual Machine (I deploy VMware server). A CVS server handles projects, and an SQL (MySQL) server handles database storage as needed (for media tracking for MythTV, mostly, although there are other databases).
It Just Works. The Network Is The Computer. Two ideas, melded together. Of course, Windows is an ugly stepchild in my environment (It works, but needs tweaking, and there is an almost ungodly amount of bending in the infrastructure for support). MAC OS X? I don't know. Nobody has ever tried an Apple laptop in my home office, so I can't comment. (but, initial feelings -- NIS support may or may not work, NFS probably does, X probably does, automounter seems to be almost a foreign idea to most MAC users I talk with -- take that with a grain of salt). Solaris? An easy fit -- I use it. Linux? A no-brainer, HP/UX and AIX? Easy. (though I don't use them).
I even extend the network with fixed-function devices (DSM-320 DLink media receiver). It uses the "UPNP standard". Now, I am not sure that standard was actually needed, but I do support it.
All brought to us by the "simple" POSIX API and semantics, and SOCKETS.
A new direction of OS design? Its a bit a marketing show. Its easy to add glitz and shizzle to upper UI elements, but the OS is generally considered the resource controlling layer.
I don't want to make it sound like I think that layer is static. I think static is a good thing for basing current and future developement, but extensions are certainly welcome. The biggest changes, in my opinion, are the support for "zero-copy" operations. These can require either a great deal of care in setting up the exact circumstances under which such an optimization can be utilized, or a new API, opening the feature up to broader use. Fast select semantics, possibly through a new API are another such area.
Then we have the implementation of that layer -- the big news being virtualization and complete isolation.
Everything else I have seen is, to be kind, a marketing driven "OS feature" that really shouldn't be discussed as an OS feature. This includes "3D desktops", the whole idea of a desktop, included applications, and even "what applications are supported".
The last point is important. If the semantics of the OS conf
Just another "Cubible(sic) Joe" 2 17 3061
Exactly.
Not many people who have gone to the trouble of owning a cow and stuck at it for awhile are going to go back to buying milk and cheese from the supermarket. The big dairies will try to make out that milking a cow is too difficult for ordinary people to manage. Some will believe them, but others will have a go and some of them will succeed. And just because people aren't buying prepackaged milk anymore, doesn't mean they won't be needing other things. The smart investor would be thinking in terms of cow food, churns and maybe fancy gadgets like fully-automatic electric cheesemakers and home semi-skimmers, which cow owners will need if they don't want to go back to Tesco.
Microsoft are getting too big for their boots. One day now, they'll mess with the wrong people, and be told to go forth and multiply. That will make a lot of people wonder why they didn't have the cojones to blow Microsoft off sooner. Some will give it a try. Remember also that interoperability is improving all the time. Microsoft can't change their proprietary protocols too quickly, for fear of breaking everything. If they introduce a new server protocol, everything still has to be able to speak the old one for awhile. Open Source is behind now; but if Microsoft stall, it'll catch up quickly.
And there's always this sort of scenario;
Once Open Source deployment -- whether that's Linux, BSD, Solaris or something else altogether -- reaches a certain critical mass, it will automatically and suddenl
Je fume. Tu fumes. Nous fûmes!
Just because you know big words doesn't make you any more of an expert than he is.
No, but my doctorate does make me more of an expert than him, especially when we talk about something in my field - the human body.
Wouldn't they fill with water rather than gas at the bottom of a pool
I was imagining someone holding their breath for 4 hours - theoretically possible if someone is balancing the CO2 and O2 levels in the blood, since changes in these concentrations are what stimulate the breathing reflex. If you propose to have someone actually BREATHE that water - especially FRESH water like you'd find in a pool - that person is dead.
Fresh water will be absorbed through the alveoli in the lungs. This will dilute the solutes in the blood, which will cause red blood cells to lyse in this hypotonic medium, which will release a whole lot of potassium into the bloodstream, which will kill the person from a cardiac dysrythmia in about oh, 5 minutes after they "breathe" water. This is the usual cause of death when someone drowns in fresh water.
You get once chance at breathing fluid - and that's when you're in your mother's belly. What you "breathe" isn't water but amniotic fluid, which has pretty much the same solute concentration as blood. Also note that any differences are almost immediately nullified by the placenta, because mommy can buffer a much bigger difference than baby can.
If you ever get your lungs filled with water, you are dead - despite everything you see in films or on CSI. No amount of jumping up and down on your chest - or oxygen in your blood - will save you.
But that'd make sense and be obvious to most people...
If the universe ran strictly on common sense: we wouldn't have any need for experts now, would we? Feel free to breathe all the oxygenated water you want, but as a physician I don't recommend it.
Seven puppies were harmed during the making of this post.
My Thinkpad died after apparently one too many Linux distro installations (I was adding a new one about every other day for a while). As a long-time Mac user in a Windows world, adding another OS to the mix made sharing files an often frustrating experience. With much more emphasis on compatible formats, moving from Mac to Windows to Linux and back again is relatively painless these days. And yet, maybe the real promise of Web2.0 is to make the OS irrelevant.
Cory Doctorow describes himself as "someone who lives in his browser." I would put myself in that category as well and have been messing around with the idea of creating my own application service provider ever since I first heard that term back in the 90s. I love the idea of using any cpu as a terminal on the net where all my data and applications are stored.
Here are a few of the apps that are making this more possible all the time:
* gmail - now with nearly 3GB of storage, my current storage of over 1000 messages is only using 12% of capacity. At the rate that the service continues to upgrade capacity, I may never come even close to tapping out this service. Of course, Google may be running algorithms on all of us that will soon create a Minority Report world where we are bombarded with highly customized ad-sense commercials everytime our rfid-embedded brains pass a location-aware plasma screen.
* google calendar - with nice integration with gmail and the ical standard, this is a shareable and syncable web calendar that seems to get the job done for now and is sure to improve over time.
* del.icio.us - still the best social bookmarking / tagging service for my money (as in none since it's free)
* thinkfree online - this is a seriously cool product that I just started playing with over the past couple weeks. Despite the slower start time, this nifty little web app kicks Writely's ass by allowing you to create, share and store (up to 1GB for now) MS Office compatable docs, spreadsheets and presentations all using a relatively intuitive interface that duplicates the look and feel of ThinkFree's destop product (which is very similar to its Office counterpart). It even has wiki-type versioning history and allows you to post to a remote blog too.
* openomy is one of a bunch or new data storage services on the web these days. Openomy is written in Rails gives you a nice interface and 1GM of free storage.
* bloglines is still my favorite web-based RSS reader. It is incredibly easy to use and is one of the first things that I open when I am traveling or just have a quick minute to check in with what is going on in the world (or at least the world that I am interested in)
* So this sound great for common productivity tools but web-based apps will never replace apps like iTunes to play the music you have, right? Actually, Pandora, BlogMusik and similar apps to come might be even better to help you explore music you don't have (and both are free, at least for now)
* E-Messenger and KoolIM are a cool web-based instant messengers that allows you to IM with AIM, MSN, and Yahoo (including Yahoo Beta) without dowloading any client software.
With web-based applications and data storage that enable us to work and play beyond the desktop, could the "OS wars," and maybe the OS itself, soon be a thing of the past?
The programming language C and the user/kernel mode will not survive for much longer.
First of all, the C model has been proven to cause more problems than benefits. The C model is defined as the model where native code is executed directly by the hardware, absolute barriers exist between programs, the kernel routines live in a different universe than the programs etc.
There are great problems with this model:
1) co-operation between programs proves very difficult both for the O/S designer and the programmer. Very specialized mechanisms are required for programs to communicate: pipes, sockets, shared memory, etc. Those things work nicely, no doubt about that. But to code an API on top of them is not straightforward and it takes time.
2) viewing a process as a giant array of bytes resulted in billions of dollars of damage in buffer overflow exploits, null & wild pointers, etc.
My prediction is that at some point in time, someone will come out with an O/S that is not based on C, but on a more advanced programming language, like Java, Smalltalk, Erlang or Haskell. And those O/Ses will prove that APIs are more important than O/Ses, and that modules are better than processes.