Thoughts: Windows® running on ARM - Part II

 

The purpose of this article is to follow-up on the January, 2011, post about Windows running on ARM: http://www.seanliming.com/Windows%20ARM.html. The announcement of Windows 8 running on ARM processors was big news nearly 2 years ago. Those in the embedded market, especially those in the portable embedded market, wanted to know more. My post was written to give ideas for conversation and deflect e-mails, phone calls, and questions about future ARM processor support for embedded. Thank you for not filling up my e-mail and voice mail box.  Hopefully, you contacted Microsoft.

Windows 8 has been released, and good grief, there has been a lot written about it!  Embedded developers look for clear roadmaps and a direction to justify their investment. Some of the articles written about Windows 8 and the recent events can create some concerns for embedded developers.

I could just say don’t worry about it, but that might not address concerns. The first concern is the roadmap. There appears to be future embedded releases. Quietly in the background of all the Windows 8 noise, the future Windows Embedded products are on the horizon as pointed out within this blog post:

http://blogs.msdn.com/b/windows-embedded/archive/2012/11/14/windows-embedded-8-is-intelligent-systems-ready.aspx

Okay, there is a future product coming. Unfortunately there is not a clear picture if Windows RT for ARM will be available for embedded. I will cover this at the end.

The next concern is that Windows 8 is a terrible product, which is a concern that needs to be addressed. Windows NT Embedded, Windows XP Embedded, and Windows Embedded Standard 7 were very easy products to sell. Anyone using Windows NT, Windows XP, and Windows 7 could see the stability and value that allows the embedded versions to thrive. Windows desktop helps sell Windows Embedded. There is a strong link between the two. If the desktop does well, the embedded version will do well.  Here comes Windows 8 with concerns about usability, negative press, and slow sales. Let me give my take on a few items; and hopefully, you can see it is not all doom and gloom.

 

Windows RT (for ARM) vs. Windows 8
Microsoft needed to get serious about the mobile market space. Porting Windows to ARM was an important step for the scalability of the product. It also lets Microsoft focus on one operating system rather than one for desktop and one for mobile (Windows CE). The result is the Surface tablet.

Surface has set a new benchmark. I am not just saying this as a pro-Microsoft spin. Surface is different from any of the other tablets. Kindle, Nook, iPad, and the plethora of Android tablets are media consumption devices. Surface ups the game as a combination productivity and media consumption device. With Surface, the tablet can really be used by anyone from student to business.

What gets a little confusing is that there are two versions of the tablet operating systems: Windows RT and Windows 8. In my previous article, I brought up the historical fact that Windows NT used to run on different processors like DEC Alpha, MIPS, PowerPC, and x86. Over time, x86 became the only supported processor. The Windows operating system has a flexible architecture that allows it to easily run on different processors. Over the years, the cost to support any given processor was high; but ARM has come on strong over the last decade, and Microsoft took notice several years ago to see if a port was possible. At CES 2011, Microsoft demonstrated Windows running on ARM. What exactly did “running” mean was a big mystery? Could we run some of the same applications that were running on the x86-based PC on the ARM? Probably not, since the processor architecture is different. A few months ago, we got the answer with the release of Surface. There are two version of Windows 8, so to speak:

  • Windows RT runs on ARM
  • Windows 8 runs on x86

They look and act identical with the exception of the support architecture. This is where the confusion comes in. Windows RT runs on the ARM processor, and Windows RT is not the full OS like the Windows you have known. You can only download applications from the Microsoft Store, which puts Surface on par with other tablets. Surface comes with Office applications, so there is the productivity. I am going to use an old architecture diagram to show the difference between the two products. The first shows Windows 8.

Windows 8 supports Surface applications and regular desktop applications. The home screen is the Modern UI. The goal is of the UI is to be the same everywhere. Windows RT is the port to ARM processors.

Windows RT doesn’t support desktop applications, but only Surface applications from the Microsoft store.

From the pictures, you see this WinRT block. WinRT is an application engine that allows developers to create Surface applications, and these applications are what you access via the live tiles. In short, Windows 8 is a new version of Windows that contains WinRT and uses the same shell interface as Windows RT. Windows 8 only runs on x86 processors and supports all the applications that can run on Windows desktop.

