Разница между системным вызовом и вызовом ядра в Minix/Microkernel

Концептуально, в чем разница между системным вызовом и вызовом ядра в Minix?

Я как бы понимаю эту разницу в операционной системе, такой как Linux, но как насчет микроядра, такого как Minix? Оба типа вызовов одинаковы?


person Bori G    schedule 25.10.2019    source источник


Ответы (1)


С точки зрения реализации системные вызовы одинаковы в микроядре и монолитном ядре — системные вызовы перехватываются ядром, а ядро ​​обрабатывает запрос.

Большое отличие заключается в том, для чего нужны системные вызовы — возьмем в качестве примера файловую систему.

В монолитном ядре большинство служб реализовано внутри ядра, включая файловую систему. Итак, чтобы открыть файл, выполнить операции с файлом, требуется системный вызов.

В микроядре большинство служб реализовано на уровне пользователя, и то, что требует системного вызова, действительно зависит от архитектуры системы. В системе, подобной Minix, где службы разделены на компоненты, запрос файловой системы отправляется на сервер файловой системы. Это по-прежнему включает системный вызов, но системный вызов представляет собой сообщение IPC серверу файловой системы, кодирующее требуемую операцию, а не запрос к ядру для конкретной операции. Ядро просто облегчает передачу сообщений.

Как я уже сказал, это зависит от архитектуры системы. Системы на основе микроядра могут иметь архитектуру, в которой файловая система включается в процесс, обращающийся к ней, поэтому для большинства операций с файлами не требуются системные вызовы (но вам, вероятно, потребуются некоторые для драйвера хранилища).

person Anna Lyons    schedule 09.03.2020
comment
архитектура, в которой файловая система включена в процесс, обращающийся к ней, будет экзоядром, а не микроядром. Конечно, есть бесконечные гибриды (например, в основном микроядро, частично экзоядро и чуть-чуть монолит). - person Brendan; 09.03.2020
comment
Это зависит от определения, которое вы используете. Микроядра L4 можно использовать для построения различных типов систем, в том числе описанных выше. Это не делает ядра L4 не «микроядрами». - person Anna Lyons; 09.03.2020