Spoločnosť Google predstavila programovo-hardware komplex Open Se Cura, zameraný na zjednodušenie vytvárania zabezpečených čipov určených na riešenie úloh súvisiacich s strojovým učením a umelou inteligenciou. Projekt zahŕňa operačný systém CantripOS a hardvér založený na platforme OpenTitan a procesorovom jadre na báze architektúry RISC-V. Počas vývoja Open Se Cura a CantripOS sa vyvíjali pod menami Sparrow a KataOS, ale na vylúčenie krytia s inými projektmi boli finálne produkty premenované. Výstupy projektu, vrátane zdrojových textov systémových služieb a RTL schém (Register Transfer Level), sú distribuované pod licenciou Apache 2.0.
Operačný systém CantripOS je založený na mikrojadre seL4, nad ktorým beží systémové prostredie napísané v jazyku Rust. Na systémoch RISC-V bolo pre mikrojadro seL4 poskytnuté matematické dôkaz o spoľahlivosti, ktorý potvrdzuje, že kód plne vyhovuje špecifikáciám stanoveným vo formálnom jazyku. Architektúra seL4 je pozoruhodná tým, že oddelila časti na správu zdrojov jadra do užívateľského priestoru a používa na takéto zdroje rovnaké prostriedky pre rozdelenie prístupu ako pre užívateľské zdroje.
Mikrojadro neposkytuje hotové vysokoúrovňové abstrakcie na správu súborov, procesov, sieťových spojení a podobne, namiesto toho poskytuje len minimálne mechanizmy na riadenie prístupu k fyzickému adresnému priestoru, prerušením a zdrojom procesora. Vysokoúrovňové abstrakcie a ovládače na interakciu so hardvérom sú realizované oddelene nad mikrojadrom vo forme úloh, ktoré bežia na užívateľskej úrovni. Prístup týchto úloh k zdrojom, ktoré sú k dispozícii mikrojadru, je organizovaný prostredníctvom definovania pravidiel.
Všetky komponenty operačného systému, okrem mikrojadra, sú pôvodne napísané v jazyku Rust s použitím bezpečných programovacích praktík, ktoré minimalizujú chyby pri práci s pamäťou. V Ruste, medzi iným, sú napísané zavádzač aplikácií v prostredí seL4, systémové služby, rámec pre vývoj aplikácií, API pre prístup k systémovým volaniam, manažér procesov a mechanizmus dynamického prideľovania pamäte.
Na overenú zostavu sa využíva nástroj CAmkES, ktorý vyvíja projekt seL4. Na vývoj koncových aplikácií, ktoré môžu byť dynamicky načítavané systémovými službami, sa odporúča používať SDK AmbiML, a na vykonávanie modelov strojového učenia nástroj IREE (Intermediate Representation Execution Environment). Komponenty v Ruste a systémové služby sú navrhnuté s použitím rámcov Cantrip.
Medzi oblasti použitia platformy patrí špecializované čipy, ktorým je potrebný osobitný stupeň ochrany a potvrdenia o absencii porúch. Napríklad platforma môže byť použitá v produktoch strojového učenia, ktoré súvisia s spracovaním dôverných informácií, ako sú systémy na rozpoznávanie osôb a spracovanie hlasových záznamov. Kombinácia logicky overeného jadra operačného systému s dôveryhodnými hardvérovými komponentmi (RoT, Root of Trust) zaručuje, že v prípade poruchy v jednej časti systému sa táto porucha nerozšíri na zvyšok systému, najmä na jadro a kritické časti.
Okrem spoločnosti Google na vývoji nástroja a prvkov infraštruktúry spolupracovali nezisková organizácia lowRISC, ktorá zodpovedá za vývoj slobodného mikroprocesora na báze architektúry RISC-V, ako aj spoločnosti Antmicro a VeriSilicon. Procesor vyvíjaný organizáciou lowRISC bol použitý ako jadro na vytvorenie dôveryhodných hardvérových komponentov (RoT, Root of Trust). Spoločnosť Antmicro poskytla projektu simulátor Renode, ktorý umožňuje testovať CantripOS a mikrojadro seL4 bez skutočného hardvéru. Spoločnosť VeriSilicon sa podelila o svoje skúsenosti v oblasti výroby čipov a vývoja BSP (Board Support Package).
Zdroj: opennet.ru
