Skip to main content

Is Windows RT in your future?

I am writing this in the wake of the Windows 8 launch on October 26. It continues a blog entry I posted last week that discusses some of my early experience running and testing the new Windows 8 release. I want to focus here on discussing what Windows RT is, which seems to be generating a good deal of confusion. That is probably because Microsoft has not done great job in explaining what exactly Windows RT is. Windows RT itself is not as complete and as fully realized as it should be, and that, of course, is another source of some of the confusion.

If you go out to the Microsoft Store, you will see this description of Windows RT:

Windows RT is a new version of Microsoft Windows that's built to run on ARM-based tablets and PCs. It works exclusively with apps available in the Windows Store.

Windows 8 Pro runs current Windows 7 desktop applications. It can also use the programs and apps available in the Windows Store.

That first sentence is confusing because Windows RT is part of Windows 8, wherever it runs, including Windows Server 2012, if you decide to install the GUI. Windows 8 Pro can run “programs and apps available in the Windows Store” because Windows RT is in there, too. Win RT is part of Windows 8. Windows 8 Pro runs on Intel-based machines and includes all the pieces of Windows that provide backward compatibility with Windows 7 and Windows 7 applications.

In brief, Windows RT is a new API layer in the OS that ships with every version of Windows 8, including Windows Server 2012. “RT” stands for “Run-Time.” For the new Windows Store Apps, Windows RT encompasses the set of OS services that one of these Apps can expect to have always available. If you buy one of the new ARM-based tablets (or phones when Windows 8 phones start to ship), these devices come with RT installed, omitting many of the older pieces of Windows that Microsoft figures you won’t ever need on App designed specifically to run on a tablet or a phone. It is not going to have enough screen real estate where it would make sense to generate lots of child windows and support an MDI interface, for example. But it may want to access to high-res graphics or play an audio file or an HD video. Windows RT encompasses those kinds of services.

As Figure 1 illustrates, this new API layer sits atop the existing Win32 APIs, which I have heard Windows developers say encompasses some 300,000 different methods. As illustrated, Window RT does not come close to wrapping the full range of the OS and related services that are available to the Windows developer. Microsoft understood that it could not attempt to re-write 300,000 methods in the scope of a single release, so Windows RT should be considered a work in progress. What Microsoft tried to accomplish for Windows 8 was to provide enough coverage with the first release of Win RT that developers would be capable of quickly producing the kinds of apps that have proved popular on the iPhone and the iPad. If you think about what an app that streams movies and TV shows from NetFlix on a Win 8 ARM-based tablet, the APIs to accomplish that should all be in Win RT.

 

Figure 1. Windows RT is a new API layer in Windows 8, not a separate version of the operating system, as the company’s marketing literature implies. The Win RT API covers only a small portion of the surface area of the existing Win32 APIs, targeting only the APIs that are needed to build a new Windows 8 App Store app.

 
The implication is that WinRT, and all of its dependencies inside the OS, were ported to the ARM. But not everything that is in the full Intel-based OS is running on the ARM – yet. No doubt, the bloated OS needed to shed some pounds in the process.
 
 Microsoft has documented some additional Win32 APIs that a Windows Store App running on ARM can use. See http://msdn.microsoft.com/en-US/library/windows/apps/br205757. In the Diagnostics area, for example, my area of expertise, Windows Store Apps can call the Win32 APIs associated with ETW. The ETW trace infrastructure used for diagnosing Windows performance problems was ported to ARM. COM was ported, too, for example. Many existing OS APIs use COM interfaces; Win RT APIs supersede many of these COM interfaces, but the existing COM interfaces are, no doubt, still being used under the covers.
 
 Because the software I work on is aimed at performance monitoring across large scale Windows Server infrastructures, I had not been paying that much attention to the details about what Microsoft was planning to deliver for Windows 8 until it was ready to ship. When the final version of Windows 8 did become available to developers back in August, my immediate concern was to determine if our software was compatible with it.
