Cunoștințe, prelegere, actualizare kernel

Despre compilarea unui nou kernel

De ce trebuie să compilați nucleul?

Așa cum sa spus la începutul acestei secțiuni, principala funcție a kernelului este de a oferi interacțiunea cu hardware-ul calculatorului. Întreținerea unor componente hardware (cum ar fi memoria, de exemplu) este integrată direct în kernel. Pentru acele părți ale echipamentului care pot să nu fie standard, există drivere de dispozitive care furnizează interacțiunea OS cu echipamentul. Cei mai mulți utilizatori de computere Windows sunt familiarizați cu conceptul de driver, doar pentru că, după instalarea de hardware nou, trebuie să instaleze driverele software pentru acest echipament. Abia după aceea devine posibilă utilizarea componentei hardware nou instalate. În terminologia adoptată în Linux, driverele sunt numite "module". Astfel, suportul dispozitivelor hardware poate fi furnizat în două moduri: fie prin încorporarea unui astfel de suport în kernel, fie prin utilizarea unui modul corespunzător (driver).







Companiile care produc distribuții Linux (cum ar fi RedHat, Caldera, Debian, și așa mai departe. D.) sunt forțate în suportul pentru kernel-ul pentru cea mai largă gamă de dispozitive, deoarece acestea nu pot ști dinainte ce dispozitiv (model) va fi instalat pe computer utilizator specific. Suportul în centrul unei game largi de dispozitive facilitează instalarea și susținerea sistemului pentru clienți, eliminând complicațiile inutile.

Ca rezultat, kernel-ul care vine cu distribuția conține probabil cod pentru a suporta dispozitive care nu vor fi niciodată pe computerul dvs. particular. Pe de altă parte, dacă aveți un dispozitiv care nu este acceptat de kernelul standard, este posibil să aveți o dorință bine întemeiată de a integra suportul pentru acest dispozitiv în kernel. Optimizarea kernel-ului pentru un anumit set de dispozitive hardware accelerează încărcarea sistemului și salvează memoria.

Utilizatorii de Linux au opțiunea sau compila kernel-ul cu suport pentru toate dispozitivele disponibile pe un anumit computer, sau compila un kernel care suportă un set minim de echipamente și de încărcare module pentru a sprijini alte dispozitive. Dacă toate componentele hardware sunt acceptate în kernel, atunci un astfel de nucleu se numește "monolit". Kernelul a fost compilat astfel încât suportul unei părți a echipamentului să fie realizat folosind module (drivere), numit "modular".

Ce tip de kernel alegeți când compilați? Un răspuns unic la această întrebare nu poate fi dat. Dacă nu aveți obiceiul de a modifica configurația hardware a calculatorului, atunci integrați mai bine suportul tuturor componentelor disponibile în kernel. Este necesar să rețineți că mai multe dispozitive sunt acceptate direct de kernel, cu atât este mai mare volumul acestuia. Deoarece nucleul este încărcat complet în memoria principală, cerințele de memorie sunt sporite. Pe computerele lente, datorită dimensiunii mari a kernelului, performanța generală poate fi redusă. Dacă schimbați des configurația calculatorului (de exemplu, aveți un hard discuri amovibile sau alte dispozitive conectate temporar), probabil că are sens să îl utilizați pentru gestionarea de plug-in-uri, care sunt încărcate în memorie numai atunci când este necesar (economisind astfel resursele de sistem) . Astfel, în cel mai general caz, suportul unora dintre dispozitive trebuie să fie încorporat în kernel, iar restul dispozitivelor trebuie să fie susținute de utilizarea modulelor încărcabile.







În afară de dorința de a avea un nucleu care este optimizat pentru sistemul dvs., necesitatea de a recompilați kernel-ul poate fi cauzată de descoperirea unor erori în vechea versiune a kernel-ului, în special cele care prezintă o amenințare în ceea ce privește securitatea (atunci când nu va fi rpm-pachet cu versiunea patch-uri de kernel?) .

Am fost forțat să se ocupe cu instalarea kernel-ul de la codul sursă, deoarece sistemul este o mașină virtuală VMware a refuzat să lucreze cu setul I 2.2.16 nucleu, spunând că această versiune a kernel-ul nu are suport pentru un CD-ROM de la VMware, și mi-a oferit fie instalați o versiune ulterioară a kernel-ului , sau reveniți la versiunea 2.2.15. Încercările de a instala o nouă versiune de kernel din pachetele rpm nu au rezolvat problema, deoarece scriptul de configurare VMware a raportat că nu are fișiere antet. Instalarea pachetelor de nucleu pentru pachete (care corespunde complet kernel-ului) nu a condus, de asemenea, la succes, așa că a trebuit să încercăm să instalăm kernel-ul din surse.

Trebuie să spun că până atunci experiența mea cu instalarea software-ului Linux de la sursă a fost foarte limitată. Prin urmare, am procedat la această procedură numai sub presiunea circumstanțelor (am vrut cu adevărat să rulez MS Office sub Linux, fără a fi nevoie să repornez computerul). Textul de mai jos este doar o descriere a ceea ce am făcut atunci. Deoarece experimentul meu sa dovedit a fi de succes, pot să spun cu încredere: nimic care nu ar putea să pornească un utilizator, nu există nici o compilație a kernel-ului din codul sursă.

Am experimentat versiunea 2.2.16-22 a distribuției nou instalate ASPLinux Release Candidate 3 și am instalat kernelul 2.4.2. Prin urmare, toate exemplele din această prelegere sunt date pentru cazul în care sistemul deja rulează pe kernelul 2.2.x și ați ajuns la o decizie de instalare a kernelului 2.4.x.

Ce trebuie să știți înainte de compilare

Poate că primul lucru pentru care trebuie să fiți gata, când începeți să compilați nucleul, este că această procedură este lungă. Deci, nu vă așteptați să compilați nucleul "în între", într-un minut liber. Planificați-vă înainte că veți petrece mai multe ore în acest caz, altfel veți fi forțați să întrerupeți procedura în mijloc.

În al doilea rând, înainte de începerea cel puțin compila kernel-ul, trebuie să prezinte, în termeni generali, ce fel de configurare hardware-ul va servi noul kernel, și să decidă ce dispozitive vor fi deservite de kernel, și ce - module.

În al treilea rând, versiunea kernel 2.4.2 chiar și în programul arhivat (bzip2) durează mai mult de 20 MB, iar după decompresie, codul sursă depășește 108 MB. Atât de mult ar fi nevoie de un tarball intermediar, deci trebuie să aveți cel puțin 250 MB de spațiu liber. Prin urmare, înainte de a începe să compilați, asigurați-vă că există suficient spațiu pe disc.

Pe această avertizare preliminară sunt făcute și mă îndrept spre prezentarea instrucțiunilor pas cu pas pentru compilarea și instalarea unui nou kernel. În viitor, se presupune că toate acțiunile descrise sunt realizate cu privilegii de root. și că directorul de domiciliu este / root.







Articole similare

Trimiteți-le prietenilor: