Results 1 -
6 of
6
The Flux OSKit: A substrate for kernel and language research
- In Proceedings of the 16th ACM Symposium on Operating Systems Principles
, 1997
"... Implementing new operating systems is tedious, costly, and often impractical except for large projects. The Flux OSKit addresses this problem in a novel way by providing clean, well-documented OS components designed to be reused in a wide variety of other environments, rather than defining a new OS ..."
Abstract
-
Cited by 108 (1 self)
- Add to MetaCart
Implementing new operating systems is tedious, costly, and often impractical except for large projects. The Flux OSKit addresses this problem in a novel way by providing clean, well-documented OS components designed to be reused in a wide variety of other environments, rather than defining a new OS structure. The OSKit uses unconventional techniques to maximize its usefulness, such as intentionally exposing implementation details and platform-specific facilities. Further, the OSKit demonstrates a technique that allows unmodified code from existing mature operating systems to be incorporated quickly and updated regularly, by wrapping it with a small amount of carefully designed “glue” code to isolate its dependencies and export well-defined interfaces. The OSKit uses this technique to incorporate over 230,000 lines of stable code including device drivers, file systems, and network protocols. Our experience demonstrates that this approach to component software structure and reuse has a surprisingly large impact in the OS implementation domain. Four real-world examples show how the OSKit is catalyzing research and development in operating systems and programming languages. 1
Unmodified device driver reuse and improved system dependability via virtual machines
- In Proceedings of the 6th Symposium on Operating Systems Design and Implementation
, 2004
"... We propose a method to reuse unmodified device drivers and to improve system dependability using virtual machines. We run the unmodified device driver, with its original operating system, in a virtual machine. This approach enables extensive reuse of existing and unmodified drivers, independent of t ..."
Abstract
-
Cited by 82 (8 self)
- Add to MetaCart
We propose a method to reuse unmodified device drivers and to improve system dependability using virtual machines. We run the unmodified device driver, with its original operating system, in a virtual machine. This approach enables extensive reuse of existing and unmodified drivers, independent of the OS or device vendor, significantly reducing the barrier to building new OS endeavors. By allowing distinct device drivers to reside in separate virtual machines, this technique isolates faults caused by defective or malicious drivers, thus improving a system’s dependability. We show that our technique requires minimal support infrastructure and provides strong fault isolation. Our prototype’s network performance is within 3–8 % of a native Linux system. Each additional virtual machine increases the CPU utilization by about 0.12%. We have successfully reused a wide variety of unmodified Linux network, disk, and PCI device drivers. 1
The Flux OS Toolkit: Reusable components for OS implementation
- In Proc. of Sixth Workshop on Hot Topics in Operating Systems
, 1997
"... To an unappreciated degree, research both in operating systems and their programming languages has been severely hampered by the lack of cleanly reusable code providing mundane low-level OS infrastructure such as bootstrapcode and device drivers. The Flux OS Toolkit solves this problem by providing ..."
Abstract
-
Cited by 12 (1 self)
- Add to MetaCart
To an unappreciated degree, research both in operating systems and their programming languages has been severely hampered by the lack of cleanly reusable code providing mundane low-level OS infrastructure such as bootstrapcode and device drivers. The Flux OS Toolkit solves this problem by providing a set of clean, well-documented components. These components can be used as basic buildingblocks both for operating systems and for booting language run-time systems directly on the hardware. The toolkit’s implementation itself embodies reuse techniques by incorporating components such as device drivers, file systems, and networking code, unchanged, from other sources. We believe the kit also makes feasible the production of highly assured embedded and operating systems: by enabling reuse of low-level code, the high cost of detailed verification of that code can be amortized over many systems for critical environments. The OS toolkit is already heavily used in several different OS and programming language projects, and has already catalyzed research and development that would otherwise never have been attempted.
Providing a Linux API on the Scalable K42 Kernel
"... K42 is an open-source research kernel targeted for 64bit cache-coherent multiprocessor systems. It was designed to scale up to multiprocessor systems containing hundreds or thousands of processors and to scale down to perform well on 2- to 4-way multiprocessors. K42's goal was to re-design the core ..."
Abstract
-
Cited by 4 (4 self)
- Add to MetaCart
K42 is an open-source research kernel targeted for 64bit cache-coherent multiprocessor systems. It was designed to scale up to multiprocessor systems containing hundreds or thousands of processors and to scale down to perform well on 2- to 4-way multiprocessors. K42's goal was to re-design the core of an operating system, but not an entire application environment. We wanted to use a commonly available interface with a large established code base. Because Linux is open source and widely available, we chose to support its application environment by supporting the Linux API and ABI. There were some interesting complications as well as advantages that arose from K42's structure because our implementation of the Linux application environment was done primarily in user space, had to interface with K42's object-oriented technology, and used fine-grained locking. Other research systems efforts directed at achieving a high degree of scalability and maintainability exhibit similar structural characteristics. In this
Reuse Linux Device Drivers in Embedded Systems
"... Device driver is one component that is usually ignored by research community in operating systems. Their design mechanisms, accessing semantics, operating behaviors and runtime performance are crucial to operating system architecture and total system performance. In this paper, an I/O package to reu ..."
Abstract
- Add to MetaCart
Device driver is one component that is usually ignored by research community in operating systems. Their design mechanisms, accessing semantics, operating behaviors and runtime performance are crucial to operating system architecture and total system performance. In this paper, an I/O package to reuse Linux device drivers in embedded system is introduced. Via this package, the whole Linux device-driver source tree can be reused without any modifications. The motivations why to do this work and the detailed design and implementation issues are addressed. This I/O package was also quantitatively evaluated. The empirical results show that the incorporated drivers' performance is comparable with those operated under Linux, and those native drivers under Vega kernel. 1. INTRODUCTION For those who work with operating systems, they know that their biggest troubles mostly come from the fact that there always exist devices waiting for new drivers. And so do the existing drivers waiting for mai...
An Integrated Core-Work for Fast Information-Appliance Buildup
, 1998
"... The advances in digital technologies have given birth to many applications, which were hard to image in the past decade but are real in current time. For the versatile but specialized applications, general system software in tradition does not perform well to serve their specific demanding reques ..."
Abstract
- Add to MetaCart
The advances in digital technologies have given birth to many applications, which were hard to image in the past decade but are real in current time. For the versatile but specialized applications, general system software in tradition does not perform well to serve their specific demanding requests, because the general approach is designed to concern with most of the general cases. Besides, there exists complex dependency among software components in a traditional system, such that to modify or to reuse software components is not easy for application designers. In this report, the specialized applications that can be benefited from configurable and customized system components are termed as information-appliances. A framework for building up information-appliances efficiently is the body of this report. All the low-level core components that relate to hardware specifications are designed from scratch. The current version is dedicated for Intel 386 or newer processors. The co...

