El ordenador CAP de Cambridge fue el primer ordenador experimental exitoso que demostró el uso de capacidades de seguridad , tanto en hardware como en software . [1] Fue desarrollado en el Laboratorio de Computación de la Universidad de Cambridge en la década de 1970. A diferencia de la mayoría de las máquinas de investigación de la época, también era una útil máquina de servicio. [1]
El cartel que actualmente se encuentra en el frente de la máquina dice:
El proyecto CAP sobre protección de memoria se desarrolló entre 1970 y 1977. Se basó en capacidades implementadas en hardware, bajo la dirección de M. Wilkes y R. Needham , con D. Wheeler a cargo de la implementación. R. Needham recibió un premio técnico BCS en 1978 por el proyecto CAP (Capability Protection) .
El CAP fue diseñado de tal manera que cualquier acceso a un segmento de memoria o hardware requería que el proceso actual tuviera las capacidades necesarias.
El procesador de 32 bits incluía control de microprogramación, dos cachés de 256 entradas , un búfer de escritura de 32 entradas y la propia unidad de capacidad, que tenía 64 registros para almacenar las capacidades evaluadas. Las operaciones de punto flotante estaban disponibles utilizando un único acumulador de 72 bits. El conjunto de instrucciones incluía más de 200 instrucciones, incluidas operaciones básicas de ALU y memoria, hasta instrucciones de control de capacidad y proceso.
En lugar de los registros visibles para el programador utilizados en los diseños Chicago y Plessey System 250 , el CAP cargaba registros internos de forma silenciosa cuando un programa definía una capacidad. [2] La memoria se dividía en segmentos de hasta 64 000 palabras de 32 bits. Cada segmento podía contener datos o capacidades, pero no ambos. Se accedía al hardware a través de una minicomputadora asociada.
Todos los procedimientos que constituyen el sistema operativo fueron escritos en ALGOL 68C , aunque varios otros procedimientos protegidos estrechamente asociados (como un paginador) están escritos en BCPL . [3]
El CAP empezó a funcionar por primera vez en 1976. Era un ordenador completamente funcional que incluía un sistema operativo completo , un sistema de archivos , compiladores , etc. El sistema operativo utilizaba una estructura de árbol de procesos , con un proceso inicial llamado "coordinador maestro". Esto eliminaba la necesidad de modos de funcionamiento separados, ya que cada proceso podía acceder directamente a los recursos de sus hijos. En la práctica, solo se utilizaban dos niveles durante el funcionamiento del CAP. [4]
En 1981, Nicholas JL Brown implementó la versión MACRO SPITBOL del lenguaje de programación SNOBOL4 en el CAP. [5]