ACM Home Page
Please provide us with feedback. Feedback
Building appliances out of components using Pebble
Full text PdfPdf (36 KB)
Source ACM SIGOPS European Workshop archive
Proceedings of the 9th workshop on ACM SIGOPS European workshop: beyond the PC: new challenges for the operating system table of contents
Kolding, Denmark
SESSION: Proceedings - only table of contents
Pages: 211 - 216  
Year of Publication: 2000
ISBN:1-23456-789-0
Authors
Kostas Magoutis  Harvard University and MD 233, Cambridge MA
José Carlos Brustoloni  Information Sciences Research Center, Lucent Technologies - Bell Laboratories
Eran Gabber  Information Sciences Research Center, Lucent Technologies - Bell Laboratories
Wee Teck Ng  Information Sciences Research Center, Lucent Technologies - Bell Laboratories
Avi Silberschatz  Information Sciences Research Center, Lucent Technologies - Bell Laboratories
Sponsor
SIGOPS: ACM Special Interest Group on Operating Systems
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 1,   Downloads (12 Months): 24,   Citation Count: 4
Additional Information:

abstract   references   cited by   collaborative colleagues  

Tools and Actions: Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/566726.566769
What is a DOI?

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
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
 
14
15
16
 
17
{Morris00} R. Morris. Personal communication.
18
 
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

Collaborative Colleagues:
Kostas Magoutis: colleagues
José Carlos Brustoloni: colleagues
Eran Gabber: colleagues
Wee Teck Ng: colleagues
Avi Silberschatz: colleagues