A very interesting paper was just published by Microsoft Research that details a browser construction that acts more like an operating system, partitioning off resources only to those who need it.
Although our architecture may seem to be a straightforward application of multi-principal OS construction to the browser setting, it exposes intricate problems that didn’t surface in previous work, including dealing with legacy protection for cross-origin script source, display protection, and resource allocations in the face of cross-principal web service composition common on today’s web. We detail our solutions to the first two problems and leave resource allocation as future work.
In our browser design, we take the general stance that security (maintaining the multi-principal OS principles by having Browser Kernel exclusively manage the resource protection and sharing) comes before backward compatibility. We will not trade significant security risks for compatibility. Nevertheless, we will also not settle on a design that breaks many parts of the web to secure just a few sites. We present design rationales for such decisions throughout our design.
We have built an IE-based prototype that realizes Gazelle’s multi-principal OS architecture and at the same time utilizes all the backward-compatible parsing, DOM management, and JavaScript interpretation that already exist in IE. Our prototype experience indicates that it is feasible to turn an existing browser into a multi-principal OS while leveraging its existing capabilities.
With our prototype, we successfully browsed 19 out of the 20 Alexa-reported, most popular sites that we tested. The performance of the prototype is acceptable, and a significant portion of the overhead comes from IE instrumentation, which can be eliminated in a production implementation.
I wouldn’t get too excited about being able to see an implementation soon – this was done by Microsoft Research (it doesn’t appear as if anyone from the IE team was directly involved – this was mostly an academic pursuit). Regardless, it makes for a very-interesting read with regards to much of the technology that inhabits a web browser (DOM, CSS, etc.) and the security concerns that surround them.
Bill Mill (February 22, 2009 at 2:30 pm)
Reminds me of the work by the Google Native Code guys. They just recently did an excellent TechTalk: http://www.youtube.com/watch?v=L8m9U7p_Ntk ; operating systems really need to get on top of allowing users to run programs in restricted modes.
Mike (February 22, 2009 at 2:36 pm)
“we successfully browsed 19 out of the 20 Alexa-reported, most popular sites that we tested”
Yep, definitely without anyone from the IE8 team ;-)
Robert O'Callahan (February 22, 2009 at 3:49 pm)
It’s not that interesting IMHO. They “solved” most of the “intricate problems” by taking an option that breaks Web compatibility. That isn’t much of a contribution.
antimatter15 (February 22, 2009 at 7:33 pm)
Are there any significant improvement with having a browser as the OS? The charts show a higher page load time for pages in Gazelle than of the standalone browser. The only advantage I could infer was a much lower memory usage (and probably more savings than cited). I guess that would be great for MIDs (Mobile Internet Devices) and Netbooks, but even those aren’t *that* low on RAM.
I’m not even sure this is really relevant but here’s an interesting project from a while ago: http://code.google.com/p/es-operating-system/
paulhan (February 22, 2009 at 7:34 pm)
Will this just not be the final fulfilment of Web 2.0, where everything we can currently get on the desktop will be replicated “in the cloud”?
At that point all we’d need is a browser that sits on an OS. We’d interact with the OS through about:config, browser would have access to our harddrive.
AFAICS, the next milestone of Mozilla aims to contain hardware accelerated support for canvas and video, throw in a canvas 3D context, and you’re going to get people doing Blender for the browser. Photoshop and Flash style apps become a reality. So now we just need Linux, XWindows and some glue between that and the browser and we’re good to go. Sed, awk, vim, even bash not required.
Question (February 22, 2009 at 9:45 pm)
@paulhan:
I’m really interested in the next milestone that you said. Is it 3.2/4.0? Do you have any info to share?
voracity (February 22, 2009 at 11:22 pm)
Unfortunately, I haven’t the time to read the paper (and atm can’t get to it at all). So, could someone point me to a good short summary or perhaps give one here?
It sounds like Gazelle just runs concurrent web pages (essentially tabs/windows) under different operating system security contexts, but that can’t possibly be right.
Timothy (February 23, 2009 at 9:02 am)
Interesting. I would love to see something like this in regards to Firefox and Chrome.
Terry (February 23, 2009 at 10:49 am)
I just don’t understand why everyone has such a infatuation with the concept of a web OS, it just isn’t going to happen…
paulhan (February 23, 2009 at 2:46 pm)
@Question,
Not sure if that’s meant as sarcasm, but no matter.
Look at mobile phones atm. AFAIK, the new Palm Pre and Android are based on Linux, the iPhone on BSD?, yet you won’t find the bash shell anywhere on them. They’ve got full communication abilities, ability to run apps(10000+ on iStore), storage, graphics, in other words a very small mobile computer. Extrapolate that to netbooks and laptops. Sure, a lot more needs to be done on the “apps” side of things, there’s security to be considered, but that’s why it’s called Web 2.0, isn’t it?
Mozilla already have add-ons and extensions for the browser, web apps continue to be released, and they get more sophisticated each time, already about 80% of what a normal user does on a computer can be done “in the cloud”, so it’s only a matter of time. The web is just a giant hard disk, so we need a NetOS instead of a DOS, if you will, and I’d argue that the stuff that’s being done for phones now, will underpin this NetOS.
We’ve seen the way Netbooks, initially a niche product, have taken the world by storm. Who’s to say that if an OS is made that loads fast, gives people access to what they need on a browser quickly, with close to zero learning curve, and released through open source, that that won’t also be game-changing?
Martin (February 23, 2009 at 5:32 pm)
Very nicely written. I’ve read this document and I think that it will be good to have the second OS, insteed of only one on computer.
Spike (February 25, 2009 at 10:49 am)
I don’t think that there will ever be an Browser OS because…Where will be the browser situated? In a OS. So we will have an OS inside an OS. Not very convenient
onur (February 25, 2009 at 1:36 pm)
“So we will have an OS inside an OS. Not very convenient ”
VirtualPC , VirtualBox , VMWare oh yeah not convenient
Breton (February 26, 2009 at 8:24 pm)
@Terry
Indeed. Also I don’t know why everyone keeps talking about this “internet” thing. I just don’t see it ever catching on.
And I can’t help but notice a lot of noise about this “Personal Computer” idea of Mr. Englebart’s. What could an ordinary layperson possibly ever do with a computer? It doesn’t make any sense! And that computer “mouse” of his, I’ve never seen such ridiculousness.
Breton (February 26, 2009 at 8:42 pm)
The confusing part here is that when these discussions come up, you get arguments between people that have two different definitions of the word “OS”. I think we need to make a distinction here.
the “OS” or operating system is a layer of software that abstracts the computer hardware into a “platform” that is relatively easier for developers to deal with than trying to code directly to a vast myriad of different varieties of hardware, enables multiple peices of software to run simultaneously (or in sequence is in the case of older OS’s), and provides a number of other various services for application developers to latch onto.
the “UI”, or User Interface is a layer of software written “on top of” the OS, which allows both direct interaction with the underlying OS layer, but also provides one or more APIs for application authors to hook into, and display their own software’s interface to the screen. This layer is also occasionally called a shell. However, overwhelmingly, this peice of software is in fact, most often referred to as an “OS”. Thus the confusion.
I think when people are talking excitedly about a webOS or otherwise talking about browser based OS’s, what they really MEAN, is replacing the shell of a common modern OS with a specially designed browser. Furthermore, doing this means that many OS services built in support of traditional shells and gui API’s are no longer quite as necessary, since the browser itself would be able to provide many of those services.
This is kind of a good idea in some ways, and a bad idea in others. I think, in the large though, it’s a reaction to the failed experiment that is the “windowed gui environment”. It was great at first, but it hasn’t scaled well at all. People really want a web OS because it would mean freedom from the brutal usability disasters that are software installation, and file management. Websites of course commit their own usability atrocities, but on the whole, they are a vast improvement over desktop software, on that front at least.
I know I will get a lot of disagreement on that point, so let me just say in advance that history will, and in fact already is, proving you wrong. I fully expect the palm pre to be an enormous success. It probably will not exceed the iPhone’s popularity, but I think it will do well.
LX (March 12, 2009 at 11:49 am)
The concept of having the OS within the browser is just the consequence of thinking the concept of SAAS (Software As A Service) to its logical end. Everything up to the Browser-Level can be run locally, while everything else is a Web Service.
One of the biggest concerns in doing so will probably be security, for it is as well a problem as a solution.
Greetings, LX
carlos (March 15, 2009 at 9:45 am)
putting it simpler: the problems comes from softwares that are too weighty, if a software was as lightweight as a browser it would be just the same.
N.V.Balaji (March 16, 2009 at 8:29 am)
I guess typical application developer need not bother about the OS (I mean OS kernel , not the Shell). All that a developer needs is application development/execution environment. As some one has pointed out, it should provide a sophisticated “platform” for application development.
This can be very well be achieved with browser. All application can be realized as HTML+CSS+Javascript. probably Javascript is not that sophisticated a language to realize every application. Therefore more dynamic languages should be allowed. E.g. Perl, Python. This means apps would be nothing but HTML+CSS+ (javascript or Perl or Python or a combination of a few dynamic languages).
Once such a system is realized (i.e. a system whose h/w is abstracted by browser rendering engine and any s/w can be coded as a combination of HTML+CSS+Dynamic language), software as a service can be conveniently achieved.
By the way, isn’t the same thing that Silver-light and likes are trying to achieve.
Breton (March 16, 2009 at 9:08 pm)
@N.V.Balaji that’s more the point that I should have been trying to make, but I guess it just slipped through my fingers.
Javascript is a much more sophisticated language than it ever gets credit for, but that is I guess the cross it has to bear. It might be nice to have perl or python in the browser, but not because they are any more sophisticated, just because there are programmers that are familiar with those languages and not familiar with javascript. Aside from that I don’t see the advantage of creating vast new mutually incompatible code bases, cross browser headaches, or bloated browsers.
Silverlight might be trying to achieve something, but as long as it’s a browser plugin embedded inside an html page, it will be forever hobbled, in much the same way flash is hobbled: fighting against the web architecturem fighting http, fighting URLs, fighting bookmarks, and thwarting the back button. Pretty much everything that makes the web the web. In addition to making the computer run much slower, eating up resources like a hog, and encouraging pointlessly flashy designs with no content- or content that is locked up inside an opaque binary, difficult to edit, difficult to crawl. There are reasons why the web was so successful. I find it hilarious watching microsoft try to compete with the web by removing most of the things that made the web successful.
A more reasonable approach is to make a specialized browser for apps. This is pretty much what safari and chrome are about. And apparently microsoft research has noticed. Then you keep all the nice web things like urls and backbuttons and bookmarks, and a computer that doesn’t go all choppy and slow as soon as you step into an “app”, like IE does with flash or silverlight, or even a heavy javascript page. Javascript is much easier for the browser to control than a plugin that lives inside a locked up binary, so more performance optimizations can be done. For silverlight performance, we’re pretty much dependant on that one company for optimized performance- Or optionally believe that someday mono might ever be high quality enough to ever actually compete with .NET. Duopolies aren’t that much better than monopolies anyway.
Of course it’ll all come out in the wash of history. My money’s on webkit (which is in chrome, safari, iphone, palm webOs, android, mobile browsers are the future, I think. Might be the far future, but it’s tilting that way)
carlos (March 17, 2009 at 2:35 pm)
“Silverlight might be trying to achieve something, but as long as it’s a browser plugin embedded inside an html page, it will be forever hobbled”
we all know that.
Eric (May 17, 2009 at 5:58 pm)
Browser applications are true:
Flash: Ajax animator,
Paint: shedokan OS paint(one of my own :), and better than canvas paint),
word: TinyMCE,
and a lot more just search.
I really think that if people would try harder then they could get a etter flash version and more applications.