Opinions

How Full Windows 10 running on ARM CPU will affect computing future

So it finally happened! I have been predicting x86 emulation on ARM CPU ever since Intel stopped product development for Atom for mobile SoC.


@WinHEC 2016, Microsoft showed Windows 10 running on ARM

A few major things happened over the year to make this happen.

  1. Windows 10 Mobile Continuum
  2. Intel ending development of Atom SoC
  3. Qualcomm adding virtualisation support for SnapDragon SoC
  4. Various bridges for developers to easily port their apps to Windows 10
  5. Windows 10 Common Core (or why there’s no 64bit mobile Windows 10)
  6. Some special sauce from the brains @Xamarin
  7. Microsoft letting go of the last vestiges of Nokia

Let’s look at this point by point.

First point. Windows 10 Mobile Continuum feature has always been this dream of making your smartphone act more like a PC when connected to a large display + keyboard/mouse. However, people quickly notice far too many icons don’t work because the developer hasn’t written their app in Universal Windows Platform (UWP) format or their mobile app isn’t optimised for a larger display yet.

Rather than waiting for mobile developers to get around to adding UWP support, why not ask PC developers to scale their apps down? And at the same time, support legacy Windows program through the Desktop to UWP bridge so it’s possible for Windows 10 to run these UWP on ARM64 SoC.

Second point. (This is my speculation.) Intel has made a terrible mistake in ending Atom SoC development. They pushed Microsoft to seek an alternate SoC and they are the probably the reason Qualcomm added virtualisation support. I don’t remember Google/Android asking for x86 capability.

Third Point. Despite how fast Snapdragon (SD) SoCs are, the Atom X7 can keep up with it easily & in fact outperform it, albeit using slightly more power. The reason is every core of Atom can process SIMD (DSP) SSE instructions which gives it an advantage in terms of mathematical calculations. The letdown of Atom is in the GPU. Unlike Qualcomm, Intel obviously doesn’t want to put a flagship class GPU to compete with their Core CPU.

Recently, Qualcomm announced DSP & Virtualisation support for their next-gen SD835 SoC with an even faster GPU. This allows Microsoft to enable many of the desktop class features that required DSP to accelerate their functions. Many of Windows 10 Mobile functions like its User Shell & Cellular functions will be integrated into full Desktop Windows 10 as shown in the video. Finally, full Windows 10 can compete with IOS & Android for Tablets.

Fourth point. Microsoft is a software company at its core. Their oldest and strongest products are their OS and Visual Studio development environment. It comes as no surprise they can create conversion tools to directly take other platform codes and make it work on theirs. It’s also no surprise when you consider the fact that Windows NT (which Windows 10 is based on) was created to run on multiple CPU architectures.

Fifth point. For the longest time, Windows Phone fans had been wondering why Microsoft refused to create a 64-bit version of Windows 10 Mobile. I have always argued that mobile platforms don’t need 64-bit at all because no single mobile app will ever use 4GB of memory. Now we know the reason is because Microsoft has been concentrating in making full Windows 10 even more mobile.

We already know that Windows 10 shares the same kernel & some of the hardware stacks between PC, Xbox, Mobile, Hololens and IoT. However, what most people don’t realise is Microsoft has been breaking their Service Stacks into smaller and smaller pieces with every new revision of Windows 10.

Just look at your Services manager in Computer Management, there’re more and more Services running in the background. However, RAM usage hardly increase. The reason is to allow more services to be compartmentalised so Microsoft developers can pick the services relevant to that particular platform and reuse as much code as possible. This isn’t possible if the services are large and monolithic in nature.

My prediction is, instead of emulation, Windows 10 will run natively in ARM64 mode. Not surprising since Surface RT IS running an ARM version of Windows 8. This means all (desktop) Windows 10 services AND first-party apps will run at full speed since they’re compiled for ARM64.

