Компания Google представи софтуерно-апаратен комплекс Open Se Cura, насочен към улесняване на създаването на защитени чипове, предназначени за решаване на задачи, свързани с машинно обучение и изкуствен интелект. Проектът включва операционната система CantripOS и хардуер, основан на платформата OpenTitan и процесорно ядро на база архитектура RISC-V. По време на разработката Open Se Cura и CantripOS се развиваха под имената Sparrow и KataOS, но за да се избегне припокриване с други проекти, финалните продукти бяха преименувани. Разработките на проекта, включително изходните текстове на системните услуги и RTL-схеми (Register Transfer Level), се разпространяват под лицензия Apache 2.0.
Операционната система CantripOS се базира на микроядро seL4, върху което се изпълнява системна среда, написана на езика Rust. На системи RISC-V за микроядрото seL4 е предоставено математическо доказателство за надеждност, което свидетелства за пълно съответствие на кода с спецификациите, зададени на формалния език. Архитектурата seL4 се отличава с изнасянето на части за управление на ресурсите на ядрото в потребителското пространство и прилагането на същите средства за разграничаване на достъпа за тези ресурси, каквито са и за потребителските ресурси.
Микроядрото не предоставя готови високоуровневи абстракции за управление на файлове, процеси, мрежови връзки и т.н., вместо това то предлага само минимални механизми за управление на достъпа до физическото адресно пространство, прекъсванията и ресурсите на процесора. Високоуровневите абстракции и драйвери за взаимодействие с хардуера се реализират отделно върху микроядрото под формата на задачи, изпълнявани на потребителско ниво. Достъпът на такива задачи до ресурсите на микроядрото се организира чрез определяне на правила.
Всички компоненти на ОС, освен микроядрото, първоначално са написани на езика Rust с използване на безопасни програмистки техники, които минимизират грешките при работа с паметта. На Rust, наред с другото, са написани загрузчик на приложения в средата seL4, системни услуги, фреймворк за разработка на приложения, API за достъп до системни повиквания, мениджър на процеси и механизъм за динамично разпределение на паметта.
За верифицирана сборка е използван инструментариумът CAmkES, разработван от проекта seL4. За разработка на крайни приложения, които могат да се зареждат динамично от системните услуги, се предлага да се използва SDK AmbiML, а за изпълнение на модели за машинно обучение – инструментариумът IREE (Intermediate Representation Execution Environment). Компонентите на Rust и системните услуги са разработени с помощта на фреймворците Cantrip.
Областите на приложение на платформата включват специализирани чипове, които изискват особено ниво на защита и потвърждение за отсъствие на сблъсъци. Например, платформата може да се използва в продукти за машинно обучение, свързани с обработката на конфиденциална информация, като системи за разпознаване на лица и обработка на гласови записи. Съчетаването на логически верифицирано ядро на операционната система с надеждни хардуерни компоненти (RoT, Root of Trust) гарантира, че при сблъсък в една част на системата, този сблъсък не ще се разпространи в останалата част от системата и по-специално в ядрото и критичните компоненти.
Освен Google, в разработването на инструментариума и елементите на инфраструктурата участват неправителствената организация lowRISC, която координира разработката на свободен микропроцесор на базата на архитектурата RISC-V, както и компаниите Antmicro и VeriSilicon. Развиваното от организацията lowRISC процесор е използвано като ядро за изграждане на надеждни хардуерни компоненти (RoT, Root of Trust). Компанията Antmicro предостави на проекта симулатора Renode, който позволява тестване на CantripOS и микроядрото seL4 без реално оборудване. Компанията VeriSilicon сподели своя опит в създаването на чипове и разработката на BSP (Board Support Package).
Източник: opennet.ru
