Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3302424.3303946acmconferencesArticle/Chapter ViewAbstractPublication PageseurosysConference Proceedingsconference-collections
research-article

SkyBridge: Fast and Secure Inter-Process Communication for Microkernels

Published: 25 March 2019 Publication History
  • Get Citation Alerts
  • Abstract

    Microkernels have been extensively studied over decades. However, IPC (Inter-Process Communication) is still a major factor of runtime overhead, where fine-grained isolation usually leads to excessive IPCs. The main overhead of IPC comes from the involvement of the kernel, which includes the direct cost of mode switches and address space changes, as well as indirect cost due to the pollution of processor structures.
    In this paper, we present SkyBridge, a new communication facility designed and optimized for synchronous IPC in microkernels. SkyBridge requires no involvement of kernels during communication and allows a process to directly switch to the virtual address space of the target process and invoke the target function. SkyBridge retains the traditional virtual address space isolation and thus can be easily integrated into existing microkernels. The key idea of SkyBridge is to leverage a commodity hardware feature for virtualization (i.e., VMFUNC) to achieve efficient IPC. To leverage the hardware feature, SkyBridge inserts a tiny virtualization layer (Rootkernel) beneath the original microkernel (Subkernel). The Rootkernel is carefully designed to eliminate most virtualization overheads. SkyBridge also integrates a series of techniques to guarantee the security properties of IPC.
    We have implemented SkyBridge on three popular open-source microkernels (seL4, Fiasco.OC, and Google Zircon). The evaluation results show that SkyBridge improves the speed of IPC by 1.49x to 19.6x for microbenchmarks. For real-world applications (e.g., SQLite3 database), SkyBridge improves the throughput by 81.9%, 1.44x and 9.59x for the three microkernels on average.

    References

    [1]
    The fiasco.oc microkernel. https://os.inf.tu-dresden.de/fiasco/.
    [2]
    Intel 64 and ia-32 architectures software developer's manual volume 3c. https://software.intel.com/en-us/articles/intel-sdm.
    [3]
    sel4 benchmark results. http://sel4.systems/About/Performance/.
    [4]
    Sqlite3. https://www.sqlite.org/index.html.
    [5]
    The zircon microkernel. https://fuchsia.googlesource.com/zircon.
    [6]
    Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Timothy L. Harris, Alex Ho, Rolf Neugebauer, Ian Pratt, and Andrew Warfield. Xen and the art of virtualization. In Proceedings of the ACM 19th Symposium on Operating Systems Principles, volume 37, pages 164--177, 2003.
    [7]
    Adam Belay, Andrea Bittau, Ali José Mashtizadeh, David Terei, David Maziéres, and Christoforos E. Kozyrakis. Dune: safe user-level access to privileged cpu features. In Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation, pages 335--348, 2012.
    [8]
    Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy. Lightweight remote procedure call. ACM Transactions on Computer Systems, 8(1):37--55, 1990.
    [9]
    Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gün Sirer, Marc E. Fiuczynski, David Becker, Craig Chambers, and Susan J. Eggers. Extensibility safety and performance in the spin operating system. In Proceedings of the ACM 15th Symposium on Operating Systems Principles, volume 29, pages 267--283, 1995.
    [10]
    Xen Project Blog. Stealthy monitoring with xen altp2m. https://blog.xenproject.org/2016/04/13/stealthy-monitoring-with-xen-altp2m.
    [11]
    Miguel Castro, Manuel Costa, Jean-Philippe Martin, Marcus Peinado, Periklis Akritidis, Austin Donnelly, Paul Barham, and Richard Black. Fast byte-granularity software fault isolation. In Proceedings of the ACM 22nd Symposium on Operating Systems Principles, pages 45--58, 2009.
    [12]
    Jeffrey S. Chase, Henry M. Levy, Michael J. Feeley, and Edward D. Lazowska. Sharing and protection in a single-address-space operating system. ACM Transactions on Computer Systems, 12(4):271--307, 1994.
    [13]
    Haibo Chen, Rong Chen, Fengzhe Zhang, Binyu Zang, and Pen-Chung Yew. Live updating operating systems using virtualization. In Proceedings of the 2nd international conference on Virtual execution environments, pages 35--44. ACM, 2006.
    [14]
    Haibo Chen, Jie Yu, Chengqun Hang, Binyu Zang, and Pen-Chung Yew. Dynamic software updating using a relaxed consistency model. IEEE Transactions on Software Engineering, 37(5):679--694, 2011.
    [15]
    Haogang Chen, Daniel Ziegler, Tej Chajed, Adam Chlipala, M. Frans Kaashoek, and Nickolai Zeldovich. Using crash hoare logic for certifying the fscq file system. In Proceedings of the ACM 25th Symposium on Operating Systems Principles, pages 18--37, 2015.
    [16]
    Yaohui Chen, Sebassujeen Reymondjohnson, Zhichuang Sun, and Long Lu. Shreds: Fine-grained execution units with private memory. In 2016 IEEE Symposium on Security and Privacy (SP), pages 56--71, 2016.
    [17]
    Raymond K Clark, E Douglas Jensen, and Franklin D Reynolds. An architectural overview of the alpha real-time distributed kernel. In Proceedings of the USENIX Workshop on Micro-kernels and other Kernel Architectures, pages 27--28, 1992.
    [18]
    Nathan Dautenhahn, Theodoros Kasampalis, Will Dietz, John Criswell, and Vikram Sadanand Adve. Nested kernel: An operating system architecture for intra-kernel privilege separation. In Proceedings of the 20th International Conference on Architectural Support for Programming Languages and Operating Systems, volume 50, pages 191--206, 2015.
    [19]
    Kevin Elphinstone and Gernot Heiser. From l3 to sel4 what have we learnt in 20 years of l4 microkernels. In Proceedings of the ACM 24th Symposium on Operating Systems Principles, pages 133--150, 2013.
    [20]
    Dawson R. Engler, Frans M. Kaashoek, and James O'Toole Jr. Exokernel: an operating system architecture for application-level resource management. In Proceedings of the ACM 15th Symposium on Operating Systems Principles, volume 29, pages 251--266, 1995.
    [21]
    Manuel Fahndrich, Mark Aiken, Chris Hawblitzel, Orion Hodson, Galen C. Hunt, James R. Larus, and Steven Levi. Language support for fast and reliable message-based communication in singularity os. In Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006, volume 40, pages 177--190, 2006.
    [22]
    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, volume 30, pages 137--151, 1996.
    [23]
    Bryan Ford and Jay Lepreau. Evolving mach 3.0 to a migrating thread model. In Proceedings of the USENIX Winter 1994 Technical Conference on USENIX Winter 1994 Technical Conference, pages 9--9, 1994.
    [24]
    Tommaso Frassetto, Patrick Thomas Jauernig, Christopher Liebchen, and Ahmad-Reza Sadeghi. Imix: In-process memory isolation extension. In 27th USENIX Security Symposium (USENIX Security 18), pages 83--97, 2018.
    [25]
    Benjamin Gamsa, Orran Krieger, Jonathan Appavoo, and Michael Stumm. Tornado: maximizing locality and concurrency in a shared memory multiprocessor operating system. In Proceedings of the 3rd Symposium on Operating Systems Design and Implementation, pages 87--100, 1999.
    [26]
    Jayneel Gandhi, Mark D. Hill, and Michael M. Swift. Agile paging: exceeding the best of nested and shadow paging. In 2016 ACM/IEEE 43rd Annual International Symposium on Computer Architecture (ISCA), volume 44, pages 707--718, 2016.
    [27]
    David B. Golub, Randall W. Dean, Alessandro Forin, and Richard F. Rashid. Unix as an application program. Proceedings of the USENIX Summer 1990 Technical Conference on Summer Technical Conference, pages 87--95, 1990.
    [28]
    Per Brinch Hansen. The nucleus of a multiprogramming system. Communications of The ACM, 13(4):238--241, 1970.
    [29]
    Dan Hildebrand. An architectural overview of qnx. Proceedings of the Workshop on Microkernels and Other Kernel Architectures, pages 113--126, 1992.
    [30]
    Zhichao Hua, Dong Du, Yubin Xia, Haibo Chen, and Binyu Zang. EPTI: Efficient defence against meltdown attack for unpatched vms. In 2018 USENIX Annual Technical Conference (USENIX ATC 18), pages 255--266, 2018.
    [31]
    Galen C. Hunt and James R. Larus. Singularity: rethinking the software stack. Operating Systems Review, 41(2):37--49, 2007.
    [32]
    jandem's blog. W⊕x jit-code enabled in firefox. https://jandemooij.nl/blog/2015/12/29/wx-jit-code-enabled-in-firefox/.
    [33]
    Qin Jia, Zhiming Shen, Weijia Song, Robbert van Renesse, and Hakim Weatherspoon. Supercloud: Opportunities and challenges. Operating Systems Review, 49(1):137--141, 2015.
    [34]
    Robert Kaiser and Stephan Wagner. Evolution of the pikeos microkernel. In First International Workshop on Microkernels for Embedded Systems, page 50, 2007.
    [35]
    Avi Kivity, Yaniv Kamay, Dor Laor, Uri Lublin, and Anthony Liguori. kvm: the linux virtual machine monitor. In Linux Symposium, page 225, 2007.
    [36]
    Gerwin Klein, Kevin Elphinstone, Gernot Heiser, June Andronick, David Cock, Philip Derrin, Dhammika Elkaduwe, Kai Engelhardt, Rafal Kolanski, Michael Norrish, Thomas Sewell, Harvey Tuch, and Simon Winwood. sel4: Formal verification of an os kernel. In Proceedings of the ACM 22nd Symposium on Operating Systems Principles, pages 207--220. ACM, 2009.
    [37]
    Eric J. Koldinger, Jeffrey S. Chase, and Susan J. Eggers. Architecture support for single address space operating systems. In Proceedings of the 5th International Conference on Architectural Support for Programming Languages and Operating Systems, volume 27, pages 175--186, 1992.
    [38]
    Andreas Krall. Efficient javavm just-in-time compilation. In Parallel Architectures and Compilation Techniques, 1998. Proceedings. 1998 International Conference on, pages 205--212. IEEE, 1998.
    [39]
    Orran Krieger, Marc A. Auslander, Bryan S. Rosenburg, Robert W. Wisniewski, Jimi Xenidis, Dilma Da Silva, Michal Ostrowski, Jonathan Appavoo, Maria A. Butrico, Mark F. Mergen, Amos Waterland, and Volkmar Uhlig. K42: building a complete operating system. In Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006, volume 40, pages 133--145, 2006.
    [40]
    Chuanpeng Li, Chen Ding, and Kai Shen. Quantifying the cost of context switch. In Proceedings of the 2007 Workshop on Experimental Computer Science, pages 1--1, 2007.
    [41]
    Wenhao Li, Yubin Xia, Haibo Chen, Binyu Zang, and Haibing Guan. Reducing world switches in virtualized environment with flexible cross-world calls. In 2015 ACM/IEEE 42nd Annual International Symposium on Computer Architecture (ISCA), volume 43, pages 375--387, 2015.
    [42]
    Jochen Liedtke. Improving ipc by kernel design. In Proceedings of the ACM 14th Symposium on Operating Systems Principles, volume 27, pages 175--188, 1994.
    [43]
    Jochen Liedtke. On microkernel construction. In Proceedings of the ACM 15th Symposium on Operating Systems Principles, volume 29, pages 237--250, 1995.
    [44]
    Jochen Liedtke, Kevin Elphinstone, Sebastian Schönberg, Hermman Härtig, Gernot Heiser, Nayeem Islam, and Trent Jaeger. Achieved ipc performance (still the foundation for extensibility). In The Sixth Workshop on Hot Topics in Operating Systems, pages 28--31, 1997.
    [45]
    Moritz Lipp, Michael Schwarz, Daniel Gruss, Thomas Prescher, Werner Haas, Anders Fogh, Jann Horn, Stefan Mangard, Paul Kocher, Daniel Genkin, Yuval Yarom, and Mike Hamburg. Meltdown: reading kernel memory from user space. In 27th USENIX Security Symposium (USENIX Security 18), pages 973--990, 2018.
    [46]
    Yutao Liu, Tianyu Zhou, Kexin Chen, Haibo Chen, and Yubin Xia. Thwarting memory disclosure with efficient hypervisor-enforced intradomain isolation. In Proceedings of the 22nd ACM SIGSAC Conference on Computer and Communications Security, pages 1607--1619. ACM, 2015.
    [47]
    Michael L. Scott, Thomas J. LeBlanc, and Brian D. Marsh. Design rationale for psyche a general-purpose multiprocessor operating system. In ICPP (2), pages 255--262, 1988.
    [48]
    Jonathan S. Shapiro, Jonathan M. Smith, and David J. Farber. Eros: a fast capability system. In Proceedings of the ACM 17th Symposium on Operating Systems Principles, volume 34, pages 170--185, 1999.
    [49]
    Zhiming Shen, Zhen Sun, Gur-Eyal Sela, Eugene Bagdasaryan, Christina Delimitrou, Robbert Van Renesse, and Hakim Weatherspoon. X-containers: Breaking down barriers to improve performance and isolation of cloud-native containers. In ACM International Conference on Architectural Support for Programming Languages and Operating Systems, 2019.
    [50]
    Lei Shi, Yuming Wu, Yubin Xia, Nathan Dautenhahn, Haibo Chen, and Binyu Zang. Deconstructing xen. In 24th Network and Distributed System Security Symposium (NDSS 2017), 2017.
    [51]
    Livio Soares and Michael Stumm. Flexsc: flexible system call scheduling with exception-less system calls. In Proceedings of the 9th USENIX Conference on Operating Systems Design and Implementation, pages 33--46, 2010.
    [52]
    Dan Tsafrir. The context-switch overhead inflicted by hardware interrupts (and the enigma of do-nothing loops). In Proceedings of the 2007 Workshop on Experimental Computer Science, pages 3--3, 2007.
    [53]
    Anjo Vahldiek-Oberwagner, Eslam Elnikety, Deepak Garg, and Peter Druschel. Erim: Secure and efficient in-process isolation with memory protection keys. arXiv preprint arXiv:1801.06822, 2018.
    [54]
    Lluïs Vilanova, Muli Ben-Yehuda, Nacho Navarro, Yoav Etsion, and Mateo Valero. Codoms: protecting software with code-centric memory domains. 2014 ACM/IEEE 41st Annual International Symposium on Computer Architecture (ISCA), 42(3):469--480, 2014.
    [55]
    Lluís Vilanova, Marc Jordà, Nacho Navarro, Yoav Etsion, and Mateo Valero. Direct inter-process communication (dipc): Repurposing the codoms architecture to accelerate ipc. In Proceedings of the Twelfth European Conference on Computer Systems, pages 16--31, 2017.
    [56]
    Huaimin Wang, Peichang Shi, and Yiming Zhang. Jointcloud: A cross-cloud cooperation architecture for integrated internet service customization. In 2017 IEEE 37th International Conference on Distributed Computing Systems (ICDCS), pages 1846--1855, 2017.
    [57]
    Robert N.M. Watson, Robert M. Norton, Jonathan Woodruff, Simon W. Moore, Peter G. Neumann, Jonathan Anderson, David Chisnall, Brooks Davis, Ben Laurie, Michael Roe, Nirav H. Dave, Khilan Gudka, Alexandre Joannou, A. Theodore Markettos, Ed Maste, Steven J. Murdoch, Colin Rothwell, Stacey D. Son, and Munraj Vadera. Fast protection-domain crossing in the cheri capability-system architecture. IEEE Micro, 36(5):38--49, 2016.
    [58]
    Wikipedia. Kernel page-table isolation. https://en.wikipedia.org/wiki/Kernel_page-table_isolation.
    [59]
    Jonathan Woodruff, Robert N. M. Watson, David Chisnall, Simon W. Moore, Jonathan Anderson, Brooks Davis, Ben Laurie, Peter G. Neumann, Robert Norton, and Michael Roe. The cheri capability model: revisiting risc in an age of risk. 2014 ACM/IEEE 41st Annual International Symposium on Computer Architecture (ISCA), 42(3):457--468, 2014.
    [60]
    William A. Wulf, Ellis S. Cohen, William M. Corwin, Anita K. Jones, Roy Levin, C. Pierson, and Fred J. Pollack. Hydra: the kernel of a multiprocessor operating system. Communications of The ACM, 17(6):337--345, 1974.
    [61]
    Fengzhe Zhang, Jin Chen, Haibo Chen, and Binyu Zang. Cloudvisor: retrofitting protection of virtual machines in multi-tenant cloud with nested virtualization. In Proceedings of the ACM 23rd Symposium on Operating Systems Principles, pages 203--216, 2011.
    [62]
    Yajin Zhou, Xiaoguang Wang, Yue Chen, and Zhi Wang. Armlock: Hardware-based fault isolation for arm. In Proceedings of the 21th ACM SIGSAC Conference on Computer and Communications Security, pages 558--569, 2014.
    [63]
    Khawar M. Zuberi, Padmanabhan Pillai, and Kang G. Shin. Emeralds: a small-memory real-time microkernel. In Proceedings of the ACM 17th Symposium on Operating Systems Principles, volume 34, pages 277--299, 1999.

    Cited By

    View all
    • (2024)BrickOS: specialized kernels for heterogeneous hardware resourcesSCIENTIA SINICA Informationis10.1360/SSI-2022-041354:3(491)Online publication date: 11-Mar-2024
    • (2023)Diciclo: Flexible User-level Services for Efficient Multitenant IsolationACM Transactions on Computer Systems10.1145/363940442:1-2(1-47)Online publication date: 30-Dec-2023
    • (2023)GuaNary: Efficient Buffer Overflow Detection In Virtualized Clouds Using Intel EPT-based Sub-Page Write Protection SupportProceedings of the ACM on Measurement and Analysis of Computing Systems10.1145/36267877:3(1-26)Online publication date: 7-Dec-2023
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    EuroSys '19: Proceedings of the Fourteenth EuroSys Conference 2019
    March 2019
    714 pages
    ISBN:9781450362818
    DOI:10.1145/3302424
    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: 25 March 2019

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Research-article
    • Research
    • Refereed limited

    Funding Sources

    • the National Key R&D Program of China
    • the National Natural Science Foundation of China

    Conference

    EuroSys '19
    Sponsor:
    EuroSys '19: Fourteenth EuroSys Conference 2019
    March 25 - 28, 2019
    Dresden, Germany

    Acceptance Rates

    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)193
    • Downloads (Last 6 weeks)27

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)BrickOS: specialized kernels for heterogeneous hardware resourcesSCIENTIA SINICA Informationis10.1360/SSI-2022-041354:3(491)Online publication date: 11-Mar-2024
    • (2023)Diciclo: Flexible User-level Services for Efficient Multitenant IsolationACM Transactions on Computer Systems10.1145/363940442:1-2(1-47)Online publication date: 30-Dec-2023
    • (2023)GuaNary: Efficient Buffer Overflow Detection In Virtualized Clouds Using Intel EPT-based Sub-Page Write Protection SupportProceedings of the ACM on Measurement and Analysis of Computing Systems10.1145/36267877:3(1-26)Online publication date: 7-Dec-2023
    • (2023)xOSProceedings of the 14th ACM SIGOPS Asia-Pacific Workshop on Systems10.1145/3609510.3609817(1-8)Online publication date: 24-Aug-2023
    • (2023)FastWake: Revisiting Host Network Stack for Interrupt-mode RDMAProceedings of the 7th Asia-Pacific Workshop on Networking10.1145/3600061.3600063(1-7)Online publication date: 29-Jun-2023
    • (2023)Exit-Less, Isolated, and Shared Access for Virtual MachinesProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3582016.3582042(224-237)Online publication date: 25-Mar-2023
    • (2023)ISA-Grid: Architecture of Fine-grained Privilege Control for Instructions and RegistersProceedings of the 50th Annual International Symposium on Computer Architecture10.1145/3579371.3589050(1-15)Online publication date: 17-Jun-2023
    • (2023)Hawkeye: Eliminating Kernel Address Leakage in Normal Data FlowsIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2022.319332720:4(3208-3221)Online publication date: 1-Jul-2023
    • (2023)A Runtime Security Monitoring Architecture for Embedded Hypervisors2023 IEEE 36th International System-on-Chip Conference (SOCC)10.1109/SOCC58585.2023.10256735(1-6)Online publication date: 5-Sep-2023
    • (2023)The Opportunities and Limitations of Extended Page Table Switching for Fine-Grained IsolationIEEE Security and Privacy10.1109/MSEC.2023.325138521:3(16-26)Online publication date: 1-May-2023
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media