skip to main content
10.1145/3381052.3381327acmconferencesArticle/Chapter ViewAbstractPublication PagesveeConference Proceedingsconference-collections
research-article

A robust and flexible operating system compatibility architecture

Published: 17 March 2020 Publication History

Abstract

Running applications for one operating system (OS) on another OS is useful in many cases. However, porting applications requires high development costs and running applications in a virtual machine poses resource sharing problems. A promising approach is to use an OS compatibility layer that converts the guest application's interface into the host one. Unfortunately, existing OS compatibility layers sacrifice either robustness or flexibility due to in-kernel subsystems or user-space-only implementations. This paper proposes a new architecture of OS compatibility layers that achieves robustness with almost user-level implementations while improving flexibility by exploiting standardized virtualization interfaces supported by most modern OSs. Our implementation of a Linux compatibility layer for macOS called Noah can run many of Ubuntu Linux binary applications, and a prototype implementation of a Linux compatibility layer for Windows confirmed the generality of our approach. Our experimental results demonstrated that the overhead of Linux kernel build time on Noah was 16%.

References

[1]
Jeremy Andres, Alexander Van't Hof, Naser AlDuaij, Christoffer Dall, Nicolas Viennot, and Jason Nieh. 2014. Cider: Native Execution of iOS Apps on Android. In Proceedings of the 19th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2014). ACM, 367--382.
[2]
Apple. 2019. Hypervisor | Apple Developer Documentation. https://developer.apple.com/documentation/hypervisor
[3]
Andrew Baumann, Jonathan Appavoo, Orran Krieger, and Timothy Roscoe. 2019. A Fork() in the Road. In Proceedings of the Workshop on Hot Topics in Operating Systems (HotOS '19). Association for Computing Machinery, New York, NY, USA, 14--22.
[4]
Adam Belay, Andrea Bittau, Ali José Mashtizadeh, David Terei, David Mazières, and Christos Kozyrakis. 2012. Dune: Safe User-level Access to Privileged CPU Features. In Proceedings of the 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI 2012). 335--348.
[5]
Hao Chen, David Wagner, and Drew Dean. 2002. Setuid Demystified. In Proceedings of the 11th USENIX Security Symposium. 171--190.
[6]
J. B. Chen, Y. Endo, K. Chan, D. Mazieres, A. Dias, M. Seltzer, and M. D. Smith. 1995. The Measured Performance of Personal Computer Operating Systems. In Proceedings of the 15th ACM Symposium on Operating Systems Principles. 299--313.
[7]
Anton Chernoff, Mark Herdeg, Ray Hookway, Chris Reeve, Norman Rubin, Tony Tye, S. Bharadwaj Yadavalli, and John Yates. 1998. FX!32 A Profile-Directed Binary Translator. IEEE Micro 18, 2 (Mar 1998), 56--64.
[8]
Cygwin authors. 2019. Cygwin. https://www.cygwin.com
[9]
Cygwin authors. 2019. Cygwin User's Guide. https://cygwin.com/cygwin-ug-net/cygwin-ug-net.html
[10]
John R. Douceur, Jeremy Elson, Jon Howell, and Jacob R. Lorch. 2008. Leveraging Legacy Code to Deploy Desktop Applications on the Web. In Proceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation (OSDI 2008). 339--354.
[11]
Emmanuel Dreyfus. 2001. Linux Compatibility on BSD for the PPC Platform. http://www.onlamp.com/pub/a/onlamp/2001/05/10/linux_bsd.html.
[12]
Emmanuel Dreyfus. 2002. IRIX Binary Compatibility. http://www.onlamp.com/pub/a/bsd/2002/08/08/irix.html.
[13]
Emmanuel Dreyfus. 2004. Mac OS X binary compatibility on NetBSD: challenges and implementation. In Proceedings of the EuroBSDCon 2004.
[14]
Hideki Eiraku, Yasushi Shinjo, Calton Pu, Younggyun Koh, and Kazuhiko Kato. 2009. Fast Networking with Socket-outsourcing in Hosted Virtual Machine Environments. In Proceedings of the 2009 ACM Symposium on Applied Computing (ACM SAC 2009). 310--317.
[15]
FreeBSD Documentation Project. 2004. Linux Binary Compatibility. In The FreeBSD Handbook 3rd Edition, Murray Stokely and Chern Lee (Eds.). Vol. 1: User Guide. Chapter 10.
[16]
J. E. Gaffney. 1984. Estimating the Number of Faults in Code. IEEE Transactions on Software Engineering SE-10, 4 (July 1984), 459--464.
[17]
David Golub, Randall Dean, Alessandro Forin, All Dean, Ro Forin, and Richard Rashid. 1990. Unix as an Application Program. In Proceedings of the USENIX 1990 Summer Conference. 87--95.
[18]
gyf304. 2016. MLton crashes and BSODs. https://github.com/Microsoft/BashOnWindows/issues/847.
[19]
Shinichiro Hamaji. 2018. Maloader. https://github.com/shinh/maloader.
[20]
Hermann Härtig, Michael Hohmuth, Jochen Liedtke, Jean Wolter, and Sebastian Schönberg. 1997. The Performance of μ-kernel-based Systems. In Proceedings of the 16th ACM Symposium on Operating Systems Principles (SOSP 1997). 66--77.
[21]
Paul Hohensee, Mat Myszewski, and David Reese. 1996. Wabi CPU Emulation. In Hot Chips 8.
[22]
Jon Howell, Bryan Parno, and John R. Douceur. 2013. Embassies: Radically Refactoring the Web. In Proceedings of the 10th USENIX Symposium on Networked Systems Design and Implementation (NSDI 2013). 529--545.
[23]
Jon Howell, Bryan Parno, and John R. Douceur. 2013. How to Run POSIX Apps in a Minimal Picoprocess. In Proceedings of the 2013 USENIX Annual Technical Conference. 321--332.
[24]
Intel. 2017. Intel Hardware Accelerated Execution Manager (Intel HAXM). https://software.intel.com/articles/intel-hardware-accelerated-execution-manager-intel-haxm.
[25]
Intel. 2019. HAXM API Reference. GitHub. https://github.com/intel/haxm/blob/master/docs/api.md
[26]
iz0eyj. 2016. BSOD starting Vivaldi Browser. https://github.com/Microsoft/WSL/issues/1344.
[27]
KVM Developers. 2019. The Definitive KVM (Kernel-based Virtual Machine) API Documentation. kernel.org. https://www.kernel.org/doc/Documentation/virtual/kvm/api.txt
[28]
Conor Hetland Kyle C. Hale and Peter Dinda. 2017. Multiverse: Easy Conversion of Runtime Systems into OS Kernels via Automatic Hybridization. In Proceedings of the 14th IEEE International Conference on Autonomic Computing (ICAC 2017).
[29]
Craig Loewen. 2019. Announcing WSL 2. Microsoft Developers Blogs. https://devblogs.microsoft.com/commandline/announcing-wsl-2/
[30]
Craig Loewen. 2019. A Deep Dive Into How WSL Allows Windows to Access Linux Files. Microsoft Developers Blogs. https://devblogs.microsoft.com/commandline/a-deep-dive-into-how-wsl-allows-windows-to-access-linux-files/
[31]
Craig Loewen. 2019. Memory Reclaim in the Windows Subsystem for Linux 2. Microsoft Developers Blogs. https://devblogs.microsoft.com/commandline/memory-reclaim-in-the-windows-subsystem-for-linux-2/
[32]
Larry McVoy and Carl Staelin. 1996. lmbench: Portable Tools for Performance Analysis. In Proceedings of the USENIX 1996 Annual Technical Conference. 279--294.
[33]
Larry McVoy and Carl Staelin. 2014. LMbench - Tools for Performance Analysis. https://sourceforge.net/projects/lmbench/
[34]
Michael Stahl. 2014. Quantifying the time overhead of Cygwin make. LibreOffice mailing list. https://lists.freedesktop.org/archives/libreoffice/2014-June/061727.html
[35]
Microsoft. 2019. Windows Hypervisor Platform API Definitions. Microsoft Docs. https://docs.microsoft.com/virtualization/api/hypervisor-platform/hypervisor-platform
[36]
Microsoft. 2019. Windows Subsystem for Linux Documentation. https://docs.microsoft.com/windows/wsl/about
[37]
MinGW.org. 2017. MinGW | Minimalist GNU for Windows. https://www.mingw.org.
[38]
Phoronix Media. 2017. Phoronix Test Suite. https://www.phoronix-test-suite.com/.
[39]
Donald E. Porter, Silas Boyd-Wickizer, Jon Howell, Reuben Olinsky, and Galen C. Hunt. 2011. Rethinking the Library OS from the Top Down. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XVI). Association for Computing Machinery, New York, NY, USA, 291--304.
[40]
Robert Ögren. 2005. Slow shell script execution on Cygwin. libtool mailing list. https://lists.gnu.org/archive/html/libtool/2005-04/msg00068.html
[41]
Takaya Saeki, Yuichi Nishiwaki, Takahiro Shinagawa, and Shinichi Honiden. 2017. Bash on Ubuntu on MacOS. In Proceedings of the 8th Asia-Pacific Workshop on Systems (APSys '17). Association for Computing Machinery, New York, NY, USA, Article 17, 8 pages.
[42]
Takahiro Shinagawa. 2017. The VMX benchmark (VMXbench). https://github.com/utshina/VMXbench.
[43]
Jeremy Sugerman, Ganesh Venkitachalam, and Beng-Hong Lim. 2001. Virtualizing I/O Devices on VMware Workstation's Hosted Virtual Machine Monitor. In Proceedings of the 2001 USENIX Annual Technical Conference. 1--14.
[44]
Xiangyan Sun. 2015. Foreign LINUX - Run unmodified Linux applications inside Windows. https://github.com/wishstudio/flinux.
[45]
sunxiaoguang. 2017. BSOD: Probably caused by : LXCORE.SYS (LX-CORE!LxpFutexEvictWaitQueue+47). https://github.com/Microsoft/WSL/issues/2648.
[46]
Chia-Che Tsai, Kumar Saurabh Arora, Nehal Bandi, Bhushan Jain, William Jannen, Jitin John, Harry A. Kalodner, Vrushali Kulkarni, Daniela Oliveira, and Donald E. Porter. 2014. Cooperation and Security Isolation of Library OSes for Multi-Process Applications. In Proceedings of the Ninth European Conference on Computer Systems (EuroSys '14). Association for Computing Machinery, New York, NY, USA, Article 9, 14 pages.
[47]
Volkmar Uhlig, Joshua LeVasseur, Espen Skoglund, and Uwe Dannowski. 2004. Towards Scalable Multiprocessor Virtual Machines. In Proceedings of the 3rd Virtual Machine Research and Technology Symposium. 43--56.
[48]
VMware, Inc. 2019. Adjusting Virtual Machine Memory. https://docs.vmware.com/en/VMware-Workstation-Player-for-Windows/15.0/com.vmware.player.win.using.doc/GUID-B29FC544-B15F-4E94-882A-B383C88B5A85.html
[49]
VMware, Inc. 2019. Overview of VMware Tools. https://kb.vmware.com/s/article/340
[50]
VMware, Inc. 2019. Switch to Unity View. https://docs.vmware.com/en/VMware-Fusion/11/com.vmware.fusion.using.doc/GUID-55FD9709-1980-4D4D-9F80-2896871FD921.html
[51]
VMware, Inc. 2019. Using Shared Folders. https://docs.vmware.com/en/VMware-Workstation-Player-for-Windows/15.0/com.vmware.player.win.using.doc/GUID-AACE0935-4B43-43BA-A935-FC71ABA17803.html
[52]
David A Wheeler. 2001. SLOCCount.
[53]
Wine Project. 2019. WineHQ - Run Windows applications on Linux, BSD, Solaris and macOS. https://www.winehq.org/

Cited By

View all
  • (2024)Distributed Recommendation Systems: Survey and Research DirectionsACM Transactions on Information Systems10.1145/369478343:1(1-38)Online publication date: 26-Nov-2024

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
VEE '20: Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments
March 2020
204 pages
ISBN:9781450375542
DOI:10.1145/3381052
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 ACM 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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 March 2020

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. flexibility
  2. operating system compatibility architecture
  3. robustness
  4. virtualization

Qualifiers

  • Research-article

Funding Sources

  • Exploratory IT Human Resources Project (MITOU Program) of Information-technology Promotion Agency, Japan (IPA)
  • JSPS KAKENHI

Conference

VEE '20

Acceptance Rates

Overall Acceptance Rate 80 of 235 submissions, 34%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)58
  • Downloads (Last 6 weeks)7
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Distributed Recommendation Systems: Survey and Research DirectionsACM Transactions on Information Systems10.1145/369478343:1(1-38)Online publication date: 26-Nov-2024

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media