ʻO ka ʻōnaehana hana palekana ʻo Google KataOS

Ua hoʻolaha ʻo Google i ka loaʻa ʻana o nā hoʻomohala e pili ana i ka papahana KataOS, i manaʻo ʻia e hana i kahi ʻōnaehana paʻa no ka lako paʻa. Ua kākau ʻia nā ʻāpana ʻōnaehana KataOS ma Rust a holo ma luna o ka microkernel seL4, kahi i hāʻawi ʻia ai kahi hōʻoia makemakika o ka hilinaʻi ma nā ʻōnaehana RISC-V, e hōʻike ana ua hoʻokō pono ke code i nā kikoʻī i kuhikuhi ʻia ma ka ʻōlelo maʻamau. Ua wehe ʻia ke code papahana ma lalo o ka laikini Apache 2.0.

Hāʻawi ka ʻōnaehana i ke kākoʻo no nā paepae e pili ana i ka hoʻolālā RISC-V a me ARM64. No ka hoʻohālikelike ʻana i ka hana o seL4 a me ke kaiapuni KataOS ma luna o ka hāmeʻa, hoʻohana ʻia ka hana Renode i ka wā o ka hoʻomohala ʻana. Ma ke ʻano he hoʻokō kuhikuhi, ua noi ʻia ka polokalamu Sparrow a me ka paʻakikī paʻakikī, e hui pū ana i ka KataOS me nā pahu paʻa e pili ana i ka platform OpenTitan. ʻO ka hopena i manaʻo ʻia e hiki ai iā ʻoe ke hoʻohui i kahi kernel ʻōnaehana i hōʻoia pono ʻia me nā ʻāpana ʻenehana hilinaʻi (RoT, Root of Trust), i kūkulu ʻia me ka hoʻohana ʻana i ka platform OpenTitan a me ka hoʻolālā RISC-V. Ma waho aʻe o ka code KataOS, ua hoʻolālā ʻia e wehe i nā ʻāpana Sparrow ʻē aʻe a pau, me ka ʻāpana lako, i ka wā e hiki mai ana.

Hoʻomohala ʻia ka paepae me ka maka i ka noi i nā chips kūikawā i hoʻolālā ʻia e holo i nā noi no ke aʻo ʻana i ka mīkini a me ka hoʻoili ʻana i ka ʻike huna, e koi ana i kahi pae kūikawā o ka pale a me ka hōʻoia ʻana i ka nele o nā hemahema. ʻO nā hiʻohiʻona o ia mau noi e komo i nā ʻōnaehana e hoʻopunipuni i nā kiʻi o nā kānaka a me nā leo leo. ʻO ka hoʻohana ʻana o KataOS i ka hōʻoia hilinaʻi e hōʻoiaʻiʻo inā hāʻule kekahi ʻāpana o ka ʻōnaehana, ʻaʻole e laha ka hemahema i ke koena o ka ʻōnaehana a, ʻo ia hoʻi, i ka kernel a me nā ʻāpana koʻikoʻi.

He mea kaulana ka hale hoʻolālā seL4 no ka hoʻoneʻe ʻana i nā ʻāpana no ka mālama ʻana i nā kumuwaiwai kernel i loko o ka wahi mea hoʻohana a me ka hoʻohana ʻana i nā mea hana hoʻokele like no nā kumuwaiwai e like me nā kumuwaiwai mea hoʻohana. ʻAʻole hāʻawi ka microkernel i nā abstractions kiʻekiʻe i mākaukau no ka hoʻokele ʻana i nā faila, nā kaʻina hana, nā pilina pūnaewele, a me nā mea like; akā, hāʻawi ia i nā mīkini liʻiliʻi wale nō no ka hoʻokele ʻana i ke komo ʻana i ka wahi kikoʻī kino, nā mea hoʻopau, a me nā kumuwaiwai. Hoʻokomo ʻokoʻa ʻia nā abstractions kiʻekiʻe a me nā mea hoʻokele no ka launa pū ʻana me nā lako lako ma luna o ka microkernel ma ke ʻano o nā hana pae hoʻohana. Hoʻonohonoho ʻia ka loaʻa ʻana o ia mau hana i nā kumuwaiwai i loaʻa i ka microkernel ma o ka wehewehe ʻana o nā lula.

No ka pale hou aku, ua hoʻomohala maoli ʻia nā ʻāpana a pau koe ka microkernel i Rust me ka hoʻohana ʻana i nā ʻenehana polokalamu palekana e hōʻemi i nā hewa hoʻomanaʻo e alakaʻi i nā pilikia e like me ke komo ʻana i ka hoʻomanaʻo ma hope o ka hoʻokuʻu ʻana, nā kuhikuhi kuhikuhi null, a me ka overruns buffer. Ua kākau ʻia ma Rust kahi mea hoʻouka noi ma ka seL4 environment, nā lawelawe ʻōnaehana, kahi hoʻolālā no ka hoʻomohala ʻana i nā noi, kahi API no ke kiʻi ʻana i nā kelepona ʻōnaehana, kahi luna kaʻina hana, kahi hana no ka hoʻokaʻawale ʻana i ka hoʻomanaʻo, a pēlā aku. Hoʻohana ka hui i hōʻoia ʻia i ka pahu hana CAmkES, i hoʻomohala ʻia e ka papahana seL4. Hiki ke hana ʻia nā ʻāpana no CAmkES ma Rust.

Hoʻoikaika ʻo Rust i ka palekana hoʻomanaʻo i ka manawa hōʻuluʻulu ma o ka nānā ʻana i ka ʻike, ka mea nona ka mea a me ka nānā ʻana i ke ola holoʻokoʻa (scopes), a ma ka loiloi ʻana i ka pololei o nā mea hoʻomanaʻo i ka wā holo. Hāʻawi pū ʻo Rust i ka pale ʻana i ka integer overflows, pono e hoʻomaka mua ʻia nā waiwai hoʻololi ma mua o ka hoʻohana ʻana, hoʻohana i ka manaʻo o nā kuhikuhi immutable a me nā ʻano like ʻole ma ka paʻamau, a hāʻawi i ka paʻi static ikaika e hōʻemi i nā hewa loiloi.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka