Pregunta

Estoy estudiando la final de mi sistema operativo y me preguntaba si alguien podría decirme por qué el sistema operativo necesita cambiar al modo kernel para syscalls.

¿Fue útil?

Solución

Un syscall se usa específicamente para ejecutar una operación en el modo kernel, ya que el código de usuario habitual no está permitido hacer esto por razones de seguridad.

Por ejemplo, si desea asignar memoria, el sistema operativo tiene el privilegio de hacerlo (ya que conoce las tablas de páginas y tiene permiso para acceder a la memoria de otros procesos), pero a usted como programa de usuario no se le debe permitir Echar un vistazo o arruinar la memoria de otros procesos. Es una forma de caja de arena para ti. Así que envías un syscall solicitando al sistema operativo que asigne memoria, y eso sucede en el nivel del kernel.

Editar: ahora veo que el artículo de Wikipedia es sorprendentemente útil en este

Otros consejos

Ya que está etiquetado como "tarea", no solo voy a dar la respuesta, sino que te daré una pista:

El kernel es responsable de acceder al hardware de la computadora y de garantizar que las aplicaciones no se pisen unas con otras. ¿Qué pasaría si cualquier aplicación pudiera acceder a un dispositivo de hardware (por ejemplo, el disco duro) sin la cooperación del núcleo?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top