skip to main content
10.1145/2465351.2465375acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
research-article

Composing OS extensions safely and efficiently with Bascule

Published: 15 April 2013 Publication History

Abstract

Library OS (LibOS) architectures implement the OS personality as a user-mode library, giving each application the flexibility to choose its LibOS. This approach is appealing for many reasons, not least the ability to extend or customise the LibOS. Recent work with Drawbridge [29] showed that an existing commodity OS (Windows 7) could be refactored to produce a LibOS while retaining application compatibility.
This paper presents Bascule, an architecture for LibOS extensions based on Drawbridge. Rather than relying on the application developer to customise a LibOS, Bascule allows OS-independent extensions to be attached at runtime. Extensions interpose on a narrow binary interface of primitive OS abstractions, such as files and virtual memory. Thus, they are independent of both guest and host OS, and composable at runtime. Since an extension runs in the same process as an application and its LibOS, it is safe and efficient.
Bascule demonstrates extension reuse across diverse guest LibOSes (Windows and Linux) and host OSes (Windows and Barrelfish). Current extensions include file system translation, checkpointing, and architecture adaptation.

References

[1]
Jonathan Appavoo, Marc Auslander, David Edelsohn, Dilma Da Silva, Orran Krieger, Michal Ostrowski, Bryan Rosenburg, Robert W. Wisniewski, and Jimi Xenidis. Providing a Linux API on the scalable K42 kernel. In Proceedings of the 2003 USENIX Annual Technical Conference, FREENIX Track, pages 323--336, June 2003.
[2]
Andrew Baumann, Paul Barham, Pierre-Evariste Dagand, Tim Harris, Rebecca Isaacs, Simon Peter, Timothy Roscoe, Adrian Schüpbach, and Akhilesh Singhania. The multikernel: a new OS architecture for scalable multicore systems. In Proceedings of the 22nd ACM Symposium on Operating Systems Principles, pages 29--44, October 2009.
[3]
Adam Belay, Andrea Bittau, Ali Mashtizadeh, David Terei, David Mazières, and Christos Kozyrakis. Dune: Safe user-level access to privileged CPU features. In Proceedings of the 10th USENIX Symposium on Operating Systems Design and Implementation, pages 335--348, October 2012.
[4]
Brian N. Bershad, Stefan Savage, Przemysław Pardyak, Emin Gün Sirer, Marc E. Fiuczynski, David Becker, Craig Chambers, and Susan Eggers. Extensibility, safety and performance in the SPIN operating system. In Proceedings of the 15th ACM Symposium on Operating Systems Principles, pages 267--284, December 1995.
[5]
Sandeep Bhatkar, Daniel C. DuVarney, and R. Sekar. Address obfuscation: an efficient approach to combat a broad range of memory error exploits. In Proceedings of the 12th USENIX Security Symposium, pages 105--120, August 2003.
[6]
Thomas C. Bressoud and Fred B. Schneider. Hypervisor-based fault tolerance. ACM Transactions on Computer Systems, 14(1):80--107, February 1996.
[7]
David R. Cheriton and Kenneth J. Duda. A caching model of operating system kernel functionality. In Proceedings of the 1st USENIX Symposium on Operating Systems Design and Implementation, 1994.
[8]
Christopher Clark, Keir Fraser, Steven Hand, Jacob Gorm Hansen, Eric Jul, Christian Limpach, Ian Pratt, and Andrew Warfield. Live migration of virtual machines. In Proceedings of the 2nd USENIX Symposium on Networked Systems Design and Implementation, pages 273--286, 2005.
[9]
Heming Cui, Jingyue Wu, John Gallagher, Huayang Guo, and Junfeng Yang. Efficient deterministic multithreading through schedule relaxation. In Proceedings of the 23rd ACM Symposium on Operating Systems Principles, pages 337--351, 2011.
[10]
Brendan Cully, Geoffrey Lefebvre, Dutch Meyer, Mike Feeley, Norm Hutchinson, and Andrew Warfield. Remus: high availability via asynchronous virtual machine replication. In Proceedings of the 5th USENIX Symposium on Networked Systems Design and Implementation, pages 161--174, 2008.
[11]
Cygwin. http://cygwin.com/.
[12]
John R. Douceur, Jeremy Elson, Jon Howell, and Jacob R. Lorch. Leveraging legacy code to deploy desktop applications on the web. In Proceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation, pages 339--354, December 2008.
[13]
George W. Dunlap, Samuel T. King, Sukru Cinar, Murtaza A. Basrai, and Peter M. Chen. ReVirt: Enabling intrusion analysis through virtual-machine logging and replay. In Proceedings of the 5th USENIX Symposium on Operating Systems Design and Implementation, pages 211--224, 2002.
[14]
Dawson R. Engler, M. Frans Kaashoek, and James O'Toole, Jr. Exokernel: An operating system architecture for application-level resource management. In Proceedings of the 15th ACM Symposium on Operating Systems Principles, pages 251--266, December 1995.
[15]
Bryan Ford, Mike Hibler, Jay Lepreau, Patrick Tullmann, Godmar Back, and Stephen Clawson. Microkernels meet recursive virtual machines. In Proceedings of the 2nd USENIX Symposium on Operating Systems Design and Implementation, pages 137--151, October 1996.
[16]
Douglas P. Ghormley, David Petrou, Steven H. Rodrigues, and Thomas E. Anderson. SLIC: An extensibility system for commodity operating systems. In Proceedings of the 1998 USENIX Annual Technical Conference, June 1998.
[17]
David Given. LBW: Linux binaries on Windows, April 2010. http://lbw.sf.net/.
[18]
Galen Hunt and Doug Brubacher. Detours: Binary interception of Win32 functions. In Proceedings of the 3rd USENIX Windows NT Workshop, July 1999.
[19]
Michael B. Jones. Interposition agents: transparently interposing user code at the system interface. In Proceedings of the 14th ACM Symposium on Operating Systems Principles, pages 80--93, 1993.
[20]
M. Frans Kaashoek, Dawson R. Engler, Gregory R. Ganger, Héctor M. Briceño, Russell Hunt, David Mazières, Thomas Pinckney, Robert Grimm, John Jannotti, and Kenneth Mackenzie. Application performance and flexibility on Exokernel systems. In Proceedings of the 16th ACM Symposium on Operating Systems Principles, pages 52--65, October 1997.
[21]
Yousef A. Khalidi and Michael N. Nelson. Extensible file systems in Spring. In Proceedings of the 14th ACM Symposium on Operating Systems Principles, pages 1--14, 1993.
[22]
Samuel T. King, George W. Dunlap, and Peter M. Chen. Debugging operating systems with time-traveling virtual machines. In Proceedings of the 2005 USENIX Annual Technical Conference, pages 1--15, April 2005.
[23]
Dongyoon Lee, Benjamin Wester, Kaushik Veeraraghavan, Satish Narayanasamy, Peter M. Chen, and Jason Flinn. Respec: efficient online multiprocessor replay via speculation and external determinism. In Proceedings of the 15th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 77--90, 2010.
[24]
I. M. Leslie, D. McAuley, R. Black, T. Roscoe, P. Barham, D. Evers, R. Fairbairns, and E. Hyden. The design and implementation of an operating system to support distributed multimedia applications. IEEE Journal on Selected Areas in Communications, 14(7), September 1996.
[25]
Microsoft. Programming Guide for 64-bit Windows: Running 32-bit Applications, June 2012. http://msdn.microsoft.com/library/windows/desktop/aa384249.aspx.
[26]
Dejan S. Milojičić, Fred Douglis, Yves Paindaveine, Richard Wheeler, and Songnian Zhou. Process migration. ACM Computing Surveys, 32(3):241--299, September 2000.
[27]
Edmund B. Nightingale, Peter M. Chen, and Jason Flinn. Speculative execution in a distributed file system. In Proceedings of the 20th ACM Symposium on Operating Systems Principles, pages 191--205, 2005.
[28]
Edmund B. Nightingale, Kaushik Veeraraghavan, Peter M. Chen, and Jason Flinn. Rethink the sync. In Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation, 2006.
[29]
Donald E. Porter, Silas Boyd-Wickizer, Jon Howell, Reuben Olinksy, and Galen C. Hunt. Rethinking the library OS from the top down. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 291--304, March 2011.
[30]
Timothy Roscoe, Kevin Elphinstone, and Gernot Heiser. Hype and Virtue. In Proceedings of the 11th Workshop on Hot Topics in Operating Systems, May 2007.
[31]
Margo I. Seltzer, Yasuhiro Endo, Christopher Small, and Keith A. Smith. Dealing with disaster: Surviving misbehaved kernel extensions. In Proceedings of the 2nd USENIX Symposium on Operating Systems Design and Implementation, pages 213--228, November 1996.
[32]
Joseph Tucek, Shan Lu, Chengdu Huang, Spiros Xanthos, and Yuanyuan Zhou. Triage: diagnosing production run failures at the user's site. In Proceedings of the 21st ACM Symposium on Operating Systems Principles, pages 131--144, 2007.
[33]
Andrew Whitaker, Richard S. Cox, Marianne Shaw, and Steven D. Gribble. Constructing services with interposable virtual hardware. In Proceedings of the 1st USENIX Symposium on Networked Systems Design and Implementation, pages 169--182, 2004.
[34]
Wine. http://www.winehq.org/.
[35]
Emmett Witchel, Josh Cates, and Krste Asanović. Mondrian memory protection. In Proceedings of the 10th International Conference on Architectural Support for Programming Languages and Operating Systems, pages 304--316, 2002.