From what I have seen so far, I don’t expect that Win 8 is not going to have a big impact on Demand Tech’s software, which initially is a big sign of relief. The Win 8 release is oriented around tablet PCs and phones. If you don’t have a new touch screen PC, you are probably better off staying with Windows 7 until you do. I don’t see the web portal, for example, that we build that provides data-rich visualizations of detailed Windows performance data being something you’d run on a device the size of a phone. The reporting and charting apps are http-based, though, so if you have access to a browser, you can run the app. If you want, you can access the app on an iPad today.
 
The desktop components we have developed in the comnpany recently all use the Windows Presentation Foundation, or WPF, and Windows RT will not support WPF. That is a concern. Microsoft is no longer investing in WPF, so we need to look at Silverlight instead in the future, which overlaps reasonably well with the parts of WPF we are using today. It is hard to say what the future holds for Silverlight, though. Many Windows developers of desktop application have similar concerns. This spring I prototyped a new desktop app that was designed to run using multiple windows that could be arranged across multiple monitors using WPF. Frankly, I am not sure what to do as I look at the next steps getting that app ready for prime time. It is data-rich analysis application that benefits from having access to lots of screen real estate. I just wrote it, I don’t relish having to convert to Silverlight or anything else.
 
Back in 2010 when I was still at Microsoft, I attended a number of planning sessions that involved senior developers from Windows and the Developer Division, where I worked. So I was privy to a lot of the behind-the-scenes discussions going on in the early & middle stages of Win 8 development. At these briefings, the Windows organization also presented a great deal of the market research that supported the planning decisions they made. They talked about the competition from Apple, particularly with the iPhone because the iPad was still pretty new and exotic. They talked about pressure from their major OEM customers to get support for tablets out there quickly before Apple gained an insurmountable lead.
 
Inside the Developer Division, we were charged with delivering the next version of Visual Studio timed to ship when Windows 8 would ship and support Win 8 application development. The Windows 8 briefings I attended concentrated on those aspects of the Windows 8 development plan that were going to impact what needed to be done to support Windows 8 developers. Windows RT was one of the prime topics discussed because of its impact on the Developer Division’s workload. The Windows development organization under Steven Sinofsky’s leadership is very disciplined, and what they hoped to accomplish with Windows RT was spelled out very clearly.
 
