Los modos de CPU (también llamados modos de procesador , estados de CPU , niveles de privilegio de CPU y otros nombres) son modos de funcionamiento de la unidad central de procesamiento de la mayoría de las arquitecturas informáticas que imponen restricciones al tipo y alcance de las operaciones que pueden realizar las instrucciones ejecutadas por la CPU. Por ejemplo, este diseño permite que un sistema operativo se ejecute con más privilegios que el software de aplicación al ejecutar los sistemas operativos y las aplicaciones en modos diferentes. [ 1 ]
Idealmente, solo el código del núcleo de alta confianza puede ejecutarse en modo sin restricciones; todo lo demás (incluidas las partes no supervisoras del sistema operativo) se ejecuta en modo restringido y debe usar una llamada al sistema (mediante una interrupción ) para solicitar al núcleo que realice en su nombre cualquier operación que pueda dañar o comprometer el sistema, lo que imposibilita que los programas no confiables alteren o dañen otros programas (o el propio sistema informático). Los controladores de dispositivos están diseñados para formar parte del núcleo debido a la necesidad de un acceso frecuente a las operaciones de entrada/salida .
Se pueden implementar varios modos, por ejemplo, permitiendo que un hipervisor ejecute varios supervisores de sistema operativo debajo de él, que es el diseño básico de muchos sistemas de máquinas virtuales disponibles en la actualidad.
Tipos de modo
El modo sin restricciones se suele denominar modo kernel, pero existen muchas otras denominaciones ( modo maestro , modo supervisor , modo privilegiado , etc.). Los modos restringidos se conocen generalmente como modos de usuario, pero también por muchos otros nombres ( modo esclavo, estado de problema, etc.). [ 2 ]
- Hipervisor
- El modo hipervisor se utiliza para dar soporte a la virtualización, lo que permite el funcionamiento simultáneo de múltiples sistemas operativos.
- Núcleo y usuario
- En el modo kernel, la CPU puede realizar cualquier operación permitida por su arquitectura: ejecutar cualquier instrucción, iniciar cualquier operación de E/S, acceder a cualquier área de memoria, etc. En los demás modos de la CPU, el hardware impone ciertas restricciones a las operaciones. Por lo general, no se permiten ciertas instrucciones (especialmente aquellas, incluidas las operaciones de E/S, que podrían alterar el estado global de la máquina), no se puede acceder a algunas áreas de memoria, etc. Las capacidades de la CPU en modo usuario suelen ser un subconjunto de las disponibles en el modo kernel, pero en algunos casos, como la emulación por hardware de arquitecturas no nativas, pueden ser significativamente diferentes de las disponibles en el modo kernel estándar.
Algunas arquitecturas de CPU admiten más modos, a menudo con una jerarquía de privilegios. Se suele decir que estas arquitecturas tienen seguridad basada en anillos, donde la jerarquía de privilegios se asemeja a un conjunto de anillos concéntricos, con el modo kernel en el centro. El hardware Multics fue la primera implementación significativa de seguridad en anillos, pero muchas otras plataformas de hardware se han diseñado siguiendo líneas similares, incluyendo el modo protegido Intel 80286 y también el IA-64 , aunque en estos casos se le denomina con un nombre diferente.
La protección de modo puede extenderse a recursos más allá del hardware de la CPU. Los registros de hardware registran el modo de funcionamiento actual de la CPU, pero los registros de memoria virtual , las entradas de la tabla de páginas y otros datos pueden registrar identificadores de modo para otros recursos. Por ejemplo, una CPU puede estar operando en el Anillo 0, como lo indica una palabra de estado en la propia CPU, pero cada acceso a la memoria puede validarse adicionalmente con respecto a un número de anillo independiente para el segmento de memoria virtual al que se dirige el acceso, y/o con respecto a un número de anillo para la página física (si la hay) a la que se dirige. Esto se ha demostrado con el sistema portátil PSP .
El hardware que cumple con los requisitos de virtualización de Popek y Goldberg simplifica enormemente la escritura de software para dar soporte eficiente a una máquina virtual. Dicho sistema puede ejecutar software que "cree" estar funcionando en modo supervisor, pero que en realidad se ejecuta en modo usuario.
Arquitecturas
Varios sistemas informáticos introducidos en la década de 1960, como el IBM System/360 , el DEC PDP-6 / PDP-10 , la serie GE-600 / Honeywell 6000 y las series Burroughs B5000 y B6500 , admiten dos modos de CPU; un modo que otorga privilegios completos al código que se ejecuta en ese modo, y un modo que impide el acceso directo a los dispositivos de entrada/salida y algunas otras instalaciones de hardware al código que se ejecuta en ese modo. El primer modo se conoce con nombres como estado supervisor (System/360), modo ejecutivo (PDP-6/PDP-10), modo maestro (serie GE-600), modo de control (serie B5000) y estado de control (serie B6500). El segundo modo se conoce con nombres como estado de problema (System/360), modo usuario (PDP-6/PDP-10), modo esclavo (serie GE-600) y estado normal (serie B6500); La serie B5000 cuenta con varios modos que no requieren control.
RISC-V
RISC-V tiene tres modos de CPU principales: Modo de usuario (U), Modo supervisor (S) y Modo máquina (M). [ 3 ] La virtualización se admite mediante una configuración CSR ortogonal en lugar de un cuarto modo.
Referencias
- ↑ "Modos del procesador" . flint.cs.yale.edu . Archivado del original el 12 de mayo de 2018. Consultado el 23 de agosto de 2023 .
- ↑ aviviano (04/11/2022). "Modo de usuario y modo kernel: controladores de Windows" . learn.microsoft.com . Consultado el 23/08/2023 .
- ↑ Harris, Sarah; Harris, David (12 de julio de 2021). Diseño digital y arquitectura de computadoras, edición RISC-V . Morgan Kaufmann. ISBN 978-0-12-820065-0.
- unidad central de procesamiento
- Seguridad informática