Modo de usuario y modo kernel

Un procesador de un equipo que ejecuta Windows funciona en dos modos diferentes: modo de usuario y modo kernel. El procesador cambia entre estos modos en función del tipo de código que se está ejecutando. Las aplicaciones funcionan en modo de usuario, mientras que los componentes principales del sistema operativo funcionan en modo kernel. Aunque muchos controladores funcionan en modo kernel, algunos pueden funcionar en modo de usuario.

Modo de usuario

Al iniciar una aplicación en modo de usuario, Windows crea un proceso para ella. Este proceso proporciona a la aplicación un espacio de direcciones virtuales privado y una tabla de identificadores privados. Dado que el espacio de direcciones virtuales de cada aplicación es privado, una aplicación no puede modificar los datos de otra aplicación. Cada aplicación se ejecuta de forma aislada, lo que garantiza que, si se bloquea, no afecta a otras aplicaciones ni al sistema operativo.

El espacio de direcciones virtuales de una aplicación en modo de usuario también está limitado. Un proceso que se ejecuta en modo de usuario no puede acceder a direcciones virtuales reservadas para el sistema operativo. Limitar el espacio de direcciones virtuales de una aplicación en modo de usuario impide que la aplicación modifique o dañe los datos críticos del sistema operativo.

Modo kernel

Todo el código que se ejecuta en modo kernel comparte un único espacio de direcciones virtuales. Como resultado, un controlador en modo kernel no está aislado de otros controladores ni del sistema operativo. Si un controlador en modo kernel escribe erróneamente en la dirección virtual incorrecta, podría poner en peligro los datos que pertenecen al sistema operativo u otro controlador. Si un controlador en modo kernel se bloquea, hace que todo el sistema operativo se bloquee.

En el diagrama siguiente se muestra la comunicación entre el modo de usuario y los componentes del modo kernel.

Diagrama que muestra la comunicación entre el modo de usuario y los componentes del modo kernel en un sistema informático.

Espacios de direcciones virtuales