SPACE [133, 134] es un SO que difiere en las abstracciones básicas que implementa del resto de los SSOO tradicionales. Tradicionalmente se toman procesos (a veces threads), memoria virtual e IPC como las abstracciones básicas que hay que implementar. En SPACE se opta en cambio por implementar procesadores, espacios de direcciones y un mecanismo de excepciones. SPACE trata de exponer el hardware disponible de tal modo que sea factible la coexistencia de abstracciones convencionales de propósito general y abstracciones desarrolladas a medida de las aplicaciones, igual que hacemos en Off.
Las abstracciones más significativas que implementa SPACE son los espacios (de los que toma el nombre), los dominios y los portales. Los espacios suministran las traducciones para las direcciones empleadas por el procesador. El resultado de la traducción puede ser una dirección de memoria o un portal. En realidad, un portal es tan sólo una dirección que no tiene traducción; el fallo de página es gestionado por SPACE que lo traduce en una invocación a portal. Los dominios de SPACE son una generalización de los bits de válido y escribible empleados por el hardware para cada traducción. Un dominio en SPACE es un mapa de bits que restringe las direcciones que es posible emplear (esto incluye los portales que es posible direccionar).
Como hemos dicho, el mecanismo empleado por SPACE para enviar eventos a las aplicaciones también recibe el nombre de Portal. No obstante, SPACE incorpora distintos tipos de portales con distinta semántica (RPCs, interrupciones, etc.).
En pocas palabras, SPACE lleva al extremo el modelo de Exokernel. En
SPACE se extrae del
kernel incluso la asignación y la revocación de
recursos. Igual que sucede con el Exokernel, SPACE es un sistema
centralizado, por lo que no se considera la distribución en el modelo
propuesto.