All UWP apps can run in either native ARM or virtualised x86 mode depending on the developer. Also not surprising because when you run a 32-bit program in 64-bit Windows, Windows will launch the program in Windows on Windows 64-bit mode (WoW64). So now, instead of apps running in an x64 sandbox, it’s a Windows app running in an ARM64 sandbox.

Sixth point. I bet the brilliant minds at Xamarin had been cross-pollinating with the minds at Visual Studio to create the most powerful x86/x64/ARM cross-compiling toolkit possible! I’m guessing these are the people convincing Qualcomm to add virtualisation support for the latest SD. The power of software!!!

Seventh point. I’m guessing former Microsoft staff of formerly Nokia mobile division still have a static mindset about the future of mobile and smartphones. It’s probably good they’re let go to work on other worthwhile projects like the new Nokia-branded smartphones ODM by the China firm that bought over from Microsoft, or SailFish for the Russian bloc.

However, we also know that certain key ex-Nokian went to work at Microsoft Research. I wouldn’t be surprised if these are expert in camera and cellular tech.

The future. This part is my speculation about Microsoft’s strategy moving forward.

If Intel had continue to invest in Atom SoC, we’ll probably have the mythical “Surface Phone” by now that can run UWP & Legacy programs through Continuum.

Qualcomm seem to have fill that gap but I’m still skeptical over the emulation performance. However, if the Adobe Photoshop presented by Terry Myerson in the video is running in emulation mode and the video wasn’t edited, then I’m cautiously optimistic. The “Surface Phone” can now get back on track but don’t expect it to ship until end of 2017.

This is also the first time desktop Windows 10 gain cellular radio stack and mobile-context specific features related to voice calls and sms. The Skype Preview app is already hinting at the direction Windows 10 is taking so it’s more proof of mobile features added to Windows 10, rather than more desktop features added to Windows 10 mobile. Microsoft is moving in the opposite direction as IOS & Android.

With a Cellular stack built into Windows 10, Windows will finally become a full fledge mobile OS. With ARM’s more simple RISC architecture, power management should be easier to manage and Windows 10 should have much better standby time. Intel Atom (Enhanced SpeedStep) has great running time but the standby time still lacks far behind Qualcomm’s Snapdragon high/low-power cores. It’ll be interesting to note how Windows 10 handles the ‘big.LITTLE’ Kryo 28x Cores.

Windows 10 Continuum will also have a combined dual-shell or a morphable shell (called CShell) that switches interface depending on the screen (not device) context. Maybe now we’ll finally have a Landscape mobile Start Screen, and of course, multi-screen is naturally supported. It better support dock-able Windows for larger 5-7″ screens too!

Ultimately, the “Surface Mobile” can be your only computing devices. So what kind of a device is this Surface Mobile? Well I think it’ll be running a SD835 clocked at 1.9Ghz on battery, and 2.45Ghz when plugged into the Microsoft Display Dock. It should have 4GB of RAM and has a 5.5″ – 6″ display to allow adequate space for heat spreading. A 1440P display is good enough, a 4K display will be a waste of battery and GPU cycles. Now, Windows 10 requires a lot of space, so 64GB of eMMC 5.1 Storage is required.

Where does that leave Intel or even AMD? Well, Intel has abandoned Atom because they have probably figured out how to make a Core series based SoC hit the 2W TDP but their 10nm fab is having yield issues, which is why CannonLake is postponed. AMD has also announced new APU that can step through the clock at 25Mhz increments thus providing more aggressive power management but being fab on a 28nm process, I reckon power consumption will be higher than KabyLake.

What this means is, Intel is trying to make their Core m CPU fit into a mobile environment so the CPU wouldn’t fry your smartphone. And AMD new Ryzen CPU isn’t ready for mobile.

Qualcomm just released information on their latest Snapdragon 835 SoC.

Based on the information released, SD835 supports new 3D audio processing and enhanced camera image processor. It looks like a future Microsoft Hololens 2 could be powered by the SD835! The Surface 4 could also be based on a SD835!

In the meantime, you can check up my past predictions which has come true below.

