IPC-каналы могут быть созданы статически и динамически.
Статическое создание IPC-каналов
Статическое создание IPC-канала имеет следующие особенности:
Статически создаются IPC-каналы, заданные в init-описании. Также для статического создания IPC-каналов можно использовать API task.h.
Чтобы получить клиентский и серверный IPC-дескрипторы и идентификатор службы (RIID), нужно использовать API sl_api.h.
Динамическое создание IPC-каналов
Динамическое создание IPC-каналов позволяет изменять топологию взаимодействия процессов "на лету". Например, это требуется, если неизвестно, какой именно сервер предоставляет службу, необходимую клиенту.
Динамическое создание IPC-канала имеет следующие особенности:
Для динамического создания IPC-каналов нужно использовать системную программу DCM.
Помимо использования системной программы DCM существует другой способ динамического создания IPC-каналов, который заключается в использовании API cm_api.h и ns_api.h, предоставляемых библиотекой libkos
совместно с системной программой NameServer
. Этот способ является устаревшим, поэтому его использование не рекомендуется.
Если динамически созданный IPC-канал больше не требуется, его клиентский и серверный дескрипторы можно закрыть. При необходимости IPC-канал может быть создан снова.
В начало