Next: La realización de Off
Up: kernels Distribuidos Adaptables
Previous: Heterogeneidad
Los servicios de Off están disponibles a los usuarios mediante
portales, cada servicio del sistema utiliza un portal que ha de
invocarse para utilizarlo. Esto trae consigo ciertos beneficios para
aquellas aplicaciones que deseen utilizar máquinas virtuales anidadas
(ej.: una máquina virtual de Java que opera sobre un emulador de Linux
que a su vez opera sobre Off).
Dado que es posible interponer código (bien de un modo similar a como
se hace en Kea [169], bien empleando los
``Interposition Agents'' descritos en [92]) entre el
usuario y el servidor de un portal y dado que tanto el nombrado como
la protección de recursos lógicos (ej.: abstracciones del SO tales
como ficheros en Linux) lo implementan las aplicaciones, es posible
cumplir las siguientes propiedades:
- Relatividad de los servicios del SO. Es decir, evitar puntos de
acceso a servicio absolutos. Cada entidad puede
(potencialmente) utilizar servicios distintos incluso cuando los
identificadores de éstos son los mismos. Esto se podría conseguir
con algo de código en la librería de usuario que hace de interfaz
con el sistema de portales (bastaría con suministrar
``descriptores'' de portal similares a los descriptores de fichero
en UNIX, de tal modo que pueda alterarse el identificador de un
portal manteniendo el descriptor del mismo).
- Los procesos padre (ej. el emulador de Linux en el ejemplo
anterior) pueden controlar directamente a los procesos hijos (ej. el
emulador de Java) definiendo siempre ``proceso'' en términos del SO
que ejecuta sobre Off. No es difícil teniendo en consideración
que Off sólo exporta recursos físicos y no fuerza
la pertenencia de los recursos a una entidad concreta; esto es, no
hay tareas, dominios de protección, contenedores de recursos ni otra
abstracción similar.
- Todo el estado del kernel es legible por los procesos que lo
usan. Concretamente, todo aquel que posea derechos de acceso sobre
un objeto suministrado por el sistema puede leer directamente su
estado directamente de la memoria física donde está almacenado. Por
supuesto, estos derechos de lectura pueden pasarse de unas
aplicaciones a otras a voluntad. Adicionalmente, cualquier
información mantenida por el kernel que puede exportarse, sin poner
en peligro ni la seguridad ni la privacidad, se exporta; esto
incluye el estado de todos los portales y todas las listas de
asignación de recursos (para interrupciones y excepciones, marcos de
memoria, puertos, quanta de procesadores, portales, shuttles,
DTLBs).
Con estas tres propiedades es posible implementar --tal y como dicen
los autores de Fluke [71, 106]-- un sistema de
máquinas virtuales anidades, donde la sobrecarga debida al anidamiento
no aumenta exponencialmente. Esto abre nuevas posibilidades en
implementaciones eficientes de sistemas globales (distribuidos
en una red de área extensa) altamente seguros que utilizan un
SO local sólo como medio para acceder a aquellos recursos físicos
necesarios. Aplicaciones en Java
[80, 79] y Limbo
[52] son un ejemplo de estos sistemas.
Next: La realización de Off
Up: kernels Distribuidos Adaptables
Previous: Heterogeneidad
Francisco J. Ballesteros
Fri Dec 19 17:18:03 MET 1997