Критические изменения в версии 1.4
В связи с изменениями в компонентах 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().