How Windows Phone 8 & Windows 8 can share software

OEMs can’t do it, so Microsoft DID IT!

Samsung losing patent case is Good for consumers!

Update 03 Feb 2017: Updated with the product codenames for future Windows features I have corrected predicted, like CSHELL and clearer explanation of CPU terminology.

Advertisements
Opinions

Why Microsoft risk alienating 1Billion users by overhauling Windows 8?

Overview

If you’re reading my blog, you’d probably know Microsoft released Windows 8 & RT on 26th Oct 2012 & it looks nothing like any Windows before it. So why is Microsoft willing to risk causing computing mayhem & potential sales by making such a drastic change?

If you’re looking for tips on navigating the new Windows 8 Start Screen, come to my tutorial page to get up to speed.

Windows 8: A bigger more cheerful environment to work & play in

With the rise of Apple iOS & its simple uncluttered design philosophy for iPhones & iPads, consumers have been flocking to buy up every new version even though a typical iPhone/iPad cost as much as a netbook. The smooth & fluid transitions is both appealing to the eyes as well as help to mask the loading time of apps or webpages. iOS works because much attention has been paid to simplicity & emoting the senses.

Microsoft Windows on the other hand has always been about getting the job done in the fastest possible time & letting you get on with your work & personal life. Little effort was made to connect with the user on an emotional level.

Sure, Windows allowed tons of customisation. Windows Vista introduced a prettier shell called Aero with all its transparency but that was all just copying Mac OS X, which does connect to the user on an emotional level with tons of fancy animations.

Much debate has been made about a pretty interface versus getting the job done, and iOS has proven you can have both & feel good about it.

In the past, many Windows XP/Vista users would just revert to the classic shell because it was much faster, especially for older hardware. Microsoft didn’t make it a point to make the XP Luna & Vista Aero shell work faster even though the GPU supports it. Windows 7 changed that but the battle was already lost to OS X with many migrating to the Mac during the mess Vista made.

Many people are already drawing parallels between Vista & Windows 8 but as you’d read later, this isn’t the case at all.

Microsoft knew they screwed up with Vista

Microsoft knew way back then they screwed up big time with Longhorn (the codename for Vista). Some major features like WinFS had to be dropped & unpopular features like UAC introduced.

The minimum requirement was too high for hardware and the (perceived) improvements didn’t justify such a drastic increase in CPU & RAM. However, in the name of better security, these painful changes had to be implemented but it was poorly executed & explained despite the massive Beta programme.

During this whole time, Microsoft had been streamlining their kernel with the MinWin initiative to breakdown the Monolithic NT Kernel into a modified Microkernel platform to allow easier maintainance of code, with emphasis on security.

Windows 7 was the fruit of that labour & for the first time in Microsoft history, you could run Windows on LESS hardware than its predecessor.

One of the design goals of MinWin was to allow Microsoft to scale the NT kernel for less powerful CPU to super-high-power CPU clusters. On the low-power end, mobile was definitely a target ever since Bill Gates introduced the TabletPC in 2001.

Microsoft has been monitoring the situation closely & according to reports, Microsoft had to delay entering the Mobile market due to viruses & other malware targeting Windows. We’re all aware that using Windows without Antivirus & Firewall is suicidal if you’re online. Fortunately, according to this report, Microsoft products now much more secure than before. (Scroll to the bottom for the list).

Having said that, I wouldn’t advise you to uninstall your Antivirus software anytime soon.

Windows 8 Build on Windows 7 security strength

With Windows 8, Microsoft seek to make it even more secure by promoting their curated “Windows Store” to ensure that in future, most software (called App) must be checked by Microsoft before they’re published for download.

Microsoft has also built-in an Antivirus called Defender beside the Firewall that came bundled since XP SP2. Users of the free Security Essentials will feel right at home.

If that didn’t catch the virus, the Windows 8 Remove everything function will basically wipe out everything including your data & any viruses that may be present, thereby returning it to pristine condition.

