Я знаю разницу между процессом, работающим в пользовательском режиме, и процессом, работающим в режиме ядра (на основе ограничений доступа, доступа к оборудованию и т. д.). Но просто из любопытства, в чем разница между процессом, работающим в режиме ядра, и процессом, работающим с правами root?
Разница между процессами, работающими в режиме ядра, и работающими от имени пользователя root?
Ответы (1)
режим ядра и root — это две отдельные идеи, которые на самом деле не связаны друг с другом. Концепция запуска процесса от имени пользователя root — это термин unix/linux, который означает, что вы вошли в систему как администратор системы.
Любой процесс, который вы запускаете, будь то root или обычный пользователь, обычно работает как в пользовательском режиме, так и в режиме ядра. Система постоянно переключается между режимом пользователя (где выполняется код приложения) и режимом ядра (где выполняется код ядра).
Некоторые программы, как и многие драйверы устройств, всегда работают в режиме ядра, что означает, что они имеют полный доступ к оборудованию. Обычное приложение, работающее с привилегиями root, по-прежнему существует в пользовательском режиме и переключается в режим ядра только при выполнении системного вызова ядра, а затем снова переключается в пользовательский режим.