Vladimir Serbineko, a GRUB2 bootloader három karbantartójának egyike, aki több mint ötezer módosítást végzett a kódalapban, megvitatásra bocsátotta a GRUB2 modulok Rust nyelven történő írásának lehetőségét. Vladimir bemutatta az első kísérletek eredményeit a Rust támogatásának hozzáadásával a GRUB2-hez, valamint a szükséges keretek létrehozásával. A GRUB számára olyan módosításokat is előkészítettek, amelyek lehetővé teszik a megosztott könyvtárak („.so”, ET_DYN) használatát a modulok számára, ahelyett, hogy objektumfájlok szintjén („.o”, ET_REL) kellene összekapcsolni.
A kezdeményezést egyelőre külön kísérletként pozicionálják, amely nem befolyásolja a GRUB2 fejlesztését. A Rust legoptimálisabb felhasználási módjaként új fájlrendszerekhez modulok írását emelik ki. Az sem kizárt, hogy Rust-ra írják át a lemezpartíciókkal és a GPT-vel kapcsolatos kódokat.
Feltételezhető, hogy a Rust használata segíteni fog a projektnek csökkenteni egyes hibafajták megjelenésének valószínűségét, különösen a modulok kódjában, amelyek számos nagy és bonyolult elemző eljárást tartalmaznak. Februárban a GRUB kódalapjának auditja során 72 biztonsági problémát találtak, ezek közül 21 veszélyes sebezhetőségnek minősült, amelyek alkalmasak voltak az UEFI Secure Boot ellenőrzési mechanizmusának megkerülésére. A 21 sebezhetőségből 20 memóriahasználati hibák miatt következett be, amelyek a puffertúlcsorduláshoz vagy a memória felszabadítása utáni hozzáféréshez vezettek.
Egyébként érdemes megemlíteni a GNU Boot 0.1 RC6 projekt kiadását, amely tartalmazta a fent említett sebezhetőségek javításait (a GRUB2-ben a javítások még mindig folytatódnak patch-ek formájában, anélkül, hogy külön kiadást hoznának létre). A GNU Boot projekt egy alternatívát fejleszt a proprietárius UEFI és BIOS firmware-k helyettesítésére, amely a CoreBoot-ra épül, de szigorúbb követelményeket alkalmaz a bináris komponensek integrálására. A GNU Boot a "coreboot-libre" néven kerül bemutatásra, azaz a CoreBoot egy bloboktól és nem szabad komponensektől mentes változata, hasonlóan ahhoz, ahogyan a Linux-libre projekt a Linux kernel tisztított változatát fejleszti. Hasonló projekteket fejlesztenek különállóan, mint például a Libreboot és a Canoeboot.
Forrás: opennet.ru
