Why Windows Classic on ARM Matters

| 49 Comments

continued from Firefox on Windows on ARM - Microsoft Says No

It's not precisely "running a browser in Classic" that matters for Windows on ARM. It's that running a browser in Classic is the only way that Microsoft has allowed us to get access to the APIs that a browser needs to deliver modern capabilities and performance in Classic AND Metro.

A browser running exclusively in Metro does not have the APIs necessary to compete with IE or any other modern browser.

On x86, Microsoft has given browser vendors the same privileges and APIs that IE uses. They have not done this on ARM.

That's why Windows Classic on ARM matters.

update: I've been asked by a couple of people on Twitter and email to elaborate. Let me give it a try.

On x86 Windows 8 PCs, there are three kinds of software programs.

First, there are Classic programs that are basically the same as they are Windows 7. Because of the rich win32 API available in Classic, these kinds of programs can be really powerful (or not,) but they can only operate in the Classic environment and cannot use any of the cool new features available in Metro and they cannot be run in Metro. In this category you can think of programs like Adobe Photoshop or Microsoft Word.

Second, there are Metro apps that are touch-focused, simpler, but have rich interactions between themselves and Metro and other Metro apps. These apps have access to some cool new Metro features but they live in a Metro sandbox and cannot use any of the more powerful features available from the Classic win32 environment -- APIs necessary for building a modern browser. In this category you can find apps like Angry Birds, Microsoft Stocks, or Hulu.

Third, there are Metro style desktop enabled browsers. These are programs that straddle Classic and Metro. They have access to the underlying win32 API like Classic programs and they also have access to the cool new features of Metro. They can have a classic front end and a Metro front end but under the covers they're calling into both the Classic and Metro APIs. In this category you have Internet Explorer 10, Firefox, and likely other browsers including Chrome and Opera.