After using Windows for a year or two in desktop mode, bloat & junk build up & slow Windows down. You can use the new Refresh function to wipe out all these unnecessary stuff without losing your data.

In theory, Apps should not have this problem because they exist in their own sandbox environment with no access to the underlying system except to save files.

Now that Microsoft has solved the most pressing issue with Windows in a mobile & hostile internet environment, the next step was to be competitive with new players like Apple’s iOS & Google’s Android.

Microsoft saw in iOS & Android the same tired icon interface that everyone has been using for the past 20 years. Granted, the resolutions are higher & the colour richer, but it’s still rows of static icons. They decided to adopt a design philosophy that has been extremely successful for public transport & road signs. It was called “Metro” after the subway train services across the world.

Changing for the Better

Many people are afraid of change. A lot of these people are very vocal about staying within their comfort zone. And yet, time & again, it’s change that drive growth, financially, philosophically & functionally.

Steve Jobs is the embodiment of how doing what’s right & needed in a timely fashion is what drives innovation & growth. Unfortunately, his death seems to have diminished the spark Apple had during its bull run.

Microsoft on the other hand, is just coming out of its Antitrust funk, with many good leaders coming out of that difficult time. Many of the current leaders are following Bill Gates aggressive way of doing technology, if not his business practise.

Microsoft knew there has been many calls to fix many of the shortcomings of the Windows interface, both functionally & aesthetically.

The Start Menu becomes a big mess after you install & uninstall many programs & games over time, and there was no obvious way to organise & clean it.

Many of the software are buried in levels of sub-menu & there was no description for what they do. Over time, your desktop will have so much useless files on it, it becomes unmanageable & you can’t find your programs or files anymore.

Vista introduced a Desktop search function but it was slow & clunky. Windows 7’s version was better but not by much.

According to usage data collected from millions of PCs around the world, Microsoft start to see an emerging trend. People like to pin stuff to the Taskbar & Windows 7 Live Preview were GUI hits that receive universal compliments.

On the mobile front, people were responding well to the new interface on the critically acclaimed Zune HD, which flopped commercially due to Apple’s entrenched iPod & iTunes. The final nail came after iPhones became a huge success.

TabletPCs were still doing poorly because as the resolution becomes higher, it becomes increasingly difficult to use Windows software with Touch, which was the next paradigm in user interaction.

So Microsoft started an experiment by putting an enhanced Zune interface on their next smartphone OS called Windows Phone 7.

Windows Phone 7 & Metro

WP7 launched to mixed reviews due to a lack of critical features & lack of apps but reviewers were mostly positive about the Metro interface because it was fresh & completely different from iOS & Android. It was also smooth & fluid even though the hardware was 3 years old.

The design philosophy lends itself well to the underlying message of sharing in a social context, things that happen to you & how you respond back.

It’s a level of emotion that’s both deep & personal because the idea is for you to connect to the people & things that are important to you while at the same time, not linger too long on the phone.

In & out of the phone and get on with life. This philosophy is completely different from iOS & Android, which wants you to stay with the phone for as long as possible, either to make you spend more money on apps & accessories, or to drive ad revenue.

With WP7, Microsoft was attempting to combine both emotion & productivity into a single expression. Currently, WP7 is hampered by inadequate hardware & legacy software since WP7 OS was descended from WinCE which shares many of the architectural features as the obsoleted Windows 95 16-bit operations.

Things like lack of multi-cpu support, cooperative multitasking, unprotected memory management, etc. prevented Microsoft from using the latest hardware available. Fortunately, the user experience was generally positive with high marks of user satisfaction on Amazon & other e-commerce portals.

Unfortunately, the blogging & Tech publications were unforgiving when comparing the hardware, citing WP7 single-core CPU as being obsoleted even though WP7 run smoother, faster & more stable than many dual-core Android phones & even iPhone 4 in some areas. This negativity has heavy leanings on sales staff who read them for information, because they can’t test every device they sell, which in turn result in poor sales because sales people are not willing to push WP7.

