PREVIOUS
Major microkernel features
The KeyKOS microkernel is small, runs in privileged state, is
unswapped, and runs with address translation off.
A total computing system consists of multiple levels of
abstraction, including the hardware, the operating system, the file
system, the database management system, etc. The function
provided at each level must be carefully selected and implemented
or else higher levels may be subject to penalties in performance
and/or complexity of design. The KeyKOS microkernel itself does not
provide all of the functionality conventionally associated with an
operating system; rather it provides a set of primitives which allow
such (guest operating system) functions to be implemented by
problem mode programs in domains. These KeyKOS machine
primitives are much easier and more productive to use than the
functions of the hardware alone.
The microkernel interprets keys. No other program has direct
access to the bits that represent keys (except Keybits, q.v.). Code
defining several types of primitive objects is in the microkernel.
These primitive objects are tools sufficient to build higher-level
objects. The microkernel provides -
- several types of primitive objects;
- multiprogramming support, primitive scheduling and hooks for
fancy schedulers running in domains;
- single-level store. Domain programs are unaware of the
distinction between main storage and disk;
- virtual memories for domains based upon the address segment
using memory mapping hardware;
- redundant disk storage for selected information (to provide
reliability and improve read performance);
- a system-wide checkpoint-restart feature;
- special pages exempt from checkpoint;
- gate keys by which messages are sent between domains;
- primitive and limited access to individual I/O devices;
- an invariant interpretation of keys (independent of the location
of the designated objects - whether on disk or in main storage).
KeyKOS takes system-wide checkpoints every few minutes to
protect from power failures, most microkernel bugs, and detected
hardware errors. All data and processes are checkpointed. The
KeyKOS microkernel keeps no internal state about the data and
processes which cannot be re-constructed from the checkpoint
information. After an Initial Domain Load [7], subsequent IPLing restarts the machine
from a checkpoint. The microkernel also provides primitives to
support concurrent checkpoints to magnetic tape which comprise a
snapshot of the entire system.
NEXT