Windows

¿Qué es el modo de usuario frente al modo kernel en Windows?

Es posible que haya oído hablar de aplicaciones que se ejecutan en modo «kernel» o «usuario». Se trata de cómo funcionan los sistemas operativos cuando hacen su trabajo. Una vez que comprenda eso, es fácil comprender la diferencia entre el modo de usuario y el modo kernel.

Comprender lo que hace un sistema operativo

Una computadora es hardware, los componentes electrónicos y software, el código de computadora que ejecuta ese hardware. Pero lo que está menos claro es cómo trabajan juntos.

La característica más importante de una computadora es el bit o «dígito binario». Todo lo que hace una computadora se representa como cabezas y ceros. Los diferentes componentes de la computadora representan bits de diferentes maneras. En una CPU, los transistores microscópicos son transistores y ceros por encendido o apagado. Estos transistores están organizados en estructuras lógicas, llamadas puertas lógicas.

En la memoria de una computadora electrónica, un bit está representado por celdas de memoria que tienen una carga por encima o por debajo de cierto umbral. En un disco duro mecánico, los bits se representan como fluctuaciones magnéticas medidas en una placa giratoria. En los discos ópticos, los hoIs y las tierras que reflejan o no reflejan la luz láser hacen el mismo trabajo.

No importa cómo se represente físicamente el código binario, puede reducir todos los componentes de la computadora del consumidor a este código de máquina sin procesar.

Entonces, ¿cómo se pasa de la interfaz de computadora amigable para los humanos a los procesos sin procesar de bajo nivel en la computadora misma? Ahí es donde entra el sistema operativo. Controla directamente el hardware de la computadora.

Este software traduce todo lo que las aplicaciones (y por lo tanto el usuario) quieren en las instrucciones del código de máquina que la CPU y otros componentes entienden. La pieza de software más importante en este proceso es el kernel.

¿Qué es el núcleo?

El kernel, como su nombre lo indica, es el núcleo del sistema operativo. El kernel es un software que reside en la RAM y dirige todo lo que hace la computadora. Cuando algo está escrito en la memoria, el núcleo dirige la ejecución.

El núcleo sabe cómo interactuar con hardware como GPU y tarjetas de red, pero es posible que no sepa cómo operarlas completamente, según los estándares genéricos de la industria informática.

Los controladores de hardware entran aquí. Los controladores le dicen a su sistema operativo cómo trabajar con componentes específicos, razón por la cual necesita diferentes controladores para GPU Nvidia y AMD, por ejemplo.

Equipado con los controladores correctos, el kernel es la máxima autoridad dentro de la computadora, lo que incluye hacer cosas que pueden borrar datos de manera catastrófica.

El papel de las interfaces de programación de aplicaciones (API)

En los días de MS-DOS, los desarrolladores de software tenían que escribir su software específicamente para el hardware del usuario. Los controladores de tarjetas de sonido fueron el ejemplo más notable de esto en los sistemas MS-DOS.

Un videojuego en particular tendría que ser compatible con las tarjetas más populares (Sound Blaster, Ad-lib, Gravis Ultrasound, etc.) y espero que la maIría de los jugadores estén cubiertos. Hoy, las cosas funcionan de manera muy diferente, gracias a las API.

La pantalla de selección de tarjeta de sonido de Wolf3D

Microsoft DirectX es un gran ejemplo. Para obtener una explicación detallada, consulte ¿Qué es DirectX y por qué es importante? Sin embargo, lo más importante que debe saber es que la API proporciona una forma estándar para que los desarrolladores de software soliciten recursos de hardware de componentes como la GPU. Además, los fabricantes de hardware solo necesitan asegurarse de que sus productos cumplan con DirectX para garantizar la compatibilidad total con cualquier software similar.

Las API ofrecen una serie de traducciones entre las aplicaciones de software y el kernel de bajo nivel con sus controladores de hardware. Sí, esto viene con una pequeña penalización de rendimiento. Aún así, en las computadoras modernas, esto es insignificante y viene con varias ventajas, que es donde finalmente llegamos al modo de usuario y al modo kernel.

Modo Usuario vs Modo Kernel

Los sistemas operativos modernos ejecutan cientos o miles de «procesos» simultáneamente, lo que les proporciona dinámicamente tiempo de CPU según sea necesario en función de sus prioridades informáticas y requisitos de energía.

Cuando inicia una aplicación, genera procesos, que la CPU puede ejecutar en modo usuario o modo kernel.

Un proceso de Windows que se ejecuta en modo de usuario solo tiene acceso a su propio espacio de direcciones de memoria virtual y tabla de manejo. El software utiliza estas tablas para almacenar datos en RAM y solicitar recursos. No hay acceso directo a la memoria u otro hardware, y depende del sistema operativo asignar esos espacios virtuales al hardware real de la computadora.

Esto está bien por muchas razones, pero la ventaja más importante es que la aplicación no puede sobrescribir ni alterar datos fuera de su espacio de direcciones de memoria virtual. Además, ciertas funciones están fuera de los límites de proceso de los modos de usuario, principalmente aquellas que pueden bloquear el sistema o destruir datos.

Cuando un proceso se inicia o se actualiza al modo kernel, tiene acceso total a los recursos del sistema, incluso a aquellos reservados para el sistema operativo. Entonces, en teoría, podría sobrescribir datos críticos que el sistema operativo debe ejecutar correctamente.

Trampas y excepciones

Es importante comprender que la propia CPU implementa ambos métodos a nivel de hardware. Si una aplicación que se ejecuta en modo usuario intenta hacer algo que requiere acceso al modo kernel, genera una «trampa» o «excepción». Luego, el sistema operativo manejará la aplicación, generalmente cerrándola y generando un registro de fallas para que los desarrolladores puedan ver qué sucedió en la memoria cuando las cosas se descarrilaron.

Los peligros del modo kernel: la pantalla azul de la muerte

Si alguna vez tuvo una pantalla azul de la muerte (¿aunque no la tuvo?) que obligó a su computadora a apagarse o reiniciarse, existe una buena posibilidad de que la falla haya sido un proceso del modo kernel.

Cuando un proceso en modo kernel hace algo que se supone que no debe hacer, el sistema operativo no puede recuperarse y la computadora deja de apagarse. Cuando un proceso de modo de usuario se vuelve loco, solo la aplicación falla y el resto del software y el sistema operativo pueden continuar sin ningún problema.

Esta es un área donde las API juegan un papel vital, ya que es la API la que solicita los privilegios del modo kernel. Básicamente, las aplicaciones en modo usuario delegan aplicaciones a la API que requerirían privilegios de modo kernel.

Esta es la razón por la cual el modo kernel generalmente solo se otorga para procesos del sistema de bajo nivel que requieren acceso directo al hardware de la computadora. Este privilegio generalmente se extiende a un proceso porque requiere más rendimiento que el que puede proporcionar el modo de usuario. Algunas instrucciones de la CPU solo funcionan en modo kernel, por lo que si se requiere que un proceso use esas funciones, debe activarse.

Si tiene problemas con la Pantalla azul de la muerte, asegúrese de leer nuestra Guía de solución de problemas de la Pantalla azul de la muerte para Windows 10.

Dr. Geek

Hola geeks, espero disfruten del contenido traído especialmente para ustedes. Tenemos el contenido que usted necesita, recuerda compartirlo porque de ese modo me apoyas a mi y puedo seguir trayendo mucho mas contenido.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

Botón volver arriba