Cited By

View all
  • (2023)Always-On Recording Framework for Serverless Computations: Opportunities and ChallengesProceedings of the 1st Workshop on SErverless Systems, Applications and MEthodologies10.1145/3592533.3592810(41-49)Online publication date: 8-May-2023
  • (2023)Serverless Computing: State-of-the-Art, Challenges and OpportunitiesIEEE Transactions on Services Computing10.1109/TSC.2022.316655316:2(1522-1539)Online publication date: 1-Mar-2023
  • (2022)VMSHProceedings of the Seventeenth European Conference on Computer Systems10.1145/3492321.3519589(678-696)Online publication date: 28-Mar-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
EuroSys '13: Proceedings of the 8th ACM European Conference on Computer Systems
April 2013
401 pages
ISBN:9781450319942
DOI:10.1145/2465351
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: 15 April 2013

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Research-article

Conference

EuroSys '13
Sponsor:
EuroSys '13: Eighth Eurosys Conference 2013
April 15 - 17, 2013
Prague, Czech Republic

Acceptance Rates

EuroSys '13 Paper Acceptance Rate 28 of 143 submissions, 20%;
Overall Acceptance Rate 241 of 1,308 submissions, 18%

Upcoming Conference

EuroSys '25
Twentieth European Conference on Computer Systems
March 30 - April 3, 2025
Rotterdam , Netherlands

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)14
  • Downloads (Last 6 weeks)1
