The Opal project is exploring a new operating system structure, tuned
to the needs of complex applications, such as CAD/CAM, where a number
of cooperating programs manipulate a large shared persistent database
of objects. In Opal, all code and data exists with in a single, huge,
shared address space. The single address space enhances sharing and
cooperation, because addresses have a unique (for all time)
interpretation. Thus, pointer-based data structures can be directly
communicated and shared between programs at any time, and can be
stored directly on secondary storage without the need for translation.
This structure is simplified by the availability of a large address
space, such as those provided by the DEC Alpha, MIPS,
HP/PA-RISC, IBM RS6000, and future Intel processors.
Protection in Opal is independent of the single address space;
each Opal thread executes within a protection domain
that defines which virtual pages it has the right to access.
The rights to access a page can be easily transmitted from one
process to another. The result is a much more flexible protection
structure, permitting different (and dynamically changing)
protection options depending on the trust relationship
between cooperating parties. We believe that this organization can
improve both the structure and performance of complex, cooperating
applications.
An Opal prototype has been built for the DEC Alpha platform on top of
the Mach operating system.
Lightweight Shared Objects in a 64-bit Operating System.
J. Chase, H. Levy, E. Lazowska, and M. Baker-Harvey. In
Proc. of the Conference on Object-Oriented Programming Systems,
Languages, and Applications (OOPSLA), October 1992.
Supporting Cooperation on Wide-Address Computers.
J. Chase and H. Levy. Technical Report, 91-03-10, Department of Computer
Science and Engineering, University of Washington, March 1991.
The Protection Lookaside Buffer: Architectural Support for
Single-Address Space Systems. E. Koldinger, J. Chase, H. Levy,
and S. Eggers. Technical Report 91-11-05,
Department of Computer Science and Engineering, University
of Washington, November 1991.
How to Use a 64-Bit Virtual Address Space.
J. Chase, H. Levy, M. Baker-Harvey, and E. Lazowska.
Technical Report 92-03-02, Department of Computer Science and
Engineering, University of Washington, March 1992.
Opal is a descendant of a number of object-oriented distributed
systems built at UW during the 1980s. Following are some
references to some of those systems.
E. Jul, H. Levy, N. Hutchinson, A. Black.
Fine-Grained Mobility in the Emerald
System.ACM Trans. on Computer Systems 6(1), February 1988.
(Emerald is a distributed object-oriented language and system supporting
a single, logical, distributed, object address space. It was the first
system with on-the-fly object mobility. Protection is guaranteed by
the language and compiler.)
J. Chase, F. Amador, E. Lazowska, H. Levy, R. Littlefield.
The Amber System: Parallel Programming on a Network
of Multiprocessors.Proc. of the 12th ACM Symp. on Operating
Systems Principles, December 1989. (Amber is a distributed object-oriented
system, based on C++, for writing parallel programs that execute on
a local-area network; Amber uses a single shared distributed address
space above which C++ objects are supported.)