Extending WP7 experience to a larger screen

Lessons learnt from WP7 were directly transferred to Windows 8/RT. The pinable & sizeable Live Tiles, the tight integration of the various apps provided by the OS like People, Calender, Messaging, Email all sync to the cloud & popular social services like Facebook, MS Account (including XBox), Skype, LinkedIn & Twitter. The smooth & fluid interface that works well with Touch & Pen, as well as Keyboard & Mouse.

In terms of hardware, Microsoft never expected iPad to become the huge hit it was. So it was a shock when iPad quickly overtook TabletPC as the dominant tablet within less than a year in 2010. This was just after Windows 7 was launched. Something had to be done!

The answer was the Microsoft Surface & Surface Pro. After years of uninspiring hardware design from OEMs, Microsoft decided to build their own Tablet, answering the calls of TabletPC users worldwide. Granted part of the problem was the Intel x86 CPU but I believe more could be done by the OEM.

Now that Intel’s Clovertrail & Ivy Bridge CPUs are low-power but fast enough for Enterprise & Power users respectively, Microsoft can craft a desirable tablet that is actually productive. The next half of the equation is a desirable software platform to use it with.

The new Start Screen as your new “Desktop”

The Start Menu has been a mainstay since Windows 95 introduced it in 1995. That in itself was a big deal when icons & windows were all there was. Third-party shells like Central Point Desktop (part of PC-Tools for Windows 2.0) extended the Windows 3 Program Manager when power-users like me wanted a more extensible Shell with features like lists & Multi-desktops.

As more people started using Windows & more software becomes available, it’s painfully obvious Program Manager isn’t going to be able to keep up & provide the platform Microsoft wanted to take Windows.

It’s the same with Windows 8. With the number of things you can do with a PC + the usage scenario projected for the new Microsoft Surface, they needed a new Shell. But this time, there’s a new wrinkle… Capacitive Multi-Touch screens.

The Touch interface was inherently inaccurate with your finger covering most of the area you’re targeting. The Windows 7 Desktop interface was modified to compensate for this but it was still frustrating if your TabletPC was very small or has very high resolution.

Windows Phone 7 Tile Based Metro Interface neatly solves this problem & by extension, Windows 8’s as well. These Tiles aren’t useless squares and rectangles. They display Live information that are periodically downloaded from the Internet or corporate intranets so only updated information is presented.

The information is also relevant for the App so you don’t get useless information like Ad bombarding you all the time. However, this concept required traditional Windows developers to learn new skills. Something Microsoft has been pushing since WP7.

It is also the new “Desktop” because if you pick up a Windows RT tablet from November 2012 onwards, you can only run Windows Store app. Traditional Windows software cannot run on Windows RT at all except for a few Microsoft native software like Notepad, Paint & Office 2013.

The good news is, whatever App you bought from Windows Store can be installed on up to 5 devices, be it Windows RT or Windows 8 devices. Yes, Microsoft has made it possible to share apps on many different classes of devices irregardless of their CPU!

For developers, this is huge because if you write a Windows App from 2012 onwards, it can run on ARM, Intel & AMD CPUs! For consumers, they can select computing devices without too much consideration to the underlying CPU architecture. This has never happened before in computer history.

(Note that Windows RT is not compatible with every ARM licensee because each of them add certain features which are incompatible with other licensees, unlike Intel/AMD.)

Insurance against a shift in CPU architectural dominance from Intel x86

This is the future that Microsoft is envisioning & is a bet that eventually, all Windows software will become Apps & legacy desktop software is retired, allowing Microsoft to retire the Desktop for Windows RT completely.

Microsoft is also working with ARM directly to support 64-bit operations to allow for larger RAM & Storage for future Windows RT devices even as Intel is continuing to lower their power consumption while providing more processing power to these new generation of CPUs based on “Haswell”.

This is necessary to ensure the survival & proliferation of the Windows platform in general just in case the market moves towards ARM as the dominant CPU instead of Intel x86 since ALL competing tablets on the market currently are running on CPUs based on ARM.

