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-ն, գործընթացների կառավարիչը և դինամիկ հիշողության բաշխման մեխանիզմը:
Ստուգված ասեմբլերը օգտագործում է seL4 նախագծի կողմից մշակված CAmkES գործիքակազմը: Համակարգային ծառայությունների կողմից դինամիկ բեռնվող վերջնական հավելվածներ մշակելու համար առաջարկվում է օգտագործել AmbiML SDK-ն, իսկ մեքենայական ուսուցման մոդելները կատարելու համար՝ 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) մշակման ոլորտում իր փորձով:
Source: opennet.ru
