Microsoft เป€เบ›เบตเบ” CHERioT, เบเบฒเบ™เปเบเป‰เป„เบ‚เบฎเบฒเบ”เปเบงเป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบฅเบฐเบซเบฑเบ” C

Microsoft เป„เบ”เป‰เบ„เบปเป‰เบ™เบžเบปเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™ CHERIoT (Capability Hardware Extension to RISC-V for Internet of Things), เป€เบžเบทเปˆเบญเปเบ™เปƒเบชเปˆเบชเบฐเบเบฑเบ”เบเบฑเป‰เบ™เบšเบฑเบ™เบซเบฒเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเปƒเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเปƒเบ™ C เปเบฅเบฐ C++. CHERioT เบชเบฐเป€เบซเบ™เบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบปเบเบ›เป‰เบญเบ‡เบฅเบฐเบซเบฑเบ” C / C ++ เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เบ„เบทเบ™เปƒเบซเบกเปˆ. เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เปเบกเปˆเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ compiler เบ”เบฑเบ”เปเบเป‰เบ—เบตเปˆเปƒเบŠเป‰เบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบžเบดเป€เบชเบ” (ISA), เบชเบฐเบซเบ™เบญเบ‡เป‚เบ”เบเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเปเบฅเบฐเปƒเบ™เบฅเบฐเบ”เบฑเบšเบฎเบฒเบ”เปเบงเปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ•เบปเบงเบŠเบตเป‰เปเบฅเบฐเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบงเบ‚เบญเบ‡เบšเบฅเบฑเบญเบเบฅเบฐเบซเบฑเบ”.

เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบงโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เบทเป‰เบ™โ€‹เป‚เบ”เบโ€‹เบกเบตโ€‹เบ•เบฒโ€‹เบเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เบˆเบดเบ‡โ€‹เบ—เบตเปˆโ€‹เบงเปˆเบฒโ€‹เบฅเบฑเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบ•โ€‹เปˆโ€‹เปโ€‹เบฒโ€‹เบ‚เบญเบ‡โ€‹เบžเบฒโ€‹เบชเบฒ C เบเบฒเบโ€‹เป€เบ›เบฑเบ™โ€‹เปเบซเบผเปˆเบ‡โ€‹เบ‚เบญเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบเบฑเบšโ€‹เบซเบ™เปˆเบงเบโ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹, เบ™เปเบฒโ€‹เป„เบ›โ€‹เบชเบนเปˆโ€‹เบเบฒเบ™โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เป€เบŠเบฑเปˆเบ™โ€‹: buffer overflowsโ€‹, เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เบŠเบปเบ‡โ€‹เบˆเปเบฒ freed เปเบฅเป‰เบงโ€‹, dereferences เบ•เบปเบงโ€‹เบŠเบตเป‰โ€‹เบซเบผเบท double freesโ€‹. . เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเบฅเบดเบชเบฑเบ”เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป€เบŠเบฑเปˆเบ™ Google เปเบฅเบฐ Microsoft, เบ—เบตเปˆเบกเบตเบ™เบฐเป‚เบเบšเบฒเบเบเบฒเบ™เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”เปเบฅเบฐเบ™เปเบฒเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ„เบปเบ‡เบ—เบตเปˆ, เบšเปเปˆเบชเบฒเบกเบฒเบ”เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบšเปเปˆเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ›เบฐเบกเบฒเบ™ 70% เบ‚เบญเบ‡เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเปƒเบ™ Microsoft. เปเบฅเบฐ Google เปเบกเปˆเบ™เป€เบเบตเบ”เบกเบฒเบˆเบฒเบเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบšเปเปˆเบ›เบญเบ”เป„เบž).

เบšเบฑเบ™เบซเบฒเบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เป„เบ”เป‰เป‚เบ”เบเบเบฒเบ™เปƒเบŠเป‰เบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเบ—เบตเปˆเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบตเปˆเบ›เบญเบ”เป„เบžเบเบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เบซเบผเบทเบเบฒเบ™เบœเบนเบเบกเบฑเบ”เบเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เป‚เบ”เบเปƒเบŠเป‰เปเบ—เบ™เบ•เบปเบงเบŠเบตเป‰เบ—เปเบฒเบกเบฐเบ”เบฒเป€เบŠเบฑเปˆเบ™ MiraclePtr (raw_ptr), เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เบเบฒเบ™เบเบงเบ”เบชเบญเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบ–เบทเบเบ›เบปเบ”เบ›เปˆเบญเบ. เปเบ•เปˆเบงเบดเบ—เบตเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เปƒเบซเบกเปˆ, เปเบฅเบฐเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ„เบทเบ™เปƒเบซเบกเปˆเป‚เบ„เบ‡เบเบฒเบ™ C / C ++ เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเปเบกเปˆเบ™เบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบกเบตเบšเบฑเบ™เบซเบฒ, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบ–เป‰เบฒเบžเบงเบเป€เบ‚เบปเบฒเบ–เบทเบเบญเบญเบเปเบšเบšเป€เบžเบทเปˆเบญเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”, เป€เบŠเบฑเปˆเบ™: เบฅเบฐเบšเบปเบšเบเบฑเบ‡เบ•เบปเบงเปเบฅเบฐเบญเบธเบ›เบฐเบเบญเบ™ Internet of Things.

