Editing Processor architecture

Warning: You are not logged in. Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
 +
===Overview===
The purpose of this page is to answer the following (reasonable) questions that come up in the community quite frequently:
The purpose of this page is to answer the following (reasonable) questions that come up in the community quite frequently:
# Is it possible to make <some Windows application> run on Maemo?
# Is it possible to make <some Windows application> run on Maemo?
Line 6: Line 7:
It attempts to do this by explaining about computer processor ''architecture'', and relates that to maemo software and hardware.
It attempts to do this by explaining about computer processor ''architecture'', and relates that to maemo software and hardware.
-
==PCs: x86 architecture==
+
===PCs: x86 architecture===
-
 
+
Most PCs are powered by processors produced by Intel or AMD that are referred to as [http://en.wikipedia.org/wiki/X86 x86-compatible]. Pentium to Core2, Athlon to Phenom, all of these are CPUs (Central Processing Units) compatible with the x86 instruction set. Software that works on one will work on another.
-
Most PCs are powered by processors produced by Intel or AMD that are referred to as [[:wikipedia:X86|x86-compatible]]. Pentium to Core2, Athlon to Phenom, all of these are CPUs (Central Processing Units) compatible with the x86 instruction set. Software that works on one will work on another.
+
===Compiled Applications===
===Compiled Applications===
 +
What that means is that, no matter what form the applications take, in the end they have to be presented to the CPU as x86 instructions. The most efficient applications are often the ones that are ''[[compiled]]'' directly into a listing of these x86 instructions. For that reason, the most core parts of the operating system and the most demanding applications are usually distributed and stored as a [[binaries | binary (computer readable) representation]] of this compiled state.
-
What that means is that, no matter what form the applications take, in the end they have to be presented to the CPU as x86 instructions. The most efficient applications are often the ones that are ''[[:wikipedia:Compiler|compiled]]'' directly into a listing of these x86 instructions. For that reason, the most core parts of the operating system and the most demanding applications are usually distributed and stored as a [[:wikipedia:Executable|binaries]] of this compiled state.
+
===Mobile devices: ARM architecture===
-
 
+
There is a much simpler instruction set called [http://en.wikipedia.org/wiki/ARM_architecture ARM] and, because of its simplicity, many mobile devices use an ARM-based processor. (Note that "simpler" does not necessarily imply "better" or "worse" for the end user: ARM processors are typically smaller and thus easier to make.) This is true of devices that run Maemo. Because the instruction set is different, most applications that will run on a PC will not directly run on maemo without recompiling. Recompiling requires the original description of the application in some human-readable computer language (the [[source code]]) and this is not available for most commercial, proprietary applications (which are therefore referred to as ''closed source'').
-
==Mobile devices: ARM architecture==
+
-
 
+
-
There is a much simpler instruction set called [[:wikipedia:ARM architecture|ARM]] and, because of its simplicity, many mobile devices use an ARM-based processor. (Note that "simpler" does not necessarily imply "better" or "worse" for the end user: ARM processors are typically smaller and thus easier to make.) This is true of devices that run Maemo. Because the instruction set is different, most applications that will run on a PC will not directly run on maemo without recompiling. Recompiling requires the original description of the application in some human-readable computer language (the [[:wikipedia:source code|source code]]) and this is not available for most commercial, proprietary applications (which are therefore referred to as ''closed source'').
+
-
 
+
-
==Emulation==
+
-
The only way to use the compiled binaries for one architecture on another architecture is through a translator. This is called an [[:wikipedia:Emulator|emulator]]; it ''emulates'' the desired architecture for the software so that it is compatible. This can be a very inefficient process, with the emulated processor a few to tens of times slower than the native processor. In the context of the portable maemo devices with limited processing power and battery capacity, it means that emulating complex PC software is generally not practical. This is true of Microsoft's Windows operating system, and applications that run in Windows.
+
===Emulation===
-
See the [[emulators]] page for more specific details on what architectures and systems can be emulated in maemo.
+
The only way to use the compiled binaries for one architecture on another architecture is through a translator. This is called an [[emulator]]; it ''emulates'' the desired architecture for the software so that it is compatible. This can be a very inefficient process, with the emulated processor a few to tens of times slower than the native processor. In the context of the portable maemo devices with limited processing power and battery capacity, it means that emulating complex PC software is generally not practical. This is true of Microsoft's Windows operating system, and applications that run in Windows.
-
==Conclusion and Relevance==
+
See the [[emulator]] page for more specific details on what architectures and systems can be emulated in maemo.
 +
===Conclusion and Relevance===
What this means to you, the user, is that open standards and open source are your friend. Given enough time and enough demand, most anything that is "open" can and probably will be brought to maemo.
What this means to you, the user, is that open standards and open source are your friend. Given enough time and enough demand, most anything that is "open" can and probably will be brought to maemo.

Learn more about Contributing to the wiki.


Please note that all contributions to maemo.org wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see maemo.org wiki:Copyrights for details). Do not submit copyrighted work without permission!


Cancel | Editing help (opens in new window)