Критические изменения в версии 1.4

12 января 2026

ID breaking_changes

В связи с изменениями в компонентах SDK в версии 1.4, вам может быть необходимо внести изменения в прикладной код, разработанный с использованием версии KasperskyOS Community Edition 1.3, перед тем как использовать его с версией KasperskyOS Community Edition 1.4.

В версии 1.4 были введены следующие критические изменения в компоненты SDK.

Общие изменения

  • В загрузчике uboot вместо команды bootelf теперь используется команда booti.
  • Удалена поддержка QEMU из SDK для аппаратных платформ. QEMU вынесено в отдельный SDK. В SDK для аппаратных платформ нет возможности собрать образ kos-qemu-image.
  • Из заголовочного файла kos_net.h удалена устаревшая функция wait_for_network(), вместо нее необходимо использовать функцию wait_for_iface().
  • Заголовочный файл netinet6/in6.h удален. Все IPv6 определения перенесены в стандартный netinet/in.h.
  • Удалена функция GetItemDigest() в API компонента PackageManager.
  • Изменен состав счетчиков производительности. Удалены следующие счетчики:
    • task.<PID>.time.ksm.execute;
    • task.<PID>.time.ksm.terminate;
    • task.<PID>.time.ksm.request;
    • task.<PID>.time.ksm.response;
    • task.<PID>.time.ksm.security;
    • task.<PID>.services.<service>.calls;
    • task.<PID>.thread.<id>.time.ksm.execute;
    • task.<PID>.thread.<id>.time.ksm.terminate;
    • task.<PID>.thread.<id>.time.ksm.request;
    • task.<PID>.thread.<id>.time.ksm.response;
    • task.<PID>.thread.<id>.time.ksm.security;
    • task.<PID>.thread.<id>.services.<service>.calls;
    • time.ksm.*;
    • mem.high.total;
    • mem.high.free.

Изменения в API системной программы DCM

В связи с добавлением в DCM поддержки поиска и соединения с CDL, перечисленные ниже функции удалены:

  • DcmSetSubscription();
  • DcmConnect();
  • DcmAccept().

Вместо них необходимо использовать следующие функции:

  • DcmSubscribeToEndpoints();
  • DcmConnectToEndpoint();
  • DcmAcceptEndpointConnection().

Системная программа DCM теперь статически подключается ко всем процессам запускаемым программой Einit. Требуются правки политик безопасности решения и файла init.yaml.

Изменения в API системной программы TLS Terminator

  • Компонент TLS Terminator больше не обрабатывает опцию TLS_SSLIZE.
  • Компонент TLS Terminator не поддерживает функциональность временных сокетов.
  • Компонент TLS Terminator не поддерживает аргумент server_rsa_min_size.
  • Добавлены аргументы позволяющие установить ограничение отдельно для разных типов сертификатов.

Изменения в API библиотеки libkos

  • Удалены следующие функции из API thread_api.h:
    • KnThreadAttach();
    • KnThreadCreate();
    • KnThreadGetPriority();
    • KnThreadSetPriority();
    • KnThreadSuspend();
    • KnThreadResume();
    • KnThreadTerminate();
    • KnThreadGetInfo();
    • KnThreadWait();
    • KnThreadGetAffinity();
    • KnThreadSetAffinity();
    • KnThreadGetSchedPolicy();
    • KnThreadSetSchedPolicy()
    • KnThreadSetTls();
    • KosThreadTlsSet()
    • KosThreadCallbackRegister();
    • KosThreadCallbackUnregister().
  • Изменена семантика функций KnThreadTerminateByHandle() и KosThreadTerminate().

    Теперь корректной точкой для остановки является состояние потока Suspend. Такое состояние возможно либо при создании потока с флагом ThreadFlagCreateSuspended, либо при вызове KnThreadSuspendCurrent().

  • Метод службы ядра Thread::Attach возвращает всегда rcUnimplemented.
  • Удален аргумент startRoutine из функции KnThreadCreateByHandle(). Тем самым точка входа в поток становится приватной для libkos и больше не может быть переопределена пользователем.
  • Удален заголовочный файл kos/aslr.h.
  • Удален заголовочный файл kos/time.h.
  • Удален заголовочный файл hal/cputicks.h.

Изменения в API для разработки драйверов

  • В библиотеку KDF добавлен интерфейс безопасности. Требуются правки политик безопасности.
  • Переработан драйвер DNet: изменения в API, переведен на использование библиотеки KDF.
  • Удалено compatible IO API.
  • Удалена функция KdfRegisterDeviceEx().

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