Kernel-ul Linux este o piesă genială de inginerie software. La peste un milion de linii de cod, este probabil unul dintre cele mai complexe programe care se află încă în dezvoltare activă astăzi. De la sfârșitul anilor 1990, kernel-ul Linux a fost folosit atât în proiecte intensive din punct de vedere computațional, cât și în aplicații încorporate simple.
Ce este un kernel și de ce să-l configurezi?
Cu toate acestea, nucleul Linux este doar un program care servește drept legătură între hardware-ul din computer și software-ul pe care îl utilizați zilnic. Este ceea ce vă permite să utilizați o gamă largă de dispozitive pentru programele pe care le utilizați zilnic.
Un exemplu al acestei legături hardware-software este Advanced Linux Sound Architecture (ALSA). ALSA este un cadru de driver de sunet care este încorporat în nucleul Linux. Vă permite, printre altele, să instalați cu ușurință o placă de sunet și să o configurați pentru a rula imediat cu programul dvs. preferat.

Știind asta, nucleul Linux este un program care este în mare parte necunoscut utilizatorului obișnuit. În cea mai mare parte, ori de câte ori instalați o distribuție, obțineți adesea un nucleu care va epuiza. Acest lucru poate fi util dacă doriți doar să vă faceți sistemul să funcționeze.
Cu toate acestea, dacă utilizați distribuții precum Arch și Gentoo, posibilitatea de a vă configura nucleul este benefică pe termen lung. De exemplu, activarea numai a funcțiilor dorite poate accelera timpul de pornire.
Prin urmare, acest articol își propune să ofere cinci sfaturi utile atunci când vă compilați propriul kernel Linux.
Notă: Consultați acest articol pentru a afla cum să începeți să vă compilați propriul kernel.
1. Utilizați sistemul de ajutor
Una dintre cele mai utile caracteristici atunci când vă configurați nucleul Linux este sistemul de ajutor. Aceasta este o caracteristică încorporată pe care o puteți accesa în meniul de configurare a kernelului. Prin urmare, acest lucru vă permite să vizualizați o descriere a fiecărei caracteristici și driver pe care le puteți instala în kernel.

Pentru a utiliza acest sistem, tot ce trebuie să faceți este să apăsați Schimb + / în timp ce evidențiază o anumită opțiune de kernel. De acolo, meniul de configurare va imprima apoi un scurt diapozitiv cu ceea ce face acea caracteristică. De exemplu, pot apăsa Schimb + / la opțiunea „Asistență PCI” pentru a vedea toate opțiunile pe care trebuie să le activez pentru ao folosi.

Cu aceasta, puteți utiliza și același sistem de ajutor pentru a căuta informații despre anumite caracteristici ale nucleului. Acest lucru poate fi util în special dacă doriți să aflați mai multe despre toate opțiunile pe care le necesită o anumită caracteristică.
Pentru a face acest lucru, puteți apăsa / în timp ce în interiorul meniului de configurare. Astfel, va apărea un mic prompt în care puteți introduce numele unei anumite opțiuni. De exemplu, pot apăsa / apoi tastați „PCI” pentru a căuta opțiuni care folosesc steag PCI.

2. Dezactivați suportul HID inutil
Kernel-ul Linux se prezintă adesea ca un software cu suport hardware aproape universal. Prin urmare, sunteți adesea sigur că va putea conduce orice dispozitiv la care vă conectați.

Cu toate acestea, o problemă a acestei abordări este că includerea fiecărui suport mărește dimensiunea generală și amprenta nucleului. Acest lucru, la rândul său, poate duce la binare lente pe care hackerii rău intenționați le pot exploata și în care pot pătrunde cu ușurință.
O modalitate de a rezolva această problemă este să eliminați suportul hardware pe care nu îl utilizați pe computer. De exemplu, nucleul Linux include suport Firewire în configurația sa implicită. În ciuda acestui fapt, majoritatea mașinilor din zilele noastre nu includ un port Firewire în mod implicit.

Știind asta, o modalitate rapidă de a vedea ce dispozitive hardware puteți dezactiva este să parcurgeți secțiunea „Drivere HID speciale”. Aceasta este o categorie pe care o puteți accesa sub „Drifere de dispozitiv” și „Suport HID” din meniul de configurare. Aici, nucleul va lista toate dispozitivele rare și neobișnuite pe care le poate suporta.

Cu asta, puteți folosi și Schimb + / și / pentru a căuta fiecare opțiune listată în această secțiune. De exemplu, pot selecta „Dispozitive ELECOM” și pot apăsa Schimb + / să văd ce face acea opțiune.

Puteți selecta apoi dispozitivele pe care le doriți și apăsați N pentru a le dezactiva caracteristicile. În cazul meu, voi dezactiva toate suporturile speciale HID, deoarece nu folosesc niciunul dintre aceste dispozitive.

3. Dezactivați suportul pentru sistemul de fișiere inutil
O altă modalitate rapidă de a reduce dimensiunea nucleului este să eliminați suportul pentru sistemele de fișiere pe care nu le utilizați. În mod implicit, nucleul Linux este construit cu suport opțional pentru majoritatea tipurilor de sisteme de fișiere. Acestea includ cele vechi BSD FFS precum și unele dintre sistemele de înaltă performanță, cum ar fi BTRFS.

În cea mai mare parte, un utilizator obișnuit folosește cu adevărat doar o mână de sisteme de fișiere pentru utilizarea zilnică. De exemplu, un sistem Linux folosește în general EXT2, EXT4, FAT32 și NTFS pentru toate stocarea datelor. Ca atare, este posibil să eliminați suportul pentru alte sisteme de fișiere și să obțineți o cantitate rezonabilă de performanță suplimentară de la kernel.
Pentru a elimina suportul inutil al sistemului de fișiere din nucleu, tot ce trebuie să faceți este să mergeți la categoria „Sisteme de fișiere”.

