Prerrequisito: Introducción a la virtualización
Cuando un entorno de ejecución se virtualiza a diferentes niveles de la pila de computación, requiere un modelo de referencia que defina las interfaces dentro del nivel de abstracción, y este nivel de abstracción oculta los detalles de las implementaciones.
Esto proyecta la idea de que las técnicas de virtualización pueden sustituir cualquier capa y pueden interceptar las llamadas que se dirigen a ella. Es por eso que una separación clara dentro de las capas puede simplificar sus implementaciones, que solo necesitan una emulación de las interfaces y una respuesta adecuada con la capa subyacente.
En la capa base, el modelo para el hardware se declara o manifiesta en términos de una arquitectura, es decir, arquitectura de conjunto de instrucciones (ISA).
La arquitectura del conjunto de instrucciones (ISA) define el conjunto de instrucciones para el procesador, los registros, la memoria y la gestión de interrupciones. Es una interfaz entre el software y el hardware y es obligatorio para el desarrollador del sistema operativo (SO) (sistema ISA) los desarrolladores de aplicaciones que administran directamente el hardware central (usuario ISA). La capa del sistema operativo está separada por la interfaz binaria de la aplicación (ABI) de la aplicación y las bibliotecas, que son administradas por el sistema operativo.
La interfaz binaria de aplicaciones (ABI) cubre hechos tales como tipos de datos de bajo nivel y convenciones de llamadas y también define un formato para muchos programas. Principalmente, las llamadas al sistema se definen en este nivel. Además, este tipo de interfaz permite la portabilidad de varias aplicaciones y bibliotecas en todos los sistemas operativos que emplean la misma ABI. La interfaz de programación de aplicaciones (API) está representada por el nivel más alto de abstracción. Esta API conecta las aplicaciones con las bibliotecas y/o el sistema operativo principal. Para que una acción se realice en el nivel de aplicación API, ABI y los dos que son responsables de realizarla. Principalmente, la CPU se ejecuta en dos niveles de privilegio:
- Modo de usuario: en este modo, el acceso a la memoria está restringido hasta cierto límite, mientras que se niega el acceso a los periféricos.
- Modo Kernel: en este modo, la CPU tiene instrucciones que administran la memoria y cómo acceder, y también tiene instrucciones que permiten el acceso a los periféricos, como discos y tarjetas de red. De un programa en ejecución a otro programa en ejecución, la CPU cambia automáticamente. Las expansiones y aplicaciones del sistema informático se simplifican con este enfoque en capas. La aplicación de tareas múltiples y la coexistencia de múltiples ejecuciones se simplifica con este enfoque en capas.
El primero puede hacerse dentro de instrucciones privilegiadas y no privilegiadas. Aquellas instrucciones que se pueden utilizar con la interrupción de otra tarea se conocen como instrucciones no privilegiadas. También se les llama así porque no se accede a los recursos compartidos. Ex- contiene todos los puntos fijos, flotantes e instrucciones aritméticas. Las instrucciones que se ejecutan bajo restricciones particulares y que se usan con frecuencia para operaciones sensibles (que exponen el comportamiento sensible o modifican el control sensible) se conocen como instrucciones privilegiadas .
Se espera que en un entorno administrado por hipervisor, el código del sistema operativo invitado se ejecute en el usuario para evitar que acceda directamente al estado del sistema operativo. Ya no es posible aislar completamente el sistema operativo invitado cuando se implementan instrucciones sin privilegios.
Referencia: Libro- Mastering Cloud Computing
Publicación traducida automáticamente
Artículo escrito por Madhurkant Sharma y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA