I don't understand quite a simple thing. Why can't I run any software I want on any kind of device? I mean, why can't I run (just for example) Windows OS on the iPhone? Both have hard drives, RAM, display, input, etc...

Why can't I run even Linux Operation Systems on Android devices?? Without using some fake environment, like Linux Deploy and VNC Viewer (for Android devices). Android is Linux, why cant I just launch the desktop Ubuntu or Arch on my phone?

Is it possible some how to adapt those devices to use other kinds of software? For example maybe to change some binary configurations or something?

I know how to create different web applications, I know how to use (manage, configure) Arch Linux... I am working with computers for quite a long time, But I still don't understand such a simple thing!

closed as too broad by Xavierjazz, heavyd, Scott, Windos, Raystafarian Aug 14 '15 at 10:58

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • What did your research show? – Daniel B Aug 12 '15 at 21:18
  • 4
    Why can't you put gasoline in a diesel car? Both cars have wheels, engines, exhaust, brakes... – gronostaj Aug 12 '15 at 21:25
  • Research shows other different topics and nothing about my question. – Johny Aug 12 '15 at 21:30
  • @gronostaj so you are saying that the hardware is build completely different in every case? I run linux on a computer that was once windows. This is the software, and the hardware is different. You want to say, I am wrong? – Johny Aug 12 '15 at 21:43
  • Yeah, it basically boils down to hardware differences. Consumer editions of Windows are compiled against x86 and x86-64 CPUs, IA-64 builds were also available for server equivalents of XP and Vista and there's Windows 10 IoT Core for some ARMs. Other CPUs have different instruction sets, so they aren't supported. And these are just CPU differences, other devices can be incompatible too. – gronostaj Aug 12 '15 at 22:28

Theoretically, you can do a lot of this stuff. With a bit of trickery, people have gotten Debian and other forms of Linux to run on Android phones; here's one of a million videos demonstrating this.

You seem to be talking especially about running different operating system on mobile devices. Theoretically, any mobile device should basically be able to run any other mobile operating system. They all use ARM processors and otherwise the same basic hardware; sure, some drivers would have to be written to make specific specialized components work, but that's a relatively small hurdle.

The bigger hurdle is that phone manufacturers don't want you to do this. With the exception perhaps of Google's Nexus devices, pretty much every mobile device/tablet/etc has a locked bootloader. This means that the manufacturer's have put measures in place to prevent a different OS from being installed and to prevent the OS from being significantly modified.

Sometimes, hackers can get around these measures (this is called "rooting" or "jailbreaking", depending on how it's done), but it's never a particularly easy thing to pull off. I doubt we'll ever see any hackers put anything besides iOS on an iPhone/iPad, because, if I'm not mistaken, Apple uses a custom CPU and lots of other custom parts in their devices, and there is pretty much no public documentation for these. You'll also probably never see Windows (desktop Windows anyway) on a mobile device because Windows is built for x86 processors, and mobile devices pretty much exclusively have ARM processors (that said, Windows RT, Windows 8's crappier cousin, runs on ARM).

TLDR: Basically, the biggest limitation is that manufacturers don't want you to repurpose their hardware. They put preventative measures in place towards this end, and often use undocumented hardware and components that are very difficult to reverse engineer.

Not the answer you're looking for? Browse other questions tagged or ask your own question.