From a tablet perspective how would you choose between the two? Here is my general guideline:

  • If all you need is Office applications and the ability to surf the internet, Surface with Windows RT on ARM is probably a good fit, especially if portability and battery life are key.
  • If you need more processing power, and want to use all the Windows desktop applications that you have previously used, Windows 8 running on x86 is the right choice.

 

Tablets
Since I just mentioned tablets, I have to divert here a bit to talk about tablets because this is what Windows 8 addresses and is getting the press.  I have been asked by family and friends, which is the best tablet to choose.  I have witnessed firsthand how making the wrong choice can be detrimental; especially to a school. Prior to Windows 8, I would say look for something that gives the most bang for the buck, thus the Kindle and Nook would be a better choice than the iPad.

These same family and friends ask why not choose the popular iPad. Now, we get into some technical details of usability. Surface, Windows 8, Kindle, and Nook shine over the iPad in one big way; these tablets are untethered from the ball and chain anchor of a desktop. iPad requires synchronization with a desktop system, via iTunes, as it takes on the Windows Vista mentality of being nanny for your computing device.  Try downloading pictures to the iPad 1.0. You would think that connecting the device to the desktop and a simple drag and drop from the host to the target would work. Many electronic devices such as USB flash disks, cameras, and video recorders perform in this simple fashion. This is not the case with iPad. To save money on a dongle, the work around is to email the pictures to yourself. From Steve Job’s biography, the goal of the iPod, iPhone and iPad was to help sell more Macs, thus the idea of tethering. Unfortunately for Steve Jobs, the iPod really took off when it finally connected to the PC. With a new generation of users well versed in computers and technology, it is puzzling that any company would come up with a product that is so limiting. All these Apple devices have to go through iTunes, which has a terrible interface on the PC.

If you are trying to do school work, the iPad requires a desktop system. If the desktop system crashes, the iPad is useless to get work completed. This would not be a problem with the Windows 8 tablet, since it is the PC, and it can be used anywhere. Windows 8 presents a standalone productivity tablet. For all those schools that bought into the Mac-iPad con-job, all I can say is Windows PC’s are still the economical way to go. Unfortunately, Microsoft is not demonstrating the untethered concept in their demo TV advertisements. Samsung is doing a great job with their advertising showing the differences between their product and the competition.

Choosing the right tablet is a personal choice and you need to choose the solution that is best for you. The Apple and Microsoft stores let you play with their tablet products so you can get a good feel. I found the Surface running on ARM surprisingly fast. You have to try one to see.

Unfortunately for all the possible benefits, it has been reported that Windows 8 and Surface are not selling very well. There are several reasons for this:

  • Product name confusion
  • Hastily put together UI that doesn’t do a proper transition for current Windows users
  • Being a follower rather than a leader in a technology market that is changing

Let me repeat what I said earlier: Windows desktop helps to sell the Windows Embedded version. For embedded developers using Windows XP Embedded or WES 7 now, lack of desktop sales success might give concern about moving to a Windows 8 Embedded version. Now, let me dig into the lack of sales issues.

Surface: What is in a Name?
Having two different tablet operating systems is a little confusing. Dr. Dobb’s pointed out the confusion more directly in their article: Windows 8: The Most Confused OS Launch Ever, by Andrew Binstock.

http://www.drdobbs.com/windows/windows-8-the-most-confused-os-launch-ev/240009572?cid=DDJ_nl_mdev_2012-10-31_h&elq=ed531266aeaa4b9e814ed10523fe2b03

There are a lot of good points in this article, but the point about the names is what I will focus on here. The marketing 101 naming screw-up for Windows Embedded products back in 2008 seems to be contagious. Metro and Windows RT are odd names, but Surface appears to be a bright spot. Windows running on ARM didn’t have to be called Windows at all. We all hoped for some flexibility to run the same applications on x86 and ARM. A .NET application could run on either processor. If the application was dependent on the hardware, all portability is lost. Windows RT for ARM is Microsoft’s solution to compete in the tablet space. The shell interface, once called Metro, now called Modern UI, was borrowed from Windows Phone. As most people know, Windows Phone has a small market share in the smart phone space compared to Android and iPhone. It was daring for Microsoft to carry this interface forward, but they did.

Besides the legal aspects, the name Metro for an interface was not the right one. Using word association, Metro relates to ‘city’, ‘congestion’, ‘dirty’, ‘polluted’, and ‘traffic’. Windows has been thought of as big and bloated. It is not a good selection for anyone to keep that slow bloated idea going with the name of the interface. The current name choice is Modern UI, but modern can get old really fast. Like Windows NT (New Technology), which is the original name for the Windows operating system we have today. It appears Microsoft didn’t learn from names of the past.

In contrast, the word Surface is much better. Using word association again, Surface connotes ‘clean’, ‘smooth’, ‘clear’, and ‘polished’. Yes, I know ‘rough’ also comes to mind, but it is only one word. For clarity, I propose that Windows RT should be renamed to Surface. The shell should be called Surface UI.  Win RT should be called Surface RT. Like .NET Framework run-time and Java run-time, Surface RT is the technology / API set to create Surface applications.

This would end the confusion and create a clearer direction. The current Surface tablet TV commercials already call out Surface by name. Metro, Modern UI, or Windows RT are not even mentioned.

Give it time, the names will all change, which is a problem with Microsoft. Customers have to constantly keep track of what product is what. The lack of consistency should not be a concern for going to a Windows 8 embedded product, but the next topic is the bigger concern.

 

Is Windows 8 really Vista 2.0 and How can it be fixed? Should Embedded Developers be concerned?
The big concern is the functionality and usability of Windows 8, and what it means for embedded. I need to go back in time a bit to set the context. Microsoft released the Tablet PC in the early 2000’s. Various PC partners built devices, but the product didn’t sell well. The reason for the failure was the interface that didn’t work for touch screen. Microsoft thought ink input was what people wanted, but customers wanted a better touch interface. There are a few dedicated slate tablet PC hardware partners around the globe who have built tablet PC’s with Windows XP, Vista, and Windows 7, and they kept feeding back that touch was important. The conversation would be like this:

Microsoft: Look at how it does ink
Customer: Great but we need better touch
Microsoft: Ok, Ok…….. Look, ink!
Customer: No touch!

Windows shell wasn’t architected for touch, thus the product didn’t gain traction. The Vanity Fair article I will point out later goes into why Microsoft failed in this effort. In the Steve Jobs’ biography, it was noted that a Microsoft manager bragged about the Tablet PC under development at a party that Steve Jobs and Bill Gates were attending. Steve Jobs took that as a challenge to develop a better device. Along comes the iPad. The iPad is nothing revolutionary. The real innovation was the evolution of the touch screen hardware to support multi-touch. Apple seized upon this and designed a user interface that actually could be manipulated directly with your finger, no stylus required; and a very flat user interface, reducing the number of touches required to get to anything.  Then Apple coupled this with what they do best, providing a lot of content easily accessible through an online store. The interface itself is the old ICONs on a desktop circa 1984. One difference is that you can slide to different frames with more icons. This eliminates having to drill down through multiple layers of the user interface to get to your target application. Surface breaks this 80’s interface with active tiles that can provide basic information like news headlines, weather, sports, etc. further flattening the user interface. Surface is great for a touch interface on a tablet.

Unfortunately, the Modern UI (Surface UI) doesn’t do so well for a desktop system with only a mouse and keyboard. There have been a lot of opinions about Surface as the main interface for Windows 8 desktop, which can create concern:

Yikes! This can make anyone concerned about putting Windows 8 in an embedded system.

I have been using the various Windows 8 betas and the release in virtual machines for testing. It is clearly not a desktop operating system, but it almost could be with just a little bit of effort. There are two interfaces in one: Surface UI with the active tiles, and the Explorer desktop minus start button to run the non-Surface applications, which is almost every PC application that has ever been created to run on Windows XP, Vista, and 7 prior to Windows 8. As a power user, Surface UI really gets in the way when running the applications I need for my daily job. Of course, this is my personal preference and how I use a computer. My monitor is not a touch screen, but eventually I might upgrade to one. It would be nice to add another input method to the computer, but for a desktop system, mouse and keyboard are still the main inputs. Touch would be nice to use once in a while, for example: looking up maps or flipping through online books. On the desktop, with a touch screen monitor, this requires a lot of hand movement, though.  You have to keep taking your fingers off of the keyboard to get to touch screen and then move them back to the keyboard.  For keyboard touch-typists who don’t even like to use a mouse, this is a nightmare.  Perhaps integrating a multi-touch touch pad into the keyboard, as is done in laptops, would be a good way to go.

When you do use the Window 8 desktop, the lack of the start button and all the access to programs, system tools, and settings, really hampers the usability of the Windows 8 desktop, especially if you are a Windows XP, Windows Vista, or Windows 7 desktop power user.  A fix for this comes as a free download, Classic Shell:

http://classicshell.sourceforge.net/

Classic Shell returns the productivity of the Windows Desktop to Windows 8.  This should have been a configuration option in Windows 8 to ease the transition to the new operating system.  The question still remains, though, and that is: why is the desktop tile on the Modern UI not an active tile?  I can see actively news and weather going on around the world, but I cannot see what I have active on my local desktop.

If you step back, there are many ways a human being can interact with a computer:  keyboards, mouse, joystick, trackball, touch/ink, speech, motion, eye movement, and direct brain connection (need to do a little sci-fi here), but maybe a neural interface is not so far off into the future as you might think.

http://www.scientificamerican.com/article.cfm?id=pogue-6-electronic-devices-you-can-control-with-your-thoughts

Keyboard, joystick, trackball, track pad, and mouse have been around for decades. Touch has been a long time coming. Speech input has come in different forms, but it has been a work in progress. Motion with Kinect is very promising. It only makes sense that new input devices will be added to the computing devices you already use, and the interface needs to accommodate the new input methods

Surface almost has the right idea, but its current implementation throws the power desktop user under the bus with an annoying interface that toggles between Surface UI and a crippled Explorer Shell. In addition, a user has to go through multiple steps to get to most anything, which is counterproductive to what a graphical user interface should do – make the computer easy to use. This is the same issue why the original Tablet PC didn’t take off. Smart phones and tablets are so prevalent; people are used to and expect a flat, simple user interface.  From a touch input perspective, drilling down through a host of menus is no longer what is expected or wanted.  Windows CE on phones and the Tablet PC did poorly because of the different layers a user had to drill down through to get to something. In that respect, Windows 8 is like Windows Vista: it is a radical change that was not well thought out.

Don’t get me wrong, Windows Vista was a herculean effort to create. There were a lot of technical fixes and improvements to the underlying OS that non-technical users don’t know about, such as the HAL re-architecture and language pack implementation. The problem was that stability and feature creep plagued the Vista product. I never had much of a problem with Vista compared to some users, but there were problems. Many people took to calling Windows 7, a Vista-fixed; and many people skipped Vista altogether, staying with Windows XP until Windows 7 was released and shown to be stable.  Windows 8 is stable, but it is the interface for keyboard/mouse input that is the problem. It may be harsh to call Windows 8, Vista 2.0, but it is the annoyances and having-to-learn-everything-again that gives it the old moniker. Technically speaking, if you open a command prompt and type “ver” and hit enter on the three latest operating systems, you will see the OS version numbers:

Windows Vista = Ver 6.0
Windows 7 = Ver 6.1
Windows 8 = Ver 6.2

Yes, Windows 8 is a super service pack 2 to Windows Vista. Windows 7 is supper service pack 1, and it has been a successful product. Windows 8 just changes the interface to play catch-up to tablets.

The simple fix to Windows 8 would be to have the traditional Explorer desktop, complete with start button.  There should be an option to set which version you want to boot into. This would not only make it easy to switch between the two UI interfaces, but it would help current Windows users migrate to the new operating system.  Couple the start menu fixes with a multi-touch touch pad for the desktop and multi-touch touch screens for laptops, convertible laptops, and tablets; and you just might have the best of both worlds.

Should desktop UI issues be a concern for embedded? The answer is no. Surface applications are a bit limiting since they play in a sandbox preventing them the freedom to access OS resources like the traditional Windows Applications. Surface applications are intended for the tablets and mobile devices and not fixed function devices like embedded. Could embedded developers create Surface applications? Yes, but the mileage Surface will get in the embedded space will vary based on application. Accessing and displaying data is possible, but direct control of hardware I/O is not going to be straight forward. Most of the embedded customers I work with will want their Windows Applications as the shell to the system. In reality, all of these concerns about the Surface UI are irrelevant for embedded. Remove Surface and you still have the same Windows operating system as before.

 

Technology Industry in Flux
The big question is: if Windows is so important to Microsoft, why is there a misstep in the UI? The technology industry is in flux. Tablets and smart phones have changed the game. Apple has moved from a desktop company that has good publishing software to a consumer electronics company with mobile devices and backend content to go with these devices. Windows RT and Windows 8 are Microsoft’s solution to play catch up in the market. A race to get something out can result in some problems. Playing catch-up is getting harder to do. Companies operating in their own silo are becoming a thing of the past. The major technology players have the opportunity to do things with their cash that they relied on partners to do in the past.

There have been a few articles hinting at this changing focus and direction:

What comes out of all this as we move 5 years down the road will be interesting.

Microsoft building its own hardware is a big concern for past PC partners big and small: http://www.geekwire.com/2012/report-acer-ceo-microsoft-surface-huge-negative-impact-pc-industry/. The dedicated tablet / mobile OEMs were not too happy. They have been providing Microsoft with sales data and future marketing plans for their own products, only to see Microsoft come out with their own tablet. It does beg the question; could there be consolidation in the PC OEM industry?

With a market in flux, rushing to get a product to market can cause some missteps. Unfortunately, the new UI for Windows 8 is an example. Again, take away the UI issues, and there is still a good operating system underneath, but there is one more thing.

 

Changes in Leadership
As I was thinking about whether or not to do a follow-up article, an interesting thing happened. The head of Windows, Steve Sinofsky quit: http://www.cnbc.com/id/49799921. The reactions and speculation of the departure where immediate:

http://betanews.com/2012/11/12/steven-sinofsky-is-out-at-microsoft/

http://www.technologyreview.com/view/507746/what-sinofskys-departure-suggests-about-the-current-state-and-likely-future-of-microsoft/

http://www.eetimes.com/electronics-blogs/the-engineering-life-around-the-web/4401301/Sinofsky--Ambitious--abrasive--looking-for-work?cid=Newsletter+--+EE+Life

Now, we come back to the roadmap concern. If you are concerned about future product roadmaps, losing the product leader is not a good sign. Sinofsky’s departure drove the need to do a follow-up article.

I never met Steve Sinofsky nor do I have contacts that have worked with him. Reading between the lines, it sounds like Steve Sinofsky was a great product / program manager that could deliver, but lacked the big company picture to drive Microsoft forward.  From working with Microsoft embedded before there was a formal Windows Embedded group, I have seen lots of people come and go. There have been good managers that I wished stayed with the group and bad managers who didn’t leave fast enough. The development team has been solid throughout, thus Steve Sinofsky’s departure is a non-event long term. Getting the Windows team more disciplined was a positive contribution, and Windows will be a top product from Microsoft for years to come.

The negative out of this is the internal politics coming to light. No company is immune to some strife. With Microsoft, it appears to be a bigger problem. I have heard some say that Microsoft is not a fun place to work anymore. The Vanity Fair article brought to light many internal issues and missteps:

http://www.vanityfair.com/business/2012/08/microsoft-lost-mojo-steve-ballmer

http://www.vanityfair.com/online/daily/2012/07/microsoft-downfall-emails-steve-ballmer

One thing is very clear: the focus is not on the customer. If a developer is more worried about his job than creating the next great thing, the end result is not positive for the customer, company, or shareholder. Being a fast follower is not leadership in the technology industry that is changing. Infighting, misspoken market predictions, old management stifling new ideas, and failure to execute are not good signs. Too much sales and marketing rather than product development and innovation is also a big problem. You can see this in constant product name changes.

For example, the Windows Embedded team in 2008 went through product name changes that have created confusion with customers. Windows XP Embedded, a product that had been around 8 years, had a great selling point as a version of Windows for embedded systems. It was renamed to Windows Embedded Standard 2009, thus breaking the marketing and sales benefit tie-in to Windows desktop. The end-of-life dates for XP Embedded ends sooner than WES2009 even though they are the same product. Embedded customers want long life for their products. Customers who had purchased XP Embedded would have to purchase a new tool set (est. $999.00) and new individual runtime licenses to use WES2009 even though they already paid for the same toolset and licenses. All of this was done during a downturn in the economy. Now after a few years, the General Manager of Windows Embedded admits there were mistakes, but he also says: too bad, suck it up. This too-bad-so-what attitude is not the kind of leadership or atmosphere that is customer oriented. Clearly this is not a General Manager you can trust or feel confident to deliver a Windows Embedded product. As you can see from the roadmap blog post link at the top of this article, the product names are changing again.

