Hacker News new | comments | show | ask | jobs | submit login
Boot to Gecko: building a complete, standalone operating system for the open web (groups.google.com)
84 points by robin_reala on July 25, 2011 | hide | past | web | favorite | 36 comments

Remember: Mozilla was the first major browser to offer cross-OS support for Windows, Linux, and MacOS — as free software no less.

They're looking to the future, not what is possible but what should or could be possible.

I'd much rather have Mozilla working on an "OS for the web" than Google, despite whatever problems Mozilla may have.

I'm curious, what problems do they have?


That's assuming they want to make money.

It seems to me their mandate is to make everyone's lives better. This looks like a project to define web standards for the future. It also looks like they've got enough to last them for a bit.

[Citation needed]

>>I'd much rather have Mozilla working on an "OS for the web" than Google, despite whatever problems Mozilla may have.

In this context, one of the problems that Mozilla has compared to Google is money.

They've got 100 million. That's enough to do amazing things.

Honestly, for all the money Google has, Google+ isn't very impressive.

Interestingly, about half of that 100 million comes from Google to secure their spot as the homepage and default search.

$100 million is nothing. People regularly win that much on the lottery. It's enough to do amazing things, but not enough to competitively do amazing things.

Also: https://wiki.mozilla.org/B2G

My first reaction: Great, I'll look again in 2 years when something like this can reasonably be ready. In the meantime I hope the Chrome Phone rumors are true.

My second reaction: So they're going to use Android which brings a lot of non-web baggage that they'll have to strip out. The plus side is that it might mean they can push something out in a year or less.

EDIT: They're not using the Android Java APIs[1] so they will have to rewrite the browser layer, they can't reuse the Firefox Android app. Using Android just for the drivers is a good decision, without a doubt, but this is going to take a while.


Firefox on Android uses very little in the way of the Java APIs, it's virtually all NDK code. That said, it will certainly require some meaningful adaptation.

Using Android just for the kernel sounds strange. MeeGo would be the distro actually designed to be used with your own UX layer (in this case, the browser engine)

My understanding is that the kernel will be based on Android. Userland code will be rewritten basically entirely, to boot to a gecko-based UI.

We are clearly moving towards a world of more web-based applications, but I'm disturbed by this because it means all my data is stored unencrypted on other people's computers. We're slowly placing our lives in the hands of the essentially anonymous individuals who control the apps we use.

Here's an alternative that we could in principle choose: Apps can be delivered over the web, but data is stored locally. If it is backed up remotely, then it is encrypted first. If our app communicates with other users, then it does so P2P instead of through a central service. These steps would ensure the company whose app we use only knows that we are using the app, and not what our data is or who else we are interacting with. Unfortunately, this technology is not very easy with the present state of JS/HTML. I'm not even sure if it is in principle possible for a JS app to create a TCP server. Some quick Googling reveals it may only be possible if you use Flash.

Actually, getting the code from the server (and caching it) and storing data locally is already a solved problem. Take a look at IndexedDB, which is already supported by Firefox 4.

The idea here is to think of apps as being built on web technologies but don't think of them as being delivered like and acting entirely like today's most common webapps.

Beyond B2G, Mozilla is exploring what it means to be a "web technology-based app" and interesting things are already coming of the project and even more interesting things are yet to come.


>>Apps can be delivered over the web, but data is stored locally. If it is backed up remotely, then it is encrypted first. If our app communicates with other users, then it does so P2P instead of through a central service.

I really wish this to happen. But unfortunately your next statement,

These steps would ensure the company whose app we use only knows that we are using the app, and not what our data is or who else we are interacting with.

clearly says why it wont happen.

What you're describing is very similar to W3C's Widgets: http://www.w3.org/TR/widgets/

Widgets are zipped up HTML/CSS/JS files so can easily be emailed / bluetoothed between phones. Communicating with other users is a bit harder but HTML5 Device APIs should provide what we need in time.

This is a complete waste of time and development effort in my opinion. Why would anyone ever want an OS that does nothing but show a web browser? Don't get me wrong, I love web apps and build them myself, but isn't the point of web applications to be fundamentally cross platform? Also, the web platform isn't ready to be the only platform available for applications. I have yet to see a decent web based word processor, something that most users will want to use. The formatting options available in the web based word processors that I've seen have been very limited, and pale in comparison to even Pages on the iPad.

In summary, the web platform isn't ready for all types of applications yet and because of that combined with the fact that people looking for cheap and simple computers aren't even buying traditional hardware anymore - they're buying tablets. So, Mozilla, why waste your time with this project and instead use those development resources to make Firefox and the web platform better on all of the existing operating systems. Let Chrome OS see whether anyone actually wants something a browser OS.

"Also, the web platform isn't ready to be the only platform available for applications."

That's the whole point. The web wasn't quite ready to subsume PDF, until people went and tried to do it, found the pieces that were missing, and got them added.

We expect and hope that we're going to hit a ton of things that don't work today, and that we'll have to make them work and get a standardized API and so forth. I think that's a better way to proceed than to make speculative sky-APIs on standards mailing lists.

We are exactly targetting mobile devices (handsets and tablets), because we agree with your assessment of where things are headed, and because that's where the app action mostly is today. (We want to solve the app-store-for-web problem too, but that's another project.)

This isn't just about the web apps you have today. It's about having your contacts manager, camera, gallery, dialer, SMS app, GPS-integrated maps, launcher etc. be hackable using web tech. That work will help on desktop as well, since many of those pieces are on desktop/laptop machines -- if you write OS-specific code to get to them, and you're allowed by the OS to interpose your version of it.

