En la medida que el hardware se desarrolló para incorporar mecanismos de protección para la gestión de procesos, memoria y entrada/salida, los Sistemas Operativos se adaptaron a este diseño. El objetivo de la arquitectura por capas o niveles de privilegio, es separar la acción del código de los procesos del sistema, del núcleo y de los procesos de usuario. Idealmente se separa en el nivel de máximo privilegios o protección, al código base del núcleo.
En la imagen se muestra la representación de una arquitectura por capas.
En el siguiente nivel de privilegios se ubica a los procesos del sistema para la gestión de procesos y memoria; en otro nivel a los procesos de gestión de entrada salida incluyendo los drivers y en el nivel de menos privilegio, se ejecutan el resto de los procesos de aplicación. Esto por supuesto, no siempre es así y pueden existir muchísimas variantes en la implementación. Una práctica común es ubicar los procesos y componentes de entrada/salida en los dos primeros niveles, para acelerar su ejecución. Lo relevante en esta arquitectura es que se necesitan realizar restricciones en cuanto a las llamadas al sistema que puedan ejecutar los procesos de determinados niveles. Por ejemplo, se ha de evitar que un proceso pueda efectuar una llamada al sistema que requiera la atención de un componente de menor privilegio o tal vez evitar que los programas de aplicación hagan llamadas directamente sobre el núcleo. Así puede obligarse a utilizar como mediadores a otros niveles.