The compatibility layer called Cider is able to enhance the domestic operating system (i.e. Android in this case), on a device with kernel-managed, per-thread personas to mimic the application binary interface of a foreign operating system (which is iOS in this case) such that it is able to run unmodified foreign binaries. The computer science enthusiasts have used two new techniques namely - diplomatic functions and compile-time code adaptation as well as one-of-a-king combo of binary compatibility techniques to accomplish this extraordinary feat.
The compile time code adaptation method lets them reuse the existing foreign source code in its raw, unaltered form on some other domestic kernel. This means the implementation effort necessary to support multiple binary interfaces for executing all the apps is significantly reduced. Moreover, the use of diplomatic functions helps them in allowing foreign apps to use domestic libraries (i.e. iOS apps use Android's inbuilt libraries) to access the proprietary software and hardware interfaces. How cool is that?
In the following demonstration video, the team has shown iOS apps running on android (though at a very slow speed). Do take a note that one of the students who wrote this paper - Jeremy Andrus shares that they were able to support GPS and location services after the video was shot.
The demo shows that Cider still has a long way to go in order to become a commercially viable product. What are your thoughts on the new Cider software and how do you think can it be made better? Share your comments with us below.