Microsoft CHERIOT, Çareseriyek Hardware ji bo Başkirina Ewlehiya Koda C vedike

Microsoft pêşkeftinên têkildarî projeya CHERIOT (Pêşveçûnek Zehmetkêşana Kapasîteya RISC-V ji bo Înternetê ya Tiştan) vedîtiye, ku armanc ew e ku pirsgirêkên ewlehiyê di koda heyî ya C û C++ de asteng bike. CHERIOT çareseriyek pêşkêşî dike ku destûrê dide te ku hûn bingehên kodên C/C++ yên heyî biparêzin bêyî ku hewce bike ku wan ji nû ve bixebitin. Parastin bi karanîna berhevkarek guhezbar a ku komek taybetî ya dirêjkirî ya rêwerzên pêvajoyê (ISA) bikar tîne, ku ji hêla pêvajoyê ve hatî peyda kirin û di asta hardware de çavdêriya gihîştina bîranînê dike, rastbûna xebatê bi nîşankeran re kontrol dike û veqetandina blokên kodê piştrast dike.

Proje bi çavê vê yekê hate afirandin ku xwezaya asta nizm a zimanê C dema ku bi bîranînê re dixebite dibe çavkaniya xeletiyan, û dibe sedema pirsgirêkên wekî zêdebûna tampon, gihîştina bîranîna jixwe azadkirî, veqetandina nîşankeran, an jî ducaran azad. . Pratîk destnîşan dike ku tewra pargîdaniyên mezin ên mîna Google û Microsoft, ku xwedan polîtîkayek guheztinê ya hişk in û rêbazên pêşkeftinê yên nûjen û amûrên analîzên statîk bikar tînin, nekarin garantiya nebûna xeletiyan dema ku bi bîranînê re dixebitin (mînak, bi qasî 70% ji qelsiyên Microsoft-ê û Google ji ber birêvebirina bîranîna ne ewledar ve têne çêkirin).

Pirsgirêk bi karanîna zimanên bernamekirinê yên ku operasyona ewle ya bi bîranînê re garantî dikin, an girêdanên bi kontrolên zêde re, çareser dibe, mînakî, bi karanîna li şûna nîşangirên asayî yên mîna MiraclePtr (raw_ptr), ku ji bo gihîştina deverên bîranîna azad kontrolên din pêk tîne. Lê rêbazên weha ji bo koda nû maqûltir in, û ji nû ve xebitandina projeyên heyî yên C/C++ pir pirsgirêk e, nemaze heke ew ji bo xebitandina di hawîrdorên bi çavkaniyê ve hatine sêwirandin, wekî pergalên pêvekirî û cîhazên Înternetê yên Tiştan.

Parçeyên hardware CHERIoT wekî mîkrokontrolkerek li ser bingeha mîmariya RISC-V têne sêwirandin, mîmariya pêvajorê ya CHERI (Pêvekirina Hêza Zehmetiyê ya RISC-V) ya parastî bicîh tîne, ku modelek gihîştina bîranîna kontrolkirî li ser bingeha "kapasîteyê" peyda dike (her yek xwendin û nivîsandin operasyona ji bo bîranînê destûr e). Li ser bingeha mîmariya koma rêwerzan (ISA) ku di CHERIOT de hatî peyda kirin, modelek nermalavê hatî çêkirin ku ewlehiya xebata bi bîranînê re di asta tiştên takekesî de garantî dike, parastina li hember gihîştina bîranîna jixwe azadkirî peyda dike, û pergalek veqetandina gihîştina bîranînê ya sivik pêk tîne. . Modela parastina nermalava diyarkirî rasterast di modela zimanê C/C++ de tê xuyang kirin, ku dihêle ku ew were bikar anîn da ku serîlêdanên heyî biparêze (tenê ji nû ve berhevkirin û xebitandina li ser alavên ku ISA CHERIOT piştgirî dike hewce ye).

Çareseriya pêşniyarkirî dihêle hûn xeletiyên ku dibin sedem ku tiştek ji sînorên bîranînê derbas bibe asteng bikin, rê nade guheztina nîşanderê (divê hemî nîşangir ji nîşangirên heyî werin çêkirin), û gihandina bîranînê piştî azadkirinê çavdêrî dike (her gihîştina bîranînê bi karanîna xeletiyek xelet nîşanker an îşaretek ku referansa tiştekî azad dike, di encamê de îstîsnayek tê avêtin). Mînakî, karanîna CHERIOT dihêle hûn kontrolkirina sînorên otomatîkî, şopandina jiyana bîranînê, û bicîhkirina yekparebûna nîgarê di hêmanên ku daneyên nebawer hildigirin bêyî ku hewcedariya guheztina kodê bikin bicîh bikin.

Proje taybetmendiyek mîmariya koma rêwerzên CHERIOT ya dirêjkirî, pêkanîna referansê ya CPU-ya 32-bit RISC-V ya ku piştgirî dide CHERIOT ISA, û amûrek LLVM-ya guhertî vedihewîne. Diyagramên prototîpa CPU û danasînên bloka hardware li Verilog di bin lîsansa Apache 2.0 de têne belav kirin. Navika Ibex ji projeya lowRISC wekî bingehek ji bo CPU hate bikar anîn. Modela koda CHERIOT ISA bi zimanê Sail tête diyar kirin û di bin lîsansa BSD-ê de destûrdar e.

Wekî din, prototîpek pergala xebitandina rast-dema CHERIOT RTOS tê pêşniyar kirin, ku şiyana veqetandina beşan tewra li ser pergalên pêvekirî bi 256 MB RAM peyda dike. Koda CHERIOT RTOS bi C++ hatiye nivîsandin û di bin lîsansa MITê de tê belavkirin. Parçeyên bingehîn ên OS-ê, wekî bootloader, plansazker û pergala belavkirina bîranînê, di forma dabeşan de têne sêwirandin.

Parçeyek di CHERIOT RTOS de kombînasyonek veqetandî ya kod û guhêrbarên gerdûnî ye ku dişibihe pirtûkxaneyek hevpar, lê berevajî ya paşîn, ew dikare rewşa xwe biguhezîne (guhêrbar) û di çarçoveyek ewlehiyê ya cihêreng de bixebite. Ti kodek ji derve nikare kontrolê veguhezîne kodê di nav parçeyek de û bigihîje tiştan, ji xeynî gihandina xalên têketinê yên bi taybetî diyarkirî û karanîna nîşankeran ji tiştên ku bi eşkere derbas dibin dema gazîkirina dabeşek din tê kirin. Yekitî û nepenî ji bo kod û tiştên gerdûnî yên di parçeyek de têne garantî kirin.

Source: opennet.ru

Add a comment