2010-05-22 18 views

Respuesta

6

La programación en modo de usuario se refiere a la programación bajo los mecanismos de protección, supervisión y abstracción del kernel del sistema operativo. Por ejemplo: en el modo de usuario, no puede escribir sectores de disco, ya que están "ocultos" en las API del sistema de archivos. No puede escribir en direcciones de memoria física, ya que el kernel tiene el control de la traducción entre la memoria virtual y física, aunque puede reservar memoria para sus propias necesidades. Además, aunque puede pasar de nivel bajo (ensamblaje), no puede ejecutar instrucciones privilegiadas, por ejemplo, tratando de meterse con las memorias caché de procesador, TBL y MMU.

La programación Kernel le permite programar el sistema para tareas de bajo nivel sin ninguna restricción. Los controladores de hardware, por ejemplo, no se pueden programar en modo de usuario, ya que necesitan acceder al hardware directamente para hacer E/S, asignar regiones de memoria, etc.

Por supuesto, no puede pensar kernel-mode como "menos restringido" y vaya a desarrollar aplicaciones en KM. Muchas instalaciones del sistema para la programación de aplicaciones no están disponibles en KM, ya que las bibliotecas necesarias para interactuar con el usuario se ejecutan en modo de usuario. Además, esas bibliotecas de modo de usuario no se vincularán a un módulo kernel.

Esta distinción puede ser más o menos definida según el sistema operativo. KM/UM es una tontería en DOS, donde a los programas se les permitía acceder libremente a los recursos del sistema (al menos en el modo real 8086/88; este no es el caso con los Extensores de DOS).

-2

respuesta perfecta seleccionado como respuesta. En pocas palabras, según mi conocimiento limitado, en modo kernel, está leyendo/escribiendo bytes en direcciones físicas de un dispositivo como una tarjeta VGA. Sin embargo, en modo de usuario, está escribiendo en un archivo, es decir, si le gusta el sistema operativo en UNIX.

Cuestiones relacionadas