Of course, for Power-users who need the Desktop for the foreseeable future to run information intensive tasks, we have Windows 8 which runs both legacy software & Windows Apps giving us the best of both worlds.

Seeing that Intel & AMD will always have the more powerful CPU/GPU, x86 isn’t likely to disappear anytime soon.

For naysayers of Windows RT, having Windows 8 support Windows Apps will ensure that whatever developer create for Windows 8 will (almost) automatically be available for Window RT creating a real Halo effect & ensure Windows RT will have a large number of Apps in the near future.

Windows App & Windows Store as the new preferred distribution channel

Apple iOS introduced the concept of a centralised location where you can download all your apps. For the user, it is much easier to discover useful software. For Apple, it is a huge revenue generator. For developer, the ability to tap the entire installed base of users was an enticing proposition!

In the Windows world, discovering software usually means a trip to the Search engine, which more often than not, throws up a huge list of webpages, some of which have questionable reputation.

Microsoft had success in courting many developers to the WP7 marketplace & they’re confident developers will do the same for Windows 8 & RT due to the humongous Windows installed base. Steve Ballmer recently announced 4 million Windows 8 Pro licenses bought within 4 days of launch. This number did not include Windows 8 licenses that were pre-installed on hardware already & Microsoft Surface 32GB being sold out everywhere. Not a bad start.

Customising YOUR Start Screen

Usability of the new Start Screen will require a new way of thinking but in terms of getting things done & getting to your software or apps, it’s faster than the Start Menu especially if you use Windows keyboard shortcuts a lot.

Management of the various software is also much faster. You can uninstall anything from the Start Screen. You can pin & unpin Software & Apps you use quickly to the Start Menu. You can Group them together so that you can see at a glance where everything is & if there are any updates on their Live Tiles if they’re Windows 8/RT Apps.

It’s also a full-screen affair so all your personal stuff are up front & ready for you to Touch/Click, creating a deep connection between yourself & your Start Screen. Even your name & Account Picture is displayed prominently on the top-right corner making your Start Screen uniquely yours.

You can change your Desktop wallpaper but the Start Screen background is restricted to specific design. Because the Live Tiles take up over 70% of screen real-estate, you can’t use your photos for the Start Screen’s background nor would you want to anyway.

Beyond the Start Screen

Your Start Screen is also synchronised with the Microsoft cloud called Skydrive, which allows you to have a familiar environment across any devices that you login to with your Microsoft Account. You’ll also automatically have 7GB of online cloud storage which you can easily access from your Windows 8 PC or using a browser on any platform.

Neat touches like Picture Password also adds a layer of personalization not common on other platforms.

The new Search also allow the Search bar to find not just Software, Apps, Settings and Files, but also any items within the Apps & its cached and online data.

For example, if you search for “Paris” & click the Weather App, the App will immediately show all cities named Paris & display their weather.

One of the issues with iOS & Android is you can’t copy & paste complex information between Apps. Windows 8/RT allows an app to share information in a pre-determined fashion, allowing users the flexibility of sharing information, not just to friends, but between Apps as well, negating the need to sync to the cloud & back with another app.

One of the things that most people take for granted is printing. iOS & Android printing is severely limited requiring compatible eco-system. Windows 8 naturally support any printers that ever existed with a Windows driver & Windows RT supports many of these same printers with Microsoft converting more printer class drivers for Windows RT as the platform matures.

Since Windows has the broadest peripheral support, you are insured against a piece of hardware not having a corresponding Windows driver. For Windows RT, driver support will hopefully come when the user base increase.

International support

Windows 8/RT also have much better International support versus Windows 7. You no longer need an “Ultimate” license to change Display language & you can even switch it on the fly!

You’d also get the multi-language IME including secondary touch/pen-based handwriting support free of charge for Windows 8 Pro. This used to be an expensive upgrade to the Ultimate version.