Sinofsky is rapidly becoming the new public face of Microsoft. (See http://blogs.wsj.com/cio/2012/10/25/windows-8-launch-targets-consumers-not-business/?mod=wsjcio_hps_cioreport for a photo of Sinofsky skateboarding using a new Surface with wheels attached to demonstrate its tensile strength. A much more interesting demo would be to show if it is capable of surviving being dropped on a concrete surface from a height of, say, ten feet. Many more customers will drop these devices from the height of their kitchen counters than will be skateboarding on them.) Sinofsky is in line to become the next CEO at Microsoft, when Steve Ballmer steps aside.
 
What was less clear was how much Windows would be able to actually accomplish in the time allotted for Win 8 development. Sinofsky’s organization is also very disciplined about cutting any feature that is not going to fit within the scope of the release or might jeopardize the product’s target delivery date. Windows 8 was going to ship in 2012 in time for Windows OEMs to get new tablets and touch screen PCs out in time for Christmas. Slipping the target delivery date was never a possibility.
 
Meanwhile, I am removed from Microsoft for almost two years now. Now that Windows 8 is shipping and all the documentation for Windows 8 developers is in place, it is relatively easy for me to assess how much of the plan the Windows development org was able to deliver.
 
In the next blog entry, I will go into more detail about what Windows RT is, what is in it, and, also, what it doesn’t cover. But the short answer to the question, "Is Windows RT in your future?" is, "Yes." Win RT is a new application run-time layer built into all new versions of the Windows OS.

Comments

  1. Hi Mark,

    Thanks for explaining the architectural differences between Windows 8 and Windows RT.

    So, is this a correct statment: Windows RT cannot run Windows legacy applications, but Windows 8 can run legacy applications as well as applications designed for Windows RT (from the Windows Store)?

    You mention Windows 8 Pro, but I remembered reading something about Windows 8 'home' or 'base' edition and wondered about the feature differences. I found a nice chart buried in the Windows 8 site: http://windows.microsoft.com/en-US/windows/compare

    It looks like the 'base' edition is only available pre-installed on select computers through February 1, 2013.

    -Phil Henninge

    ReplyDelete
  2. That is correct. Only Windows 8 Apps (from the Windows App Store) will run on RT.

    According to a recent article posted at Ars Technica, the new Surface is a 32-bit NVIDIA Tegra 3 Quad Core running at 1.3 GHZ, with 2 GB of RAM. See http://arstechnica.com/gadgets/2012/10/now-that-its-here-is-there-a-place-for-windows-rt/.

    Some of the current limitations of the Surface running Windows RT is it cannot join a domain or be accessed using Remote Desktop. The Remote Desktop limitation is interesting because that may reflect underlying architectural with current ARM-based tablets.

    I believe the Windows Home Edition is gone. It is just Windows 8 or Windows 8 Pro. There is a Windows 8 Pro Pack advertised that will take you from Windows 8 to Pro. It adds Bitlocker, Remote Desktop and Windows media Center.

    I had seen earlier that Hyper-V would ship with the Windows 8 client OS, but I don't know where that shows up. Windows 8 Ultimate???

    ReplyDelete

Post a Comment

Popular posts from this blog

High Resolution Clocks and Timers for Performance Measurement in Windows.

Within the discipline of software performance engineering (SPE), application response time monitoring refers to the capability of instrumenting application requests, transactions and other vital interaction scenarios in order to measure their response times. There is no single, more important performance measurement than application response time, especially in the degree which the consistency and length of application response time events reflect the user experience and relate to customer satisfaction. All the esoteric measurements of hardware utilization that Perfmon revels in pale by comparison. Of course, performance engineers usually still want to be able to break down application response time into its component parts, one of which is CPU usage. Other than the Concurrency Visualizer that is packaged with the Visual Studio Profiler that was discussed in the previous post, there are few professional-grade, application response time monitoring and profiling tools that exploit the …

Virtual memory management in VMware: memory ballooning

This is a continuation of a series of blog posts on VMware memory management. The previous post in the series is here.


Ballooning
Ballooning is a complicated topic, so bear with me if this post is much longer than the previous ones in this series.

As described earlier, VMware installs a balloon driver inside the guest OS and signals the driver to begin to “inflate” when it begins to encounter contention for machine memory, defined as the amount of free machine memory available for new guest machine allocation requests dropping below 6%. In the benchmark example I am discussing here, the Memory Usage counter rose to 98% allocation levels and remained there for duration of the test while all four virtual guest machines were active.

Figure 7, which shows the guest machine Memory Granted counter for each guest, with an overlay showing the value of the Memory State counter reported at the end of each one-minute measurement interval, should help to clarify the state of VMware memory-managemen…

How Windows performance counters are affected by running under VMware ESX

This post is a prequel to a recent one on correcting the Process(*)\% Processor Time counters on a Windows guest machine.

To assess the overall impact of the VMware virtualization environment on the accuracy of the performance measurements available for Windows guest machines, it is necessary to first understand how VMware affects the clocks and timers that are available on the guest machine. Basically, VMware virtualizes all calls made from the guest OS to hardware-based clock and timer services on the VMware Host. A VMware white paper entitled “Timekeeping in VMware Virtual Machines” contains an extended discussion of the clock and timer distortions that occur in Windows guest machines when there are virtual machine scheduling delays. These clock and timer services distortions, in turn, cause distortion among a considerably large set of Windows performance counters, depending on the specific type of performance counter. (The different types of performance counters are described here