
Ако сте човек, който щателно персонализира всеки детайл от системата си и е загрижен, че целият софтуер, работещ на вашата машина, е наистина безплатен, появата на GNU/Linux-libre 6.18 ще ви бъде от голям интерес. Това ново издание на добре познатото „отключено“ ядро е базирано на Linux 6.18, но е преминало през цялостно почистване, за да се премахнат всякакви следи от собствен фърмуер или микрокод.
В следващите редове ще разгледаме всички нови функции на GNU/Linux-libre 6.18 : какви промени въвежда в сравнение с официалното ядро, кои драйвери са засегнати, как се разпространява, кои проекти го пакетират и философията зад тази работа. Ще обсъдим и ролята на неговия приятелски настроен пингвин, Freedo, връзката му с FSF и защо това ядро се е превърнало в еталон за 100% безплатни дистрибуции.
Ключови нови характеристики на GNU Linux-libre 6.18 в сравнение с Linux 6.18
Новата версия на GNU Linux-libre 6.18-gnu е базирана на ядрото Linux 6.18 , същия клон, който Линус Торвалдс току-що обяви за стабилен и който, по всички сведения, ще бъде следващото референтно LTS ядро в екосистемата на Linux. Това означава, че наследява всички общи подобрения: фино настроена производителност, нови вътрешни функции, разширена хардуерна поддръжка и обичайните корекции на грешки.
Екипът на GNU Linux-libre обаче е отговорен за прилагането на набор от скриптове и инструменти за почистване („deblobbing“) , които сканират изходния код за проблемни елементи: драйвери, които зареждат двоичен фърмуер, извиквания по време на изпълнение към несвободен микрокод, препратки в документацията към външни blob-ове и дори споменавания на двоични файлове в devicetree файлове с различни архитектури.
В резултат на този процес, GNU/Linux-libre 6.18 идентифицира и неутрализира или премахна нови драйвери и фрагменти от код в официалното дърво на ядрото, които зависят от двоични блобове. Тази работа засяга не само новодобавените драйвери, но и съществуващите, чийто механизъм за зареждане на фърмуер е променен в тази версия.
В същото време, версия 6.18-gnu включва оптимизациите на Linux 6.18 , като например подобрена обща производителност, текуща работа по Apple Silicon (M2 Pro/Max/Ultra), текуща поддръжка за платформата Intel Wildcat Lake, интеграция на новия код "Sheaves", активиране по подразбиране на fsck online за XFS и подобрена хаптична поддръжка за тъчпадове, наред с много други. Всичко това, разбира се, като същевременно се запазва основният принцип на проекта: нулев собственически софтуер.
Сърцето на проекта: ядро без блобове
Целта на GNU/Linux-libre е да предложи съвместимо с Linux, но напълно безплатно ядро , проектирано да бъде част от системи, които следват Насоките за разпространение на свободен софтуер (FSDG) на FSF. Това включва премахване на всеки компонент, който не се разпространява като модифицируем изходен код или който е предмет на ограничителни лицензи.
На практика това се изразява в премахване или деактивиране на драйвери, фърмуер, блобове, пакетирани като данни, скриптове, които изискват външни двоични файлове , и извиквания по време на изпълнение на собственически фърмуер. Коментарите и документацията, които действат като „примамка“, за да привлекат потребителите да изтеглят несвободни компоненти, също се почистват, предотвратявайки така нареченото „примамване“ на собственически софтуер.
Подходът на проекта е с минимални промени : проблемните части се премахват или неутрализират, но не се прави опит за пренаписването им или предоставянето на безплатни заместители, които запазват същата функционалност. Целта е да се гарантира свободата на системата, дори това да означава, че определен хардуер става неработещ без безплатни алтернативи.
Това продължаващо усилие започна в рамките на дистрибуцията gNewSense, беше ръководено и наречено от Джеф Моу, попадна под поддръжката на Латиноамериканската федерация по социални науки (FSF) през 2008 г. и от 2012 г. е официално част от проекта GNU . Днес то се е превърнало в основа за множество 100% безплатни операционни системи, сертифицирани от FSF.
Нови драйвери, почистени в GNU Linux-libre 6.18
Един от най-видимите аспекти на работата по GNU Linux-libre 6.18 е премахването на драйвери, наскоро включени в ядрото на Linux 6.18 , които се опитват да заредят фърмуерни блобове. Ако бъдат оставени такива, каквито са, те биха компрометирали чистотата на системата, като изискват несвободни двоични файлове.
В тази версия екипът е идентифицирал и „ограничил“ няколко нови драйвера , които в официалното дърво разчитат на собствен фърмуер, за да функционират правилно:
- FourSemi контролериДрайверът за цифров аудио усилвател FourSemi и свързаната с него библиотека (включително моделите FS2104/5S) са почистени, като в стандартния Linux се опитват да заредят blob-ове за управление на определени режими и функции.
- Драйвер TI TAS2783Драйверът за усилвателя за високоговорители Texas Instruments TAS2783, също нов в този клон, включва логика за зареждане на фърмуер, която е деактивирана, за да се предотврати заявяването на несвободни двоични файлове.
- Сериен двигател Qualcomm GENIДвигателят от серията GENI на Qualcomm, отговорен за управлението на комуникационните интерфейси на платформи от тази марка, също би се опитал да зареди blob-ове, ако не беше бил намесен, така че беше подложен на процес на деблобиране.
Във всички тези случаи резултатът е, че драйверът спира да изисква собствен фърмуер . В зависимост от това доколко драйверът е зависел от този микрокод, практическата функционалност на устройството може да бъде силно ограничена или напълно неизползваема под GNU/Linux, но това е в съответствие с принципа да не се налага потребителят да използва собствени компоненти.
Корекции на съществуващите драйвери: Nova-Core, Intel Xe и други
В допълнение към новоиздадените драйвери, GNU Linux-libre 6.18 преработва поведението на драйверите, които вече са били налични в предишни версии, чийто механизъм за управление на фърмуера се е променил в Linux 6.18. Тези корекции са необходими, за да се предпази ядрото от образувания на петна (blobs), докато основното дърво се развива.
Сред забележителните случаи откриваме:
- Nova-Core, Rust драйверът за NVIDIAНовият драйвер с отворен код Nova-Core, написан на Rust, разчита изцяло на системния процесор на NVIDIA GPU (GSP). Без собствения фърмуер на GSP, драйверът просто няма да функционира. GNU/Linux-libre адаптира своите скриптове, за да блокира зареждането на този микрокод, като по този начин ефективно прави Nova-Core неработещ. неработещ без петнано запазва свободата на системата.
- следващо поколение Intel XeСъвременният драйвер на Intel Xe разчита на микроконтролера GuC и неговия двоичен фърмуер за управление на опашки, планиране и други критични функции. Linux-libre 6.18 отново затяга процеса на почистване, за да предотврати заявяването или зареждането на този фърмуер, което също прави драйвера практически безполезен без безплатни алтернативи.
- TI PRU EthernetEthernet контролерът, базиран на Texas Instruments PRU (Programmable Real-time Unit), също е претърпял промени в своята логика за блобове нагоре по веригата. GNU/Linux-libre актуализира деблобирането, за да гарантира, че Патентованият фърмуер не е зареден на тези SoC-та.
- Marvell WiFi-ExПромените, направени в официалното дърво за семейството WiFi-Ex на Marvell, наложиха преглед на почистването, като отново блокираха всяко позоваване или опит за качване на двоичен фърмуер за тези безжични адаптери.
Тези корекции показват, че процесът на почистване е непрекъснат и реактивен : всеки път, когато кодът на драйвер, който преди това е разчитал на blob-ове, се промени, екипът на Linux-libre трябва да прегледа този код отново, за да се увери, че няма да се „промъкне“ нов механизъм за зареждане на собствен фърмуер.
Премахнати или преместени драйвери и елементи
Не става въпрос само за нови почиствания или корекции. В GNU Linux-libre 6.18 има и случаи, в които самото ядро на Linux е премахнало определени компоненти, опростявайки процеса на деблобиране.
Ясен пример е FM радио драйверът TI WL1273 . Този драйвер, който в предишни версии изискваше специално почистване поради зависимостта си от двоичен фърмуер, беше директно премахнат от официалното дърво на Linux 6.18. Следователно, в GNU/Linux-libre 6.18 цялата логика за деблобиране, свързана с този драйвер, също може да бъде премахната, като по този начин се намалява сложността на набора от скриптове.
Друг ярък пример е драйверът Lantiq GSWIP , драйвер за гигабитов комутатор за определени платформи. В Linux 6.18 местоположението му в дървото на изходния код е преместено, което изисква корекции в пътищата и шаблоните, използвани от системата за почистване на проекта за локализиране и обработка на съответните фрагменти.
Тези промени в местоположението и премахването отразяват как основното ядро непрекъснато се реорганизира и как GNU Linux-libre трябва да се справя с това, не само като проследява нови блобове, но и като адаптира инструментите към променящата се структура на кодовото дърво.
Чисто Devicetree за Qualcomm, Mediatek и TI на ARM64
Почистването не се ограничава само до C кода на драйверите. В тази версия една от най-деликатните задачи е прегледът на новите devicetree (DT) файлове за ARM64 платформи, които описват хардуера на системи, базирани на Qualcomm, Mediatek и Texas Instruments.
В Linux 6.18 няколко от тези дървета на устройствата включват изрични препратки към фърмуерни блобове , пътища към двоични файлове или свойства, които показват необходимостта от несвободен микрокод за определени компоненти. Ако се оставят такива, каквито са, самото използване на тези дървета на устройствата може да накара потребителя да търси и зарежда собствени компоненти.
GNU Linux-libre 6.18 се грижи за „почистването“ на тези файлове, премахвайки или променяйки препратки към двоични файлове на Qualcomm, Mediatek и TI в архитектурата ARM64. Това гарантира, че свободното ядро не действа като вектор на препоръки за несвободен софтуер, като по този начин спазва насоките на FSF.
Как да изтеглите GNU Linux-libre 6.18
Проектът предлага няколко официални начина за изтегляне и използване на GNU Linux-libre 6.18-gnu , както под формата на изходен код, така и в двоични пакети, готови за инсталиране на популярни дистрибуции.
От една страна, изходният код може да бъде получен чрез Git от хранилището, поддържано от проекта:
- Git хранилище на изданияgit://linux-libre.fsfla.org/releases.git с етикети под
scripts,sourcesylogsза версия v6.18-gnu.
Освен това, малко след обявяването на версията, предварително компресирани tarball-и бяха предоставени от официалния уебсайт на FSFLA:
- https://www.fsfla.org/selibre/linux-libre/download/releases/ (ubicación habitual de los tarballs de cada versión).
Тези, които предпочитат да не компилират ядрото ръчно, могат да използват двоични пакети, подготвени от партньорски проекти:
- Freesh: предлага готови за употреба .deb пакети за Debian-базирани и производни дистрибуции, с вече компилирано ядро на GNU Linux-libre.
- RPM Свобода: предоставя .rpm пакети за Red Hat, Fedora и производни системи, които искат да приемат това безплатно ядро.
По този начин потребителите могат да избират между компилиране на собствено ядро директно от изходния код или инсталиране на един от предварително направените пакети, интегрирането му със или замяната на стандартното ядро на тяхната дистрибуция.
Дистрибуции и екосистема около Linux-libre
GNU/Linux-libre е основата, върху която са изградени много напълно безплатни дистрибуции, одобрени от FSF, като Trisquel и PureOS. Тези дистрибуции използват това ядро, за да гарантират, че цялата система се придържа към най-строгите насоки за свободен софтуер.
Много от тях предлагат предварително направени образи с най- новата версия на Linux-libre или поне близък клон. В други случаи те ви позволяват да изберете това ядро от техните хранилища или чрез допълнителни хранилища, така че потребителят може да замени генеричното ядро с такова, свободно от blob-ове, без да променя дистрибуциите.
За администратори и ентусиасти, GNU Linux-libre 6.18 може да се инсталира и на почти всяка масова дистрибуция . Просто го компилирайте или инсталирайте пакетите Freesh/RPM Freedom и конфигурирайте мениджъра за зареждане да избира това ядро при стартиране на системата. Това създава среда, много по-съвместима с принципите на свободния софтуер, дори в дистрибуции, които включват несвободни компоненти по подразбиране.
Какво точно е GNU Linux-libre (и какво не е)
Самият проект подчертава, че GNU Linux-libre е преди всичко модифицирана версия на ядрото на Linux , предназначена за използване в GNU системи, които се стремят да бъдат напълно свободни. Целта е всяка дистрибуция, желаеща да спазва Насоките за свободен софтуер (FSDG) на FSF, да може да приеме това ядро с гаранцията, че то не съдържа никакви blob-ове или препратки, които биха накарали потребителя да инсталира собственически код.
В тяхната документация се обяснява, че несвободните компоненти се премахват, независимо дали са маскирани като изходен код (но всъщност са вградени блобове) или се разпространяват в отделни файлове. Освен това, заявките по време на изпълнение към собственически фърмуер са деактивирани, а ръководствата или коментарите, които сочат към несвободни ресурси, се премахват.
Проектът обаче няма за цел да пренаписва тези компоненти или да предлага безплатни алтернативни драйвери, които да заменят собствените. Подходът е минималистичен: несвободните компоненти се премахват, останалите остават почти непокътнати, а други инициативи се насърчават да разработват безплатни заместители, където е възможно. Всъщност много устройства, които все още разчитат на blob файлове, са документирани в сайтове като LibrePlanet, с цел координиране на усилията за евентуалното им освобождаване.
Накрая, въпреки че талисманът е пингвин, разработчиците настояват, че ролята на проекта GNU и FSF в изграждането на цялостната система е много по-голяма и че свободното ядро е само още една част от идеала за напълно свободна система.
Чрез комбиниране на всички технически подобрения, наследени от Linux 6.18, с изчерпателното почистване на фърмуера, драйверите и дървото на устройствата, GNU/Linux-libre 6.18 затвърждава позицията си на мощен вариант за тези, които не желаят да правят компромис със софтуерната свобода. От новите, опростени драйвери за цифрово аудио и процесори от серията Qualcomm до корекциите в драйверите на графичните процесори като Nova-Core и Intel Xe, почистването на ARM64 платформите и наличието на пакети за множество дистрибуции, тази версия демонстрира, че е възможно да се остане близо до най-съвременните технологии в ядрото, без да се изоставя принципът да не се зареждат никакви собственически двоични файлове.