Bilingual people like me can finally use Chinese handwriting to input an unfamiliar Chinese word instead of using the much slower hand-stroke method. I assume this will work for many stroke-based writing like Japanese & Korean as well. Just install the Language Pack!

Conclusion

I think you can tell from my article that I’m pretty impressed with Windows 8 Pro. I’ve already upgraded my Fujitsu T4215 TabletPC & have not encountered any problems so far.

However, this TabletPC is 5 years old & lack a Touchscreen. This isn’t something I can upgrade unlike the CPU, RAM & SSD. So, I’m waiting for Microsoft Surface Pro to be launched next year.

There’re many Windows 8 tablets already launched but so far, only the Lenovo Thinkpad 2 excites me besides the uber-cool Surface Pro. Let’s see how Microsoft price the 64GB Surface Pro. If it’s priced too high, I might just buy my first Lenovo.

Opinions

How Windows Phone 8 & Windows 8 can share software

Overview

Microsoft just generated a huge amount of buzz in the press & developer community when Microsoft’s Paul Thurrott confirmed a leak that Windows Phone 8 (WP8) codename “Apollo” will use Windows 8 kernel.

This is a big deal, bigger than what most people realise, because it means that Microsoft can have a standard integrated development environment (IDE) to target Windows 8 (for Intel x86/64 – Wintel), Windows on Arm (WoA) & WP8 (now a WoA)!

So when a developer wrote an app for Windows 8, he can automatically target both Wintel, WoA & with some tweaks for screen dimension, WP8!

What’s the big deal anyway?

Let’s me start by saying I’ve been a software developer for many years since C++ & Visual Basic 6. Unlike many developers these days, I’m what was called a system programmer, meaning I do low-level, machine interface stuff, including Assembler on embedded systems. I stopped coding professionally 8 years ago but I still do some projects here & there. So I’m aware of the going on in the development of Wintel, WP7 world.

Software is created by writing code in a language not unlike English. In order for the code to be recognised, you need the other party to also speak the same language.

Unfortunately, Intel Core i7 or nVidia Tegra-3 or Qualcomm Snapdragon CPU doesn’t speak English, so you need an intermediary. A translator that converts the code into machine language which is just a bunch of ones & zeros. This is the job of the compiler.

There are 2 ways to accomplish this. You can compile code directly into machine language or you can send your code into a translator that converts these code in realtime into machine language.

The advantage of the first approach is speed. The problem is you need to rewrite (port) code from one platform to another.

The second is the interpreter approach. A middleman will translate the code during software running time into machine code for the CPU to execute, hence the term, “runtime”.

The advantage is the ease of porting code from one platform to another. It still takes efforts & time to customise for the environment but at least there are less mundane chore to do/debug. The major problem is speed because the middleman also uses CPU resource. Multicore CPU mask some of the time but there’s still lag.

SO, where does Windows 8 fit into all these CPU discussion anyway?

Windows 8 is an Operating System. It’s job is to manage resources in CPU, memory, storage, network, graphics, user input, etc. The part that manage the hardware is called the kernel, which is itself a special software. The part that you see on the screen is the GUI, which is also software. All the apps that you use must interact with the kernel & GUI.

IIRC, the kernel of Windows Phone 7 is based on Windows CE, which is itself a branch of Windows 95 or earlier. It’s a very mature & stable kernel but doesn’t support multi-core CPU or pre-emptive multi-threading which is why multi-tasking on PocketPC/Windows Mobile always seem to hang or slow the phone with no way to recover but a soft reset. Surprisingly, Android 2/3 seem to share the same problems! But is mitigated somewhat by having multicore CPU.

Windows Phone 7 bypass this limitation by following Apple’s iOS when it was initially launched. No app is allowed to run in the background, except for a few that strictly follows certain parameters. Task switching was minimum, restricted to 5 open screens, not 5 open apps. This severely limited many enterprise apps which required ongoing background processing.

