Общие сведения о библиотеке libkos
Ядро KasperskyOS имеет ряд служб для управления дескрипторами, потоками, памятью, процессами, IPC-каналами, ресурсами ввода-вывода и т.д. Для доступа к службам используется библиотека libkos.
Библиотека libkos
Библиотека libkos состоит из двух частей:
- Первая часть предоставляет собой C-интерфейс для доступа к службам ядра KasperskyOS. Она доступна через заголовочные файлы, находящиеся в директории
coresrv. - Вторая часть библиотеки
libkosпредоставляет абстракции примитивов синхронизации, объектов и очередей. Она также содержит функции-обертки для более простой аллокации памяти и работы с потоками. Заголовочные файлы второй частиlibkosнаходятся в директорииkos.
Библиотека libkos значительно упрощает использование служб ядра. Функции библиотеки libkos обеспечивают корректную упаковку IPC-сообщения и выполнение системных вызовов. Взаимодействие других библиотек (включая libc) с ядром происходит через библиотеку libkos.
Для использования службы ядра KasperskyOS нужно подключить соответствующий этой службе заголовочный файл библиотеки libkos. Например, для доступа к методам менеджера ввода-вывода (IO Manager) нужно подключить файл io_api.h:
#include <coresrv/io/io_api.h>
Файлы, используемые библиотекой libkos
Внутренняя реализация библиотеки libkos может использовать следующие файлы, экспортируемые ядром:
- Файлы на языке IDL (idl-описания). Содержат описания интерфейсов служб. Используются IPC-транспортом для корректной упаковки сообщений.
- Заголовочные файлы ядра. Эти файлы включаются библиотекой
libkos.
Пример
Менеджер ввода-вывода (IO Manager) представлен для пользователя следующими файлами:
coresrv/io/io_api.h– заголовочный файл библиотекиlibkos;services/io/IO.idl– idl-описание менеджера ввода-вывода;io/io_dma.h,io/io_irq.h– заголовочные файлы ядра.