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