Comparing The Architectures of Component
Comparing The Architectures of Component
Component-based Operating
Systems
by Raimi Rufai
Introduction
Motivation
Clarke and Coulson [4] have classified the research efforts in this
area into the following classes, based on the level of extensibility of
the systems:
This article describes recent efforts in this field and compares two
new component based operating systems, namely, Go! [13] and
Pebble [7]. The choice of these two is motivated by their popularity in
current literature, and the fact that they are products of lessons
learned from previously related projects. Thus they could be said to
represent the progress made so far.
Related Work
MMLite [11] does not define a kernel entity, nor any fixed core
abstractions. Abstractions that are typically designed into an
operating system, such as virtual memory management and inter-
process communication, are loadable components in this system.
MMLite employs a unified programming model that is independent of
the privilege issue (i.e., no user vs. kernel distinction). Mutation
makes possible extensibility down to the granularity of a method call.
Mutation allows methods to be dynamically replaced at clean points.
The Microsoft COM Model is employed and IPC can be LPC or RPC
depending on the location of the caller and the callee (transparent
remote invocation). The focus of the MMLite design is on adaptability,
minimalism, and reusability.
Pebble
Go!
In this section, Pebble and Go! are compared based on the following
features:
protection levels
protection mechanism
interrupt handling
extensibility
multithreading
performance
open-source design
Protection Levels
In Pebble, only the nucleus runs in privilege level 0, while all other
components run in user space. In Go!, however, everything runs in
privilege level 0.
Protection Mechanism
Interrupt Handling
Pebble hides the details of interrupts from higher-level components
and uses only semaphores for synchronization. Any interrupt is
caught in the nucleus by a short trampoline function [7] that merely
invokes the appropriate portal. It obtains this portal from the portal
table of the active thread's PD. Essentially, the nucleus delegates the
interrupt handling to a portal. The invoked portal will then invoke the
interrupt dispatcher server. The interrupt dispatcher determines the
source of the interrupt and performs a V operation on the source's
semaphore. Typically, a thread would already be waiting on that
semaphore. This is an application of the chain-of-control design
pattern.
Extensibility
Multithreading
Pebble is inherently multithreaded, with the thread abstraction being
part of the system. However, this is not the case for Go!. The Go!
ORB has no notion of threads. However, a server component may
implement a threading model, and application components needing
thread functionality may invoke the services of such a component.
Multiple such thread manager components may coexist, each
implementing the same or different threading model.
Performance
Open-source Design
Concluding Remarks
Glossary
ACL - Acronym for Access Control List. A database that lists the valid
users of the system and the level of access they have been granted.
Java bytecode - A compiled Java code with extension .class that can
be executed by the Java interpreter, the JVM.
References
1
Back, G., P. Tullmann, L. Stoller, W. C. Hsieh, and J. Lepreau,
"Java Operating Systems: Design and Implementation,"
Technical Report UUCS-98-015, University of Utah, August
1998.
2
Bershad, B. N., S. Savage, P. Pardyak, E. G. Sirer, M. E.
Fiuczynski, D. Becker, C. Chambers, and S. Eggers.
Extensibility, safety and performance in the SPIN operating
system. In Proceedings of the Fifteenth ACM Symposium on
Operating System Principles, pages 267-284, Copper Mountain,
CO, Dec. 1995.
3
Box, D. Essential COM. Addison-Wesley, 1998.
4
Clarke, M., Coulson, G. "An Architecture for Dynamically
Extensible Operating Systems." In Proceedings of the 4th
International Conference on Configurable Distributed Systems
(ICCDS'98), Annapolis MD, USA, May 1998.
5
De Assumpção Jr., J.M. and S.T. Kufuji. Bootstrapping the
Object-Oriented Operating System Merlin: Just Add reflection.
Technical report, Laboratorio de Sistemas Integraveis,
University of São Paulo, Brazil, 1994
6
Engler, D. R., M. F. Kaashoek, and J. OÕToole. Exokernel: An
Operating System Architecture for Application-Level Resource
Management. In Proceedings of the Fifteenth ACM Symposium
on Operating System Principles, pages 251-266, Copper
Mountain, CO, Dec. 1995.
7
Gabber, Eran, Christopher Small, John Bruno, Jose Brustoloni,
and Avi Silberschatz. The Pebble component-based operating
system. In Proceedings of the 1999 USENIX Technical
Conference, pages 267-282, Monterey, CA, USA, June 1999.
8
Ghormley, D. et al. SLIC: An Extensibility System for
Commodity Operating Systems. In Proceedings of the Unsenix
Annual Technology Confference, Usenix, Berkeley, CA, 1998,
pp. 39-48.
9
Go! Home Page. http://goos.sourceforge.net/home.php (23
July, 2002).
10
Heiser, G., K Elphinstone, J. Vochteloo, S. Russell, "The Mungi
Single-Address-Space Operating System," Software: Practice &
Experience, 18(9), 25 July 1998.
11
Helander, J and A. Foring. MMLite: A Highly Componentized
System Architecture. In Proceedings of the Eighth ACM SIGOPS
European Workshop, pp. 6-17, ACM Press, New York, 1998.
12
Law, G. and J. McCann, 26 bit Selections on IA32. In EWOOOS
at ECOOP 2000.
13
Law, G. and J. McCann, A New Protection Model for Component-
Based Operating Systems. In Proceedings of the IEEE
Conference on Computing and Communications, Phoenix, AZ,
USA, February 2000.
14
Law, G. and J. McCann, Decomposition of Preemptive
Scheduling in the Go! Component-Based Operating System. In
ACM SIGOPS European Workshop, 2000.
15
Messer, A. and T. Wilkinson, Components for Operating System
Design, In Proceedings of the International Workshop on Object
Orientation in Operating Systems (IWOOOSÕ96), Seattle, WA,
USA, October 1996. IEEE.
16
Mitchell, J. G., J. J. Gibbons, G. Hamilton, P. B. Kessler, Y. A.
Khalidi, P. Kougiouris, P. W. Madany, M.N. Nelson, M. L. Powell,
and S. R. Radia, "An Overview of the Spring System", In
Proceedings of COMPCON, February 1994.
17
OMG. CORBA/IIOP 2.2 Specification.
http://www.omg.org/corba/corbiiop.htm
18
Pebble Home Page. http://www.bell-
labs.com/project/pebble/ (23 July, 2002).
19
Probert, D., J. L. Bruno, M. Karaorman, "SPACE: A New
Approach to Operating System Abstraction," In Proceedings of
the International Workshop on Object-Orientation in Operating
Systems (IWOOS), pp. 133- 137 (1991).
ftp://ftp.cs.ucsb.edu/pub/papers/space/iwoos91.ps.gz.
20
Rozier, M., A. Abrassimov, F. Armand, I. Boule, M. Gien, M.
Guillemont, F. Hermann, C. Kaiser, S. Langlois, P. Leonard, W.
Neuhauser. CHORUS distributed operating system. In
Computing Systems, pp. 305-370, Vol. 1-4, 1988.
21
Schubert, F.: A Reflective Architecture for an Adaptable Object-
Oriented Operating System Based on C++. ECOOP Workshops
1997, pp. 515-522.
22
Seltzer, M., Endo, Y., Small, C., Smith, K., "An Introduction to
the Architecture of the VINO Kernel". Harvard University
Computer Science Technical Report 34-94, 1994.
23
Seltzer, M., Y. Endo, C. Small, and K. Smith, Dealing with
Disaster: Surviving Misbehaved Kernel Extensions. In
Proceedings of the 2nd OSDI Conference, pp. 213-227 (1996).
24
Small, C. and M. Seltzer, "A Comparison of OS Extension
Technologies," In Proceedings of the 1996 USENIX Technical
Conference, San Diego, CA, Jan. 1996, pp. 41Ñ54.
25
Stallings, W. Operating Systems: Internals and Design
Principles. 4th Ed. Prentice-Hall. 2001.
26
Stankovic, J. A. VEST: A Toolset of Constructing and Analyzing
Component Based Operating Systems for Embedded and Real-
Time Systems. University of Virginia Technical Report, July
2000.
27
Wilkinson, T. and K. Murray. "Extensible, Flexible and Secure
services in Angel, a single address space-operating system." In
International Conference on Algorithms and Architectures for
Parallel Processing (ICA3PP), pages 755-758, Brisbane,
Australia, April 1995. IEEE.
28
Yokote, Y. The Apertos Reflective Operating System: The
Concept and its Implementation. OOPSLA 1992, pp. 414-434
Biography