Почему системный вызов должен переключиться в режим ядра? - PullRequest
1 голос
/ 04 мая 2009

Я готовлюсь к выпускным экзаменам на свои операционные системы, и мне было интересно, кто-нибудь может сказать мне, почему ОС должна переключиться в режим ядра для системных вызовов?

Ответы [ 2 ]

3 голосов
/ 04 мая 2009

Системный вызов используется специально для запуска работы в режиме ядра, поскольку обычному пользовательскому коду это запрещено по соображениям безопасности.

Например, если вы хотите выделить память, операционная система имеет право делать это (поскольку она знает таблицы страниц и имеет доступ к памяти других процессов), но вам, как пользовательской программе, не следует заглянуть или испортить память о других процессах. Это способ песочницы. Таким образом, вы отправляете системный вызов с просьбой операционной системы выделить память, и это происходит на уровне ядра.

Редактировать: теперь я вижу, что статья Википедии на удивление полезна для этого

1 голос
/ 04 мая 2009

Так как это помечено как «домашняя работа», я не просто дам ответ, но и дам подсказку:

Ядро отвечает за доступ к аппаратному обеспечению компьютера и гарантирует, что приложения не наступают друг на друга. Что произойдет, если какое-либо приложение сможет получить доступ к аппаратному устройству (скажем, жесткому диску) без взаимодействия с ядром?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...