Me gustaría saber cómo un programador kernel piensa acerca de la memoria frente al programador en modo usuario. También me gustaría saber algunas diferencias entre la programación del kernel y la programación del modo de usuario.¿Cuál es la diferencia entre kernel y programación en modo usuario?
Respuesta
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).
artículo Ver Jeffs en Understanding User and Kernel Mode
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.
- 1. ¿Cuál es la diferencia entre los modos de usuario y kernel en los sistemas operativos?
- 2. ¿Cuál es la diferencia entre la pila del kernel y la pila del usuario?
- 3. Comunicación entre el modo kernel y la aplicación en modo de usuario
- 4. en rieles ¿cuál es la diferencia entre el modo de desarrollo y el modo de producción?
- 5. Uso de la comunicación ioctl entre el modo Kernel y el modo de usuario
- 6. Cuál es la diferencia entre la programación de Seaside y otra programación web
- 7. ¿cuál es la diferencia entre el modo de suspensión y el modo de suspensión profunda?
- 8. ¿Diferencia entre procesos que se ejecutan en modo kernel y se ejecutan como raíz?
- 9. ¿Cuál es la diferencia entre + = y = +?
- 10. ¿cuál es la diferencia entre:.! y: r !?
- 11. ¿Cuál es la diferencia entre ".equals" y "=="?
- 12. Cuál es la diferencia entre $ y jQuery
- 13. Cuál es la diferencia entre = y: =
- 14. Cuál es la diferencia entre $ (...) y `...`
- 15. ¿Cuál es la diferencia entre dict() y {}?
- 16. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 17. ¿Cuál es la diferencia entre {0} y ""?
- 18. ¿Cuál es la diferencia entre .ToString (+) y ""
- 19. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 20. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 21. ¿Cuál es la diferencia entre " " y ""?
- 22. Ejecutando un ejecutable en modo usuario desde el modo kernel
- 23. ¿Cuál es el costo (en ciclos) para cambiar entre el kernel de Windows y el modo de usuario?
- 24. cuál es la diferencia entre las plantillas y el polimorfismo
- 25. ¿cuál es la diferencia entre r y rb en fopen
- 26. En Flex, ¿cuál es la diferencia entre 'creationComplete' y 'addedToStage'?
- 27. ¿Cuál es la diferencia entre module_init e init_module en un módulo kernel de Linux?
- 28. ¿cuál es la diferencia entre NULL y Empty en mysql
- 29. ¿Cuál es la diferencia entre DOCUMENT_URI y URI_REQUEST en SSI?
- 30. ¿Cuál es la diferencia entre el sistema operativo y el kernel?
Hace preguntas, pero no acepta una respuesta correcta al final ... –