Ua tatalaina e Microsoft le CHERIoT, o se fofo o meafaigaluega e faʻaleleia atili ai le C Code Security

Ua maua e Microsoft ni atinaʻe e fesoʻotaʻi ma le CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things) poloketi, e faʻatatau i le polokaina o faʻafitauli saogalemu i le code o loʻo i ai i le C ma C++. CHERIoT ofo atu se fofo e mafai ai e oe ona puipuia C/C++ codebases o iai e aunoa ma le manaʻomia e toe faʻaaogaina. Puipuiga e faʻatinoina e ala i le faʻaogaina o se faʻapipiʻi faʻaleleia e faʻaaogaina se seti faʻalauteleina o faʻatonuga o faʻatonuga (ISA), tuʻuina atu e le processor ma i le tulaga o meafaigaluega e mataʻituina ai le manatua, siaki le saʻo o le galuega ma faʻailoga ma faʻamautinoa le vavaeeseina o poloka code.

O le poloketi na faia ma le mata i le mea moni o le tulaga maualalo o le gagana C e avea ma puna o mea sese pe a galue ma manatua, e oʻo atu ai i faʻafitauli e pei o le paʻu paʻu, avanoa i le manatua ua uma ona faʻasaʻoloto, faʻailoga faʻailoga, poʻo faʻalua faʻalua. . O faʻataʻitaʻiga e faʻaalia ai e oʻo lava i kamupani tetele e pei o Google ma Microsoft, o loʻo i ai se faiga faʻavae toe iloilo suiga ma faʻaogaina auala faʻaonaponei faʻaonaponei ma mea faigaluega faʻapitoa, e le mafai ona faʻamaonia le leai o ni mea sese pe a galulue ma le mafaufau (mo se faʻataʻitaʻiga, e tusa ma le 70% o faʻafitauli i Microsoft. ma Google e mafua mai i le le saogalemu o le taulimaina o manatua).

O le faʻafitauli e mafai ona foia e ala i le faʻaaogaina o gagana faʻapolokalame e faʻamaonia ai le saogalemu o le gaioiga ma le manatua, poʻo le fusia ma siaki faʻaopoopo, mo se faʻataʻitaʻiga, e ala i le faʻaogaina nai lo faʻamatalaga masani e pei o MiraclePtr (raw_ptr), lea e faia ai siaki faʻaopoopo mo le mauaina o nofoaga faʻasaʻoloto. Ae o ia metotia e sili atu ona fetaui mo tulafono fou, ma toe faʻaaogaina galuega C / C ++ o loʻo i ai nei e fai si faʻafitauli, aemaise lava pe a faʻataʻitaʻiina e faʻatautaia i siosiomaga faʻatapulaʻaina punaoa, e pei o faiga faʻapipiʻi ma masini Initaneti o Mea.

O vaega o meafaigaluega a le CHERIoT ua mamanuina e avea o se microcontroller e faʻavae i luga o le RISC-V architecture, faʻaaogaina le CHERI (Capability Hardware Extension i le RISC-V) faʻapipiʻi faʻapipiʻi, lea e maua ai se faʻataʻitaʻiga o le faʻaogaina o mafaufauga e faʻavae i luga o le "mafai" (faitau taʻitasi ma tusitusi. ua faatagaina le faagaoioiga i le manatua). Faʻavae i luga o le faʻatonuga seti fausaga (ISA) o loʻo tuʻuina atu i le CHERIoT, ua fausia se faʻataʻitaʻiga polokalama e faʻamautinoa ai le saogalemu o le galue ma le manatua i le tulaga o mea taʻitasi, e maua ai le puipuiga mai le avanoa i le manatua ua uma ona faʻasaʻolotoina, ma faʻaogaina se faiga faʻaesea avanoa manatua mama. . O le faʻataʻitaʻiga o le puipuiga o le polokalama faʻapitoa e faʻaalia saʻo i le C / C ++ gagana faʻataʻitaʻiga, lea e mafai ai ona faʻaaogaina e puipuia ai talosaga o loʻo iai (naʻo le toe faʻapipiʻiina ma faʻagaoioia i luga o meafaigaluega e lagolagoina ISA CHERIoT e manaʻomia).

O le fofo fuafuaina e mafai ai e oe ona poloka mea sese e mafua ai ona alu atu se mea i tua atu o tuaoi o le manatua, e le faatagaina ai le suitulaga o le faʻailoga (e tatau ona faʻatupuina faʻailoga uma mai faʻailoga o loʻo iai), ma mataʻituina le mafaufau pe a uma ona tuʻuina atu (soʻo se avanoa i le manatua e faʻaaoga ai se mea sese. fa'ailo po'o se fa'ailo e fa'asino i se mea fa'asaoloto e i'u ai i se fa'ailoga e lafo). Mo se faʻataʻitaʻiga, o le faʻaaogaina o le CHERIoT e mafai ai ona e faʻatinoina le siakiina o tuaoi, siaki le olaga atoa, ma le faʻamalosia o le faʻamaonia i vaega e taulimaina faʻamatalaga e le talitonuina e aunoa ma le manaʻomia o ni suiga code.

O le poloketi e aofia ai se faʻamatalaga o le faʻalauteleina o le faʻatulagaina o faʻatonuga a le CHERIoT, o se faʻataʻitaʻiga faʻatinoga o le 32-bit RISC-V CPU e lagolagoina le CHERIoT ISA, ma se pusa meafaigaluega LLVM ua suia. O faʻataʻitaʻiga faʻataʻitaʻiga CPU ma faʻamatalaga poloka poloka i Verilog o loʻo tufatufaina i lalo ole laisene Apache 2.0. O le Ibex autu mai le poloketi lowRISC na faʻaaogaina e fai ma faʻavae mo le PPU. O le CHERIoT ISA code model o lo'o fa'amatalaina i le gagana Sail ma ua laiseneina i lalo ole laisene BSD.

E le gata i lea, o se faʻataʻitaʻiga o le faʻaogaina o le taimi moni CHERIoT RTOS o loʻo faʻatulagaina, lea e maua ai le gafatia e faʻamavaeina vaega e oʻo lava i luga o faiga faʻapipiʻi ma le 256 MB o le RAM. O le CHERIoT RTOS code o loʻo tusia i le C++ ma tufatufaina i lalo ole laisene MIT. O vaega faʻavae o le OS, e pei o le bootloader, faʻatulagaina ma le faʻasologa o le tufatufaina o mea, ua mamanuina i foliga o vaega.

O se vaega i le CHERIoT RTOS o se tuʻufaʻatasiga tuʻufaʻatasia o tulafono laiti ma fesuiaiga o le lalolagi e pei o se faletusi fefaʻasoaaʻi, ae le pei o le mea mulimuli, e mafai ona suia lona tulaga (mutable) ma tamoe i se isi tulaga saogalemu. E leai se fa'ailoga mai fafo e mafai ona fa'afeiloa'i le fa'atonuga i le fa'ailoga i totonu o se vaega ma fa'aoga mea, se'i vagana ai le fa'aogaina fa'apitoa fa'asinomaga ma le fa'aogaina o fa'ailoga i mea e fa'asino manino pe a vala'au i se isi vaega. Fa'amaoni ma le agatapuia e fa'amaonia mo tulafono ma mea fa'alelalolagi i totonu o se vaega.

puna: opennet.ru

Faaopoopo i ai se faamatalaga