В связи с изменениями в компонентах SDK в версии 1.4, вам может быть необходимо внести изменения в прикладной код, разработанный с использованием версии KasperskyOS Community Edition 1.3, перед тем как использовать его с версией KasperskyOS Community Edition 1.4.
В версии 1.4 были введены следующие критические изменения в компоненты SDK.
Общие изменения
bootelf теперь используется команда booti.kos-qemu-image.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_SSLIZE.server_rsa_min_size.Изменения в API библиотеки libkos
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 для разработки драйверов
KdfRegisterDeviceEx().