De acolo, puteți selecta apoi sistemele de fișiere pe care doriți să le eliminați din sistemul dvs. evidențiind-le și apăsând N. În cazul meu, voi lăsa doar suportul pentru EXT2, EXT3, EXT4 și JFS.

4. Dezactivați driverele grafice inutile
Pe lângă dezactivarea suportului atât pentru HID special, cât și pentru sistemele de fișiere, puteți utiliza și meniul de configurare pentru a elimina toate driverele grafice pe care nu le utilizați. Acest lucru se datorează faptului că pachetele de kernel Linux acceptă majoritatea dispozitivelor grafice moderne. Aceasta înseamnă că, chiar dacă mașina dvs. nu folosește o placă grafică, nucleul dvs. va funcționa ca și cum ați avea una.

Similar cu mai sus, acest lucru are ca rezultat un nucleu binar care rulează funcții de care nu aveți neapărat nevoie. Aceasta, la rândul său, poate fi o problemă dacă rulați Linux pe hardware vechi sau slab.
Pentru a elimina suportul grafic inutil, trebuie să mergeți mai întâi la secțiunea „Drifere de dispozitiv” din meniul de configurare. De acolo, trebuie să derulați în jos și să selectați „Suport grafic”.

Odată terminat, nucleul va afișa apoi o listă cu tot hardware-ul grafic pentru care oferă un driver. De aici, puteți apoi să apăsați Y sau N pentru a activa sau dezactiva un anumit driver.
În cazul meu, voi activa doar „Intel 8XX Graphics” și „Intel GMA500 Framebuffer”, deoarece acestea sunt singurele dispozitive grafice prezente în laptopul meu.

5. Instalați driverele ca module
În cele din urmă, una dintre cele mai bune caracteristici ale nucleului Linux este capacitatea sa de a elimina părți din el și de a le reîncărca ca module. Această abordare nu numai că reduce dimensiunea nucleului, dar vă permite și să fiți flexibil cu caracteristicile nucleului.
De exemplu, puteți transforma driverul wireless într-un modul care vă permite să îl actualizați fără a recompila nucleul. Ca atare, modulele pot fi deosebit de utile pentru utilizatorii care doresc să aibă un nucleu rapid, dar doresc și să păstreze compatibilitatea hardware stelară a Linux.

Pentru a converti funcțiile încorporate în module, trebuie să mergeți la secțiunea și opțiunea pe care doriți să le convertiți într-un modul. De exemplu, pentru a-mi converti driverul wireless, trebuie să merg la secțiunea „Suport de rețea”, apoi „Wireless”.

De acolo, pot apăsa M pe driverele „cfg80211” pentru a le converti într-un modul kernel.

Odată terminat, puteți apăsa Esc de șase ori pentru a părăsi meniul de configurare. Aceasta, la rândul său, va afișa o solicitare care vă va întreba dacă doriți să salvați modificările pe care le-ați făcut. În cazul meu, voi selecta „Da”.

După ce ați terminat, puteți acum compila o versiune a nucleului Linux cu caracteristicile pe care le doriți, rulând următoarea comandă:
make && make modules_install make install

întrebări frecvente
Este posibil să cunoașteți driverele de dispozitiv de care are nevoie nucleul meu Linux?
Da! Un obstacol pentru utilizatorii care abia încep să-și compila propriul nucleu este să cunoască exact tipul de hardware pe care îl folosesc. Deși aceasta ar putea părea o sarcină dificilă, există o mulțime de programe pe care acum le puteți utiliza pentru a ușura acest proces.
De exemplu, le puteți folosi pe ambele lspci
și lsusb
pentru a vedea toate perifericele hardware conectate din aparatul dvs. În plus, puteți rula și comanda sudo dmesg
pentru a verifica dacă nucleul citește corect dispozitivele dvs.
Este posibil să readuc înapoi o caracteristică pe care am eliminat-o din nucleul Linux?
Da! Este posibil să reinstalați o caracteristică după ce ați eliminat-o din nucleul Linux. Pentru a face acest lucru, trebuie să reveniți la meniul de configurare și să apăsați pe oricare Y sau M pe funcția pe care doriți să o reactivați. Făcând acest lucru, nucleul va spune nucleului să includă acea caracteristică fie ca încorporat, fie ca modul.
După ce s-a făcut, trebuie să recompilați nucleul pentru a crea un binar cu toate caracteristicile noi. Pentru a face acest lucru, trebuie să salvați și să ieșiți din meniul de configurare apăsând Esc de sase ori. De acolo, puteți începe acum să recompilați nucleul rulând make
.
Când ar trebui să instalez o caracteristică a nucleului Linux ca modul?
Instalarea funcțiilor ca module va depinde în mare măsură de ceea ce aveți nevoie din nucleul dumneavoastră. Știind acest lucru, o regulă bună este că ar trebui să creați module numai pentru caracteristici care nu sunt critice pentru procesul de pornire.
Acest lucru se datorează faptului că, în esență, nucleul Linux se bazează pe capacitatea de a porni ca o singură imagine. De exemplu, eliminarea părților critice, cum ar fi suportul pentru mai multe procesoare, poate duce la o situație în care nucleul dvs. devine imposibil de pornit.
Din această cauză, componentele nucleului care devin în mod obișnuit module sunt fie drivere grafice și alte hardware, fie interfețe de rețea.
Credit imagine: Unsplash