Общие сведения о библиотеке libkos
Ядро KasperskyOS имеет ряд служб для управления дескрипторами, потоками, памятью, процессами, IPC-каналами, ресурсами ввода-вывода и т.д. Для доступа к службам используется библиотека libkos
.
Библиотека libkos
Библиотека libkos
состоит из двух частей:
- Первая часть предоставляет собой C-интерфейс для доступа к службам ядра KasperskyOS. Она доступна через заголовочные файлы, находящиеся в директории
coresrv
. - Вторая часть библиотеки
libkos
предоставляет абстракции примитивов синхронизации, объектов и очередей. Она также содержит функции-обертки для более простой аллокации памяти и работы с потоками. Заголовочные файлы второй частиlibkos
находятся в директорииkos
.
Библиотека libkos
значительно упрощает использование служб ядра. Функции библиотеки libkos
обеспечивают корректную упаковку IPC-сообщения и выполнение системных вызовов. Взаимодействие других библиотек (включая libc
) с ядром происходит через библиотеку libkos
.
Для использования службы ядра KasperskyOS нужно подключить соответствующий этой службе заголовочный файл библиотеки libkos
. Например, для доступа к методам менеджера ввода-вывода (IO Manager) нужно подключить файл 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
– заголовочные файлы ядра.