Vladimir Serbinenko, jeden z troch hlavných údržbárov bootloadera GRUB2, ktorý prispel do kódovej základne viac ako piatimi tisícami zmien, predložil na diskusiu možnosť písania modulov pre GRUB2 pomocou jazyka Rust. Vladimir predstavil prvé výsledky experimentov s pridaním podpory Rust do GRUB2 a vytvorením potrebných obalov. Pre GRUB boli tiež pripravené zmeny, ktoré umožňujú používať zdieľané knižnice (”.so”, ET_DYN) pre moduly, namiesto prepojenia na úrovni objektových súborov (”.o”, ET_REL).
Iniciatíva zatiaľ je prezentovaná ako samostatný experiment, ktorý nebude mať vplyv na vývoj GRUB2. Ako optimálne využitie Rust v GRUB sa spomína písanie modulov pre nové súborové systémy. Taktiež nie je vylúčené prepisovanie kódu na Rust pre prácu s diskovými oddielmi a GPT.
Predpokladá sa, že využitie Rust pomôže projektu znížiť pravdepodobnosť niektorých typov chýb, najmä v kóde modulov, ktorý obsahuje množstvo veľkých a zložitých procedúr analýzy. V februári, počas auditu kódovej základne GRUB, bolo identifikovaných 72 problémov so zabezpečením, z ktorých 21 bolo uznaných za nebezpečné zraniteľnosti, ktoré sú vhodné na obídenie mechanizmu overenej bootovania UEFI Secure Boot. 20 z 21 zraniteľností bolo spôsobených chybami pri práci s pamäťou, ktoré viedli k pretekaniu vyrovnávacej pamäte alebo prístupu k pamäti po jej uvoľnení.
Navyše môžeme spomenúť vydanie projektu GNU Boot 0.1 RC6, do ktorého boli zahrnuté vyššie uvedené opravy zraniteľnosti (v samotnom GRUB2 sa opravy naďalej šíria v podobe patchov bez vytvorenia samostatného vydania). Projekt GNU Boot vyvíja náhradu proprietárnym firmvérám UEFI a BIOS, založenú na CoreBoot, ale aplikuje prísnejšie požiadavky na zapracovanie binárnych komponentov. GNU Boot je prezentovaný ako „coreboot-libre“, t.j. ako edícia CoreBoot oslobodená od blobov a neslobodných komponentov, podobne ako projekt Linux-libre vyvíja vyčistenú verziu jadra Linux. Samostatne sa vyvíjajú podobné projekty Libreboot a Canoeboot.
Zdroj: opennet.ru
