It’s official: Microsoft is taking another stab at Windows on ARM, but this time around, it seems like they’re taking it a lot more seriously. First, in collaboration with Qualcomm, Microsoft has created 32bit win32 emulation for Windows on ARM. This allows all 32bit win32 applications to run on ARM, unmodified. Microsoft showed win32 Photoshop running on an ARM machine. Second, Microsoft seems to be going beyond tablets this time around – they’re promising laptops and desktops, too.
And technically, there’s nothing stopping them from allowing ARM phones to run win32 applications (e.g. when docked) either. This is something I personally really, really want to see: a phone that can become a full-fledged PC just by connecting it to a display and input devices. While such a device won’t be a powerhouse, it’d be great for the kinds of office workloads I’d want it for.
There’s no technical details on the implementation of the emulation yet, but look for those to arrive over the coming months.
As an owner of an HP Elite X3 phone, this would be awesome. Right now, this behemoth of a phone can be docked to deliver a desktop-like experience, but it is still plagued by the dearth of Phone 10 apps. If it could run Win32 apps it would be a tremendous device. Woo hoo, I hope it comes true!
This is intended for new high end Qualcomm processors.
Not the QUALCOMM Snapdragon 820?
While it doesn’t mention part numbers, it says “starting next year”. So I don’t think any current device is covered by that. Its possible that Microsoft might make it backwards compatible, but I kind of doubt it.
Manufacturers can’t make ARM desktops viable without microsoft’s commitment, and so on the one hand I applaud this as it could give ARM a boost. But on the other hand unless microsoft changes it’s secure boot policy, manufacturers will be explicitly required by MS to block owners from installing alternative operating systems.
I wish the manufacturers would focus on building good hardware, microsoft would focus on building good software, and just let consumers select what they want without imposing restrictions. If consumers choose windows then great, but coercive restrictions that force users to be tethered to MS approved operating systems is extremely anti-competitive and not in the interests of consumers.
Secure Boot is an option in UEFI that Microsoft Utilize it is Not a “Microsoft feature”.
Microsoft does not mandate or control the settings on PC firmware that control or enable secured boot from any operating system other than Windows. Any OEM can customize their firmware to meet the needs of their customers.
If an OEM chooses, they can prioritize pre-OS security over the ability to install alternative OS.
Adurbe,
It means (short of them changing their policy) that microsoft certified ARM hardware is explicitly prohibited from running non-MS approved operating systems. So hopefully with this information you understand my dilemma: I want ARM desktops to do well, but it will really suck badly for alt-OS users if ARM desktops actually do well but have these restrictions. I hate that our control is gradually being taken away.
Edited 2016-12-08 17:46 UTC
Yup. Agree 100%
With the rise of the ARM chromebook (which of course, it’s entirely possible to boot into alt-os/Linux at least via switching to dev mode)
And now this Windows on ARM push (and maybe macOS on ARM in the not too distant)
….I think digital freedom lovers, and progressive competition friendly legislators will need to collectively demand antitrust regs themselves demand Microsoft open up this noxious Secure Boot jail forced on hardware partners.
Coming to realization that some Corp or Consortium has always had such a control. Never been the case, of Us on control.
In fact, the crumbles We have got to know, are because of some involuntary hick-up on their circus.
If You have something to protect from exploit, detach your machines from any form of comm. [You’ll have to use very old motherboards]. Right now Civilian World is deprived from privacy. And work-around gizmos and hacks are going to be combated.
I couldn’t have said it better myself.
With Intel pulling out of the mobile market and the supplies of the Atom drying up, Microsoft has no choice, except to go into chip production – and that would be the end of Microsoft.
Continuum is just a name unless Microsoft can run Windows 32bit on phone, mobile and desktop devices.
Windows mobile, phone have all withered on the vine. With the Atom dead that leaves only the desktop unless they can make Windows run efficiently on Arm.
Microsoft should never have targetted Surface RT on Arm – it was a stab in the back to Intel who have suffered from lack of backing even from Microsoft. Intel has stabbed Microsoft in turn leaving Continuum very vulnerable as a concept.
Here’s the thing – if they allow sideloading or full access to install whatever the user wants to (like a desktop OS), this has the potential to be great. I was lent and played with a Surface 1 for a couple of weeks, and it was fast enough and seemed like it might be a possible cool little platform – but sideloading Apps at the time was absolutely impossible, and moreover, they’d by that point removed the ability to hack apps on to the device too in an update. So instead, I got a Surface 2 Pro from the same guy at work who was trying to offload his older kit (older as in, 6 month old at the time for the Surface 2 Pro) to but a MacBook Pro (irony?)
Edited 2016-12-08 17:59 UTC
This is full windows – Win32 and everything. And, apparently, no side-loading restrictions (Which they’ve long eliminated from Windows 10 completely).
Yeah, I realised the sideloading was gone when I was playing with Xamarin a while back. It used to be that you needed to go through a painful developer unlocking process, get a certificate and build, but now there’s a little check box in both Windows desktop and on the Windows Phones that allows sideloading.
But, that is native, and we are talking about sideloading non native apps. That part is still an unknown.
That checkbox also doesn’t affect Win32 apps on Windows 10, and the Windows 10 for ARM will support Win32. From everything I’ve seen, it looks like it’ll be just the same as Windows 10 for x86.
I’m not disagreeing with you, I’m just saying – Microsoft have done stupider things int he past.
The Windows 8 on the Surface was just the regular (ish) Windows 8. If you could (re-) compile apps for ARM and deploy them, they would run. It’s just you had no way to install them.
Regarding phones as “full PCs” – the form factor doesn’t really allow that. Real PC’s have heat sinks, and phones would easily overheat if they tried to drive laptop style workloads.
That really depends on what the workload is. For something like Word and Excel, any computer since the late 90’s has been more than adequate. The screen resolution of a modern mobile phone is also largely the same desktops, due to them using a much higher DPI.
That is kind of a mistake thinking its a phone only problem lot of modern day laptops suffer from cooling problems if you attempt to run heavy workloads on them.
Next is each new generation of nm production lowers heat and power requirements.
http://semiengineering.com/10nm-versus-7nm/
They mention it here from current 14nm production to 7nm production is quite steep drop. 35% more performance 65% less power and heat production.
Current day cheep poorly cooled laptop performance should be replicable by a phone with a 7nm chip. This kinda of explains why Microsoft is taking it more serous now.
vivainio basically you are right and wrong. Current in production mobile phones are going to overheat attempting to run laptop workloads due nm. 7nm and 5nm production open up entry level laptop style performance from a phone size device.
Of course a phone is not going to be able to match a full desktop or high performance laptops due to the amount of cooling those have. Remember there are more and more laptops that have been built thin and without lots of fans that have undermined cooling.
They are stumbling against quantum physics. Time to reset. Rethink.
Untrue. I have an 8″ Windows 8.1 tablet, it has no fan. It will run whatever you throw at it. With that tablet, it’s more processor power (Atom), RAM (1GB) and storage space (32GB) that dictate what is possible. But is came with an Office 365 personal year subscription and ran office just fine.
Tablet is not a phone. Tablet has a bigger area to heat sink with than a Phone. Tablet can keep up with a under cooled laptop.
Windows 8.1 tablet I would suspect 2014 tech that is a 22 nm chip. Double the heat of a 14nm chip and basically quad the temperature of a 7nm chip doing the same task. That is about the same heatsink area difference between a phone and tablet that is effective.
8inchs tablet has double the effective heatsink the size of a average phone. So if like the Office 365 where the program is optimise for the chip we might get away with a 14nm chip. Another issue is when phone is in hand/pocket the heat sinking area can basically half again compare to an 8inch tablet.
So your figure is kind of right but you have overlooked how little cooling a phone in fact has. So from 8inch table to normal phone size heat produce has to be reduced to 1/4.
Add in some overhead from emulation add on the perform gains of going to lower nm and the result is basically 7nm.
7nm by current forecasts should start being mass produced by TSMC at the start of 2018. Not far off really. So this gives Microsoft basically 12 months to debug it.
Just make the case metal and thermally linked to the processor. If you do it right, the heat dispersed per area will be small enough not to burn the user. or conversely, it could be concentrated to provide a free water heater for tea. That would be a moto mod to buy.
Edited 2016-12-12 17:43 UTC
Any linux based phone or tablet is theoretically capable of running a full linux desktop, all natively without emulation… Some people even do that by installing a debian chroot. And yet no android phone maker has ever made such a setup widely available.
They could have started out way ahead of microsoft and apple, with virtually all the existing open source apps already available natively for arm.
The problem is userland. Very few want a device that requires switching to a different OS when you change it’s form factor.
Anyway, I think Google is going to beat both MS and Apple to the punch by scaling up Android for desktop/laptop (Android on ChromeOS), and I can’t wait.
Of late concluding that Google-Scaling-Up and Microsoft-Scaling-Down are going to render DIFFERENT beasts.
Modern ARM chips are 64 bit, sometimes have > 4 GB of memory available, and in the last 5 years almost everything on the Windows side has moved over to 64bit.
I understand why they approach 32bit Windows programs on 32bit ARM cpu’s first, but if they really want to make this useful they need to support ALL Windows programs on ARM.
I understand why they approach 32bit Windows programs on 32bit ARM cpu’s first,
They emulate 32-bit x86 on 64-bit ARM.
This way you can map entire VA space of x86 and let hardware do address translation without extra software checks.
they need to support ALL Windows programs on ARM
Why? Even if few AAA games are 64-bit exclusives, ARM SoC can’t handle them anyway.
Edited 2016-12-09 10:27 UTC
I doubt this. There are more and more programs using x64 and no longer stick to 32bit. And I doubt that those manufactures want to turn back the wheel just to get their application run on ARM.
I mean, how difficult will it be to recompile those on ARM. The major drawback is a missing API. So an official “Windows on Anroid”-APP is all needed then.
Because almost all software is now 64-bit and you don’t want to get support calls to explain which software you can and cannot run. The whole goal of Windows is “It can run ALL software”
* Modern apps
* Legacy/Ancient programs
* Linux tools (the new subsystem in Windows 10)
* The bridge from iOS to UWP
The previous attempt of Windows on ARM failed miserably because it could only run Store Apps (and several recompiled Office programs but not all of them)
Running 32bit Photoshop on ARM without any modifications is incredible. But you will get complaints the very next day because someone tries to run the 64bit version and receives a “cannot run this program”
you will get complaints the very next day because someone tries to run the 64bit
Windows 10 still have 32-bit version. Any complains?
Yes, I quite regularly get support questions about this from people that bought a cheap device and try to run more advanced programs on it. It is quite hard to explain to those people that they cannot run software on their version of Windows 10 that they can run on another version of Windows 10
viton,
Userspace apps are completely oblivious to these arbitrary implementation limits because the operating system handles it. Even if the arbitary limits were set to 32bits, the 64bit code would still work anyways. They obviously have to fit in memory but beyond that I don’t see where there’s a problem. If there’s something more subtle I’m overlooking, then please clue me in
Edited 2016-12-09 14:59 UTC
However from a technological feasibility point of view can you elaborate why you think 64bit ARM couldn’t handle x86_64 addressing?
I explicitly mentioned SoC in context of 64-bit AAA games. No way snapdragon 835 can run Battlefield 1, for example. It has nothing to do with addressing.
With 64 bits you have to place binary translation cache into VM area and open it for write. Emulated app can crash and/or overwrite the code. Otherwise you need to fix up the addresses every time.
Also x64 has more registers. It can increase register pressure in translated code.
Just my 0.02
viton,
Good point, but ARM has 30 general purpose registers whereas x86_64 only has 15, so that shouldn’t be an issue.
Really I would not expect a heavy AAA game to run on snapdragon. Also the snapdragon 835 is power usage cut back version. 835 only a 4 core the full 830 early specs is a 8 core that support 8G of ram.
x64 has more registers than a x86 32 bit but way less than a arm64 and even less than arm32. X86 was not the fountain of registers some other CPU are.
It is truly horible to be emulating arm code on x86 even x86-64 because that way you are lacking registers.
With 64 bits you have to place binary translation cache into VM area and open it for write. Emulated app can crash and/or overwrite the code. Otherwise you need to fix up the addresses every time.
This is absolute garbage. Please go and look at how qemu usermode emulation for Linux and OS X works.
The thing to remember under Linux on a arm system today we can use qemu to run x86-64 Linux programs. Ok its not that performing but it runs and it not doing any of the stupidity you are refering.
Something to remember arm cpu design is not like x86 arm cpu do not like editing executable code on fly. Instead you write a full page area if it change write a new full page and flush the old one out of memory.
Also go use wine under Linux for a bit and work out how many applications are still 32 bit. Still insanely common.
Now out of 64 bit windows applications very few use copy protection that require a fully open memory area. So yes due to copy protection stupidity and the extra overhead to support it most like it means no major AAA games. General business programs like Microsoft office and myob does nothing that would require you to allow abnormal memory addresses.
Look at the software that is not copyright protected to hell and it fairly much the software of business and retro games that are not as heavy.
Like running a power point presentation and a video or two does not take a super big computer. Even a lot of basic business operation demos you are not talking a big computer.
If you are travelling on business to particular countries and you read your travel adversaries you will see many cases were you are not allowed to leave you computer in your hotel room unattended.
Projector screen and phone and fold up keyboard with mouse will fit in 3 pockets on your person. 3 pockets is a lot simpler to move through crowds than 1 laptop bag. Also gives you a bit more room in your carry on luggage into aircraft.
oiaohm,
In principal a deterministic algorithm will have the same outcome and the virtual state machine will go through the same transitions as the physical state machine. The algorithm will be oblivious to the memory outside of the emulation.
Just like we have no way of knowing if we’re living in the matrix
But in practice, it’s possible to detect the emulation because the emulator isn’t trying very hard to hide itself:
dmidecode -t 2
Manufacturer: Oracle Corporation
Product Name: VirtualBox
smartctl -a /dev/sda
Device Model: VBOX HARDDISK
https://www.codeproject.com/articles/9823/detect-if-your-program-is-…
So I’m quite curious if typical copy protected software will attempt to detect virtual machines? Can you list any specific examples?
This has nothing to do with copy protection, but some malware tries to detect whether it’s being run under a sandbox.
http://phishme.com/dridex-code-breaking-modify-the-malware-to-bypas…
Edit: Microsoft has done something very similar in the past with “XP Mode”, which relied on virtual machines to achieve backwards compatibility. Do you know of any software that was broken in XP mode due to copy protection?
https://www.cnet.com/news/more-on-windows-7s-xp-mode/
It’s an interesting topic. I work with industrial automation software that’s copy protected, but I’ve never tried to run in under a VM. I generally try to avoid copy protected software.
Edited 2016-12-10 16:35 UTC
But in practice, it’s possible to detect the emulation because the emulator isn’t trying very hard to hide itself
That is the issue. Depending on the emulator methods it hides itself different amounts but it quite detectable as other issues.
So I’m quite curious if typical copy protected software will attempt to detect virtual machines? Can you list any specific examples?
There are a few different issues. Most copy-protection software does not attempt to detect virtual machines directly its a side effect.
I should mention anti-cheat being like punkbuster that you find on games this makes emulation more costly.
Qemu usermode is not like a vm its attempting to emulating the bare min. I would not expect XP mode that is a full copy of windows running as this is quite a lot of overhead. If you are going after performance with limited resources the qemu usermode path makes more sense.
So if something goes snooping around looking for a complete windows system like punkbuster does its going to fail if you have a usermode emulation setup. So copy protection systems that attempt to validate the OS will fail like anti-cheat systems will in this case.
Next thing is anti-cheat and some copyright systems have expected timing using a punkbuster using game in XPMode on Windows 7 would at times cause you to be kicked out for possibly cheating because the response times due to emulation were wrong.
So most complex anti-cheat and copy-protection systems don’t attempt to detect virtual machines but attempt to detect tampering and due to virtual machines not being perfect it registers as tampering. You could say its like the repeating cat in the matrix showing the world has been tampered with and some of the anti-cheat and copy-protection system is looking for that and basically mistake it for blinking in performance caused in emulation.
Please note I said very few applications with copy-protection use systems that would trip. So the odd are that the industrial automation software would work. If you were depending on it operating something life and death it would pay to confirm that the copy-protection does not do timing tests to decide if system is tampered with and randomly quite out.
If the win32 emulation on arm for windows is in the model of Usermode emulation in Qemu you would want to avoid something that is going to attempt to search the complete system including kernel space for tampering. Remember some copy-protection and anti-cheat load up drivers for the pure reason of validating the kernel space.
AAA games lot of thing have a lot of software to detect gamers attempting to cheat or bypass copyright so are quite sensitive. You would put some of the AAA games up in the least likely to work. That included the game the one person referenced.
The most likely to stuff up is basically AAA games. So a new system emulating something you don’t go out thinking its going to run AAA games. This is like over 90+ percent of applications are not going to have a problem. Its the less than 10 percent that are picky. Question is are you using any of that 10 percent. Majority are going to say no. Most of the 10 percent will want large GPU and other features a phone will not have anyhow.
I see win32 mode on arm makes sense when you are reasonable on what you expect to run.
The win32 does not work on small screen is forgetting I can have a 22 inch fold up screen with a projector in pocket and projector connects to the phone. So as long as you have a desk to setup on you have a bigger screen than compact laptops. Same with keyboard and mouse.
Good Sony MP-CL1 projector gives you 1920 x 720 res native. Most windows applications work on 1920×720 screens. Also 4HD screen that you see on some phones that is 4096 × 2160. Yes half a phone screen a eye so truly having you nose almost on your phone gives decent screen size.
Yes compact projectors if they improved to being full HD native it comes even more reasonable. Its going to be 12 months before the performs is really in the phone chips so maybe when it ready we will have better pocket projectors as well. Of course copyprotection and some anti-cheat stuff as well as emulator overhead means some programs will not work. Operational usage with existing projectors and fold up bluetooth keyboards something half decent can be setup.
oiaohm,
The thing is, if the heuristics are so sensitive that they pick up emulation as a side effect, then they’ll likely be vulnerable to other false positives too.
More often than not it’s the legitimate users who are suffering from copy protection: systems upgrades, problems transferring software, time bombs, internet requirements, etc. My parents bought rosetta stone, which is not cheap, and the copy protection is so damned problematic that I had to install a hack just so they could reactivate the software when their old computer broke.
Sometimes this is true. Sometimes not. Timing measurements on keyboard and mouse looking for abnormal variations looking for cheat software trips on emulators, vm and people using cheats but does not trip on those running on real hardware. Why when on real hardware the program can see everything using resources so calculate correctly. Emulators, vm and people using cheats have the same thing in common something is running the program cannot see.
https://en.wikipedia.org/wiki/Code_morphing
I forgot to mention code morphing that can make life hard for cpu emulation to work out what the program is doing and at times double the cpu requirements that would have been required to run the protected program.
Please note code morphing used as anti-reverse engineering for anti-cheat and copy protection is not like JIT for java or .net its particular designed to be hard to understand and predict.
Programs that are large trouble for cpu emulation are also trouble for battery life due to being heavier on real hardware with cpu flushing at the like.
There are a lot of programs with copy protection being activations that will work fine because they are not that complex and those programs you activation method will normally allow you to change computers.
Alfman you have seen a problematic copy protection first hard. With the amount of trouble the heavily protected cause legitimate users I really don’t count software with that as software to worry about for a phone running. Most of the programs that are highly problematic have alternatives that are not problematic.
Some cases like Rosetta stone is sometimes really good to be trapped without it.
http://hackingportuguese.com/rosetta-stone-vs-pimsleur-vs/
Like Rosetta Stone is not good at everything. So being force to use alternatives give a more rounded skill set.
This is the case with all the nightmare level copy protected and anti-cheat protected. If something like that is number 1 in that class of there will be many of the alternatives in that class that will work are either free or sanely copy-protected. So I don’t see this problem as a deal breaker. This as annoyance level but not deal breaker for a phone running desktop software.
oiaohm,
I’m not interested in running windows software on a phone, that was Thom. I want unrestricted ARM desktops that can run both x86 and ARM software.
I have done support in IRC with wine for a long time the stuff punkbuster and others items have come up a lot and wine developers have attempted to make them work so found out what these programs do check.
The problem with timing is that it is inherently fragile due to so many uncontrolled system variables (mainboards/firmware/cpu model/overclocking/drivers/input devices/background processes/etc).
http://battlelog.battlefield.com/bf4/forum/threadview/2955064785692…
Keyboard and input device timing checking is fragile yes have the wrong type of keyboard/mouse get booted out of game by punkbuster without even using a emulation or anything else. Using emulation/vm just nicely increases your risk of being on the wrong side of stuff like punkbuster.
The list you listed is everything that can make stuff in punkbuster anti-cheating for games and equal or some insane anti-copyright stuff throw a fit.
Versions of SafeDisc not supported by wine does process scanning but it expects exact byte match to the versions of windows it knows. So 1 byte difference caused by even a window update and the game has not been updated to know about it game bites the dust. Yes SafeDisc hacks appear a lot to allow legal owners to run the games they bought because it over sensitive some game vendors have even released updates to there games at times removing different versions of safedisc due to its over sensitivity.
Wine developers have got a lot of copy protection and anti-cheat stuff to work without major issues. There are some like punkbuster that are down right insane on what they go and check. Then you have the SafeDisc class ones that you need to run a full vm of the windows the game knows or else.
Please note the effected software is less than 10 percent. Most companies making software don’t want the levels of complaints that setting copy-protection or anti-cheat to max.
As long as you a reasonable and don’t expect 100 percent of the software to work the arm running x86 will be fine many not be high performing at first but should run.
Like with safedisc you change windows versions on x86 and safedisc decides not to like it game is not working. So most of the software that I am referring to that would fail on arm emulating x86 could fail with next Windows update be it complete OS or just a general update even running on real x86.
Since the software that most likely will not work on arm emulating x86 is also software that normally unstable what the difference if the software does not work since remaining x86 same software could have stopped working.
Basically not all windows software is user friendly and arm emulating x86 is just going to make the best at being user unfriendly show themselves by not working.
oiaohm,
That’s just it, heuristics are inherently fragile on legitimate systems with unpredictable configurations. Conceivably I could be blocked for having a programmable keyboard or mouse or running VNC software, or whatever…and it still wouldn’t stop actual cheaters.
In the future I wonder how many people will try to re-install their legitimate software only to find that it no longer works because of newer unrecognized configurations and activation processes that deliberately stop it from running normally.
Edited 2016-12-12 15:19 UTC
Satya is really getting at it. Those business which are waiting for ‘continuum’ trustful there is actual work toward it.
Should be times to say good-bye to ‘vapor’ news.
Bringing Windows down to ARM promises to be a more fruitful path, security wise. [Partial] Validation easier at ARM silicon.
Even there is the same name for the system (Windows 10) on the desktop and on the mobile (and they share mostly the same kernel), do not mix up them. Both systems are not substituteable. Different services, different libraries, different ecosystem – all is different. This is why they are talking about tablets, but not about mobile phones.
Win32 doesn’t scale down to phone size at the UI toolkit level. I would guess screen size has more to do with tablet talk than any other variable.