เบญเบปเบ‡เบ›เบฐเบเบญเบšเบฎเบฒเบ”เปเบง CHERIoT เป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเป€เบ›เบฑเบ™ microcontroller เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ RISC-V, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ CHERI (Capability Hardware Extension to RISC-V) เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡, เป€เบŠเบดเปˆเบ‡เบชเบฐเบซเบ™เบญเบ‡เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบ„เบงเบšเบ„เบธเบกเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ "เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”" (เปเบ•เปˆเบฅเบฐเบญเปˆเบฒเบ™เปเบฅเบฐเบ‚เบฝเบ™. เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹เบเบฑเบšโ€‹เบซเบ™เปˆเบงเบโ€‹เบ„เบงเบฒเบกโ€‹เบˆเปเบฒโ€‹เปเบกเปˆเบ™โ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹)โ€‹. เบญเบตเบ‡เปƒเบชเปˆเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบŠเบธเบ”เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ (ISA) เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เปƒเบ™ CHERioT, เบฎเบนเบšเปเบšเบšเบŠเบญเบšเปเบงเป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบ—เบตเปˆเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเบงเบฑเบ”เบ–เบธ, เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบ–เบทเบเบ›เบปเบ”เบ›เปˆเบญเบเปเบฅเป‰เบง, เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบฅเบฐเบšเบปเบšเบเบฒเบ™เปเบเบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ—เบตเปˆเบกเบตเบ™เป‰เปเบฒเบซเบ™เบฑเบเป€เบšเบปเบฒ. . เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบŠเบญเบšเปเบงเบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปเบกเปˆเบ™เบชเบฐเบ—เป‰เบญเบ™เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบ”เบเบเบปเบ‡เปƒเบ™เบ•เบปเบงเปเบšเบšเบžเบฒเบชเบฒ C/C++, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เบปเบเบ›เป‰เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆ (เบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบฅเบงเบšเบฅเบงเบก เปเบฅเบฐเปเบฅเปˆเบ™เปƒเบ™เบญเบธเบ›เบฐเบเบญเบ™เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบš ISA CHERIOT).

เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบชเบฐเป€เบซเบ™เบตเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเบฐเบเบฑเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบงเบฑเบ”เบ–เบธเป„เบ›เป€เบเบตเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เบšเปเปˆเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ›เปˆเบฝเบ™เบ•เบปเบงเบŠเบตเป‰ (เบ•เบปเบงเบŠเบตเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบ•เป‰เบญเบ‡เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เบˆเบฒเบเบ•เบปเบงเบŠเบตเป‰เบ—เบตเปˆเบกเบตเบขเบนเปˆ), เปเบฅเบฐเบ•เบดเบ”เบ•เบฒเบกเบเบงเบ”เบเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบง (เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปƒเบ”เป†เป‚เบ”เบเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบ•เบปเบงเบŠเบตเป‰เบซเบผเบทเบ•เบปเบงเบŠเบตเป‰เบญเป‰เบฒเบ‡เบญเบตเบ‡เบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบ›เปˆเบญเบเบญเบญเบเบกเบฒเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบเบปเบเป€เบงเบฑเป‰เบ™เบ–เบทเบเบ–เบดเป‰เบก). เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ CHERioT เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ‚เบญเบšเป€เบ‚เบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ•เบฐเบซเบผเบญเบ”เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เปเบฅเบฐเบเบฒเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰เบ„เบงเบฒเบกเบชเบปเบกเบšเบนเบ™เบ‚เบญเบ‡เบ•เบปเบงเบŠเบตเป‰เปƒเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฅเบฐเบซเบฑเบ”เปƒเบ”เป†.

เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบเปˆเบฒเบงโ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบกเบตโ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ›เบฑเบ”โ€‹เบ•เบฐโ€‹เบเบฐโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบ‚เบญเบ‡โ€‹เบŠเบธเบ”โ€‹เบ„เปเบฒโ€‹เปเบ™เบฐโ€‹เบ™เปเบฒ CHERIoT, เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฐโ€‹เบชเบฒเบ™โ€‹เบญเป‰เบฒเบ‡โ€‹เบญเบตเบ‡โ€‹เบ‚เบญเบ‡ 32-bit RISC-V CPU เบ—เบตเปˆโ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™ CHERIoT ISA, เปเบฅเบฐโ€‹เบŠเบธเบ”โ€‹เป€เบ„เบทเปˆเบญเบ‡โ€‹เบกเบท LLVM เบ”เบฑเบ”โ€‹เปเบเป‰. เปเบœเบ™เบงเบฒเบ”เบ•เบปเป‰เบ™เปเบšเบš CPU เปเบฅเบฐเบ„เบณเบญเบฐเบ—เบดเบšเบฒเบเบšเบฅเบฑเบญเบเบ‚เบญเบ‡เบฎเบฒเบ”เปเบงเปƒเบ™ Verilog เปเบกเปˆเบ™เปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” Apache 2.0. เบซเบผเบฑเบ Ibex เบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™ lowRISC เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบชเปเบฒเบฅเบฑเบš CPU. เบฎเบนเบšเปเบšเบšเบฅเบฐเบซเบฑเบ” CHERIoT ISA เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป€เบ›เบฑเบ™เบžเบฒเบชเบฒ Sail เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบญเบฐเบ™เบธเบเบฒเบ”เบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” BSD.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบตเบเบฒเบ™เบชเบฐเป€เปœเบตเปเบšเบšเบ•เบปเป‰เบ™เปเบšเบšเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เปเบšเบšเบชเบปเบ”เป†เบ‚เบญเบ‡ CHERIoT RTOS, เป€เบŠเบดเปˆเบ‡เปƒเบซเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เปเบเบเบŠเปˆเบญเบ‡เปƒเบชเปˆเป„เบ”เป‰เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบฅเบฐเบšเบปเบšเบเบฑเบ‡เบ•เบปเบงเบ—เบตเปˆเบกเบต RAM 256 MB. เบฅเบฐเบซเบฑเบ” CHERioT RTOS เบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ C ++ เปเบฅเบฐเบ–เบทเบเปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” MIT. เบญเบปเบ‡เบ›เบฐเบเบญเบšเบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡ OS, เป€เบŠเบฑเปˆเบ™ bootloader, เบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเปเบฅเบฐเบฅเบฐเบšเบปเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบเบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒ, เป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ compartments.

เบŠเปˆเบญเบ‡เปƒเบชเปˆเปƒเบ™ CHERioT RTOS เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ—เบตเปˆเป‚เบ”เบ”เบ”เปˆเบฝเบงเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบ•เบปเบงเปเบ›เบ—เบปเปˆเบงเป‚เบฅเบเบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบšเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเปƒเบŠเป‰เบฎเปˆเบงเบกเบเบฑเบ™, เปเบ•เปˆเบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบšเบญเบฑเบ™เบชเบธเบ”เบ—เป‰เบฒเบ, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™เบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบกเบฑเบ™ (เบ›เปˆเบฝเบ™เปเบ›เบ‡เป„เบ”เป‰) เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบชเบฐเบžเบฒเบšเบเบฒเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบšเปเปˆเบกเบตเบฅเบฐเบซเบฑเบ”เบˆเบฒเบเบžเบฒเบเบ™เบญเบเบชเบฒเบกเบฒเบ”เป‚เบญเบ™เบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเป„เบ›เบซเบฒเบฅเบฐเบซเบฑเบ”เปƒเบ™เบŠเปˆเบญเบ‡เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบงเบฑเบ”เบ–เบธ, เบเบปเบเป€เบงเบฑเป‰เบ™เป‚เบ”เบเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบˆเบธเบ”เป€เบ‚เบปเป‰เบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบžเบดเป€เบชเบ”เปเบฅเบฐเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเบŠเบตเป‰เป„เบ›เบซเบฒเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบœเปˆเบฒเบ™เบขเปˆเบฒเบ‡เบŠเบฑเบ”เป€เบˆเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป‚เบ—เบซเบฒเบŠเปˆเบญเบ‡เบญเบทเปˆเบ™. เบ„เบงเบฒเบกเบŠเบทเปˆเบชเบฑเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบฅเบฑเบšเปเบกเปˆเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบฅเบฐเบซเบฑเบ”เปเบฅเบฐเบงเบฑเบ”เบ–เบธเบ—เบปเปˆเบงเป‚เบฅเบเปƒเบ™เบŠเปˆเบญเบ‡.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™