Late last week, the US media were all talking about Project Cider, a Columbia University research project that allows iOS apps to be used on an Android device without modification.
Basically, Project Cider tells the iOS app that it is running on iOS when it isn’t, through two new mechanisms which the six researchers from the Department of Computer Science (, , , , , and call ‘compile-time code adaptation’, and ‘diplomatic functions’.
Compile-time code adaptation enables foreign source code, an iOS app for example, to be reused in the domestic kernel, the Android operating system for instance. Diplomatic functions, meanwhile, act as translators so that the foreign app can make use of software and hardware that belongs to the domestic kernel.
Software from one operating system has traditionally been made to run on another operating system through an intermediary application called a virtual machine (VM), which emulates the entire foreign operating system to run a foreign app. The researchers point out that VMs are not practical for mobile devices as they would take up too much in the way of resources just to run one foreign app. A second reason would be that VMs are unlikely to be able to talk to various hardware components as such components are not as standardised as those in PCs, the researchers said in Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems, March 2014.
Cider, in contrast, has just as many translators required to run a foreign app, rather than recreating the entire foreign operating system. A video of an Android-based Nexus machine running iOS apps is available here, and the researchers say Android apps should also be able to run on iOS.
The technology has implications for software development as developers could focus their resources on developing for just one operating system, knowing that their work can still be enjoyed by users on other operating systems. Operating system owners however would not be able to tell how many users are actually on their systems if they are charging per-user fees. Nor would they be able to tell how popular their operating system really is, complicating forecasts and decision-making on future plans for a particular operating system.