Compania Google a prezentat o soluție hardware și software Open Se Cura, concentrată pe simplificarea creării de cipuri securizate, destinate să rezolve probleme legate de învățarea automată și inteligența artificială. Proiectul include un sistem de operare CantripOS și hardware bazat pe platforma OpenTitan și un nucleu de procesor pe bază de arhitectură RISC-V. În timpul dezvoltării, Open Se Cura și CantripOS au fost cunoscute sub numele de Sparrow și KataOS, dar pentru a evita suprapunerile cu alte proiecte, produsele finale au fost redenumite. Inovațiile proiectului, inclusiv codurile sursă ale serviciilor sistemului și schemele RTL (Register Transfer Level), sunt distribuite sub licența Apache 2.0.
Sistemul de operare CantripOS se bazează pe un micro-nucleu seL4, pe care rulează un mediu sistemic scris în limbajul Rust. Pe sistemele RISC-V, micro-nucleul seL4 beneficiază de o dovadă matematică a fiabilității, care demonstrează conformitatea totală a codului cu specificațiile stabilite într-un limbaj formal. Arhitectura seL4 se remarcă prin separarea unor componente pentru gestionarea resurselor nucleului în spațiul utilizatorului și prin utilizarea acelorași mijloace de restricționare a accesului pentru aceste resurse ca și pentru resursele utilizatorului.
Micro-nucleul nu oferă abtractizări de înalt nivel gata făcute pentru gestionarea fișierelor, proceselor, conexiunilor de rețea etc., ci furnizează doar mecanisme minime pentru gestionarea accesului la spațiul de adresare fizic, întreruperi și resursele procesorului. Abstracțiile de înalt nivel și driverele pentru interacțiunea cu hardware-ul sunt implementate separat, deasupra micro-nucleului, sub formă de sarcini care rulează la nivelul utilizatorului. Accesul acestor sarcini la resursele disponibile ale micro-nucleului este organizat prin definirea regulilor.
Toate componentele sistemului de operare, cu excepția micro-nucleului, sunt inițial scrise în limbajul Rust folosind tehnici de programare sigure, care minimizează erorile în gestionarea memoriei. Printre altele, în Rust sunt scrise încărcătorul de aplicații în mediu seL4, serviciile de sistem, cadrul pentru dezvoltarea aplicațiilor, API-ul pentru acces la apelurile de sistem, managerul de procese și mecanismul de alocare dinamică a memoriei.
Pentru montajul verificat este folosit instrumentarul CAmkES, dezvoltat de proiectul seL4. Pentru dezvoltarea aplicațiilor finale care pot fi încărcate dinamic de serviciile de sistem, este sugerat să folosiți SDK AmbiML, iar pentru executarea modelor de învățare automată, instrumentarul IREE (Intermediate Representation Execution Environment). Componentele scrise în Rust și serviciile de sistem sunt dezvoltate folosind cadrele Cantrip.
Printre domeniile de aplicare ale platformei se numără cipuri specializate, care necesită un nivel special de protecție și confirmare a absenței erorilor. De exemplu, platforma poate fi utilizată în produse de învățare automată legate de procesarea informațiilor confidențiale, cum ar fi sistemele de recunoaștere a persoanelor și procesarea înregistrărilor vocale. Combinarea unui nucleu de sistem de operare logic verificat cu componente hardware de încredere (RoT, Root of Trust) garantează că, în cazul unei erori într-o parte a sistemului, aceasta nu se va răspândi la restul sistemului și, în special, la nucleu și părți critice.
Pe lângă Google, în dezvoltarea instrumentarului și a elementelor infrastructurii au participat organizația non-profit lowRISC, care coordonează dezvoltarea unui microprocesor liber bazat pe arhitectura RISC-V, precum și companiile Antmicro și VeriSilicon. Procesorul dezvoltat de organizația lowRISC a fost folosit ca nucleu pentru construirea componentelor hardware de încredere (RoT, Root of Trust). Compania Antmicro a furnizat proiectului simulatorul Renode, care permite testarea CantripOS și a microkernel-ului seL4 fără echipamente reale. Compania VeriSilicon a împărtășit experiența sa în crearea de cipuri și dezvoltarea BSP (Board Support Package).
Sursa: opennet.ro
