skip to main content
10.1145/3135974.3135981acmconferencesArticle/Chapter ViewAbstractPublication PagesmiddlewareConference Proceedingsconference-collections
research-article
Public Access

Binary compatible graphics support in Android for running iOS apps

Published: 11 December 2017 Publication History

Abstract

Mobile apps make extensive use of GPUs on smartphones and tablets to access Web content. To support pervasive Web content, we introduce three key OS techniques for binary graphics compatibility necessary to build a real-world system to run iOS and Android apps together on the same smartphone or tablet. First diplomat usage patterns manage resources to bridge proprietary iOS and Android graphics implementations. Second, thread impersonation allows a single thread-specific context to be shared amongst multiple threads using multiple iOS and Android personas. Third, dynamic library replication allows multiple, independent instances of the same library to be loaded in a single process to support iOS apps on Android while using multiple graphics API versions at the same time. We use these techniques to build a system prototype, and demonstrate that it runs widely-used iOS apps, including apps such as Safari that use the popular GPU-accelerated WebKit framework, using a Google Nexus tablet running Android.

References

[1]
Alexa Internet, Inc. Alexa - Top Sites in United States. http://www.alexa.com/topsites/countries/US, Apr. 2014.
[2]
Amstadt, B., and Johnson, M. K. Wine. Linux Journal (Aug. 1994).
[3]
Andrus, J. Multi-Persona Mobile Computing. PhD thesis, Columbia University, Feb. 2015.
[4]
Andrus, J., Van't Hof, A., AlDuaij, N., Dall, C., Viennot, N., and Nieh, J. Cider: Native Execution of iOS Apps on Android. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (Mar. 2014), ASPLOS 2014, pp. 367--382.
[5]
Apple, Inc. SunSpider 1.0.2 JavaScript Benchmark. https://www.webkit.org/perf/sunspider/sunspider.html, 2013.
[6]
Apple, Inc. iOS Device Compatibility Reference: OpenGL ES Graphics. https://developer.apple.com/library/ios/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/OpenGLESPlatforms/OpenGLESPlatforms.html#//apple_ref/doc/uid/TP40013599-CH106-SW1, Feb. 2014.
[7]
Apple, Inc. The WebKit Open Source Project. http://www.webkit.org/, Apr. 2014.
[8]
Apple Kernel Engineer. Personal Communication, Mar. 2014.
[9]
Baumann, A., Lee, D., Fonesca, P., Glendenning, L., Lorch, J. R., Bond, B., Olinsky, R., and Hunt, G. C. Composing OS Extensions Safely and Efficiently with Bascule. In Proceedings of the 8th ACM European Conference on Computer Systems (Apr. 2013), EuroSys 2013, pp. 239--252.
[10]
Bellard, F. QEMU, A Fast and Portable Dynamic Translator. In Proceedings of the 2005 USENIX Annual Technical Conference (Apr. 2005), USENIX ATC 2005, pp. 41--46.
[11]
Black Duck Software, Inc. WebKit Open Source Project on Ohloh. http://www.ohloh.net/p/WebKit, Apr. 2014.
[12]
Chernoff, A., Herdeg, M., Hookway, R., Reeve, C., Rubin, N., Tye, T., Yadavalli, S. B., and Yates, J. FX!32: A Profile-Directed Binary Translator. IEEE Micro 18, 2 (Mar. 1998), 56--64.
[13]
Dall, C., Li, S.-W., Lim, J. T., Nieh, J., and Koloventzos, G. ARM Visualization: Performance and Architectural Implications. In Proceedings of the 43rd International Symposium on Computer Architecture (June 2016), ISCA 2016, pp. 304--316.
[14]
Dall, C., and Nieh, J. KVM/ARM: The Design and Implementation of the Linux ARM Hypervisor. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (Mar. 2014), ASPLOS 2014, pp. 333--348.
[15]
Dolezel, L. The Darling Project. http://darling.dolezel.info/en/Darling, Aug. 2012.
[16]
Dowty, M., and Sugerman, J. GPU Virtualization on VMware's Hosted I/O Architecture. ACM SIGOPS Operating Systems Review 43 (July 2009), 73--82.
[17]
Dreyfus, E. Linux Compatibility on BSD for the PPC Platform. http://onlamp.com/lpt/a/833, May 2001.
[18]
Dreyfus, E. IRIX Binary Compatibility, Parts 1-6. http://onlamp.com/lpt/a/2623, Aug. 2002.
[19]
Dreyfus, E. Mac OS X Binary Compatibility on NetBSD: Challenges and Implementation. In Proceedings of the 2004 EuroBSDCon (Oct. 2004).
[20]
Filip Pizlo. Surfin' Safari - Blog Archive - Introducing the WebKit FTL JIT. https://www.webkit.org/blog/3362/introducing-the-webkit-ftl-jit/, May 2014.
[21]
FreeBSD Documentation Project. Linux Binary Compatibility. In FreeBSD Handbook, B. N. Handy, R. Murphey, and J. Mock, Eds. 2000, ch. 11.
[22]
Gamme, E., Johnson, R., Helm, R., and John, V. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Oct. 1994.
[23]
Geoff Stahl. GL_APPLE_fence. https://www.opengl.org/registry/specs/APPLE/fence.txt, Aug. 2002.
[24]
Hohensee, P., Myszewski, M., and Reese, D. Wabi CPU Emulation. In Proceedings of the 8th Symposium on High Performance Chips (Aug. 1996), Hot Chips 1996, pp. 47--65.
[25]
Hunt, G. C., and Brubacher, D. Detours: Binary Interception of Win32 Functions. In Proceedings of the 3rd USENIX Windows NT Symposium (July 1999), WINSYM 1999.
[26]
John Rosasco and Andrew Barnes. GL_APPLE_row_bytes. http://www.opengl.org/registry/specs/APPLE/row_bytes.txt, Oct. 2006.
[27]
John Spitzer and Mark Kilgard and Acorn Pooley. GL_NV_fence. https://www.khronos.org/registry/gles/extensions/NV/fence.txt, Dec. 2008.
[28]
Khronos Group. OpenGL Extensions - OpenGL.org. http://www.opengl.org/wiki/OpenGL_Extensions.
[29]
Khronos Group. OpenGL ES Common Profile Specification Version 2.0.25 (Full Specification). http://www.khronos.org/registry/gles/specs/2.0/es_full_spec_2.0.25.pdf, Nov. 2010.
[30]
Khronos Group. Khronos Native Platform Graphics Interface (EGL Version 1.4). http://www.khronos.org/registry/egl/specs/eglspec.1.4.20130211.pdf, Feb. 2013.
[31]
Khronos Group. OpenGL ES - The Standard for Embedded Accelerated 3D Graphics. http://www.khronos.org/opengles/, Jan. 2013.
[32]
Laadan, O., and Nieh, J. Operating System Virtualization: Practice and Experience. In Proceedings of the 3rd Annual Haifa Experimental Systems Conference (May 2010), SYSTOR 2010, pp. 17:1--17:12.
[33]
Lagar-Cavilla, H. A., Tolia, N., Satyanarayanan, M., and de Lara, E. VMM-independent Graphics Acceleration. In Proceedings of the 3rd International Conference on Virtual Execution Environments (June 2007), VEE 2007, pp. 33--43.
[34]
Linux Containers. Linux Containers - LXC - Introduction, Sept. 2017. https://linuxcontainers.org/lxc/introduction/.
[35]
Nieuwejaar, N., Schrock, E., Kucharski, W., Blaine, R., Pilatowicz, E., and Leventhal, A. Method for Defining Non-Native Operating Environments. US 7689566, Filed Dec. 12, 2006, Issued Mar. 30, 2010. http://www.patentlens.net/patentlens/patent/US_7689566/.
[36]
NVIDIA Corporation. High Performance Computing (HPC) and Supercomputing | NVIDIA Tesla | NVIDIA. http://www.nvidia.com/object/tesla-supercomputing-solutions.html, Apr. 2014.
[37]
NVIDIA Corporation. Shared Virtual GPU (vGPU) Technology | NVIDIA. http://www.nvidia.com/object/virtual-gpus.html, Apr. 2014.
[38]
OpenVZ. http://openvz.org/Main_Page.
[39]
Oracle Corporation. Consolidating Applications with Oracle Solaris Containers. http://www.oracle.com/technetwork/server-storage/solaris/documentation/consolidating-apps-163572.pdf, July 2011.
[40]
Osman, S., Subhraveti, D., Su, G., and Nieh, J. The Design and Implementation of Zap: A System for Migrating Computing Environments. In Proceedings of the 5th Symposium on Operating Systems Design and Implementation (Dec. 2002), OSDI 2002, pp. 361--376.
[41]
PassMark Software, Inc. PerformanceTest Mobile on the App Store. https://itunes.apple.com/us/app/performancetest-mobile/id494438360?ls=1&mt=8, June 2012.
[42]
PassMark Software, Inc. PassMark PerformanceTest - Android Apps on Google Play. https://play.google.com/store/apps/details?id=com.passmark.pt_mobile, Jan. 2013.
[43]
Porter, D. E., Boyd-Wickizer, S., Howell, J., Olinsky, R., and Hunt, G. C. Rethinking the Library OS from the Top Down. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (Mar. 2011), ASPLOS 2011, pp. 291--304.
[44]
Potter, S., and Nieh, J. Apiary: Easy-to-Use Desktop Application Fault Containment on Commodity Operating Systems. In Proceedings of the 2010 USENIX Annual Technical Conference (June 2010), USENIX ATC 2010, pp. 103--116.
[45]
Stegmaier, S., Magallón, M., and Ertl, T. A Generic Solution for Hardware-Accelerated Remote Visualization. In Proceedings of the Symposium on Data Visualisation (2002), VISSYM 2002, pp. 87--94.
[46]
Sugerman, J., Venkitachalam, G., and Lim, B.-H. Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor. In Proceedings of the 2001 USENIX Annual Technical Conference (June 2001), USENIX ATC 2001, pp. 1--14.
[47]
The Android OpenSource Project. Graphics | Android Developers. https://source.android.com/devices/graphics.html, Jan. 2013.
[48]
The Android OpenSource Project. Dashboards | Android Developers. http://developer.android.com/about/dashboards/index.html, Apr. 2014.
[49]
The VirtualGL Project. VirtualGL | Main / The VirtualGL Project. http://www.virtualgl.org/, May 2014.
[50]
Tian, K. Graphics Virtualization (XenGT) | 01.org. https://01.org/xen/blogs/srclarkx/2013/graphics-virtualization-xengt, Apr. 2014.
[51]
Web Standards Project. The Acid3 Test. http://www.acidtests.org/, Mar. 2008.
[52]
WebKit Community. Bug 24986 - {multi-patch} ARM JIT port. https://bugs.webkit.org/show_bug.cgi?id=24986, June 2009.
[53]
X.Org Foundation. GLX. http://dri.freedesktop.org/wiki/GLX/, Apr. 2013.

