"De ce, de fapt, trebuie să compilați kernelul?" - puteți întreba: "Deoarece distribuțiile Linux conțin un kernel compilat și funcționează excelent." Pot exista mai multe motive.
Mai întâi de toate, noi versiuni ale kernel-ului sunt în mod constant lansate, ale căror surse pot fi descărcate de pe Internet. Acestea tind să fie mai stabile (bineînțeles, desigur, lansări), suportă mai multe dispozitive și, în general, conțin multe noi funcții utile. În al doilea rând, kernel-ul furnizat împreună cu distribuția este compilat în așa fel încât să funcționeze pe orice computer - de la un simplu server de 3 persoane la un server puternic. Utilizează doar comenzile standard ale procesorului 386, conține drivere integrate pentru cele mai diferite echipamente hardware și suportă, de asemenea, un număr imens de funcții și funcții diferite (majoritatea nu veți utiliza niciodată).
Cu toate acestea, am un pic îngroșat culorile. Nu este necesar să descărcați și să instalați fiecare nouă versiune de kernel. Multe distribuții moderne au mai multe opțiuni de kernel, optimizate pentru diverse configurații (cel mai adesea există o versiune separată pentru sistemele multiprocesor). În plus, toate driverele nu trebuie să fie incluse în kernel - le puteți compila ca plugin-uri separate (deși această metodă nu este acceptabilă pentru toate dispozitivele, pe lângă aceasta, miezul monolitic este încărcat mai rapid și mai stabil). Cu toate acestea, cred că merită să vă petreceți o anumită perioadă de compilare - veți obține un kernel optimizat pentru hardware-ul dvs. și obiectivul dvs. de a utiliza Linux. Mai mult, procesul de compilare nu este deloc complicat.
Faceți imediat o rezervare, vom vorbi despre "procesarea" Red Hat 6.1 pe kernelul 2.2.12-20. Cu toate acestea, pentru majoritatea distribuțiilor moderne, procesul de compilare nu va fi diferit de cel descris.
Să începem. Mai întâi trebuie să vă conectați ca root. Fișierele sursă de kernel sunt localizate în directorul / usr / src / linux / (dacă nu sunt acolo - instalați surse de kernel din distribuția dvs.). Deplasăm la directorul specificat și execută programul de configurare a kernel-ului. Acest lucru se poate face în moduri diferite. Pentru cei care lucrează în X-Window, este probabil mai convenabil să aveți un program de configurare grafică. Pentru ao rula, tastați make xconfig din linia de comandă. Dacă nu aveți instalat Iksa sau preferați meniurile de text din vreun motiv, utilizați meniul menuconfig. Trebuie remarcat faptul că în ambele cazuri sunt necesare anumite pachete (Tk și respectiv ncurses), care, cu toate acestea, sunt instalate în mod implicit în majoritatea distribuțiilor. Există oa treia cale, cea mai inconfortabilă, dar întotdeauna funcționează - face config. Dar în acest caz trebuie să răspundeți în mod constant la o mulțime de întrebări.
Deoarece pentru mulți, programul de configurare grafică este mai convenabil, vom lua în considerare această opțiune (apropo, este bine distins printr-o interfață mai convenabilă). Deci, după ce executați face xconfig, va apărea o fereastră cu butoane mari care corespund diferitelor secțiuni ale configurației kernel-ului. Din păcate, volumul articolului nu permite descrierea detaliată a tuturor opțiunilor din toate secțiunile, dar cred că acest lucru nu este necesar, deoarece există un buton Ajutor :-). Prin urmare, ne vom concentra doar pe punctele cheie.
Next - tipul și caracteristicile procesorului. Alegeți tipul procesorului dvs. Unii procesatori sunt prezenți în numele opțiunilor, însă pentru unii, alegerea nu este atât de evidentă. De exemplu, pentru K6-2 sau K6-III trebuie să rămână la Pentium / K6 / TSC pentru IDT Winchip - 586 / k5 / 5x86 / 6x86, pentru Cyrix MII, Pentium II (III), Celeron - PPro / 6x86MX. Apoi selectați restul elementelor din această secțiune.
Următoarea secțiune - Suport pentru module încărcate - este foarte importantă. Aici puteți activa suportul plug-in sau refuzați să le utilizați. Fiecare opțiune are avantajele și dezavantajele sale. Sa spus deja despre avantajele unui nucleu monolitic. Dar există argumente în favoarea modulelor încărcabile. În primul rând, când instalați un nou hardware, nu este necesar să recompilați întregul nucleu. În al doilea rând, modulele pot fi încărcate în memorie și descărcate după cum este necesar. Și, în sfârșit, dacă nu puteți determina când selectați o configurație a kernel-ului, aveți nevoie de această funcție sau de această funcție - o puteți compila ca un modul. Pe lângă opțiunile pentru care puteți compila ca un modul între butoanele y (includeți în kernel) și n (nu includeți), va exista și un buton m (compilat ca modul).
Secțiunile de configurare generale, suport PnP, bloc dispozitive pur și simplu elimina toate inutile - există o mulțime de exotice, cum ar fi suport XT hard disk, paralel suport dispozitiv de port IDE, suport pentru driver de dispozitiv multiple (implementare software RAID), Suport mod ideal einaoiaCMD640, RZ1000 ( este necesar pentru unele placi 486 și sisteme bazate pe 440FX) IDE / ATAPI Tape și alte lucruri pe care majoritatea utilizatorilor nu le au nevoie.
Unele partiții, cum ar fi dispozitivele Appletalk, dispozitivele de apel Token, driverele pentru dispozitive de port infraroșu și altele, pot fi dezactivate complet (cu excepția cazului în care, desigur, aveți dispozitivele corespunzătoare). În rest - lăsăm doar cele necesare (Vă reamintesc că dacă nu sunteți sigur dacă această opțiune este sau nu necesară, compilați-o ca un modul).
După ce ați vizitat toate partițiile și ați configurat complet kernelul, faceți clic pe butonul Salvare și Ieșire. Acum puteți trece direct la compilație. Tipul face dep; face curat; face bzImage și ... răbdarea. Compilarea poate dura de la câteva minute la una sau două ore, în funcție de performanța calculatorului. Dacă ați folosit module încărcabile, ar trebui să rulați module și să construiți modules_install. Kernelul compilat (fișierul bzImage) este localizat în / usr / src / linux / arc / i386 / boot /. Acum rămâne să o rescriem în locul celei vechi. Nucleul Linux, care este încărcat cu cel mai frecvent apelate sau vmlinuz vmlinuz-x.y.z (x.y.z - versiunea de nucleu, am, de exemplu, vmlinuz-2.2.12-20). Locația kernelului poate fi găsită de obicei în /etc/lilo.conf. De exemplu, în Red Hat 6.1, kernel-ul este localizat în / boot /. și în alte distribuții de la rădăcină. Apoi, există două moduri. Primul - pur și simplu eliminați vechiul nucleu și copiați bzImage în locul său fișierul (desigur, redenumirea sau vmlinuz vmlinuz-x.y.z, în funcție de ceea ce ați scris în /etc/lilo.conf) și reporniți computerul. Cu toate acestea, dacă ați făcut ceva greșit în timpul configurării sau al compilației kernel-ului, Linux ar putea să se blocheze. În principiu, nimic teribil. Dacă aveți o distribuție Red Hat, este suficient să porniți instalarea Linux în modul de actualizare a versiunii vechi și să selectați modul de actualizare automată. Deoarece aveți toate pachetele din punctul de vedere al distribuției :-) cele mai noi, doar suprascrieți kernel-ul și alte fișiere critice. Cu toate acestea, cu unele alte tam-tam pot fi mult mai mult, și compact cu instalarea, poate să nu fie la îndemână. Prin urmare, ar trebui să acționăm mai circumspect. Nu vom șterge vechiul kernel, ci pur și simplu îl redenumiți, de exemplu în vmlinuz.old. Apoi adăugăm capacitatea de a încărca acest kernel prin LILO. astfel încât, în acest caz, puteți să bootați și să returnați vechiul kernel, pentru care trebuie să editați fișierul /etc/lilo.conf. Se pare că acest lucru (desigur, poate fi diferit de cel scris).
boot = / dev / hda
prompt
timeout = 50
default = linux
image = / boot / vmlinuz-2.2.12-20
label = linux
read-only
root = / dev / hda2
Înainte de alte = / dev / hda1, ar trebui să adăugați ceva de genul:
image = / boot / vmlinuz.old
etichetă = veche
read-only
root = / dev / hda2