Consideraremos en primer lugar aquellos sistemas que están construidos
sobre
kernels que, por su tamaño, podrían dejar de considerarse como
``micro'' (lo que no resta importancia a la contribución que estos
sistemas supusieron).
Probablemente sea Mach
[2, 55, 24], el paradigma de
kernel pesado (aunque también habría que considerar como tal a
Windows NT [47]). Hay que decir que a pesar de ser un
kernel bastante pesado y monolítico en su concepción, Mach es un
pionero de la técnica de construcción de SSOO mediante
kernels y supuso
una innovación en el campo.
En Mach el
kernel incluye
abstracciones que otros
kernels más recientes han expulsado del núcleo:
tareas (similares en realidad a los procesos de algunas versiones
modernas de UNIX) y espacios de direcciones. El
kernel emplea puertos
[55, 21] como mecanismo básico de
IPC.
Ya comentamos en el capítulo anterior que Mach introdujo y extendió el uso de paginadores externos como técnica común para obtener más flexibilidad (y adaptabilidad) en gestión de memoria [24, 179]. Un paginador es una tarea que se responsabiliza del respaldo de determinada área de memoria en uno o varios espacios de direcciones. Su actividad principal es la ejecución de actividades de paginación entre la memoria controlada por el núcleo y los dispositivos de respaldo. Aunque en versiones iniciales el uso de paginadores no permitía a las aplicaciones participar en la política de reemplazamiento de páginas, ésto ha sido subsanado en versiones recientes de Mach.
Dado que importantes abstracciones están implementadas dentro del núcleo y que no se previó la adaptación de éstas, no es factible modificar el comportamiento de dichas abstracciones. En consecuencia, no podemos afirmar que estemos ante un sistema adaptable.
Existen otros sistemas que son en realidad modificaciones, extensiones o derivados de Mach tales como Masix [66], que no discutiremos aquí dado que lo ya dicho para Mach también es aplicable a ellos.