Cited By

View all
  • (2024)Trinity: High-Performance and Reliable Mobile Emulation through Graphics ProjectionACM Transactions on Computer Systems10.1145/364302942:3-4(1-33)Online publication date: 20-Sep-2024

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
Middleware '17: Proceedings of the 18th ACM/IFIP/USENIX Middleware Conference
December 2017
268 pages
ISBN:9781450347204
DOI:10.1145/3135974
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

In-Cooperation

  • USENIX Assoc: USENIX Assoc
  • IFIP

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 11 December 2017

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Android
  2. GPUs
  3. OpenGL
  4. computer graphics
  5. iOS
  6. mobile computing
  7. operating system compatibility
  8. web browsers

Qualifiers

  • Research-article

Funding Sources

Conference

Middleware '17
Sponsor:
Middleware '17: 18th International Middleware Conference
December 11 - 15, 2017
Nevada, Las Vegas

Acceptance Rates

Middleware '17 Paper Acceptance Rate 20 of 85 submissions, 24%;
Overall Acceptance Rate 203 of 948 submissions, 21%

Upcoming Conference

MIDDLEWARE '25
26th International Middleware Conference
December 15 - 19, 2025
Nashville , TN , USA

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)151
  • Downloads (Last 6 weeks)27
Reflects downloads up to 03 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Trinity: High-Performance and Reliable Mobile Emulation through Graphics ProjectionACM Transactions on Computer Systems10.1145/364302942:3-4(1-33)Online publication date: 20-Sep-2024

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media