cse 221: paper evaluations

Octavian Luca (oluca@cs.ucsd.edu)
Tue, 18 Apr 2000 03:01:26 -0700 (PDT)

Pilot

The paper on the Pilot system explores a possible approach for designing
operating systems for small personal computers that can be connected over
a network. This is a departure from work done previously in this field
that was mainly focusing in designs for large scale time sharing systems.
It is interesting to see where many of the ideas used in today's personal
computers came from, and what decisions influenced the design of this
so-far very successful system.

The pilot system was implemented based on an emphasis on close user/system
cooperation in a system that fully exploits the PC's resource-rich
environment, and at the same time can function as a gateway to a larger
online community. The authors decided that protection on such a personal
computer is less paramount than on time-sharing systems, and therefore
that focus should be shifted from an "absolute" protection scheme meant to
insure security, to a "defensive" scheme meant to prevent user errors
rather than maliciousness.

Noteworthy is the way in which network services are implemented within the
Pilot operating system, such that at a specific level of abstraction,
processes on different computers can communicate with each other similarly
to the way processes on the same computer would. Also this system was
developed using the Mesa programming language, such that interactoins from
the Pilot/Mesa combination play a major role in system design. This
coupling is best described as a mutual dependence where Pilot is written
in Mesa, and Mesa for much of it's runtime support.

This paper seems to be of great importance to the field of PC operating
systems as it serves as a model and basis for the other important works in
this field. It combines many previous ideas, as well as introduces novel
new ideas to describe a viable and novel way of supporting computing for
the masses.

Opal

This paper discusses the design and implementation of Opal, a "single
address space" operating system, for the purpose of exploring the single
address space system design approach. This is an interesting problem
because the appearance of 64-bit architectures makes possible to improve
memory sharing, reliability and cooperation between applications
manipulating large data structures, as well as to simplify integration;
all of which are goals of the Opal system. Opal's single address space is
a departure from previous works and the prevalent model of private address
spaces.

Opal was implemented on top of the Mach microkernel, to have a single
address space where the system rather than the applications coordinate
address bindings, to obtain dynamic sharing patterns in a uniform way. As
oposed to previous systems, Opal separates protection from addressing to
make memory protection cheaper, and easier to use and change. Opal's goal
of supporting modular sharing and protection, is accomplished through
threads associated with protection domains whose function is to restrict
the threads' access to memory at a particular instance in time. In this
model each thread executes in exactly one protection domain, but more than
one thread may execute in the same domain. This definition of protection
domain is a departure from conventional process based definitions that
refer to encapsulations of fully-isolated software components and their
data.

The major tradeoff made in single address space systems is that they
cannot benefit from the assignment of different meanings to the same
address. Overall the paper presents some interesting drawbacks of current
systems and offers some novel solutions that take advantage of new
hardware advances as well as previous concepts such as microkernel based
development of new systems.