В KasperskyOS ограниченно реализован POSIX с ориентацией на стандарт POSIX.1-2008. Прежде всего ограничения связаны с обеспечением безопасности.
Отсутствует поддержка XSI и опциональной функциональности.
Ограничения затрагивают:
Ограничения представлены:
errno
значения ENOSYS
и возвращения значения -1
.В KasperskyOS сигналы не могут прервать системные вызовы Call()
, Recv()
, Reply()
, которые обеспечивают работу библиотек, реализующих интерфейс POSIX.
Ядро KasperskyOS не посылает сигналы.
Ограничения взаимодействия между процессами
Интерфейс |
Назначение |
Реализация |
Заголовочный файл по стандарту POSIX.1-2008 |
---|---|---|---|
|
Создать новый (дочерний) процесс. |
Не реализован. |
|
|
Зарегистрировать обработчики, которые вызываются перед и после создания дочернего процесса. |
Не реализован. |
|
|
Ожидать остановки или завершения дочернего процесса. |
Заглушка. |
|
|
Ожидать изменения состояния дочернего процесса. |
Не реализован. |
|
|
Ожидать остановки или завершения дочернего процесса. |
Заглушка. |
|
|
Запустить исполняемый файл. |
Заглушка. |
|
|
Запустить исполняемый файл. |
Заглушка. |
|
|
Запустить исполняемый файл. |
Заглушка. |
|
|
Запустить исполняемый файл. |
Не реализован. |
|
|
Запустить исполняемый файл. |
Не реализован. |
|
|
Запустить исполняемый файл. |
Заглушка. |
|
|
Запустить исполняемый файл. |
Заглушка. |
|
|
Перевести процесс в другую группу или создать группу. |
Заглушка. |
|
|
Создать сессию. |
Заглушка. |
|
|
Получить идентификатор группы вызывающего процесса. |
Заглушка. |
|
|
Получить идентификатор группы. |
Заглушка. |
|
|
Получить идентификатор родительского процесса. |
Заглушка. |
|
|
Получить идентификатор сессии. |
Заглушка. |
|
|
Получить значения времени для процесса и его потомков. |
Заглушка. |
|
|
Послать сигнал процессу или группе процессов. |
Можно посылать только сигнал |
|
|
Ожидать сигнала. |
Заглушка. |
|
|
Проверить наличие полученных заблокированных сигналов. |
Не реализован. |
|
|
Послать сигнал процессу. |
Не реализован. |
|
|
Ожидать сигнала из заданного набора сигналов. |
Не реализован. |
|
|
Ожидать сигнала из заданного набора сигналов. |
Не реализован. |
|
|
Создать неименованный семафор. |
Нельзя создать неименованный семафор для синхронизации между процессами. Если передать ненулевое значение через параметр |
|
|
Создать/открыть именованный семафор. |
Нельзя открыть именованный семафор, который был создан другим процессом. Именованные семафоры (как и неименованные) являются локальными, то есть они доступны только тому процессу, который их создал. |
|
|
Создать спин-блокировку. |
Нельзя создать спин-блокировку для синхронизации между процессами. Если передать значение |
|
|
Отобразить в память. |
Нельзя выполнить отображение в память для взаимодействия между процессами. Если передать значения |
|
|
Задать права доступа к памяти. |
Для целей безопасности некоторые конфигурации ядра KasperskyOS запрещают предоставлять доступ к регионам виртуальной памяти на запись и исполнение одновременно. Если при использовании такой конфигурации ядра через параметр |
|
|
Создать неименованный канал. |
Нельзя использовать неименованный канал для передачи данных между процессами. Неименованные каналы являются локальными, то есть они доступны только тому процессу, который их создал. |
|
|
Создать специальный файл FIFO (именованный канал). |
Заглушка. |
|
|
Создать специальный файл FIFO (именованный канал). |
Не реализован. |
|
Ограничения взаимодействия между потоками исполнения посредством сигналов
Интерфейс |
Назначение |
Реализация |
Заголовочный файл по стандарту POSIX.1-2008 |
---|---|---|---|
|
Послать сигнал потоку исполнения. |
Нельзя послать сигнал потоку исполнения. Если передать номер сигнала через параметр |
|
|
Восстановить состояние потока управления и маску сигналов. |
Не реализован. |
|
|
Сохранить состояние потока управления и маску сигналов. |
Не реализован. |
|
Ограничения асинхронного ввода-вывода
Интерфейс |
Назначение |
Реализация |
Заголовочный файл по стандарту POSIX.1-2008 |
---|---|---|---|
|
Отменить запросы ввода-вывода, которые ожидают обработки. |
Не реализован. |
|
|
Получить ошибку операции асинхронного ввода-вывода. |
Не реализован. |
|
|
Запросить выполнение операций ввода-вывода. |
Не реализован. |
|
|
Запросить чтение из файла. |
Не реализован. |
|
|
Получить статус операции асинхронного ввода-вывода. |
Не реализован. |
|
|
Ожидать завершения операций асинхронного ввода-вывода. |
Не реализован. |
|
|
Запросить запись в файл. |
Не реализован. |
|
|
Запросить выполнение набора операций ввода-вывода. |
Не реализован. |
|
Ограничения использования робастных мьютексов
Интерфейс |
Назначение |
Реализация |
Заголовочный файл по стандарту POSIX.1-2008 |
---|---|---|---|
|
Вернуть робастный мьютекс в консистентное состояние. |
Не реализован. |
|
|
Получить атрибут робастности мьютекса. |
Не реализован. |
|
|
Задать атрибут робастности мьютекса. |
Не реализован. |
|
Ограничения работы с терминалом
Интерфейс |
Назначение |
Реализация |
Заголовочный файл по стандарту POSIX.1-2008 |
---|---|---|---|
|
Получить путь к файлу управляющего терминала. |
Только возвращает или передает через параметр |
|
|
Задать параметры терминала. |
Скорость ввода, скорость вывода и другие параметры, специфичные для аппаратных терминалов, игнорируются. |
|
|
Ожидать завершения вывода. |
Только возвращает значение |
|
|
Приостановить или возобновить прием или передачу данных. |
Приостановка вывода и запуск приостановленного вывода не поддерживаются. |
|
|
Очистить очередь ввода или очередь вывода, или обе эти очереди. |
Только возвращает значение |
|
|
Разорвать соединение с терминалом на заданное время. |
Только возвращает значение |
|
|
Получить путь к файлу терминала. |
Только возвращает нулевой указатель. |
|
|
Получить путь к файлу терминала. |
Только возвращает значение ошибки. |
|
|
Получить идентификатор группы процессов, использующих терминал. |
Только возвращает значение |
|
|
Задать идентификатор группы процессов, использующих терминал. |
Только возвращает значение |
|
|
Получить идентификатор группы процессов для лидера сессии, связанной с терминалом. |
Только возвращает значение |
|
Ограничения работы с оболочкой
Интерфейс |
Назначение |
Реализация |
Заголовочный файл по стандарту POSIX.1-2008 |
---|---|---|---|
|
Создать дочерний процесс для выполнения команды и неименованный канал с этим процессом. |
Только присваивает переменной |
|
|
Закрыть неименованный канал с дочерним процессом, созданным |
Нельзя использовать, так как |
|
|
Создать дочерний процесс для выполнения команды. |
Заглушка. |
|
|
Раскрыть строку как в оболочке. |
Не реализован. |
|
|
Освободить память, выделенную для результатов вызова |
Не реализован. |
|
Ограничения управления дескрипторами файлов
Интерфейс |
Назначение |
Реализация |
Заголовочный файл по стандарту POSIX.1-2008 |
---|---|---|---|
|
Сделать копию дескриптора открытого файла. |
Поддерживаются дескрипторы обычных файлов, стандартных потоков ввода-вывода, сокетов и каналов. Не гарантируется, что будет получен наименьший свободный дескриптор. |
|
|
Сделать копию дескриптора открытого файла. |
Поддерживаются дескрипторы обычных файлов, стандартных потоков ввода-вывода, сокетов и каналов. Через параметр |
|
Ограничения использования таймеров
Интерфейс |
Назначение |
Реализация |
Заголовочный файл по стандарту POSIX.1-2008 |
---|---|---|---|
|
Получить значение времени. |
Если передать значение |
|
|
Получить процессорное время, затраченное на исполнение вызывающего процесса. |
Возвращает время с момента запуска ядра KasperskyOS в миллисекундах. |
|
Получение системных параметров
Интерфейс |
Назначение |
Реализация |
Заголовочный файл по стандарту POSIX.1-2008 |
---|---|---|---|
|
Получить системный параметр. |
Заглушка. |
|