Microsoft has made it clear that the third category won't exist on Windows for ARM (unless you're Microsoft) and that neither will the first category (unless you're Microsoft.) That means that IE on ARM has access to win32 APIs -- even when it's running in Metro mode, but no other Metro browser has that same access. Without that access, no other browser has a prayer of being competitive with IE.

Happy to answer any questions in comments.

update 2: I've also been asked why Windows on ARM matters. It's for tablets, after all, and that's just a tiny sliver of the larger PC universe.

That's true today, but it's not going to be true next year and the year after and the year after. ARM will be migrating to laptop PCs and all-in-one PCs very quickly. If you read Microsoft's blog posts about Windows on ARM, you'll see that they expect ARM PCs to cover the whole spectrum. ARM chips are already being used in servers. This is not a tablet-only concern.

49 Comments

What will Mozilla probably do if Microsoft doesn't reverse this decision?

Asa, could you elaborate on the class(es) of APIs that won't be available? Is it networking, file system, graphics, etc. or literally the whole of Win32?

Havvy, it's not clear. Let's hope Microsoft reverses course.

Rich, IE 10 on Win8 is mostly win32. They have a minimal front end coded in winRT and to hook into Metro capabilities like contracts but all of the performance critical paths are running against win32.

A Metro app also runs in a sandbox that prevents things like calls in to make memory writable -- something you need (and all browsers, including IE use) for a JIT, without which you cannot have fast JavaScript. It also prevents creating additional processes, something we use for sandboxing plug-ins and other browsers, including IE, use for sanboxing tabs.

That's an oversimplification but the basic tenant that APIs and capabilities IE gets, other browsers should get, is the main point.

- A

Asa,

Have you guys at Mozilla talked to Opera and Google about this?

If I were in your position I would be going directly to the European commission (all three together) immediately with a complaint before MS releases the ARM version of windows.

MS wields absolutely massive power with windows and I agree totally locking out other browsers like this is wrong on every level.

I am a newbie ! so I want to understand why microsoft is wrong ?

why should ms have to bear the brunt of badly coded sw by other vendors ?

why does microsoft have to allow other browsers in a tablet OS which needs a tighter control on the experience as compared to a general desktop OS ?

why should firefox have google search as default which is indirectly killing microsoft with a THOUSAND WOUNDS ?

dont the public anyway have an option to reject windows and chose others like ubuntu or mac ?

is IE blocking non-microsoft or competitors websites ?

thank you.

why is apple allowed to have a closed garden, whereas microsoft is not ?

You win no sympathy for me before you clarify in more detail exactly why you can't build a competitive product using the Metro APIs, and how the latter can be improved to resolve these issues. I think it's clear that Microsoft believes Metro-apps are the only way forward for developers, and it is naive to think you will get the company to change its OS design to third-party browsers only. Why wouldn't other developers start asking for the same Win32 privileges? Why should browsers be treated differently?

As for MS apps working differently, one can certainly make a strong argument for why Microsoft should be able to let carefully vetted internal developed apps use old APIs.

Simsalabim: Metro apps don't get access to the Windows APIs that mark data as executable, which means they can't write JIT compilers. Having a JIT compiler is an absolute must for a competitive browser.

This is bad but it was obvious. On x86 they were forced to make other browser running so they make a third way, that doesn't seem well blended with the rest with limitation on the default browser,....
However on ARM they will probably be just a little percent of the tablet market and even with the commitments to interoperability of many years ago this won't apply. Apple has the most of the tablet market with the iPad, that has the same limitations on the API, and antitrust didn't say anything, so even microsft thinks can do the same.
So Asa, in my opinion, you should talk against BOTH apple and microsoft, also because news site will report like microsoft is the only one doing this kind of things...

Hmm, did I ever mention that Microsoft will stop at nothing to press their monopoly? It's best to avoid their products, and don't look back.

"What will Mozilla probably do if Microsoft doesn't reverse this decision?"

Hopefully tell anyone who cares to use a grown up's OS - one that actually treats you like an adult and allows you to do things... (like Linux)

Its ok Ubuntu, Fedora, etc will not do the same thing.

A lot of antitrust lawyers must be rubbing their hands....

They just might have a legitimate technical point about JIT compilers, though, so watch out.

"That means that IE on ARM has access to win32 APIs -- even when it's running in Metro mode, but no other Metro browser has that same access. Without that access, no other browser has a prayer of being competitive with IE."

Huh? Maybe you can connect the dots there. If the future for MS is Metro apps, which it certainly appears to be, what's preventing you from creating the most competitive Metro-style browser? The answer seems to be nothing. You're just upset that MS won't let you guys join the short list of apps that will straddle W32 and WRT in the interim. But their decision there makes some sense to me. Obviously trusting themselves is one thing. If they allow you guys to do similar, they need to do that for all browser makers. And then non-browser 3rd parties will ask why they're not included too. By the way, did you even discuss this with MS before going public about it? If so, what reasoning did they give you? Lately you guys seems to hit the "whine" button as your first course of action.

Hmm, maybe you guys don't understand what JITs are? It stands for Just-In-Time compiler, taking the interpreted Javascript that runs a lot and transforms it into machine code. Running the machine code is much faster than interpreting Javascript, since many layers of indirection are removed. But the Metro API doesn't allow one to make memory as executable, and machine code must be marked as such to be executed. Because of this, Javascript can only be interpreted in the browser. This is slow.

So you are complaining that Microsoft blocked off Firefox on ARM processors, regardless of customer wishes?

You guys blocked off MP3/h264/AVC/AAC from Firefox in general, regardless of customer wishes.

Hypocrites at their best!

I don't see Firefox, Chrome or Opera available for the iPad...or even a Mac.

JIT isn't available but maybe is possible to create and run MSIL bytecode and let the runtime do the JIT trick. Everybody on the web says that System.reflection.emit isn't there but http://msdn.microsoft.com/en-us/library/windows/apps/hh441595%28v=vs.110%29.aspx seems like it is.
I have never use them or tried, but maybe is possible to make it work, even if it's like supporting a different architecture...

It's interesting to see that Mozilla thinks Microsoft is going to be so successful with Windows RT and ARM based devices.

v, I'm very hopeful that Microsoft is successful with Windows 8 and Windows on ARM. We need more, not less competition across all our major software platforms.

Take MS out of the picture and it's just Google and Apple. Apple is already plenty hostile to third parties building sophisticated programs (see their exclusionary tactics on iOS for example).

Microsoft has been one of the most open operating systems in history -- with the exception of their mis-steps in browser-related APIs, and I hope to hell they continue to be successful as an OS. I just want them to play fair.

If you think that Mozilla has some kind of hate for Microsoft, you're totally wrong. I'm a Microsoft users and over 90% of Firefox users are also Microsoft users. Microsoft makes some great products and I hope they continue to do so.

- A

Please make a public statement requesting that Apple open iOS to third party browsers.

Chrome, Firefox and Opera browsers are absolutely available on Mac OS X.
Opera Mini is available on iPad, as is iChromy (a chrome-like browser). 3rd party browsers are permitted but must use the webkit engine for rendering (which solves the JIT issue) on iOS.

Asa, you can create a skinned version of the IE Engine and create "Firefox" on WindowsRT which seems to be the exact same limitation that exists on iOS. Can you elaborate on what the distinction is between why MS is getting grief whereas Apple isn't for what seems to me at least to be an identical approach?

Personally I don't see what the big deal is. Windows on Arm is Microsoft's platform. It is closed with a fixed set of rules that developers need to follow. It is no different that Apples's iOS. Why can't they lock it down like they have? Why a different set of rules?

I did not hear Mozilla uttering the anti trust words about iOS, which have 70+ percent of the market vs Windows on ARM which have 0%.

You are making the assumption that Windows on ARM will be the next PC and that it will kill iOS and become the de facto standard. There is no prove of that...

Thanks for the explanation, Asa. So the move isn't dissimilar from Apple's current stance, which I believe gives Mobile Safari (and UIWebViews) the ability to mark memory as executable (which apps from the App Store can't). I'm not sure if Mobile Safari spawns new processes for its tabs but if it does, that would be another parallel as App Store apps certainly aren't allowed to fork() or similar.

But I can see where Microsoft (and Apple) are coming from with this. From a security perspective, opening up the Win32 APIs to RT apps would *massively* increase the size of the attack surface...

Seems to me that WinRT is not a superset of Win32/.NET yet.. so it looks like APIs don't yet exist for WinRT that should if MS really wanted to give Metro a level playing field to run with. I think that is the least they could do would be give allow WinRT to do most of the stuff in legacy code/apis.

Seems fine to me. Try to utilize Trident engine and make a firefox for Windows RT just like other browsers use Apple's webkit in iOS.

If *you* are allowed to go around sandboxing in WinRT, why will be Adobe denied the same? What about some other company that needs the same? What about *my own* program that requires access to "call to make memory writable" and spawning different processes?

Also, why didn't we see you complaining like this when iOS was released? Care to elaborate?

Until you can answer these properly, all your arguments are just pathetic whining.

I'd argue with your conclusion in update 2. ARM moving into the laptop and desktop market is any significant way is far from certain. ARM chips are indeed getting faster, but x86 chips are already much faster and are getting more power efficient.
The fact is x86 owns that whole space. And that space isn't really growing much at this point. Why would ARM fight an uphill battle against a huge incumbent for a largely static market. Especially if their products would be slower and not run a vast majority of software currently available? The primary advantage would be power efficiency and the CPU is only 1 part of that equation. The other advantage may be price, but again the cpu is only part of that equation too and you can buy real laptops these days that cost less than an iPad.
I don't doubt you'll see niche, ARM based laptops at some point but wide adoption seems unlikely.
Ars had an interesting read on the whole ARM in Macbook rumor awhile ago, http://arstechnica.com/apple/2011/05/apple-could-adopt-arm-for-laptops-but-why-would-it/
Still all in all, interesting times...

I absolutely agree with this commentator. Mozilla, Opera, and Google should all go to the European Commission and to the U.S. DOJ on this, and if you could, get Apple involved since their browser will also be stifled on Windows RT as well. Microsoft is once again using all of the dirty tricks from the 90s that it used against Netscape, to the detriment of the web. The only reason Microsoft is even supporting Web standards as they are is because of the competition posed by Chrome, Firefox, Opera, and Safari, and preventing those 3rd party browsers from running on Windows RT or without access to the Classic Mode APIs stifles that competition and also stifles Microsoft's drive to improve their browser and to have their browser adhere to Web standards, which as we all know, helps to keep the Web as a healthy ecosystem of information. Go to the EC and DOJ now because if action is taken after Windows RT is released, it will be too late, just as the DOJ stopped Microsoft well after its monopolistic actions damaged the technology industry.

This is just the kind of behavior that contributes to the demise of Linux. Way to go, "grown-up".

if i create an OS, add a browser and some more of my stuff;
and do not allow anyone else on to it; and release to market

- is that a sin ?
- are OS's supposed to allow 3rd parties by constitution ?

These "walled gardens" are a result of lack of legislative action by authorities towards operating system platforms. In normal world there are laws that regulate what to do if there are 2 parties wanting to engage in commerce and there is some kind of owner of something in between, that is trying to prevent that. The usual outcome is bad for the owner.

For example (in EU) a person renting a house or a flat has a right to install a stationary phone, cable TV, electricity or even satellite dish etc., and the actual owner cannot prevent it. If there is some kind of filed going betweeen a house wanting a service and electricity/telecom/gas distribution point then the owner of the fileld cannot prevent linking the house to the distribution point. Yes, often it has to go trough courts, but the outcome is obvious.

What is lacking is the same regulations in IT, where there are users - computer or tablet owners, there are applications or service providers, they want to make a deal, but unfortunately a platform owner is in between and makes it impossible to do commerce between the wanting parties. The situation is so analogous, that the regulatory outcome can be only one...

In the coming days when browser and cloud combination is the new OS,
why shud firefox hav a default/biased google search which is killing MS business with a thousand wounds ?

Asa,

I support and agree with Mark Casey's comment.

1- Talk to Opera and Google about this

2- Send a formal complaint to the European Commission on such antitrust practice which eliminates, excludes competitors from a market. Send it with Opera and Google

Gérard Talbot

Does Boot to Gecko support other web browsers? I thought that the concept was that the web browser was the OS, so it really does not make sense to expect another OS to run as an application outside of a hypervisor.

It might be best if Mozilla let Boot to Gecko compete with Windows on even ground, rather than trying to double dip.

Richard, when Boot to Gecko has 90% OS marketshare, I'll make sure that we allow it to run IE. How's that sound?

- A

Joe, do you realize that Apple is even MORE restrictive on what browser can run on iOS (i.e. iPhone and iPad). In fact, there's NO chance that Firefox and Chrome and Opera can run on the iPad and iPhone because Apple has prohbit ALL 3rd-party HTML engine and JavaScript engine.

I am sorry, but Apple is the LAST company to be on the list of complaint.

Random thoughts:

1. when the browser is the new operating system !!! [good bye windows]
and the post-pc devices are the new PC's [farewell windows n MS]...
Is allowing other browsers [with a google search to boot] give windows/ms a lifeline or suck the remaining life out of them? [i think !rip! MS]

2. nobodys going to buy an OS when a high quality free option is available
so how are the OS makers faring ?

a. Apple survives because they sell the hardware and the experience.
b. Google survives because they get boatloads of cash from search.
c. RedHat/Ubuntu clan survives because they sell support or thru freemium.
d. Microsoft will be dead [shrinking income from their OS becomes 0 down the road]
so, can you Mr. Tom, Mr.Dick and Mr.Harry provide a strategy to survive ?

-------
the much luved firefox can become the 80,001 th app on windows store
and help lift wp a little.

Remember that the DOJ antitrust case involved ONLY Intel-powered PC meaning x86 architecture so the ARM architecture has no relevance to this DOJ case. Likewise, the DOJ case has since expired on May 12, 2011. Quote from wiki:
"The plaintiffs alleged that Microsoft abused monopoly power on Intel-based personal computers in its handling of operating system sales and web browser sales." http://en.wikipedia.org/wiki/United_States_v._Microsoft
Apple's restrictions on iOS browser are MUCH more restrictive than Microsoft, and yet you and Mozilla are not complaining loudly to the DOJ and EU. Why is there this double standard? Plus, Mozilla, Google, and Opera are NOT restricted in x86 Windows 8. Last time we looked:
Apple' iOS marketshare: 90%+
Microsoft Windows RT marketshare: 0%
And here's a comparison of Apple's iOS and Windows RT:
Microsoft Windows RT:
- You can write your own browser HTML/JavaScript engines but you cannot use JIT.
- You can use the built-in Trident HTML engine and the built-in Chakra engine with JIT .
Apple iOS:
- You can not use your HTML/JavaScript engines.
- You must use the built-in WebKit HTML engine.
- You must use the built-in but older Nitro JavaScript engine that does NOT support JIT. Only Safari is allowed to use the newer Nitro engine with JIT.
Where isn't there MORE outrages with Apple? Why hasn't Mozilla and Google filed lawsuit and complaints to DOJ and EU about this behaviors on Apple?

When can I download Firefox and Chrome for the iPad and iPhone?
When can I install Firefox on the Chromebook? (without hacking)

@Alen:

You are mistaken. Third-party browsers on iOS do NOT have JIT because Apple restricted all third-party browser from using the newer Nitro JS engine with JIT support. That means you can NEVER have Chrome, Firefox, and Opera in iOS because they ALL use their own rendering engines. At least with MS, they can still do so except JS won't be JIT.

In iOS, a third-party browser can MUST:
1. Use the built-in WebKit engine
2. Use the built-in JS engine BUT JIT is NOT enabled for 3rd-party browsers

http://arstechnica.com/apple/2011/06/ios-5-brings-nitro-speed-to-home-screen-web-apps/

Start Quote:

One caveat, though, is that third-party apps that load webpages in a WebKit view still won't take advantage of Nitro's fast JIT execution. Again, security is the main concern.

"The reason I think Apple hasn't allowed dynamic code injection in third-party apps is that allowing dynamic code injection in third-party apps doesn't just allow Nitro to work, it allows any code injection mechanism to work," Graham Lee, iOS app security consultant, told Ars. "That's a dangerous proposition: especially if the generated code is created as a result of parsing untrusted input from an unknown provider on the Internet."

End Quote:

Asa, could you point me to the official Microsoft announcement that it will not be possible to write software from the third category ("Metro style desktop enabled browsers") on Windows ARM?

bpiec, when we asked for documentation for x86, Microsoft said "it's coming" and then sent it to us and posted it to the web. When we asked for documentation for ARM, they said it wasn't coming and haven't posted anything to the web.

- A

bpiec, they have repeatedly directed us and the press to this post where they say

http://blogs.msdn.com/b/b8/archive/2012/02/09/building-windows-for-the-arm-processor-architecture.aspx

which makes it clear that there is no MSDEB path for Windows on ARM.

"Metro style apps in the Windows Store can support both WOA and Windows 8 on x86/64. Developers wishing to target WOA do so by writing applications for the WinRT ... Code that uses only system or OS services from WinRT can be used within an app and distributed through the Windows Store for both WOA and x86/64. Consumers obtain all software, including device drivers, through the Windows Store and Microsoft Update or Windows Update."

So, Windows Store only and only WinRT APIs. That means no MSDEBs.

- A

@Asa: So when can we start installing Chrome, Firefox, and Opera Mobile on iOS?

@Asa: Can you explain to me the differences, if any, between Microsoft's and Apple's policies regarding third-party browsers on Windows RT and iOS, respectively?

@Asa:

If Microsoft were to adopt the exact same licensing policy as Apple, how would you respond? In other words, if any browser that's deployed to the Windows Store, they MUST NOT use their own layout/javascript engines and JIT is strictly prohibited.

Would that be "better"? That policy would be exactly like Apple's.

@Asa: Apple's iOS alternative browsers work via the UIWebView object. However, the UIWebView object uses the older interpreted javascript engine rather than JIT.

In other words, Apple does NOT allow alternative browsers to use the much faster Nitro engine with JIT. Should the DOJ and EU review this for possible antitrust issues? Apple's Safari gets the full advantages of JIT while other browsers don't. Isn't this your issue with Windows RT?

Does Mozilla have a double-standard regarding Microsoft and Apple? If you are going to drag the Senate into the dispute, then why isn't Apple part of it?

Kevin, when Apple makes these kinds of commitments to developers (and the legal system) I'll agree with you that the two situations are the same. Until then, the situations are not the same.

http://weblogs.mozillazine.org/asa/archives/2012/05/commitments-what-com.html
http://weblogs.mozillazine.org/asa/archives/2012/05/this-has-worked-well.html

It's one thing to never let someone invest in your platform. It's another thing to make a commitment to them, leading them to make huge investments in your platform, and then pull the rug out from under them.

I'm not asking Microsoft to do anything more than live up to the commitments that they made.

I think and have said repeatedly over the years (and Mozilla has said it as well) that what Apple does with iOS is wrong and should change. But Apple did not promise me access to iOS and Microsoft did promise me (and the US and European governments) that Windows would be open.

- A

So, the problem is the desktop-enabled" part of the Firefox spec? Because there is no or only restricted access to the Win32-API, which is simply a shame to find on WOA at all?

Remind me, why should I install a Metro-Browser breaking out of the sandbox? to reverse your argument: what MS does with IE is wrong and should change. Why follow a bad practice?

McZ, because you like Web browsers, right? Browsing the Web is a useful and good thing, right? Well, it's not possible to do that efficiently inside of the Metro sandbox. Microsoft realizes this and is unwilling to provide a sub-par browser that is restricted to the sandbox (think, much much slower and less secure.) So, browsers don't fit in the Metro sandbox. It's great for little games and apps, but it's completely insufficient for a modern Web browser.

I'm trying to understand your argument. But you didn't answer any of my questions.

So, once again: what is the benefit of having a sandbox, if a browser as the hotspot of security risks can break out of it at any given time?

I never said, that MSFT should and would provide a sub-par browser. I said, that if they are buying parity through breaking the sandbox (for which I have yet to see evidence), they are at fault. And that anybody following their example is at fault, IMO, too.

I'm well aware, that any current JS-runtime needs some sort of JIT-ability. Metro-apps don't offer this, as was clear since BUILD. Mozilla just started it's development process well aware of this fact. This was also the case in WP7.

MSFT should ask themselves, why they don't offer proper AppDomains (sry for the C# term) and (appdomain-bound) on-the-fly-compilation within WinRT, which was present in .NET since v1. IMO, this would solve most if not any of your problems and would retain the sandbox intact. In this regards, any pressure on MSFT may help.

Apart from this, you will have a hard time to find any MSFT-official promising Win32-API-support on ARM.

Finally, I wonder what will be next. Such a precendent would be enough to make Adobe sue MSFT to run their Flash-plugin in Metro-IE. Something, which cannot be of any good to the web.

Monthly Archives