1. Niveles de protección/privilegio: La mayoría de las CPU modernas emplean un modelo de protección anillada. Esto divide los modos de ejecución de la CPU en anillos concéntricos, cada uno con niveles de privilegios decrecientes. El anillo más interno (anillo 0, o modo de núcleo) tiene acceso completo a todos los hardware y recursos. Los programas de usuario generalmente se ejecutan en un anillo más alto (anillo 3, o modo de usuario), severamente restringidos en lo que pueden acceder o ejecutar directamente. Los intentos de ejecutar instrucciones privilegiadas (por ejemplo, acceder directamente a los puertos de E/S, manipular los registros internos de la CPU de manera que pueda comprometer el sistema) desde un anillo más alto dará como resultado una trampa o excepción, transfiriendo el control al sistema operativo (kernel).
2. Unidad de gestión de memoria (MMU): La MMU es un componente de hardware crucial que traduce las direcciones virtuales utilizadas por los programas en direcciones físicas en RAM. Haga cumplir varios mecanismos de protección clave:
* Memoria virtual: Cada proceso recibe su propio espacio de direcciones virtuales, aislándolo de otros procesos. Incluso si un proceso tiene un error que sobrescribe la memoria, es poco probable que afecte otros procesos porque la MMU traducirá sus accesos a su propio espacio asignado.
* segmentación/paginación: Estos son métodos utilizados por la MMU para dividir la memoria en segmentos o páginas. Los permisos de acceso (leer, escribir, ejecutar) se pueden asignar individualmente a cada segmento o página. La MMU verifica estos permisos antes de permitir el acceso a la memoria, evitando que un programa de usuario, por ejemplo, escriba en el segmento de código del núcleo o lean datos confidenciales de la memoria de otro proceso.
* Traducción de direcciones: La MMU evita que un programa acceda directamente a las direcciones de memoria física. Intercepe todos los accesos de memoria, validándolos con las listas de control de acceso antes de permitirlas.
3. Interrupciones y excepciones: Las interrupciones de hardware (por ejemplo, de un temporizador, teclado o adaptador de red) y excepciones de software (por ejemplo, división por cero, instrucción ilegal) causan una transferencia de control al núcleo del sistema operativo. Esto evita que un programa de usuario monopolice la CPU indefinidamente y permite que el sistema operativo administre recursos y maneje los eventos. El núcleo luego determina la acción apropiada, que puede incluir la terminación del programa ofensivo.
4. Tiempos: La CPU tiene temporizadores internos que interrumpen periódicamente el programa en ejecución, lo que permite que el sistema operativo programara otros procesos y evite que cualquier programa se ejecute para siempre. Sin esto, un programa de mal comportamiento podría contener el rehén de la CPU.
5. Instrucciones protegidas: Algunas instrucciones son privilegiadas y solo se pueden ejecutar en modo kernel. Intentar ejecutar una instrucción privilegiada desde el modo de usuario da como resultado una trampa, evitando el acceso no autorizado a los recursos de hardware y sistema.
En resumen, una combinación de características de hardware como protección anillada, capacidades de gestión de memoria de la MMU, manejo de interrupciones, temporizadores e instrucciones protegidas funcionan en concierto con el sistema operativo para evitar que un programa de usuarios alcance el control completo de la CPU, manteniendo la estabilidad del sistema y la seguridad. Si algún componente solo fallara, los otros aún ofrecerían una medida de protección, pero la seguridad general del sistema se reduciría.