Reflects downloads up to 14 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Always-On Recording Framework for Serverless Computations: Opportunities and ChallengesProceedings of the 1st Workshop on SErverless Systems, Applications and MEthodologies10.1145/3592533.3592810(41-49)Online publication date: 8-May-2023
  • (2023)Serverless Computing: State-of-the-Art, Challenges and OpportunitiesIEEE Transactions on Services Computing10.1109/TSC.2022.316655316:2(1522-1539)Online publication date: 1-Mar-2023
  • (2022)VMSHProceedings of the Seventeenth European Conference on Computer Systems10.1145/3492321.3519589(678-696)Online publication date: 28-Mar-2022
  • (2022)Isolating functions at the hardware limit with virtinesProceedings of the Seventeenth European Conference on Computer Systems10.1145/3492321.3519553(644-662)Online publication date: 28-Mar-2022
  • (2021)How to design a library OS for practical containers?Proceedings of the 17th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/3453933.3454011(15-28)Online publication date: 7-Apr-2021
  • (2020)FirecrackerProceedings of the 17th Usenix Conference on Networked Systems Design and Implementation10.5555/3388242.3388273(419-434)Online publication date: 25-Feb-2020
  • (2019)ExtOSProceedings of the 10th ACM SIGOPS Asia-Pacific Workshop on Systems10.1145/3343737.3343742(31-39)Online publication date: 19-Aug-2019
  • (2018)The Fusion of VMs and Processes: A System Perspective of cKernel2018 IEEE 38th International Conference on Distributed Computing Systems (ICDCS)10.1109/ICDCS.2018.00141(1404-1409)Online publication date: Jul-2018
  • (2017)Binary compatible graphics support in Android for running iOS appsProceedings of the 18th ACM/IFIP/USENIX Middleware Conference10.1145/3135974.3135981(55-67)Online publication date: 11-Dec-2017
  • (2017)UIWearProceedings of the 23rd Annual International Conference on Mobile Computing and Networking10.1145/3117811.3117819(369-382)Online publication date: 4-Oct-2017
  • Show More Cited By

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