HYDRA: The Kernel of a Multiprocessor Operating System

Wulf, et. al.

 

One-line summary: The bulk of this paper discusses the author’s design philosophies regarding how to build a flexible capability-based protection system for an operating system kernel.

 

Important points:

 

What is an operating system supposed to do?  Manage resources (both physical and virtual).  HYDRA allows OS developers to define an object of a specified type for each resource the OS is expected to manage.

 

Authors expect HYDRA to be used as a core kernel, and for OS developers to potentially build multiple operating environments above it.

 

Three concepts core to HYDRA:

 

Protection = mechanism, Security = policy.  HYDRA provides mechanism/protection.  Higher-level OS components provide security.

 

Author’s believe the concept of “ownership” in an OS is vague, and not appropriate to implement security.  Hence, there is no concept of “ownership” in HYDRA.  In addition, they argue there is a better way to structure systems than for there to be a hierarchy of least trusted to most trusted components/users/etc.  Inadequacy of the “ownership” model of system security is made apparent in a straightforward example presented in the paper.  For example, just because a developer creates a program and “owns” it doesn’t mean that people who use the program are OK with that developer having access to databases that they create with the program.  Capabilities are an elegant way of defining fine-grained protection tokens that can be checked for during different types of accesses for different objects.

 

Paper didn’t comment on how procedures should be “installed.”  For example, if I write a procedure that has “regular” rights to access “everything” that procedure should only be able to be linked into the system by someone that has those types of rights.