Общие сведения о библиотеке libkos

02 августа 2023

ID libkos_intro

Ядро 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 – заголовочные файлы ядра.

Вам помогла эта статья?
Что нам нужно улучшить?
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!
Спасибо за ваш отзыв, вы помогаете нам становиться лучше!