El alto nivel de abstracción de los servicios suministrados por el sistema hace que los usuarios no puedan utilizar las abstracciones del sistema de un modo no previsto por los diseñadores del mismo. El sistema se torna pues inflexible.
En el mejor de los casos, las abstracciones suministradas permiten que las aplicaciones emulen abstracciones de más bajo nivel para después implementar sobre ellas las suyas propias [63]. En este caso incurrimos en una inversión de abstracciones con la consiguiente pérdida de eficiencia y aumento de complejidad.
La ocultación de información por parte del sistema también lo hace más rígido. Por ejemplo, es complicada la realización de aplicaciones que requieran conocer la instrucción y la dirección involucradas en alguno de sus fallos de página [156], como ocurre con emuladores hardware, librerías de checkpointing, etc.
La incapacidad de los Sistemas Operativos tradicionales para incorporar cambios es una muestra de su inflexibilidad y de la necesidad de introducir adaptabilidad en el sistema. De otro modo...¿Qué sistemas han incluido activaciones del planificador [4], varios dominios de protección en un único espacio de direcciones [33] o primitivas adecuadas para una gestión flexible y eficiente de memoria virtual [5] o first class threads a nivel usuario o...?
Desgraciadamente, la lista de los avances en Sistemas Operativos no incorporados a los ya existentes debido a su falta de flexibilidad es demasiado larga como para incluirla aquí.
En sistemas adaptables la capacidad de adaptación hace que el sistema sea altamente flexible dado que cualquier rigidez existente puede paliarse, adaptando o extendiendo el sistema de modo que ésta quede soslayada [147].
Ninguna aplicación que no utilice las nuevas mejoras se vería afectada en caso de error y esto, si bien es importante en sistemas centralizados, lo es más en sistemas distribuidos --donde la reticencia a cambios es mayor. ¿Cuantas veces se ha argumentado como razón para no utilizar un sistema distribuido el deseo de no verse afectado por cambios en nodos remotos?
En el sistema que proponemos, al igual que ocurre en [60], estos avances podrían incorporarse en las aplicaciones del sistema dado que el software involucrado ejecuta en área de usuario. La flexibilidad está garantizada.