Microsoft's Vision For Future Operating Systems
Bender writes: "The Systems and Networking group at Microsoft Research has a fascinating article that details what sorts of things they believe may be important in Operating Systems of the 21st century."
There are some sound ideas here for future directions in Linux development - and they've already been thought up for you here.
One big problem Linux development will face is the notion that devs are playing catch-up with MS with projects like Mono. (We blast Microsoft for its claim that it is an innovator, but has there been much innovation in Linux kernel devlelopment lately?) Instead of trying to build a Windows clone, we should build up a system that addresses computing in a way that MS system's dont.
There are some good ideas here, but they seem to disregard the problem of latency. The speed of light, unfortunately, isn't likely to be overcome any time soon, and people notice when there is a 50ms delay every time they press a key, move their mouse, etc.
Some applications can be distributed, sure, but there will always be a need for interactive applications to run locally, on local data.
Tarsnap: Online backups for the truly paranoid
Manage memory
Manage CPU time (schedule processes)
Manage access to hardware
And that's what an operating system *kernel* does.
Operating systems do not need to:
provide compilers, web browsers, colossal text editors (MS Word and emacs included)
inform users of the *really* important reasons they need to upgrade *now*
do GUI shit.
If you use a computer, you want it to do what you want. Most of the time, you want it to help you manage information. Most users don't even know that their computer *has* an operating system. Most users know that it's a really useful typewriter with an 'undo' facility.
What OS does your fridge run? your car? your microwave oven? your alarm system?
Those are all von Neumann machines, running operating systems.
A computer in a home/business environment should be useful, usable and reliable.
Get this. It's important. The people who buy computers couldn't give a flying fuck about the OS. Some want 'applications'. Those people are called 'IT managers'. Most want information. They are called 'people'.
I do *not* want my dishwasher to stop with a message of "Oops in module handle_detergent. Please run ksymoops and report to lkml". I don't want my television to go blue with advice to 'set CRASHDEBUG' for some purpose.
If you know that you are running an operating system, you are either an OS hacker, or the OS hackers have failed to protect you from their work.
I really do hope that people read the entire paper before posting their thoughts about it. I hate Microsoft with a passion -- my first thought upon hearing about the WTC attack was, "Those poor people! I sure hope Bill Gates was in there." -- but the points they've raised here are valid ones and deserve analysis. The topic is an important one and I hope people will not malign it because of the source, namely, Microsoft.
That said, I'll comment on the paper itself. They have a point, somewhat understated, which is basically, "Yeah, this may be crazy, but it's worth looking into, isn't it?" One obvious response is that it sure seems to be What Microsoft Wants in terms of a homogenized global system that Microsoft controls. Though such a thing is never specifically said, it is called the "Millennium" system, and the ME in Windows ME stands for "Millennium Edition" (side note, it just occurred to me that "Windows ME" could be said with the same tone, inflection, and connotation as "Fuck me!" as an expression of dismay -- "Go Windows yourself!").
Well, who knows, but their idea of a transparent large-scale network that is self-managing as they've described is an interesting one, and there are some things that would be appropriate in such a system. That said, here's several reasons why I think such a system will not happen in the near future:
1. Too much resistance. This *is* a crazy idea, and even if it could be made to work, most people are used to the idea of "my" computer, "my" data, and everything happening physically *here*, inside this little box under my desk. This will take a long time to get over. Perhaps a gentle transition would help, with more and more things gradually shifting to the Big Network.
2. Games. Games require zero latency - nobody enjoys playing Quake with network lag, let alone system lag. All computations for games and other time-sensitive applications would have to be done pretty much within the physical computer you are using, otherwise the latencies are too great and the game would be unplayable and chunky. Imagine if your 50ms ping time also figured into the video processing!
3. Security. It seems silly to assume people would *want* to walk up to a random machine somewhere and have all their documents streamed to it over the Big Network. For one thing, who knows whether the terminal is secure, or if it's got secret programs installed in it to capture your keystrokes? Using a publicly accessible terminal to get to your private data is a bad idea. Also, critical machines (computers that run public infrastructure, banking systems, military systems, etc.) should obviously not be any part of this kind of transparent system, for the obvious security reasons.
4. Where we work. Telecommuting is, for all the cheerleading, not very common at all. When people do regular business-like work (i.e. office workers writing reports, having meetings, doing whatever) they will want to have everything in the same place, and do it in big chunks at a time. Face-to-face communication with people is also very important to the way business is usually done, though this may change as people get more used to the idea of telecommunicating for business. Being able to "walk up to a computer anywhere" and do work is pointless, because the vast majority of people are not going to WANT to be walking through the mall, window shopping, and decide they need to do some work, so go sit down at a public terminal and start doing work. (Nevermind the security issues, mentioned above.)
5. Monoculture. If we think a Windows monoculture is bad now (and we do -- at least, I do), imagine what happens when every computer in the world is now running this system! On the other hand, if such a system was designed so that anyone could implement their own version of it, then you avoid some monoculture issues, but because you have to have interoperability between the systems, you essentially end up with what we have now -- the Internet, made of multiple differing systems that can still communicate using a common protocol, except the protocol would extend beyond data transfer and into things like distributed processing.
If you've managed to read this far, congratulations! I can recommend a decent novel that incidentally covers this topic (it is not the main focus of the plot, but does figure into it): Permutation City, by Greg Egan. A very good novel with lots of interesting ideas, but it does feature a worldwide network in which you can basically bid on processing power to draw from the global network, so your programs might be running anywhere in the world, but are running securely so that a computer doesn't really know what it's doing, it just executes commands. It doesn't go into much technical detail (like how they manage to have computers execute encrypted code without decrypting it), but it's relevant nonetheless.
"Destroy science and religion. Science would re-emerge exactly the same; but not religion." - Penn Jillette, paraphrased
Sun sure is a lot closer to seamless network computing than Microsoft. Have you ever used a SunRay cluster? After the traditional server installation you can add and remove SunRay devices trivially. And all user sessions are tied to a removable smart card, rather than the device they happened to be using when they logged in.
:)
The SunRay server even lets you know when it needs more resources when Netscape takes 5 minutes to launch
It takes some effort just to get Win98SE to see Win2K on the same damn LAN.
Actually, I like this idea. Why? Because that's what Unix is to the end user. The sysadmin has to worry about individual computers, file systems and networks, but the end user does not need to.
A Government Is a Body of People, Usually Notably Ungoverned
the most important thing when it comes to new OS's will be ease of use. for all the idiots out there. thats for it to be succesful anyways, not neccesarily good.
;-) is to make more web-services and make them with better web standards. That way everyone has access to them regardless of OS. Also, they should be spread out over many companies.
In response to a lengthy descrption of a drastically different computing paradigm, jimarndt responds that it should be 'easy to use'.
I'll bet jimarndt didn't read the article at all.
What Microsoft Research is sugesting is a network computing model unlike anything I've previously heard of.
Read this (from the article):
A user purchases and installs a new personal computer or workstation. The hardware vendor has done a good job with the cables and connectors, so plugging the system together is easy. The user plugs the power and network cables into the wall and flips the power switch. From the moment that a boot ROM, or perhaps a boot loader on disk, downloads code from the network, the new machine joins the Millennium system. The user has full access to Millennium with no human-managed configuration activities required. Millennium evaluates the hardware resources of the new computing device that it has acquired and starts to shift computations and data in response.
Wow! I'm all for a web-services model. I like the idea of having the line between an application and a really usefull website be blurred. But this is sugesting something much much more! Who controls the "Millennium" system? Obviously, they've got a certain company in mind.
Think about privacy on a system like this!
Think about the potential security risk (sure, security is on their list of goals, but that doesn't really make the problem go away!) on a system like this! In the "A new network" example, the reseachers say "The administrator inserts a Millennium installation DVD disk into one of the machines and the system propagates across the network." Imagine that I insert that dvd, only I'm not the administrator and the dvd isn't the system update. Think it won't happen? As we saw during CodeRed the windows update servers aren't even properly protected! Hackers would have a field day if the Milenium system were ever made a reality.
I think a much better paradigm for the "new millenium" (how long does it stay new?
Microsoft wants the end-users of the world to put all their eggs in one basket and I don't think thats a good idea.
___
The way to see by faith is to shut the eye of reason. --Ben Franklin
Unfortunately coming from Microsoft most /.'ers will prefer to scream and whine about it, attempt to twist it to demonstrate their own particular MS issue or make more jokes that are usually weak at best.
Pity, because if this had appeared elsewhere without any MS connection folks would be talking about it in a positive way, taking the discussion someplace interesting. Instead most are just blinded by the name MS and have once again congregated for the ritual stoning.
Anyway, /.-correctness aside there are a couple of points that the paper glosses over (amongst many) that I find particularly interesting:
The first is the concept of stateless storage - files are there as long as you need them then eventually wither away when no longer referenced or required. This seems to me a particularly utopian view as I'm regularly realizing that I'm either missing a note I want from long ago (too aggressive purging) or that I've got so much material on something that it's becoming burdensome. I entirely fail to imagine how this sort of winnowing could be automated. Agents to help me organize, tag, and prioritize yes, but without my interaction it strikes me as likely reliable as a computer consistently recognizing pr0n images from others.
The next is the internal intelligence of a system. This has been an area of much research for many years. The current-state information should be almost all available from within the system and with a few supplied metrics (costs, resources, constraints, priorities) "intelligent" decisions should be possible to make. Surprisingly there seems to be little of this actually available on the market already, at least not much available for general server/desktop management (that I've heard of.)
Finally the lack of references to directory services and the role PKI/encryption would play in this future scenario is interesting. Clearly these will be key elements in the ubiquitous seamless environment the authors are talking about yet their mention is notably absent. Is this a reflection of MS's appreciation of these as areas of strategic importance in which is hasn't yet a firm foundation and doesn't wish to draw attention to or is it something that the authors think will be so established by the time they're envisioning explicit reference isn't necessary? Either way it's an interesting omission.
I don't read ACs: If a post isn't worth so much as a nom de plume to its author then I wont bother either.
Come on guys, you've all seen Star Trek. Do you think the Enterprises computer system is much different? You don't see anyone in there with a PC.
These guys were really looking forward to the future. And I don't think the standard MS bashing applies. Not everyone who works in Redmond behaves like MS's business unit.
I'm sure for the most part, the coders are great people. Its the business men upstairs who we should really have beef with.
Seriously folks, can't you see that indicriminate MS hatred is d no different from other forms of bigotry like racism and homophobia? MS does put out some quality products. I'm told their games group is very good (Age of Empires) and their input devices are top notch.
Captain_Frisk... wishing everyone would think before flaming.
There is absolutely nothing being said in this paper that hasn't already been discussed countless times in universities and research labs around the country. This paper is little more than a vision statement along the lines of the phrase that Microsoft has used for much of its lifespan: "a computer on every desk and in every home". It doesn't say anything that people haven't already thought of.
What's more relevant and interesting about this paper is that there are probably no organizations on the planet capable of developing a system like this on their own. It's going to have to be collaborative. Despite the me-tooism of Microsoft researchers in acknowledging the directions being taken by others, the Microsoft coders in the trenches won't be capable of developing something like this to be stable, reliable, and secure.
This may mean it won't happen in the way envisioned in this paper. Microsoft will have to wait until someone comes along and figures out how to actually do something new, and viable - not just talk about it - just as Tim Berners Lee et al created the web. Then they'll try to embrace and extend it, if they can.