Латиноамериканският фонд за свободен софтуер публикува напълно свободна версия на ядрото Linux 6.12 — Linux-libre 6.12-gnu, почистено от елементи на фърмуер и драйвери, съдържащи несвободни компоненти или участъци от код, областта на приложение на които е ограничена от производителя. Освен това, Linux-libre деактивира функциите на ядрото за зареждане на външни несвободни компоненти, които не влизат в доставката на ядрото, и премахва споменаването на използването на несвободни компоненти от документацията.
За почистване на ядрото от несвободни части, проектът Linux-libre е разработил универсален shell-скрипт, който съдържа хиляди шаблони за определяне на наличието на бинарни вложки и за изключване на фалшивите сработвания. Също така са налични за сваляне готови пачове, създадени на базата на използването на споменатия скрипт. Ядрото Linux-libre е препоръчително за употреба в разпространения, отговарящи на критериите на фонда за свободен софтуер за изграждане на напълно свободни дистрибуции GNU/Linux. Например, Linux-libre се използва в такива разпространения като Dragora Linux, Trisquel, Dyne:Bolic, gNewSense, Parabola, Musix и Kongoni.
В изданието Linux-libre 6.12-gnu е добавен код за почистване на блобовете в драйверите за SoC CPM/QE QMC, безжични чипове Realtek 8852BE-VT, bluetooth адаптери Amlogic, мрежови адаптери amcc qt2025, сензори aw96103/aw96105 и кодеци TI TLV320AIC31XX. Проведена е допълнителна обработка на блобовете в драйверите за xHCI контролерите Renesas и Intel ISH (Integrated Sensor Hub) HID. Кодът за премахване на блобовете в драйверите и подсистемите MHI PCI host, Adreno 620/621, r8169, Qualcomm q6v5 remoteproc, rtw8852c, rtw8922a, както и в dts файловете за ARM54 чиповете TI PRU и Qualcomm е актуализиран. Почистването на драйверите за безжични карти ks7010 и звуковата подсистема на Intel SkyLake е спряно, тъй като тези драйвери са премахнати от ядрото.
Отделно се отбелязва откритие в изходните текстове на един от драйверите на изпълняемия обектен код, генериран от непубликувани изходни текстове и вграден под формата на последователност от шестнадесетични числа. Проблемният драйвер не е посочен ясно, но, съдейки по промените, става дума за наличието на микрокод на шейдера в файла gfx_v9_4_3_cleaner_shader.h, който е част от драйвера AMDGPU. Първото подобно вмъкване е открито в ядрото 6.11 и след това предложено от един от разработчиците за премахване, тъй като изходните текстове не са предоставени (възникнала е ситуация на доставка под лиценция GPL на програма, достъпна само в бинарен вид). Въпреки това, в ядрото 6.12 посоченият бинарен код е запазен, а в същия драйвер е добавено още едно подобно вмъкване.
Освен това, в анонса на Linux-libre 6.12 са споменати още две събития:
- За включване в състава на ядрото е предложено корекция, която блокира драйверите за лаптопи Tuxedo от достъп до подсистемите на ядрото, достъпни само за код под лиценция GPLv2 (EXPORT_SYMBOL_GPL). Възможността за блокиране първоначално е била въведена за ограничаване на свързването на проприетарни драйвери с компоненти на ядрото на Linux, изнасяни само за модули под лиценция GPLv2, но успешно се заобикаля чрез създаването на модули-прослойки, които трансферират достъпа на проприетарния драйвер до необходимите API на ядрото. В случай на драйверите Tuxedo ситуацията е обратна — въпреки че драйверите Tuxedo се развиват независимо от ядрото, те се предоставят под лиценция GPLv3, която от една страна не е съвместима с GPLv2, но от друга страна защитава повече свободи, например защитава от тивоизация.
Посочва се, че компаниите Tuxedo отдавна предлагат да сменят лиценцията на своите драйвери, но те продължават да предоставят код под лиценция GPLv3 и в същото време са посочили в кода на драйвера макрос ‘MODULE_LICENSE(«GPL»)’ вместо ‘MODULE_LICENSE(«GPL v3»)’ за получаване на достъп до всички подсистеми на ядрото. Компанията Tuxedo се съгласи с критиката и промени лиценцията на GPLv2+ за част от своите драйвери. Промените се отнасят до драйверите gxtp7380, ite_8291, ite_8291_lb, ite_8297, ite_8297, stk8321, tuxedo_compatibility_check, tuxedo_nb02_nvidia_power_ctrl и tuxedo_tuxi. Повече от десет драйвера все още не са прелицензирани, тъй като за смяна на лиценцията им е необходимо получаване на съгласие от външни разработчици.
В кода ‘MODULE_LICENSE(«GPL»)’ вместо ‘MODULE_LICENSE(«GPL v3»)’ представителят на Tuxedo обясни отсъствието на ясно пояснение в документацията на ядрото, че маркерът «GPL» не може да се използва за лицензия GPLv3. Той също така сподели, че компанията възнамерява да предаде своите драйвери към основния състав на ядрото на Linux и за целта работи по тяхното пълно преписване под лицензия GPLv2, в съответствие с изискванията на компонентите на ядрото.
- Разработчиците на ядрото обсъждат инициативата за добавяне на флага X86_BUG_OLD_MICROCODE, който сигнализира, че в системата се използва не най-новата версия на микрокода на CPU. При активиране на този флаг, системата се предлага за разглеждане като имайки потенциални неизправени уязвимости. Опитите да се изравни състоянието на системата с неактуален микрокод със ситуацията на наличие на реални неизправени уязвимости в кода доведоха до критика от един от съпровождащите проекта Linux-libre.
Според съпровождащия Linux-libre, ядрото не трябва да нарушава правото на потребителите да не инсталират непроверени проприетарни фърмуер и микрокод на собственото им устройство. Става дума за наличието на уязвимости, която трябва да бъде обсъждана във връзка с конкретни корекции в определени версии на фърмуерите, а не да се наричат уязвими всички системи, на които не е инсталиран най-новият микрокод, без разглеждане на това дали в конкретната система се проявяват уязвимости и дали актуалната версия на фърмуера съдържа корекции на уязвимости.
Източник: opennet.ru
