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