Disclaimer: I am in no way a computer engineering expert. While I do believe I have a good understanding of how hardware and software work, I don’t have detailed knowledge on coding differences between Windows 8 and Windows RT, so do take what I say with a “grain of salt”, as they say. I am just a tech enthusiast with his own thoughts on this issue, and views that the wording on the differences is incorrect.
Also, please be aware that this article still goes deep into computing concepts, and as such, isn’t for the average person.
Over the past few weeks, the world has finally had its first real chances to play around with Microsoft’s newest entry into the computing world, Windows 8. Part of this new generation of operating system is the Surface tablet, and with it, a variant of Windows 8 designed for the ARM processor architecture, known as Windows RT.
What’s the different? Well, it can be summed up very simply, but the details are not so simple. Windows RT could best be described as Windows 8, without the ability to run Windows programs.
This sounds rather backwards: If it’s Windows, shouldn’t it be able to run everything? Well, yes, and no. The operating system isn’t really the issue here, if you understand computers and software at all. The real issue is the actual hardware that Windows RT runs on, and thus, how it is coded to operate.
Windows RT, as I mentioned before, is designed to run on ARM based hardware. This processor type is quite different from the traditional x86/x64 architecture that virtually all standard PCs use. ARM is designed to use very low power, but still be a relatively powerful hardware base, and to this end, uses very different working methods compared to a “normal” CPU.
This basically means that any software written for ARM platforms must be written or compiled in ways that differ from writing for a more standard PC. From the operating system itself, down to the individual programs running on the system, everything has to be designed around the CPU and hardware in question, a technique known as using “machine code”.
This means that Windows 8 had to be written differently for the ARM based hardware that Surface uses. The result was an effectively identical version of Windows 8 called Windows RT. Effectively identical, but not completely, for there is one major factor that separates the two: the aforementioned fact that Windows RT does not run classic Windows applications.
Or, more correctly, that classic Windows applications cannot run on ARM based hardware. At some level in the code, classic applications eventually rely on code specific to the classic x86/x64 processor architecture. Even for software that uses other low-level software to act as a sort of in-between, somewhere along the line, machine specific code is required.
This was one of the reasons for the development of the Windows Runtime environment. Runtime, or RT (hence the name of Windows RT itself) was developed to act as a hardware independent system for developing applications that could be run on a variety of hardware platforms without needing to be redesigned and recoded for the new hardware. While machine code can be used even in Windows RT applications, it is generally not required to get the desired results.
Thus, applications written for the Windows Runtime application interface are able to, for the most part, run unchanged on both Windows RT and Windows 8 machines: all the code they work with is in the operating system, which has already been coded to handle the hardware it is running on. Classic Windows applications require, in virtually every case, something specific to a processor that just doesn’t exist on an ARM based machine.
The end result is 2 separate, but similar, operating systems designed for different hardware, that do the same things. The core difference is simply in what will run on the hardware / software combination. Classic windows applications won’t run on RT devices due to the different hardware used, and changes to the operating system to work with that hardware. RT applications run on both systems because they are designed without dependance on the hardware, only on the operating system and code special to it.
Make sense? The media has it all wrong, and I really think it would be better if explained properly, that classic stuff isn’t made to run on Windows RT and its hardware, rather than making it sound like Windows RT is useless because it doesn’t run older applications.