The Experts below are selected from a list of 792 Experts worldwide ranked by ideXlab platform
Antti Kantee - One of the best experts on this subject based on the ideXlab platform.
-
rump file systems Kernel code reborn
USENIX Annual Technical Conference, 2009Co-Authors: Antti KanteeAbstract:When Kernel functionality is desired in userspace, the common approach is to reimplement it for userspace interfaces. We show that use of existing Kernel file systems in userspace programs is possible without modifying the Kernel file system code base. Two different operating modes are explored: 1) a transparent mode, in which the file system is mounted in the typical fashion by using the Kernel code as a userspace server, and 2) a standalone mode, in which applications can use a Kernel file system as a library. The first mode provides isolation from the trusted computing base and a secure way for mounting untrusted file systems on a Monolithic Kernel. The second mode is useful for file system utilities and applications, such as populating an image or viewing the contents without requiring host operating system Kernel support. Additional uses for both modes include debugging, development and testing. The design and implementation of the Runnable Userspace Meta Program file system (rump fs) framework for NetBSD is presented. Using rump, ten diskbased file systems, a memory file system, a network file system and a userspace framework file system have been tested to be functional. File system performance for an estimated typical workload is found to be ±5% of Kernel performance. The prototype of a similar framework for Linux was also implemented and portability was verified: Linux file systems work on NetBSD and NetBSD file systems work on Linux. Finally, the implementation is shown to be maintainable by examining the 1.5 year period it has been a part of NetBSD.
-
puffs - Pass-to-Userspace Framework File System
2007Co-Authors: Antti KanteeAbstract:Fault tolerant and secure operating systems are a worthwhile goal. A known method for accomplishing fault tolerance and security is isolation. This means running separate operating system services in separate protection domains so that they cannot interfere with each other, and can communicate only via well-defined messaging interfaces. Isolation and message passing brings inherent overhead when compared to services doing communication by accessing each others memory directly. Toaddress this, the ultimate goal would be to be able to run the Kernel subsystems in separate domains during development and testing, but have a drop-in availability to make them run in Kernel mode for performance critical application scenarios. Still today, most operating systems are written purely with C and some assembly using the Monolithic Kernel approach, where all operating system code runs within a single protection domain. Asingle error in any subsystem can bring the whole operating system down. This work presents puffs-the Pass-to-Userspace Framework File System- shipped with the NetBSD Operating System. It is a framework for implementing file systems outside of the Kernel in a separate protection domain in a user process. The implementation is discussed in-depth for a Kernel programmer audience. The benefits in implementation simplicity and increased security and fault tolerance are argued to outweigh the measured overhead when compared with a classic in-Kernel file system. Aconcrete result of the work is a completely BSD-licensed sshfs implementation
Vikram Adve - One of the best experts on this subject based on the ideXlab platform.
-
Nested Kernel: An Operating System Architecture for Intra-Kernel Privilege Separation
2016Co-Authors: Nathan Dautenhahn, Theodoros Kasampalis, Will Dietz, John Criswell, Vikram AdveAbstract:Monolithic operating system designs undermine the security of computing systems by allowing single exploits anywhere in the Kernel to enjoy full supervisor privilege. The nested Kernel operating system architecture addresses this problem by “nesting ” a small isolated Kernel within a traditional Monolithic Kernel. The “nested Kernel ” interposes on all updates to virtual memory translations to assert protections on physical memory, thus significantly reducing the trusted computing base for memory access control enforcement. We incorporated the nested Kernel architecture into FreeBSD on x86-64 hardware while allowing the entire operating system, including untrusted components, to operate at the highest hardware privilege level by write-protecting MMU translations and de-privileging the untrusted part of the Kernel. Our implementation inherently enforces Kernel code integrity while still allowing dynamically loaded Kernel modules, thus defending against code injection attacks. We also demonstrate that the nested Kernel architecture allows Kernel developers to isolate memory in ways not possible in Monolithic Kernels by introducing write-mediation and write-logging services to protect critical system data struc-tures. Performance of the nested Kernel prototype shows modest overheads: < 1 % average for Apache and 2.7 % for Kernel compile. Overall, our results and experience show that the nested Kernel design can be retrofitted to existing Monolithic Kernels, providing important security benefits
-
nested Kernel an operating system architecture for intra Kernel privilege separation
Architectural Support for Programming Languages and Operating Systems, 2015Co-Authors: Nathan Dautenhahn, Theodoros Kasampalis, Will Dietz, John Criswell, Vikram AdveAbstract:Monolithic operating system designs undermine the security of computing systems by allowing single exploits anywhere in the Kernel to enjoy full supervisor privilege. The nested Kernel operating system architecture addresses this problem by "nesting" a small isolated Kernel within a traditional Monolithic Kernel. The "nested Kernel" interposes on all updates to virtual memory translations to assert protections on physical memory, thus significantly reducing the trusted computing base for memory access control enforcement. We incorporated the nested Kernel architecture into FreeBSD on x86-64 hardware while allowing the entire operating system, including untrusted components, to operate at the highest hardware privilege level by write-protecting MMU translations and de-privileging the untrusted part of the Kernel. Our implementation inherently enforces Kernel code integrity while still allowing dynamically loaded Kernel modules, thus defending against code injection attacks. We also demonstrate that the nested Kernel architecture allows Kernel developers to isolate memory in ways not possible in Monolithic Kernels by introducing write-mediation and write-logging services to protect critical system data structures. Performance of the nested Kernel prototype shows modest overheads:
Nathan Dautenhahn - One of the best experts on this subject based on the ideXlab platform.
-
Nested Kernel: An Operating System Architecture for Intra-Kernel Privilege Separation
2016Co-Authors: Nathan Dautenhahn, Theodoros Kasampalis, Will Dietz, John Criswell, Vikram AdveAbstract:Monolithic operating system designs undermine the security of computing systems by allowing single exploits anywhere in the Kernel to enjoy full supervisor privilege. The nested Kernel operating system architecture addresses this problem by “nesting ” a small isolated Kernel within a traditional Monolithic Kernel. The “nested Kernel ” interposes on all updates to virtual memory translations to assert protections on physical memory, thus significantly reducing the trusted computing base for memory access control enforcement. We incorporated the nested Kernel architecture into FreeBSD on x86-64 hardware while allowing the entire operating system, including untrusted components, to operate at the highest hardware privilege level by write-protecting MMU translations and de-privileging the untrusted part of the Kernel. Our implementation inherently enforces Kernel code integrity while still allowing dynamically loaded Kernel modules, thus defending against code injection attacks. We also demonstrate that the nested Kernel architecture allows Kernel developers to isolate memory in ways not possible in Monolithic Kernels by introducing write-mediation and write-logging services to protect critical system data struc-tures. Performance of the nested Kernel prototype shows modest overheads: < 1 % average for Apache and 2.7 % for Kernel compile. Overall, our results and experience show that the nested Kernel design can be retrofitted to existing Monolithic Kernels, providing important security benefits
-
nested Kernel an operating system architecture for intra Kernel privilege separation
Architectural Support for Programming Languages and Operating Systems, 2015Co-Authors: Nathan Dautenhahn, Theodoros Kasampalis, Will Dietz, John Criswell, Vikram AdveAbstract:Monolithic operating system designs undermine the security of computing systems by allowing single exploits anywhere in the Kernel to enjoy full supervisor privilege. The nested Kernel operating system architecture addresses this problem by "nesting" a small isolated Kernel within a traditional Monolithic Kernel. The "nested Kernel" interposes on all updates to virtual memory translations to assert protections on physical memory, thus significantly reducing the trusted computing base for memory access control enforcement. We incorporated the nested Kernel architecture into FreeBSD on x86-64 hardware while allowing the entire operating system, including untrusted components, to operate at the highest hardware privilege level by write-protecting MMU translations and de-privileging the untrusted part of the Kernel. Our implementation inherently enforces Kernel code integrity while still allowing dynamically loaded Kernel modules, thus defending against code injection attacks. We also demonstrate that the nested Kernel architecture allows Kernel developers to isolate memory in ways not possible in Monolithic Kernels by introducing write-mediation and write-logging services to protect critical system data structures. Performance of the nested Kernel prototype shows modest overheads:
Wu Wenzhong - One of the best experts on this subject based on the ideXlab platform.
-
General Performance Assesement of the L4/Fiasco Micro-Kernel
2015Co-Authors: Cheng Guanghui, Zhou Qingguo, Nicholas Mc Guire, Wu WenzhongAbstract:This paper presents the experimental study of the performance of L4Linux on top of L4/Fiasco and Linux. Holding the hardware constant and using the dierent benchmark tools to measure a list of performances in order to give us a global view for performance comparison of L4Linux/Fiasco and Linux which could separately stand for the micro-Kernel and Monolithic Kernel. Our experiments and analysis show the concrete measurement about their performances and in the end we present our conclusions. In Addition through these benchmarks we nd some problems and maybe they are new task for the L4 community.
-
General Performance Assesement of the L4/Fiasco Micro-Kernel ∗
2015Co-Authors: Cheng Guanghui, Zhou Qingguo, Nicholas Mc Guire, Wu WenzhongAbstract:This paper presents the experimental study of the performance of L4Linux on top of L4/Fiasco and Linux. Holding the hardware constant and using the different benchmark tools to measure a list of performances in order to give us a global view for performance comparison of L4Linux/Fiasco and Linux which could separately stand for the micro-Kernel and Monolithic Kernel. Our experiments and analysis show the concrete measurement about their performances and in the end we present our conclusions. In Addition through these benchmarks we find some problems and maybe they are new task for the L4 community.
Haibo Chen - One of the best experts on this subject based on the ideXlab platform.
-
XPC: Architectural Support for Secure and Efficient Cross Process Call
2019 ACM IEEE 46th Annual International Symposium on Computer Architecture (ISCA), 2019Co-Authors: Dong Du, Bin Yu Zang, Haibo ChenAbstract:MicroKernel has many intriguing features like security, fault-tolerance, modularity and customizability, which recently stimulate a resurgent interest in both academia and industry (including seL4, QNX and Google's Fuchsia OS). However, IPC (inter-process communication), which is known as the Achilles' Heel of microKernels, is still the major factor for the overall (poor) OS performance. Besides, IPC also plays a vital role in Monolithic Kernels like Android Linux, as mobile applications frequently communicate with plenty of user-level services through IPC. Previous software optimizations of IPC usually cannot bypass the Kernel which is responsible for domain switching and message copying/remapping; hardware solutions like tagged memory or capability replace page tables for isolation, but usually require non-trivial modification to existing software stack to adapt the new hardware primitives. In this paper, we propose a hardware-assisted OS primitive, XPC (Cross Process Call), for fast and secure synchronous IPC. XPC enables direct switch between IPC caller and callee without trapping into the Kernel, and supports message passing across multiple processes through the invocation chain without copying. The primitive is compatible with the traditional address space based isolation mechanism and can be easily integrated into existing microKernels and Monolithic Kernels. We have implemented a prototype of XPC based on a Rocket RISC-V core with FPGA boards and ported two microKernel implementations, seL4 and Zircon, and one Monolithic Kernel implementation, Android Binder, for evaluation. We also implement XPC on GEM5 simulator to validate the generality. The result shows that XPC can reduce IPC call latency from 664 to 21 cycles, up to 54.2× improvement on Android Binder, and improve the performance of real-world applications on microKernels by 1.6× on Sqlite3 and 10× on an HTTP server with minimal hardware resource cost.