Maybe you're right, maybe it's a fool's errand. We think it will help the web grow in powerful ways, and make important internet technology be accessible to more user-focused customization, so we're going to try it. That's basically what we do.

I definitely agree with you that improving and expanding what the web platform can do is an important mission and I'm glad Mozilla is taking this up. Whether building an entire operating system in order to accomplish this is necessary is yet to be seen.

I think it is necessary for the same reason it was necessary for Google to create Chrome to get the other browser vendors to get serious about Javascript performance. Today Javascript is no longer a blocker.

If Mozilla can force other mobile OS vendors to get serious about exposing lower level APIs to the web through (open standard) javascript, it will mean a major win for all smartphone users.

Chronology: Chrome came out in early September 2008. Mozilla's TraceMonkey was under development from April of that year. True, we started on a JIT customized for JavaScript (i.e., not Tamarin) later than we should have, but we did not start because Chrome with V8 was known publicly and already in the market.

I believe Apple's SquirrelFishExtreme work was also going on in the summer of 2008, on a webkit.org svn branch.

Your general point is good: healthy competition helps the web evolve. We got the world we wanted in launching Firefox in 2004. The battle's far from over, what with all the lock-in on mobile devices and in social network sites.

I wonder how one would ever see that it was necessary. Seems a hard hypothesis to falsify, if you will.

well the other option is to build web applications that need these technologies, kind of like PDF.js and jsmad have done, but for some of the other missing technologies that you have listed and see what is missing. You don't have to build an OS to see what is missing - that's my point.

I do not understand your point. How is a pure web application going to implement device APIs for Camera, Mic, GyroCompass, Accelerometer, USB, NFC, the list goes on?

These must be provided by the OS. But various OSes do these differently, some only for native apps. We propose to make every one of these a web-app-facing API, and standardize or use extant standards -- and include security up front and all along, not "add it later".

No one has done this, and saying that you don't have to build an OS does not address how web apps might come to have such device APIs.

Of course the web applications themselves wouldn't implement these features, but they would act as test cases for the APIs that get added to the browser (e.g. Firefox). As you build these test case apps, you'd see what features are missing and implement them in the browser API, standardizing things along the way. If your point is to improve the web APIs available and find out what is needed, then build the features in the browser and build great applications on top of these new APIs that work on all platforms rather than just being tied to the Mozilla OS (at least for a while). If you truly want to make these features into standards you'll be adding them to Firefox later anyway, right?

The problem is that Firefox can't implement these APIs without OS support, and OSes don't have the same kind and number of such APIs. We are working on better cross-mobile-OS Firefox, but it cannot be our only bet.

What's more, Firefox is locked out of many mobile OSes (I do not mean iOS in particular), but the commoditizing hardware can support a fully open OS and web-based "home" and open web apps environment.

The increasing vertical lock-in and tying among all OS vendors (Android included) and the at best half-open- / delayed-open-source status (ChromeOS excluded, bless it -- but it won't support other browsers than Chrome) are problems for Firefox.

Much good can come from this project even if it never hits a 1.0 release. The work to generate implemented standard API's, among other discoveries and innovations, can be incredibly useful to the web in general.

While I am hopeful and rooting for ChromeOS, I also will be rooting for and supporting B2G. While they have different platform targets, moving common functionality to the browser is something they can compete and innovate with.

Having more than one is always a benefit. Even if the particular route B2G takes is not one we care for, we can fork and improve at any time.

I like ChromeOS too -- it is "webbier" and more truly open source than Android.

But why must there be only one? Monoculture is a problem. Mozilla's mission obligates us to fight it. Friends such as Dave Hyatt at Apple have told me that they want Gecko to keep evolving and competing with WebKit, to keep standards better interop-tested by two (or more) independent open source implementations.

WebKit monoculture (on mobile, modulo numerous version and vendor bugs that make developers pull their hair out) is already becoming a problem. We've seen startups support WebKit-only browsers simply due to the startup's HTML and CSS requiring WebKit-only quirks. Shades of sites that worked only in IE in the early 2000s.

> Why would anyone ever want an OS that does nothing but show a web browser?

I can say for a fact my Mother most definitely wants this. She's never been technically inclined and finds computers incredibly frustrating.

She has a desktop that she uses 100.00% exclusively for browsing the internet/checking email. As soon as the computer starts the browser opens, and she gets very nervous if she accidentally closes it somehow.

Sounds like she might want an iPad...

So they are going to reimplement ChromeOS with Gecko? Or are we talking about something else?

Looks like they are going to fork Android and have it boot straight to Firefox[1].

EDIT: Correction, they're using Android for the drivers only.[2] It will not boot to the java APIs, so it won't be the Android Firefox app.

[1] https://market.android.com/details?id=org.mozilla.firefox [2]https://groups.google.com/forum/#!msg/mozilla.dev.platform/d...

The "Android Firefox app" is just Gecko, a bunch of C++ code rendering to an Android widget. That's like calling the Windows version the "Windows Firefox app".

This is a FAQ; I should finish writing the FAQ, clearly.

We’re currently aiming at mobile/tablet devices rather than a notebook form factor. We’re looking to expose all device capabilities such that infrastructure like phone dialers can be built with Web APIs, and not only “high level” apps like word processors and presentation software. We also want to provide a stack that's open down as far as we can, and not just the browser-like top layer.

The "new web APIs" look like the W3C's Device APIs: http://www.w3.org/TR/dap-api-reqs/

Are Mozilla working with the W3C or doing their own thing?

There are people at Mozilla following and interacting with the Device APIs WG, as with most W3C standards groups, but there will also probably be some measure of invention, as standards groups are a poor place to invent. Historically Mozilla has both implemented standards as well as shipped prototype implementations to test ideas that have not yet been standardized.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact