Running Windows 8 on Raspberry Pi
… Essentially you can’t run Win8 on the Raspberry Pi.
In this article I’ll try and explore the reasons why the Raspberry Pi is unable to support Windows 8, as well as present some alternatives that might achieve a sub-set of the Windows OS functionality.
I am a newbie to the whole open-source hardware hacking hobby, and far more familiar with the Windows OS family than Linux, so obviously one of the first questions I asked myself when I received my Raspberry Pi is “Can I run Windows on this thing?!”
So I started reading on whether Windows 8 is an option, considering it is supposed to be “mobile-hardware” compatible, and although the latest Raspberry Pi has probably quarter the “juice” found on your latest mobile device, surely if you really strip the Win OS right down to the bare minimum services, some acceptable level of performance could be harnessed… but unfortunately the problem is much more fundamental than that. As far as I can see, the problems are:
- Windows RT is essentially a special version of Windows 8 that is intended to run on ARM architecture type processors, the minimum required version of ARM to run windows is v7, while the processor that ships with the Raspberry Pi is an ARM v6
- You might be able to get around the issue using virtual machines or architecture emulators (such as bochs), but the resource overhead will be way too great to run anything with a decent level of usability.
- Even if the ARM architecture is not an issue, Windows 8 requires atleast 1 GHz processing power and 1 GB Ram, and that can barely keep up.
- Even if resources weren’t an issue, Microsoft do not allow their OS to be installed on any system, and they actually lock it down (through the BIOS) to only be installed on systems they select… this will probably get cracked eventually though and no longer become an issue (if you know what you’re doing).
- … Even if all the above weren’t enough, it is not really an economical option, given it will cost almost 4x the price of the Raspberry Pi to install the Windows 8 OS.
Alternatives to Running Windows 8 on Raspberry Pi
- There is a very cool blog post on the Raspberry Pi website that shows a Windows 95 running on Raspberry Pi, the operating system is not actually installed directly on the RPi, instead a reduced version of Linux running bochs emulating x86 architecture, so given this overhead it seems to be sluggish and only barely usable. QEMU is also another (better?) option for emulating x86, there is an ARM compiled version of QEMU, and there is an example of running a Windows XP virtual machine on the Pi.
- Although it is a very murky grounds in terms of licenses, a video has been released that shows a thin VMWare View client on a Linux machine was used to establish a connection to a Windows 7 Virtual Desktop, and here is the project’s source-code. In this instance you are not really running Windows on the Pi, instead you are connecting to a Virtual Desktop instance.
- ReactOS is yet another option, it is essentially an open-source OS that tries to emulate the Windows OS family right down to the point that some Windows applications actually run successfully on it. Although the project is still in beta with loads of known bugs, it is a very cool approximation of the functionality you expect from a Windows OS. ReactOS have a very early release of an ARM v6 supported version of their OS.
- The Wine project MIGHT also be an option to consider, and offers some portability for Windows applications to the less resource intensive Unix environment, Wine comprises essentially of a compatibility layer that understands and services requests from a Windows application requesting Win API resources. Handy if your end goal is to run specific Windows application rather than provide a GUI. There is a rather lengthy, but awesomely detailed, walk-through on getting some basic code intended for Windows to compile and run under Linux using Wine.
- You could also go to the total extreme and use a Remote Desktop client from a thin Linux installation (some services offer web-based remote desktop-like functionality) and connect to whichever version of Windows desktop you have that way. Obviously there is alot of limitations here and you’re not really running Windows on your Pi at all, but if it gets the job done…
Anyway I’ll try and update this list as the community releases more awesome ways to run Windows on the Pi.
Wine won’t work on the Raspberry-Pi, because it relies on the fact that Windows and Linux both run on x86 processors, and have a relatively similar architecture. It executes the Windows application on the physical processor.
Wine is basically a set of specially crafted libraries, that conform to the conventions for Windows. They emulate the libraries through which applications communicate with the Windows operating system. If an application directly talks to the operating system, with a trap instruction or a similar mechanism, and bypasses the libraries, it doesn’t work on Linux.
The question is not how but why. An operating system is supposed to let you run the programs and achieve the tasks you want to on your computer and get in the way as little possible.
What are the tasks you are looking to achieve? You can do many of the same things on Windows, OS X, Android and iOS. The OS you want to run on the Raspberry Pi is called Debian wheezy ( it’s a GNU/Linux distribution). You will find many thousands of freely available packages in the repositories, getting the software you want is a breeze under Linux.
I completely agree with you, for any practical application of the RPi you should absolutely focus on task driven solutions, and most tasks that can be accomplished on a Windows OS can be accomplished or rewritten to run under other technologies… I’ve even seen MSFT SQL Server run on Linux through Wine!.
The idea here was just to explore the realm of possibilities, rather than deal with a specific practical problem, basically general research. On the RPi, the Windows OS failings goes beyond its incapability to run, and also touches on the many issues of solution productization under Windows technology, which really excludes any attempts to install Windows OS on RPi from being anything but a geeky experiment to merely say “I did that!!”.
“…being anything but a geeky experiment to merely say “I did that!!”” is why I do things 99 percent of the time.
I think you meant ARM v6 not AMD.
Ha! I can’t believe noone flagged this up until now… Thanks Tyler!
HELP! I am trying to get ReactOS but I can’t figure out where to download if from…
Heya, You can try this link to the ReactOS Downloads page.
Here is a video on how to setup ReactOS on Raspberry PI using a QEMU vm.
I just wanted to add one option I feel that you’ve missed. Many Windows programs are developed to run on the .NET runtime, and can be run directly in Linux with Mono. Not that parts of .NET have been open-sourced, the official .NET libraries could be compiled for RPI.
What this means in the end, is basically those Windows programs running natively on RPI.
pi 3 actually has a v7 chip, can I run windows on it?
Am pretty sure you can, this article was written a while ago, and IIRC, the new Pi 3 should be able to handle win10 without too much fiddling.