.NET Could Be Key For Windows On ARM Netbooks

With all of the recent discussion about utilizing very low-power ARM chips as an alternative to IA-32/IA-64 as a choice CPU of the rising netbook scene, Microsoft’s Windows family of operating systems is sure to find a tough time fitting in thanks in part to the long-standing Wintel relationship between Windows and the IA-32 architecture. A key design decision of the .NET framework, however, could be the saving grace for running Windows on ARM/MIPS-based netbooks.

The History

Microsoft Windows has historically supported more than just x86: a quick look at past versions of Windows will reveal that Windows NT 3.0 – 4.0 supported not only the i386 architecture, but also MIPS, DEC Alpha and PowerPC (although Windows NT 3 did not support PowerPC until the release of version 3.51). Other ventures into the embedded market by Microsoft include the successful Windows CE line, and the lesser-known (x86-only) Windows XP Embedded operating system.

So despite a time when Windows supported many architectures, Microsoft has always been bound to the Intel architecture. However, Windows CE has been very successful in getting what can be considered a port of Microsoft’s flagship product running on alternative processor architectures as a modern product. It is important, however, to distinguish between Windows CE and the mainstream NT codebase: although Windows CE is somewhat compatible with NT-based code (binary support is undetermined), CE is a completely different operating system at the kernel level, and the shell merely replicates the all-too-familiar Windows 95 GUI.

With this comes an important feature for embedded developers: distribution of Windows CE in source code form. This allows developers the ability to change nearly any aspect of the operating system in an attempt to adapt it for one’s hardware, and has proved to be successful in increasing the deployment of Windows CE on more embedded hardware.

But the rise of ARM-based netbooks is starting to prompt the question of how Microsoft plans to effectively penetrate the ARM netbook market with a Windows-based operating system. One must first keep in mind that part of the “netbook philosophy” is that only internet interaction is required: a full-blown operating system capable of running any program is beyond the aim of netbooks.

Possible Deployment Options

Despite violating the netbook “rule” of only providing minimal wireless network communication, however, Microsoft Windows XP has been widely deployed on Intel-based netbooks and remains largely compatible with most other Windows XP deployments.

This brings the question of how Microsoft would enter the ARM netbook market: deploy a scaled-down, incompatible build of Windows CE to provide simple network communication in keeping with the core principle of netbooks, deploy a customized build of Windows Mobile (similar to Google Android’s netbook entry) and remain at least WM-app compatible, or attempt to port Windows NT to another architecture again.

The act of porting Windows NT to another non-Intel architecture would prove to be too cost and time-prohibitive given the current economic situation and the recent layoffs Microsoft announced, and according to Microsoft the NT codebase has lost it’s non-Intel portabililiy as the result of one of many design decisions of Windows 2000 (NT 5.0).

Windows Mobile on netbooks appears to be a smart choice, especially given Google Android’s successful deployment demonstration on netbooks. Being based off of Windows CE, Windows Mobile already supports many alternative architectures, including ARM, and would only requre packaging for OEMs in order to be deployed on an ARM-based netbook.

Windows Mobile deployment would prove to be more developer-friendly for Windows on netbooks than Windows CE since CE’s deployment would vary greatly at the operating system level for each piece of netbook hardware, and could possibly be a nightmare to design applications for, including a stable port of Internet Explorer for basic netbook functionality due to Windows CE’s design.

All of this still depends on how open to third-party applications Microsoft wishes an ARM netbook deployment of Windows to be, since they may only wish for their ARM netbook Windows deployment to allow communication only without application usage in keeping with the true netbook philosophy despite violating this in the past with Windows XP deployments on netbooks.

.NET on netbooks

If I worked for Microsoft Marketing, I would go ahead and coin the phrase “.NETbook”, and there’s a very good reason why: no matter how Microsoft plans to put Windows on ARM-based netbooks at the operating system level, if they wish to keep the platform as open to developers as they have with other embedded ports of Windows and ease their own developmental efforts, the .NET framework’s design freely permits this.

.NET was designed, like Java (and in fact based off the MSJVM code following the Sun lawsuit) to be fully abstracted, that is, able to run on any underlying platform as long as the CIL (Common Intermediate Language) JIT compiler can interpret the .NET bytecode into native processor instructions.

Whether or not .NET was designed for this as a feature or not, the option is certainly there, and stares Microsoft in the face as a means of remaining application compatible on newer and increasingly-popular IA-32 alternatives. Windows CE already support the .NET Compact Framework, a largely-compatible subset of the .NET framework for Windows CE capable of running most (but not all) precompiled .NET programs and assemblies, and the Windows CE Visual Studio package supports building applications to target the Compact Framework specifically.

What this means for developers, is that if Microsoft ports the .NET framework (or at least the .NET Compact Framework) to whatever platform they choose to deploy on ARM netbooks, then not only are existing .NET applications guarenteed to run on this new platform, but without recompilation or any other tweaks that require separate builds.

Windows Mobile already utilizes this for allowing apps to run on mobile phones, but unless a Windows Mobile deployment is intended to not be as compatible with mainstream versions of Windows, the existing .NET package for Windows mobile would require significant application changes for netbook (and, inherently, phone) compatibillity unless yet another .NET package is designed just for netbooks, although this seems very unnecessary given the options discussed here.

Keep in mind that in addition to the .NET framework, native code and Java should still be an option for deploying applications on a new Windows netbook deployment, but with some downsides: native code would require separate binary builds of the same software for both the mainstream IA32-based Windows and ARM-based deployments, and Java would require the (recently Oracle-merging) Sun to design a Java Virtual Machine for the new platform, requiring developmental time on their part.

So like Java has been doing for years as part of its core design principles, the inherently Java-based .NET framework has the abillity for precompiled .NET applications to continue to run on Windows including a netbook deployment. Microsoft has not made any announcements regarding this or any plans to penetrate the emerging ARM netbook scene, but the fact that the option is very present and viable for full cross-platform compatibility is a very appealing for developers hoping to keep their apps deployable on both IA-32 and ARM Windows ports, and hopefully Microsoft for allowing the option to do so.

It is important to keep in mind that not every application can or should run on netbooks just because it can run on IA-32 deployments of Windows NT, but for some applications currently utilizing the .NET framework to provide functionality that remains within the scope of the netbook philosophy, such as wireless communication and scaled down groupware applications, the ability of an application to run on both IA-32 and ARM/MIPS netbook deployments of Windows can be a very important option, and designing both future versions of Visual Studio and .NET runtimes to ensure a given application can be scaled to netbook resources is important in this matter.

Developers of both private and public applications, especially regarding groupware and communication apps, would find that the .NET framework can allow a precompiled .NET application to run across virtually any deployment of Windows with a compatible .NET framework, a key in keeping Windows cross-platform in and of itself and hardware abstractive – one of the fundamental design decisions of operating systems in general.

Bookmark and Share


About Anthony:



Anthony Cargile is the founder and former editor-in-chief of The Coffee Desk. He is currently employed by a private company as an e-commerce web designer, and has extensive experience in many programming languages, networking technologies and operating system theory and design. He currently develops for several open source projects in his free time from school and work.

Leave a Reply

download comedy movies