2015-06-11 2 views
1

В статье я прочитал следующее: Любой подход (ссылаясь на монолитное или микроядро) может предложить интерфейс POSIX, где дизайн ядра становится малоинтересным для кого-то, просто желающего написать код для запуска на любом заданном проекте , Что означает интерфейс POSIX в этом контексте?Что означает интерфейс POSIX в терминах микроядер?

+1

Интерфейс POSIX - это интерфейс, определенный в стандарте [POSIX] (http://pubs.opengroup.org/onlinepubs/9699919799/toc.htm) (который вам, возможно, придется регистрировать, но регистрация бесплатна, и это может свободно использоваться после регистрации, если только правила не изменились с тех пор, как я зарегистрировал десятилетие или более назад, что вполне возможно). Это Unix-подобный интерфейс, если это помогает. –

ответ

-2

POSIX interface означает пользовательский интерфейс, описанный в стандарте POSIX.

Поскольку пользователь интерфейса, он не зависит от конкретной реализации ядра «ы.

+1

Просьба уточнить. Этот ответ не помогает кому-то, кто еще не знает, что такое POSIX. –

1

POSIX - это набор стандартов, который определяет интерфейс прикладного программирования (API), а также несколько других вещей, но позволяет просто сосредоточиться на API. В основном он определяет набор функций пользовательского пространства, которые должны быть доступны. Если указанные функции доступны на всех системах POSIX, программа может быть легко перенесена из одной системы POSIX в другую, отсюда и название Portable Operating System Interface.

Микроядро против монолитного ядра описывает, как система разработана. Микроядра разработаны таким образом, чтобы как можно проще выполнять только необходимую работу, которую должно выполнять ядро. Обычно это управление потоками, памятью и прерываниями, а также межпроцессная коммуникация (IPC). IPC является важной задачей, поскольку функциональность, которую не реализует микроядер, но типичный монолит, будет реализовываться как сервисы пользовательского пространства и доступна через IPC. Например, драйверы устройств и файловые системы обычно выполняются как службы пользовательского пространства. В дизайне ядра монолита они реализованы в ядре (хотя возможно наличие драйверов устройств пользовательского пространства или файловых систем, в том числе и Linux).

Таким образом, POSIX, который определяет функции пользовательского пространства, но не говорит о том, как эти функции должны быть реализованы. Таким образом, open в монолите может вызвать запуск системного вызова open. В микроядре open фактически может быть просто оболочкой системного вызова IPC, которая свяжется с сервисом пользовательского пространства, который отвечает за обработку open (что может зависеть от того, что вы открываете). Все POSIX заботится о том, что есть open и что он ведет себя правильно, ему все равно, как open выполняет свою задачу.

Смежные вопросы