Владимир Сербиненко, GRUB2 жүктеуші үш қолдаушысының бірі, код базасына бес мыңнан астам өзгертулер енгізді, Rust тілін пайдаланып GRUB2 модульдерін жазу мүмкіндігін талқылауға қойды. Владимир GRUB2-ге Rust қолдауын қосу және қажетті байлауларды жасау эксперименттерінің алғашқы нәтижелерін ұсынды. GRUB сонымен қатар нысандық файл деңгейінде байланыстырудың орнына ('.o', ET_REL) модульдер үшін ортақ кітапханаларды ('.so', ET_DYN) пайдалану үшін өзгертілді.
Қазіргі уақытта бастама GRUB2 дамуына әсер етпейтін жеке эксперимент ретінде орналастырылған. GRUB ішіндегі Rust үшін ең жақсы пайдаланудың бірі - жаңа файлдық жүйелер үшін модульдерді жазу. Сондай-ақ, диск бөлімдерімен және GPT-мен жұмыс істеу коды Rust-та қайта жазылуы мүмкін.
Rust пайдалану жобаға қателердің белгілі бір түрлерінің ықтималдығын азайтуға көмектеседі деп күтілуде, әсіресе көптеген үлкен және күрделі талдау процедураларын қамтитын модуль кодында. Ақпан айында GRUB кодтық базасының аудиті 72 қауіпсіздік мәселесін анықтады, олардың 21-і UEFI Secure Boot тексерілген жүктеу механизмін айналып өту үшін пайдаланылуы мүмкін елеулі осалдықтар деп саналды. 20 осалдықтың 21-сы буфердің толып кетуіне немесе жад босатылғаннан кейін кіруге әкелетін жадты басқару қателерінен туындаған.
Сонымен қатар, жоғарыда аталған осалдықтарды түзетуді қамтитын GNU Boot 0.1 RC6 шығарылымы назар аударарлық (GRUB2 өзі түзетулерді бөлек шығарылымсыз патчтар ретінде таратуды жалғастыруда). GNU Boot жобасы CoreBoot негізіндегі, бірақ екілік компоненттерді қосуға қойылатын қатаң талаптармен меншікті UEFI және BIOS микробағдарламасының орнына жаңа нұсқа әзірлеуде. GNU Boot «coreboot-libre», яғни жобадағыдай, блобтар мен тегін емес компоненттерден бос CoreBoot басылымы ретінде сатылады. Linux-libre ядроның таза нұсқасын жасайды LinuxLibreboot және Canoeboot сияқты ұқсас жобалар бөлек әзірленуде.
Ақпарат көзі: opennet.ru
