Mach was the greatest intellectual fraud in the last ten years.
What about X?
I said `intellectual´.
--;login, 9/1990
En este capítulo revisaremos las decisiones de diseño adoptadas, que
han conducido a la implementación de Off, el prototipo de
kernel
distribuido adaptable (DAMN
, en adelante) que
presentaremos en siguientes capítulos. Dichas decisiones vienen
derivadas en gran medida de lo ya dicho en el apartado 1.3.
En lo que sigue, expondremos conjuntamente las características que
debe poseer un DAMN así como las decisiones adoptadas en el diseño e
implementación del prototipo Off.
Utilizamos como hipótesis de trabajo que la distribución del sistema
debe realizarse desde el nivel inferior (dentro del
kernel) manteniendo
el interfaz suministrado tan próximo al hardware como sea posible sin
comprometer la seguridad en la multiplexación de los recursos
físicos distribuidos.
Como veremos en el capítulo 5, esto promete paliar en
gran medida los problemas mencionados en el capítulo 1.
Se trata, por un lado, de eliminar la barrera entre gestión local (en
un nodo) y gestión global (en la red) de recursos, impuesta
artificialmente por los
kernels centralizados que empleamos actualmente
y, por otro lado, de garantizar la adaptabilidad del sistema.
En el diseño del sistema se han tratado de encontrar abstracciones
básicas que modelen los recursos físicos disponibles de tal
modo que estas abstracciones sean capaces de operar de forma
transparente en distintos nodos de la red. Los servicios del sistema
podrían de ese modo distribuirse en el
kernel y, considerando el bajo
nivel de las abstracciones suministradas, el sistema podría mantener
un adecuado grado de adaptabilidad.
Así, el objetivo de un DAMN --y el de Off-- puede concretarse en los siguientes puntos:
Es aquí donde encontramos la diferencia fundamental entre el DAMN y
otras arquitecturas basadas en
kernels adaptables: en un DAMN no sólo
se extiende a la red la abstracción empleada para intercomunicación
de procesos sino que también se distribuyen el resto de los
servicios. Del mismo modo que en los
kernels actuales se emplean
protocolos de localización y transporte para permitir comunicación
remota, dichos protocolos se emplean también en Off para utilizar
memoria, procesadores y dispositivos remotos.
Esta diferencia es fundamental en aplicaciones diseñadas convencionalmente para sistemas centralizados. Si tan sólo se distribuyesen los mecanismos de IPC, estas aplicaciones serían incapaces de utilizar la distribución en el resto de los servicios.
La migración y replicación de objetos en el sistema también se vería obstaculizada dado que sería preciso reproducir manualmente cualquier elemento que no fuese transparentemente accesible mediante IPC (esto es la tónica habitual en los sistemas actuales de migración y replicación que se ven obligados a utilizar complejos sistemas de soporte para dotar a las entidades migradas del entorno necesario). Adicionalmente, los sistemas distribuidos actuales obstaculizan aún más la migración al ocultar a las aplicaciones la parte de su estado que reside en el interior del núcleo.
Para las aplicaciones distribuidas es también importante la
distinción entre un
kernel con IPC capaz de operar en red y un DAMN.
En un DAMN, cada aplicación puede distribuir el sistema del modo más
conveniente, utilizando sus propios modelos, algoritmos y protocolos,
soslayando las desventajas que presente el modelo de distribución
suministrado inicialmente por el sistema.
En lo que resta del presente capítulo discutiremos el diseño y las características de la arquitectura propuesta: un SO basado en DAMN. Así mismo, iremos introduciendo las decisiones de diseño y compromisos generales adoptados en el prototipo de DAMN implementado, Off.