|
ABSTRACT
Appliances are special purpose systems that offer high processing speed, ease of configuration, safety, fault isolation, and minimal need for administration by human experts. Traditional approaches to building an appliance operating system have been either building it from scratch [CacheOS] or stripping down a monolithic kernel to its basic components [Jaeger99]. The former approach is costly and the resulting product is likely to be highly specialized and not easily extensible. The latter approach is not easy, as the OS code and data structures are often shared and closely intertwined. The resulting OS is also likely to be coarse-grained and not easily customizable. Most appliances are network-centric (e.g. HTTP caches, proxies, file servers, routers) in the sense that they require high-performance network connections. Such performance is often achieved with application-specific specialization of system I/O [Cao95] requiring a modification of a portion of the operating system, such as the protocol stack or the file system.Safety is a major concern for appliances, since new functions are constantly added, and there is never enough time to debug all possible interactions, especially when third party software is running on the appliance. The problem is more severe with legacy software written in C or other unsafe languages (in contrast with type-safe languages such as Java). Extensible routers are an example of network appliances where custom software processing has to be quickly added and safety is paramount. Diagnostic code and custom (e.g. multimedia) schedulers are also examples of extensions that appliances will need to support.Resource management is especially important for appliances. New operating system abstractions such as paths [Mosberger96], resource containers [Banga99], reservation domains [Bruno98] and activities [Jones95] have been proposed for resource management and control. We believe that an appliance operating system should be flexible enough to support such abstractions. It should also be able to overlay resource management in modular operating systems without such support.Pebble [Gabber99] is a component-based operating system that combines efficient IPC with strong modularity and safety features. Pebble provides the necessary infrastructure for building fine-grained, modular operating systems for appliances out of reusable components. We found that a typical network appliance application (e.g. a Web server) built on Pebble using components has comparable performance to a traditional monolithic kernel. In this way, there is no performance reason not to use a safer, more modular component structure for such appliances. Moreover, we claim that Pebble is a general purpose operating system framework that allows us to implement diverse OS structures and mechanisms, alleviating the need for writing specialized operating systems from scratch.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
{Banga00} G. Banga, Auto-diagnosis of Field Problems in an Appliance Operating System, in Proceedings of the 2000 USENIX Annual Technical Conference, pages 293-306, June 2000.
|
| |
3
|
{Blake98} S. Blake, et al., An Architecture for Differentiated Services, Network Working Group RFC 2475.
|
| |
4
|
{Bruno98} J. Bruno, et al. The Eclipse Operating System: Providing Quality of Service via Reservation Domains, in Proceedings of 1998 USENIX Technical Conference, pages 235-246, June 1998.
|
| |
5
|
{Brustoloni98} J. Brustoloni, P. Steenkiste. User-Level Protocol Servers with Kernel-Level Performance, in Proceedings of the INFOCOM'98, pages 463-471, March 1998.
|
| |
6
|
{Brustoloni99} J. Brustoloni. Interoperation of Copy Avoidance in Network and File I/O, in Proceedings of the INFOCOM'99, pages 534-542, March 1999.
|
| |
7
|
{CacheOS} CacheOS. http://www.cacheflow.com/technology/
|
 |
8
|
Pei Cao , Edward W. Felten , Anna R. Karlin , Kai Li, A study of integrated prefetching and caching strategies, Proceedings of the 1995 ACM SIGMETRICS joint international conference on Measurement and modeling of computer systems, p.188-197, May 15-19, 1995, Ottawa, Ontario, Canada
|
 |
9
|
|
 |
10
|
|
| |
11
|
{Gabber99} E. Gabber et al. The Pebble Component-Based Operating System, In Proceedings of the 1999 USENIX Annual Technical Conference, pages 267-281, June 1999.
|
| |
12
|
|
 |
13
|
Alain Gefflaut , Trent Jaeger , Yoonho Park , Jochen Liedtke , Kevin J. Elphinstone , Volkmar Uhlig , Jonathon E. Tidswell , Luke Deller , Lars Reuther, The SawMill multiserver approach, Proceedings of the 9th workshop on ACM SIGOPS European workshop: beyond the PC: new challenges for the operating system, September 17-20, 2000, Kolding, Denmark
[doi> 10.1145/566726.566751]
|
| |
14
|
|
 |
15
|
M. Frans Kaashoek , Dawson R. Engler , Gregory R. Ganger , Hector M. Briceño , Russell Hunt , David Mazières , Thomas Pinckney , Robert Grimm , John Jannotti , Kenneth Mackenzie, Application performance and flexibility on exokernel systems, Proceedings of the sixteenth ACM symposium on Operating systems principles, p.52-65, October 05-08, 1997, Saint Malo, France
|
 |
16
|
|
| |
17
|
{Morris00} R. Morris. Personal communication.
|
 |
18
|
Robert Morris , Eddie Kohler , John Jannotti , M. Frans Kaashoek, The Click modular router, Proceedings of the seventeenth ACM symposium on Operating systems principles, p.217-231, December 12-15, 1999, Charleston, South Carolina, United States
|
| |
19
|
{Nahum99} E. Nahum et al. Performance Issues in WWW Servers, IBM Technical Report, 1999
|
| |
20
|
|
| |
21
|
{Small96} C. Small, M. Seltzer. A Comparison of Operating System Extension Technologies, In Proceedings of the USENIX'96 Annual Technical Conference, pages 41-54, January 1996.
|
| |
22
|
|
| |
23
|
{Sullivan00} D. Sullivan, M. Seltzer, Isolation with Flexibility: A Resource Management Framework for Central Servers, in Proceedings of the 2000 USENIX Technical Conference, pages 337-350, June 2000.
|
| |
24
|
{Transmeta00} http://www.transmeta.com
|
| |
25
|
{Usenix00} L. Torvalds, BOF Session at 2000 USENIX Technical Conference, June 2000.
|
 |
26
|
Robert Wahbe , Steven Lucco , Thomas E. Anderson , Susan L. Graham, Efficient software-based fault isolation, Proceedings of the fourteenth ACM symposium on Operating systems principles, p.203-216, December 05-08, 1993, Asheville, North Carolina, United States
|
CITED BY 4
|
|
|
|
|
|
|
|
|
|
|
Geoff Coulson , Gordon Blair , Paul Grace , Francois Taiani , Ackbar Joolia , Kevin Lee , Jo Ueyama , Thirunavukkarasu Sivaharan, A generic component model for building systems software, ACM Transactions on Computer Systems (TOCS), v.26 n.1, p.1-42, February 2008
|
|