Requirements

Top Level Requirements

Combine information and behavior.

Information stored in books is static. By moving to a system in which information is stored on computers, we enable that information to become dynamic. Information stored on a computer can react; it is interactive. Traditional computer systems represent data as external to the programs that manipulate the data. This severely limits the interactive potential of the information; adding a new type of behavior requires adding a new program to the system. Much effort has been spent in making the installation of new programs easy, but it remains as a step which must be explicitly taken by the user.

By allowing behavior to accompany information, the system automatically extends itself whenever it encounters a new form of information which requires a novel behavior. A new behavior can spread with the copying of data, without explicit intervention on the part of the receiver of the information.

Data and resources are private unless explicitly shared.

Information and resources which are available to a user can be voluntarily shared with another user. In the absence of any such shared arrangement information and resources remain private.

The system is accessable to a large number of programmers.

Although the Secure Object Format does not specify a high level language which generates the object code, the format does place certain constraints on such a language. Working within those constraints, it must be possible to create a language which is familiar enough to a large number of programmers to be readily adopted. Currently, that means that the language must be related to C, C++, and Java.

The system is scalable.

It is designed so that it won't become obsolete in the near future. It is adaptable to operate on new hardware irrespective of such technical specifications as word size, address space, degree of parallelism, or specifics of input, output, and storage devices.

The system is robust.

System performance is adequate for development in the short term, and for general usage in the long term.

Supporting Requirements

Mobile code.

Capability security.

Persistant identity.

Explicit trusted computing base.

Minimum size and complexity of trusted computing base.

Note that the code optomizer and compiler must be part of the TCB.

Trusted computing base is open source.