Now unlike Apple, which keeps its iOS & Mac-OS separately. Microsoft seems to want to consolidate their OS as early as 2003 with the MinWin initiative. Windows 7 is based on the Windows NT kernel, which was super robust but very monolithic in that all the services were integrated into the kernel, making it big & hard to debug or extend. Performance was good though because all the services exist in the same memory space.

The problem was, every time a new service is needed, like IPv6, Microsoft had to change the kernel without affecting other components. The complexity gets too much to handle even for a software house as big as Microsoft. The only way was to compartmentalized the kernel. Performance suffered a bit but can be recovered when developers optimise the individual components that were separated from the kernel.

This initiative culminated in Windows 8 using just 600+MB of memory footprint compared to Windows 7 800+MB in a TabletPC configuration. The kernel itself is only tens of MB! Small enough to fit in the future 256MB of RAM on a Windows Phone 7.5.x upgrade called “Tango”.

For WoA, the memory footprint will probably be similar to Wintel because Windows Desktop will also appear in WoA. However, as mentioned, for any developer who needs speed in their desktop apps like Microsoft Office, they will have to port their code & recompile the entire app to work in WoA Desktop environment. Which is why Microsoft was very secretive about whether legacy Windows Apps can run on WoA. My answer is, No. (Unless MS includes VirtualPC on WoA.)

It’s very clear to me that since Microsoft wrote the compiler in Visual Studio IDE & can port the entire Windows to ARM, it’s no problem for them to port MS Office as well! However, legacy apps compiled for Intel CPU will not work on WoA. Developers need to port their code.

The good news is, the new Visual Studio will probably support compiling to both Intel x86/64 & ARM all in the same IDE! Devs may need to set certain parameters but they do not need to invest in another IDE or train/hire new developers. Visual Studio will handle the differences in platform like it handles the difference in Intel & AMD CPU.

This is excellent news for Enterprise customers because it simplifies managing their business by providing a single platform that can run on Intel PCs in the office & WoA laptops/tablets for their mobile workforce. Intel CPU is much more powerful but ARM CPU uses much less power so having Windows on both platform solves a dilemma that has dogged the industry for more than 10 years. This is the reason why the iPad is so successful because even though Bill Gates envisioned a tablet future, it was Steve Jobs who realised the vision!

However, Steve had to compromise on functionality on the iPad because Mac-OS wasn’t optimised for low-memory/CPU computing. On top of that, Mac-OS was compiled for Intel CPU & it will take them time to find a good compiler to recompile for ARM, plus all the engineering needed to port the OS.

What about WP8?

Most of the 60,000 apps on WP7 are written in Silverlight & XNA. Both are interpreted code which requires a Runtime. This Runtime is also an integral of Windows 8.

Now that we know WP8 Apollo uses the NT kernel, it automatically means that WP8 supports multicore CPU, full pre-emptive multi-threading, multi-GPU & multi-displays on-top of the other regular stuff you find on iPhones & Android phones.

Since Microsoft has to compile Silverlight/XNA to work on WoA & Windows Phone is actually an ARM computer with a small screen, it means that there is NO difference between WoA Silverlight/XNA & Silverlight/XNA on Windows Phone as well! Do I even need to mention Silverlight/XNA is already in Windows 8 for x86/64?

Ultimately, this means that developers can use Visual Studio to compile speedy Native apps like MS Office for Wintel, WoA & WP8. If the situation doesn’t require speed, they can more easily program in Silverlight/XNA & enjoy low power consumption for Wintel, WoA & WP8 as well. The only major work is to change the interface to fit the screen & that’s it!

Conclusion

Microsoft has announced a range of screen size for the next version of Windows 8/WP8 & the reason is very simple.

All Windows machines will share a common interface & work the same. After adjustment for screen size, Silverlight developers can also easily target WP8 & Windows 8.

Native App developers can also easily target Wintel or WoA allowing the new platforms to gain huge number of apps in a short time. Having tons of apps drive adoption which is what ensures the survival of the platform.

I can’t wait! 8)