Содержание
- Методы служб ядра KasperskyOS
- Служба виртуальной памяти
- Служба ввода-вывода
- Служба потоков исполнения
- Служба дескрипторов
- Служба процессов
- Служба синхронизации
- Службы файловой системы
- Служба времени
- Служба слоя аппаратных абстракций
- Служба управления контроллером XHCI
- Служба аудита
- Служба профилирования
- Служба управления изоляцией памяти для ввода-вывода
- Служба соединений
- Служба управления электропитанием
- Служба уведомлений
- Служба гипервизора
- Службы доверенной среды исполнения
- Служба прерывания IPC
- Служба управления частотой процессоров
Методы служб ядра KasperskyOS
С точки зрения модуля безопасности Kaspersky Security Module ядро KasperskyOS является контейнером компонентов, предоставляющих службы. Список компонентов ядра содержится в файле Core.edl
, расположенном в директории sysroot-*-kos/include/kl/core
из состава KasperskyOS SDK. Также в этой директории находятся CDL-, IDL-файлы формальной спецификации ядра.
Методы служб ядра можно разделить на безопасные и потенциально опасные. Потенциально опасные методы могут быть использованы злоумышленником в компрометированном компоненте решения, чтобы, например, вызвать отказ, организовать скрытую передачу данных, захватить управление устройством ввода-вывода. Безопасные методы не могут быть использованы таким образом.
Доступ к методам служб ядра должен быть максимально ограничен политикой безопасности решения (принцип "Least Privilege"). Для этого нужно выполнить следующие требования:
- Разрешить доступ к безопасному методу только тем компонентам решения, которым этот метод нужен.
- Разрешить доступ к потенциально опасному методу только тем доверенным компонентам решения, которым этот метод нужен.
- Разрешить доступ к потенциально опасному методу только тем недоверенным компонентам решения, которым этот метод нужен, если только проверяемые условия доступа ограничивают возможности злонамеренного использования метода, или последствия злонамеренного использования метода допустимы с точки зрения безопасности.
Например, недоверенному компоненту можно разрешить использовать ограниченный набор портов ввода-вывода, чтобы этот компонент не мог захватить управление устройствами ввода-вывода. Также, к примеру, скрытая передача данных между недоверенными компонентами может быть допустимой с точки зрения безопасности.
Служба виртуальной памяти
Служба предназначена для управления виртуальной памятью.
Сведения о методах службы приведены в таблице ниже.
Методы службы vmm.VMM (интерфейс kl.core.VMM)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Выделяет (резервирует и опционально фиксирует) регион виртуальной памяти. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Фиксирует зарезервированный методом Параметры
|
Позволяет исчерпать оперативную память. |
|
Назначение Отменяет фиксацию региона виртуальной памяти. Параметры
|
Нет. |
|
Назначение Изменяет права доступа к региону виртуальной памяти. Параметры
|
Нет. |
|
Назначение Освобождает регион виртуальной памяти. Параметры
|
Нет. |
|
Назначение Позволяет получить сведения о странице виртуальной памяти. Параметры
|
Нет. |
|
Назначение Создает буфер MDL. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Создает буфер MDL из физической памяти, отображенной на заданный регион виртуальной памяти, и отображает созданный буфер MDL на этот регион. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Позволяет получить размер буфера MDL. Параметры
|
Нет. |
|
Назначение Резервирует регион виртуальной памяти и отображает на него буфер MDL. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Создает буфер MDL на основе существующего. Буфер MDL создается из тех же регионов физической памяти, что и оригинальный. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
Служба ввода-вывода
Служба предназначена для работы с портами ввода-вывода, MMIO, DMA, прерываниями.
Сведения о методах службы приведены в таблице ниже.
Методы службы io.IO (интерфейс kl.core.IO)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Регистрирует последовательность портов ввода-вывода. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Регистрирует регион памяти MMIO. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Создает буфер DMA. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Регистрирует прерывание. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Резервирует регион виртуальной памяти и отображает на него регион памяти MMIO. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Открывает доступ к портам ввода-вывода. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Привязывает вызывающий поток исполнения к прерыванию. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Отправляет потоку исполнения запрос, в результате выполнения которого поток должен выполнить отвязывание от прерывания. Параметры
|
Позволяет прекратить обработку прерывания в другом процессе. |
|
Назначение Разрешает (демаскирует) прерывание. Параметры
|
Позволяет разрешить прерывание на уровне системы. |
|
Назначение Запрещает (маскирует) прерывание. Параметры
|
Позволяет запретить прерывание на уровне системы. |
|
Назначение Изменяет параметры кеширования буфера DMA. Параметры
|
Нет. |
|
Назначение Резервирует регион виртуальной памяти и отображает на него буфер DMA. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Позволяет получить сведения о буфере DMA. Параметры
|
Нет. |
|
Назначение Позволяет получить сведения о физической памяти, на основе которой создан буфер DMA. Параметры
|
Нет. |
|
Назначение Открывает доступ к буферу DMA для устройства. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
Служба потоков исполнения
Служба предназначена для управления потоками исполнения.
Сведения о методах службы приведены в таблице ниже.
Методы службы thread.Thread (интерфейс kl.core.Thread)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Создает поток исполнения. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Создает дескриптор вызывающего потока исполнения. Параметры
|
Нет. |
|
Назначение Блокирует вызывающий поток исполнения. Параметры
|
Позволяет заблокировать поток исполнения, который захватил созданный в разделяемой памяти объект синхронизации, который ожидается потоком исполнения другого процесса. В результате поток исполнения другого процесса может быть заблокированным сколь угодно долго. |
|
Назначение Возобновляет исполнение заблокированного потока. Параметры
|
Нет. |
|
Назначение Завершает поток исполнения. Параметры
|
Нет. |
|
Назначение Завершает вызывающий поток исполнения. Параметры
|
Нет. |
|
Назначение Блокирует вызывающий поток исполнения до завершения заданного потока исполнения. Параметры
|
Нет. |
|
Назначение Задает приоритет потока исполнения. Параметры
|
Позволяет повысить приоритет потока исполнения, чтобы сократить процессорное время, доступное остальным потокам исполнения, в том числе из других процессов. Рекомендуется контролировать приоритет потока исполнения. |
|
Назначение Задает базовый адрес локальной памяти потока исполнения (TLS) для вызывающего потока исполнения. Параметры
|
Нет. |
|
Назначение Блокирует вызывающий поток исполнения на заданное время. Параметры
|
Нет. |
|
Назначение Позволяет получить сведения о потоке исполнения. Параметры
|
Нет. |
|
Назначение Отвязывает вызывающий поток исполнения от прерывания, обрабатываемого в его контексте. Параметры
|
Нет. |
|
Назначение Позволяет получить маску сходства потока исполнения. Параметры
|
Нет. |
|
Назначение Задает маску сходства потока исполнения. Параметры
|
Нет. |
|
Назначение Задает класс планирования и приоритет потока исполнения. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Позволяет получить сведения о классе планирования и приоритете потока исполнения. Параметры
|
Нет. |
Служба дескрипторов
Служба предназначена для выполнения операций с дескрипторами.
Сведения о методах службы приведены в таблице ниже.
Методы службы handle.Handle (интерфейс kl.core.Handle)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Копирует дескриптор. В результате копирования вызывающий процесс получает потомка дескриптора. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Создает дескриптор. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Закрывает дескриптор. Параметры
|
Нет. |
|
Назначение Создает и связывает между собой клиентский, серверный и слушающий IPC-дескрипторы. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Создает клиентский IPC-дескриптор для обращения к модулю безопасности Kaspersky Security Module через интерфейс безопасности. Параметры
|
Позволяет исчерпать множество возможных значений дескрипторов процесса ядра. |
|
Назначение Позволяет получить идентификатор безопасности (SID) по дескриптору. Параметры
|
Нет. |
|
Назначение Закрывает дескриптор и отзывает его потомков. Параметры
|
Нет. |
|
Назначение Отзывает дескрипторы, которые образуют поддерево наследования заданного дескриптора. Параметры
|
Нет. |
|
Назначение Создает объект контекста передачи ресурса и настраивает механизм уведомлений для контроля жизненного цикла этого объекта. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
Служба процессов
Служба предназначена для управления процессами.
Сведения о методах службы приведены в таблице ниже.
Методы службы task.Task (интерфейс kl.core.Task)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Создает процесс. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Загружает сегмент ELF-образа в память процесса из буфера MDL. Параметры
|
Позволяет загрузить в память процесса код для последующего исполнения. |
|
Назначение Резервирует регион виртуальной памяти в процессе, который был создан "пустым". Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Освобождает регион виртуальной памяти, зарезервированный вызовом метода Параметры
|
Позволяет освободить регионы виртуальной памяти в другом процессе, который был создан "пустым" и еще не запущен, при наличии его дескриптора. (Маска прав дескриптора должна разрешать освобождение виртуальной памяти.) |
|
Назначение Задает точку входа в программу и смещение загрузки ELF-образа. Параметры
|
Создает условия для запуска кода, загруженного в память процесса. |
|
Назначение Загружает таблицу символов Параметры
|
Нет. |
|
Назначение Записывает заголовок ELF-образа в PCB процесса, который был создан "пустым". Параметры
|
Нет. |
|
Назначение Записывает данные в SCP дочернего процесса. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Удаляет SCP вызывающего процесса. Параметры
|
Нет. |
|
Назначение Запускает процесс. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Завершает вызывающий процесс. Параметры
|
Нет. |
|
Назначение Завершает процесс. Параметры
|
Позволяет завершить другой процесс при наличии его дескриптора. (Маска прав дескриптора должна разрешать завершение процесса.) |
|
Назначение Позволяет получить сведения о завершившемся процессе. Параметры
|
Нет. |
|
Назначение Позволяет получить контекст потока исполнения, входящего в процесс, который находится в "замороженном" состоянии. Параметры
|
Позволяет нарушить изоляцию процесса, который находится в "замороженном" состоянии. Например, контекст потока исполнения может содержать значения переменных. |
|
Назначение Позволяет получить сведения о регионе виртуальной памяти, принадлежащем процессу, который находится "замороженном" состоянии. Параметры
|
Позволяет нарушить изоляцию процесса, который находится в "замороженном" состоянии. Изоляция нарушается, так как открывается доступ к региону памяти процесса. |
|
Назначение Завершает процесс, который находится в "замороженном" состоянии. Параметры
|
Позволяет завершить процесс, который находится в "замороженном" состоянии. Это не дает получить сведения об этом процессе для диагностики. |
|
Назначение Позволяет получить имя вызывающего процесса. Параметры
|
Нет. |
|
Назначение Позволяет получить имя исполняемого файла (в ROMFS), из которого создан вызывающий процесс. Параметры
|
Нет. |
|
Назначение Позволяет получить приоритет начального потока процесса. Параметры
|
Нет. |
|
Назначение Задает приоритет начального потока процесса. Параметры
|
Позволяет повысить приоритет начального потока процесса, чтобы сократить процессорное время, доступное остальным потокам исполнения, в том числе из других процессов. Рекомендуется контролировать приоритет начального потока исполнения. |
|
Назначение Позволяет получить сведения о существующих процессах. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Задает класс планирования и приоритет начального потока процесса. Параметры
|
Позволяет выполнить следующие действия:
|
|
Назначение Задает начальное значение генератора случайных чисел для поддержки ASLR. Параметры
|
Нет. |
|
Назначение Позволяет получить адрес и размер таблицы символов Параметры
|
Нет. |
|
Назначение Передает дескриптор процессу, который еще не запущен. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Позволяет получить идентификатор процесса (PID). Параметры
|
Нет. |
Служба синхронизации
Служба предназначена для работы с фьютексами.
Сведения о методах службы приведены в таблице ниже.
Методы службы sync.Sync (интерфейс kl.core.Sync)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Блокирует исполнение вызывающего потока, если значение фьютекса равно ожидаемому. Параметры
|
Нет. |
|
Назначение Возобновляет исполнение потоков, заблокированных вызовом метода Параметры
|
Нет. |
Службы файловой системы
Службы предназначены для работы с файловой системой ROMFS, используемой ядром KasperskyOS.
Сведения о методах служб приведены в таблицах ниже.
Методы службы fs.FS (интерфейс kl.core.FS)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Открывает файл. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Закрывает файл. Параметры
|
Нет. |
|
Назначение Читает данные из файла. Параметры
|
Нет. |
|
Назначение Позволяет получить размер файла. Параметры
|
Нет. |
|
Назначение Позволяет получить уникальный идентификатор файла. Параметры
|
Нет. |
|
Назначение Позволяет получить число файлов в файловой системе. Параметры
|
Нет. |
|
Назначение Позволяет получить имя и уникальный идентификатор файла по индексу файла. Параметры
|
Нет. |
|
Назначение Позволяет получить размер файловой системы. Параметры
|
Нет. |
Методы службы fs.FSUnsafe (интерфейс kl.core.FSUnsafe)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Меняет образ файловой системы. Вместо образа ROMFS, созданного при сборке решения, будет использоваться другой образ ROMFS, загруженный в память процесса. Параметры
|
Позволяет выполнить следующие действия:
|
Служба времени
Служба предназначена для установки системного времени.
Сведения о методах службы приведены в таблице ниже.
Методы службы time.Time (интерфейс kl.core.Time)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Устанавливает системное время. Параметры
|
Позволяет установить системное время. |
|
Назначение Запускает постепенную корректировку системного времени. Параметры
|
Позволяет изменить системное время. |
|
Назначение Позволяет получить интервал времени, отражающий, на какое значение остается скорректировать системное время, чтобы постепенная корректировка была полностью завершена. Параметры
|
Нет. |
Служба слоя аппаратных абстракций
Служба предназначена для получения значений параметров HAL, работы с привилегированными регистрами, очистки кеша процессора, выполнения диагностического вывода, а также получения случайных чисел, сгенерированных аппаратно.
Сведения о методах службы приведены в таблице ниже.
Методы службы hal.HAL (интерфейс kl.core.HAL)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Позволяет получить значение параметра HAL. Параметры
|
Позволяет получить значения параметров HAL, которые могут представлять собой критические сведения о системе. |
|
Назначение Позволяет получить значение привилегированного регистра. Параметры
|
Позволяет организовать канал передачи данных с процессом, который имеет доступ к методу Рекомендуется контролировать имя регистра. |
|
Назначение Задает значение привилегированного регистра. Параметры
|
Позволяет выполнить следующие действия:
Рекомендуется контролировать имя регистра. |
|
Назначение Позволяет получить значение привилегированного регистра. Параметры
|
Позволяет организовать канал передачи данных с процессом, который имеет доступ к методу Рекомендуется контролировать имя диапазона регистров и смещение регистра в этом диапазоне. |
|
Назначение Задает значение привилегированного регистра. Параметры
|
Позволяет выполнить следующие действия:
Рекомендуется контролировать имя диапазона регистров и смещение регистра в этом диапазоне. |
|
Назначение Очищает кеш процессора. Параметры
|
Позволяет очистить кеш процессора. |
|
Назначение Помещает данные в диагностический вывод, который записывается, например, в порт COM или USB (версии 3.0 или более поздней, с поддержкой DbC). Параметры
|
Позволяет заполнить диагностический вывод фиктивными данными (например, неинформативными). |
|
Назначение Позволяет получить случайные числа, сгенерированные аппаратно. Параметры
|
Позволяет создать нагрузку на аппаратный генератор случайных чисел частыми вызовами метода, чтобы другие процессы не могли получить случайные числа с использованием этого генератора. |
Служба управления контроллером XHCI
Служба предназначена для выключения и повторного включения отладочного режима контроллера XHCI (с поддержкой DbC) при его перезагрузке.
Сведения о методах службы приведены в таблице ниже.
Методы службы xhcidbg.XHCIDBG (интерфейс kl.core.XHCIDBG)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Включает отладочный режим контроллера XHCI. Параметры
|
Позволяет настроить контроллер XHCI, чтобы диагностический вывод выполнялся через порт USB (версии 3.0 или более поздней). |
|
Назначение Выключает отладочный режим контроллера XHCI. Параметры
|
Позволяет настроить контроллер XHCI, чтобы диагностический вывод не выполнялся через порт USB (версии 3.0 или более поздней). |
Служба аудита
Служба предназначена для чтения сообщений из журналов ядра KasperskyOS. Этих журналов два: kss
и core
. Журнал kss
содержит данные аудита безопасности. Журнал core
содержит диагностический вывод. (Диагностический вывод включает как вывод ядра, так и вывод программ.)
Сведения о методах службы приведены в таблице ниже.
Методы службы audit.Audit (интерфейс kl.core.Audit)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Открывает журнал ядра для чтения. Параметры
|
Нет. |
|
Назначение Закрывает журнал ядра. Параметры
|
Нет. |
|
Назначение Позволяет получить сообщение из журнала ядра. Параметры
|
Позволяет извлечь сообщения из журнала ядра, чтобы их не получил другой процесс. |
Служба профилирования
Служба предназначена для профилирования и сбора покрытия кода, а также для получения значений счетчиков производительности.
Сведения о методах службы приведены в таблице ниже.
Методы службы profiler.Profiler (интерфейс kl.core.Profiler)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Позволяет получить сведения о покрытии кода. Параметры
|
Нет. |
|
Назначение Выводит сведения о покрытии кода в формате Параметры
|
Нет. |
|
Назначение Выводит сведения о покрытии кода в формате Параметры
|
Нет. |
|
Назначение Позволяет получить значения счетчиков производительности. Параметры
|
Нет. |
|
Назначение Позволяет получить значения счетчиков производительности для системного ресурса (процесса или потока исполнения). Параметры
|
Нет. |
|
Назначение Запускает семплирующее профилирование кода. Результатом семплирующего профилирования является статистика исполнения кода, которая отражает длительность исполнения участков кода. Параметры
|
Нет. |
|
Назначение Останавливает семплирующее профилирование кода. Параметры
|
Нет. |
|
Назначение Позволяет получить данные, содержащие статистику исполнения кода, полученную в результате семплирующего профилирования. Параметры
|
Позволяет получить адреса и имена функций других процессов. |
|
Назначение Добавляет процесс в список профилируемых. Параметры
|
Нет. |
|
Назначение Очищает список профилируемых процессов. Параметры
|
Нет. |
|
Назначение Сохраняет в ядре сведения о загружаемом сегменте ELF-образа. (Это требуется, чтобы статистика исполнения кода, полученная в результате семплирующего профилирования, содержала дополнительную информацию, которая позволяет ассоциировать эту статистику с исходным кодом.) Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Удаляет сведения о загружаемом сегменте ELF-образа, сохраненные в ядре методом Параметры
|
Нет. |
|
Назначение Выделяет ресурсы, требуемые для сбора покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим процессом. Параметры
|
Позволяет исчерпать оперативную память. |
|
Назначение Освобождает ресурсы, требуемые для сбора покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим процессом. Параметры
|
Нет. |
|
Назначение Запускает сбор покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим потоком исполнения. Параметры
|
Нет. |
|
Назначение Останавливает сбор покрытия кода ядра, который осуществляется при обработке системных вызовов, выполняемых вызывающим потоком исполнения. Также позволяет получить сведения о покрытии кода ядра. Параметры
|
Нет. |
Служба управления изоляцией памяти для ввода-вывода
Служба предназначена для управления изоляцией регионов физической памяти, используемых устройствами на шине PCIe для DMA. (Изоляция обеспечивается IOMMU.)
Сведения о методах службы приведены в таблице ниже.
Методы службы iommu.IOMMU (интерфейс kl.core.IOMMU)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Прикрепляет устройство на шине PCIe к домену IOMMU, ассоциированному с вызывающим процессом. Параметры
|
Позволяет прикрепить устройство на шине PICIe, управляемое другим процессом, к домену IOMMU, ассоциированному с вызывающим процессом, что приведет к неработоспособности устройства. Рекомендуется контролировать адрес устройства на шине PCIe. |
|
Назначение Открепляет устройство на шине PCIe от домена IOMMU, ассоциированного с вызывающим процессом. Параметры
|
Нет. |
Служба соединений
Служба предназначена для динамического создания IPC-каналов.
Сведения о методах службы приведены в таблице ниже.
Методы службы cm.CM (интерфейс kl.core.CM)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Выполняет запрос на создание IPC-канала с сервером для использования заданной службы. Параметры
|
Позволяет создать нагрузку на сервер, отправляя множество запросов на создание IPC-канала. |
|
Назначение Позволяет получить запрос клиента на создание IPC-канала для использования службы. Параметры
|
Нет. |
|
Назначение Отклоняет запрос клиента на создание IPC-канала для использования заданной службы. Параметры
|
Нет. |
|
Назначение Принимает запрос клиента на создание IPC-канала для использования заданной службы. Параметры
|
Нет. |
Служба управления электропитанием
Служба предназначена для изменения режима электропитания компьютера (например, выключения, перезагрузки), а также для включения и выключения процессоров (вычислительных ядер).
Сведения о методах службы приведены в таблице ниже.
Методы службы pm.PM (интерфейс kl.core.PM)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Выполняет запрос на изменение режима электропитания компьютера. Параметры
|
Позволяет изменить режим электропитания компьютера. |
|
Назначение Выполняет запрос на включение и/или выключение процессоров. Параметры
|
Позволяет выключить и включить процессоры. |
|
Назначение Позволяет получить сведения о том, какие процессоры находятся в активном состоянии. Параметры
|
Нет. |
Служба уведомлений
Служба предназначена для работы с уведомлениями о событиях, происходящих с ресурсами.
Сведения о методах службы приведены в таблице ниже.
Методы службы notice.Notice (интерфейс kl.core.Notice)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Создает приемник уведомлений. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Добавляет запись вида "ресурс – маска событий" в приемник уведомлений, чтобы он получал уведомления о событиях, которые происходят с заданным ресурсом и соответствуют заданной маске событий. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Удаляет записи вида "ресурс – маска событий" с заданным идентификатором из приемника уведомлений, чтобы он не получал уведомления о событиях, соответствующих этим записям. Параметры
|
Нет. |
|
Назначение Удаляет записи вида "ресурс – маска событий", соответствующие заданному ресурсу, из приемника уведомлений, чтобы он не получал уведомления о событиях, соответствующих этим записям. Параметры
|
Нет. |
|
Назначение Извлекает уведомления из приемника. Параметры
|
Нет. |
|
Назначение Удаляет все записи вида "ресурс – маска событий"из заданного приемника уведомлений; возобновляет исполнение всех потоков, ожидающих появления уведомлений в заданном приемнике; опционально запрещает добавление записей вида "ресурс – маска событий" в заданный приемник уведомлений. Параметры
|
Нет. |
|
Назначение Сигнализирует, что события из заданной маски событий произошли с заданным пользовательским ресурсом. Параметры
|
Нет. |
Служба гипервизора
Служба предназначена для работы с гипервизором.
Методы службы hypervisor.Hypervisor
(интерфейс kl.core.Hypervisor
) являются потенциально опасными. Доступ к этим методам можно разрешать только специальной программе vmapp
.
Службы доверенной среды исполнения
Службы предназначены для передачи данных между доверенной средой исполнения (англ. Trusted Execution Environment, TEE) и общей средой исполнения (англ. Rich Execution Environment, REE), а также для получения доступа к физической памяти REE из TEE.
Сведения о методах служб приведены в таблицах ниже.
Методы службы tee.TEE (интерфейс kl.core.TEE)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Отправляет и принимает сообщения, передающиеся между TEE и REE. Метод используется как в TEE, так и в REE. Параметры
|
Позволяет процессу в REE получить ответ от TEE на запрос другого процесса в REE. |
|
Назначение Освобождает значения уникальных идентификаторов сообщений, передающихся между TEE и REE. (Эти значения требуется освободить, чтобы они стали доступными для повторного использования.) Метод используется в REE. Параметры
|
Позволяет освободить значения, используемые другими процессами в REE в качестве уникальных идентификаторов сообщений, передающихся между TEE и REE. |
Методы службы tee.TEEVMM (интерфейс kl.core.TEEVMM)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Создает заготовку буфера MDL для последующего добавления в нее физической памяти из REE. Метод используется в TEE. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Добавляет регион физической памяти REE в заготовку буфера MDL, созданную методом Метод используется в TEE. Параметры
|
Позволяет получить доступ к произвольному региону физической памяти REE из TEE. |
Служба прерывания IPC
Служба предназначена для прерывания блокирующих системных вызовов Call()
и Recv()
. (Это может потребоваться, например, для корректного завершения процесса.)
Сведения о методах службы приведены в таблице ниже.
Методы службы ipc.IPC (интерфейс kl.core.IPC)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Создает объект синхронизации IPC. Объект синхронизации IPC используется для прерывания блокирующих системных вызовов Дескриптор объекта синхронизации IPC не может быть передан другому процессу, так как в маске прав этого дескриптора не установлен необходимый для этого флаг. Параметры
|
Позволяет исчерпать память ядра, создавая в ней множество объектов. |
|
Назначение Переводит заданный объект синхронизации IPC в состояние, при котором системные вызовы Параметры
|
Нет. |
|
Назначение Переводит заданный объект синхронизации IPC в состояние, при котором системные вызовы Параметры
|
Нет. |
Служба управления частотой процессоров
Служба предназначена для изменения частоты процессоров (вычислительных ядер).
Сведения о методах службы приведены в таблице ниже.
Методы службы cpufreq.CpuFreq (интерфейс kl.core.CpuFreq)
Метод |
Назначение и параметры метода |
Потенциальная опасность метода |
---|---|---|
|
Назначение Позволяет получить сведения о процессорных группах. В сведениях о процессорных группах перечислены существующие процессорные группы с указанием возможных значений параметра производительности для каждой из них. Этим параметром является комбинация соответствующих друг другу частоты и напряжения (англ. Operating Performance Point, OPP). Частота приводится в кГц, напряжение приводится в мкВ. Параметры
|
Нет. |
|
Назначение Позволяет получить индекс текущего OPP для заданной процессорной группы. Параметры
|
Нет. |
|
Назначение Устанавливает заданный OPP для заданной процессорной группы. Параметры
|
Позволяет изменить частоту процессорной группы. |