UMicrosoft Uvula iCHERIoT, iSicombululo seHardware ukuPhucula iKhowudi yoKhuseleko lweC

I-Microsoft ifumene uphuhliso olunxulumene neprojekthi yeCHERIoT (I-Capability Hardware Extension ukuya kwi-RISC-V ye-Intanethi yezinto) iprojekthi, ejoliswe ekuthinteleni iingxaki zokhuseleko kwikhowudi ekhoyo kwi-C kunye ne-C ++. I-CHERIoT inikezela ngesisombululo esikuvumela ukuba ukhusele iikhowudi ze-C / C ++ ezikhoyo ngaphandle kwesidingo sokuphinda uzisebenze. Ukukhuselwa kuphunyezwa ngokusetyenziswa komqokeleli olungisiweyo osebenzisa isethi ekhethekileyo eyandisiweyo yemiyalelo yeprosesa (ISA), enikezelwa yiprosesa kunye nenqanaba le-hardware yokubeka iliso kwimemori ukufikelela, ukujonga ukuchaneka komsebenzi kunye nezikhombisi kunye nokuqinisekisa ukuhlukaniswa kweebhloko zekhowudi.

Iprojekthi yenziwe ngeliso kwinto yokuba umgangatho ophantsi wolwimi lwe-C uba ngumthombo weempazamo xa usebenza ngememori, ekhokelela kwiingxaki ezifana nokuphuphuma kwe-buffer, ukufikelela kwimemori esele ikhululiwe, ukuchaswa kwesalathisi, okanye ukukhulula kabini. . Uqheliselo lubonisa ukuba kunye neenkampani ezinkulu ezifana neGoogle kunye neMicrosoft, ezinomgaqo-nkqubo wokuhlaziya utshintsho olungqongqo kwaye zisebenzise iindlela zophuhliso lwangoku kunye nezixhobo zokuhlalutya ezizinzileyo, azikwazi ukuqinisekisa ukungabikho kweempazamo xa usebenza ngememori (umzekelo, malunga ne-70% yobuthathaka kwiMicrosoft. kunye noGoogle babangelwa kukuphathwa kwememori okungakhuselekanga).

Ingxaki ingasonjululwa ngokusebenzisa iilwimi zeprogram eziqinisekisa ukusebenza ngokukhuselekileyo ngememori, okanye izibophelelo kunye neetshekhi ezongezelelweyo, umzekelo, ngokusebenzisa indawo yezalathisi eziqhelekileyo ezifana ne-MiraclePtr (raw_ptr), eyenza iitshekhi ezongezelelweyo zokufikelela kwiindawo zememori ekhululekile. Kodwa iindlela ezinjalo zifaneleke ngakumbi ikhowudi entsha, kwaye ukusebenzela kwakhona iiprojekthi ezikhoyo zeC / C ++ kuyingxaki, ngakumbi ukuba ziyilelwe ukuba ziqhube kwiindawo ezinobuncwane, ezifana neenkqubo ezizinzisiweyo kunye ne-Intanethi yezixhobo ze-Intanethi.

Izixhobo ze-hardware ze-CHERIoT ziyilwe njenge-microcontroller esekelwe kwi-architecture ye-RISC-V, izalisekisa i-CHERI ekhuselweyo (i-Capability Hardware Extension to RISC-V) iprosesa ye-architecture, enika imodeli yokufikelela kwimemori elawulwayo ngokusekelwe "kwisakhono" (nganye ukufunda nokubhala). ukusebenza kwimemori kugunyazisiwe) . Ngokusekelwe kwi-architecture yomyalelo we-architecture (ISA) enikezelwe kwi-CHERIoT, imodeli yesofthiwe yakhiwe eqinisekisa ukhuseleko lokusebenza ngememori kwinqanaba lezinto ezizimeleyo, ibonelela ngokhuseleko ekufikeleleni kwimemori esele ikhululiwe, kwaye iphumeza inkqubo yokufikelela kwimemori elula. . Imodeli yokukhusela isofthiwe echaziweyo ibonakaliswe ngokuthe ngqo kwi-C / C ++ imodeli yolwimi, evumela ukuba isetyenziswe ukukhusela izicelo ezikhoyo (ukubuyisela kuphela kunye nokusebenza kwizixhobo ezixhasa i-ISA CHERIOT efunekayo).

Isisombululo esicetywayo sikuvumela ukuba uthintele iimpazamo ezibangela ukuba into ihambe ngaphaya kwemida yememori, ayivumeli ukutshintshwa kwesalathisi (zonke izikhombisi kufuneka ziveliswe kwizikhombisi ezikhoyo), kwaye ibeke iliso kwimemori yokufikelela emva kokukhulula (nakuphi na ukufikelela kwimemori usebenzisa okungalunganga. isalathisi okanye isalathisi esibhekisa kwinto ekhululweyo ikhokelela ekubeni kuphoswe ngaphandle komkhethe). Ngokomzekelo, ukusebenzisa i-CHERIoT ikuvumela ukuba uphumeze ukujonga imida ngokuzenzekelayo, ukulandelela ubomi bememori, kunye nokunyanzeliswa kwengqibelelo yesalathisi kumacandelo aphatha idatha engathembekanga ngaphandle kokufuna naluphi na utshintsho lwekhowudi.

Le projekthi ibandakanya iinkcukacha zoyilo olwandisiweyo lwesethi yemiyalelo ye-CHERIoT, ukuphunyezwa kwereferensi ye-32-bit RISC-V CPU exhasa i-CHERIoT ISA, kunye nekhithi yesixhobo ye-LLVM elungisiweyo. Imifanekiso ye-CPU yeprototype kunye neenkcazo zebhloko ye-hardware kwi-Verilog isasazwa phantsi kwelayisensi ye-Apache 2.0. I-core ye-Ibex esuka kwiprojekthi ephantsi yeRISC isetyenziswe njengesiseko se-CPU. Imodeli yekhowudi ye-CHERIoT ISA ichazwa kulwimi lwe-Sail kwaye ilayisenisi phantsi kwelayisensi ye-BSD.

Ukongezelela, iprototype yenkqubo yokusebenza yexesha langempela iCHERIoT RTOS iphakanyisiwe, enika amandla okuhlukanisa amacandelo nakwiinkqubo ezifakwe kwi-256 MB ye-RAM. Ikhowudi ye-CHERIoT RTOS ibhaliwe kwi-C ++ kwaye ihanjiswa phantsi kwelayisenisi ye-MIT. Izinto ezisisiseko ze-OS, ezifana ne-bootloader, umcwangcisi kunye nenkqubo yokusabalalisa imemori, ziyilwe ngendlela yamacandelo.

I-compartment kwi-CHERIoT RTOS yindibaniselwano yodwa yekhowudi kunye neziguquko zehlabathi ezifana nelayibrari ekwabelwana ngayo, kodwa ngokungafaniyo neyokugqibela, inokutshintsha imeko yayo (eguquguqukayo) kwaye iqhube kwimeko yokhuseleko eyahlukileyo. Akukho khowudi evela ngaphandle inokudlulisa ulawulo kwikhowudi kwi-compartment kunye nezinto zokufikelela, ngaphandle kokufikelela kwiindawo zokungena ezichazwe ngokukodwa kunye nokusebenzisa izikhombisi kwizinto ezigqithiswe ngokucacileyo xa ubiza elinye igumbi. Ukunyaniseka kunye nobumfihlo buqinisekisiwe kwikhowudi kunye nezinto zehlabathi kwikhompatimenti.

umthombo: opennet.ru

Yongeza izimvo