Microsoft needs new leadership that can look at the company as a whole, see how all the different technologies can work together or should be left standalone. The current business-only and we-will-catch-up-later thinking is counterproductive. Someone in a technical capacity needs to take over. Most important is a change in company mindset to focus on the customer and be creative; and stop slowing killing itself from within.

Going beyond the desktop and server mindset is a must. The embedded market opens up new possibilities around many different devices and markets. The market is small, but the ideas are many. Some ideas like the original Intermec 6400 MS-DOS hand held terminals of the 1990’s, spearhead ideas like power management, storage, and programmability that lead to the mobile devices that we have today.

A major change in leadership might be a concern for a future Windows roadmap, but consider this: since Windows desktop is an important product for Microsoft and many people and companies have invested interest in it. Windows desktop is not going away. The product continues to improve and gets top attention to get things right, regardless of the management gaffs. This is why, over the past decade, I have focused on Windows XP Embedded, Windows Embedded Standard 7, and the next generation Windows Embedded 8 Standard. It also explains why I don’t focus on Windows CE, which started out promising, was well ahead in the phone space, but the internal issues have made it an afterthought for embedded and smart phones.

 

Windows 8 and Embedded Systems
Finally, let’s talk about Windows 8 coming to embedded systems. Microsoft has been releasing betas of their Windows Embedded 8 Standard product. With all the opinions and management changes on and around Windows 8, you might think WES 8 is something to avoid and stick with WES 7. Not true. The only issue with Windows 8 is the Modern UI (Surface UI) interface for an embedded system. Most embedded systems developers change out the shell interface for their own product. The underlying OS is solid. Based on the current beta releases, WES 8 is something to strongly consider because of the improvement to the embedded tools:

  • Creating your own modules rather than setting up distribution shares will reduce the tasks to create an image.
  • The custom modules can use the same patch update processes as the operating system modules and patches, which is a real plus for product life cycle management.
  • Unified Write Filter, the integrated keyboard filter settings in ICE, and the Unified Configuration Tool are looking like major improvements to the embedded enabling features of the past.

Surface applications will be a challenge to integrate in an embedded environment, but I recommend developing your own shell interface until Surface has been revamped for embedded. If you are just starting into WES 7 make sure that you include plans to go to WES 8.

Right now, WES 8 only supports x86. In my previous article, I mentioned the issues with supporting ARM, and I said a Windows 8-on-ARM embedded product may or may not happen. So far there has been no information about what is needed to build an ARM platform to support Windows RT (Surface RT), no schematics, no community discussions, no blog reports, nothing. If you ask if WES 8 will support ARM, you will get the old standard response: “There are no plans at this time, but give us the business reasons for doing so”. Bottom line, a repeat of Windows CE would not be a good thing. Surface may or may not make it in the market place and supporting ARM might cost too much to keep up. It would be a disaster to bring out an embedded ARM version of WES 8 only to see the desktop Windows RT fail.  It would be best to wait and let the product get a little better and see if Windows RT and Surface UI gain significant traction in the consumer marketplace. Again, give Microsoft your direct feedback.

 

Summary: 2013 is the year of WES 8
The previous article was a speculation on what might come. Windows 8 has arrived, and it almost combines the two worlds of desktop and tablet. It just needs a little more work to make it happen. Surface looks promising, but first generations are always rough… yeah I had to use the word.

As far as embedded, those that have been on Windows NT Embedded, Windows XP Embedded, and Windows Embedded Standard 7 will be happy with improvements with Windows Embedded 8 Standard. ARM doesn’t look like a near-term possibility, but it is better to wait for it to get better. If you need low-power portable embedded hardware, the Intel Atom family is your current best choice.  I will save the detailed WES 8 introductions for later, but you can try the WES 8 Release Preview today: http://www.microsoft.com/windowsembedded/en-us/evaluate/windows-embedded-8-standard.aspx

 

January 2013

Windows is a registered trademark of Microsoft Corporation
All other company names and product herein may be trademarks of their respective owners.