From: Joanna Muench (joannam_at_spro.net)
Date: Wed Jan 14 2004 - 12:34:30 PST
The advent of the 64-bit processor allowed the development of the
single-address-space OS described in Chase et al. (1994). The paper
argues that a single-address-space system is a significant improvement
on traditional systems, providing greater reliability, easing sharing
and all those good things. The authors motivate the system by pointing
out the design tradeoffs between protection, performance and integration
forced by private-address-space systems. The paper summarizes the
fundamental concepts to the system, including now-familiar capabilities,
protection domains and portals, the point of access to a domain. Portals
are required since sharing between threads takes place via shared
memory. The discussion of how the prototype was implemented on a Mach
microkernel mentions the surprising notion of persisting capabilities,
segments and other resources across restarts.
The later sections of the paper on application of the system, issues and
relation to the past helped place this work in context. The paper gives
a compelling performance example, showing how overlapping domains
between applications can provide the safety of a decomposed system along
with the performance of a monolithic system. I didn't have time to fully
appreciate the issues section - that will take rereading. The final
section of the paper presents how Opal has worked off of other systems,
especially capability based architectures, and how improvements in
processor performance allowed the authors to bring some of those
concepts to their logical conclusion.
While this paper was long I felt it gave a full picture of the Opal
system. It will take a second reading (at least) to fully appreciate
some of the finer details. I like the fact that the authors provided
some good, concrete examples to drive home their points, such as the
explicit example they gave in section 5.2 of the flexibility that UNIX
tools like awk and grep provide, but at the cost of copying and
converting the data multiple times. The authors outlined very clearly
the important design philosophies, such as the idea that storage
allocation, protection and reclamation should only be coarse grained on
an OS level; finer control should be left to compilers. Finally, having
spent a great deal of time in the mountains with Jeff Chase while this
research was underway, I am happy to discover Jeff made such good use of
both his recreation and work time.
This archive was generated by hypermail 2.1.6 : Wed Jan 14 2004 - 12:30:58 PST