Kernelul Linux – partea a II-a
2Nota editorului: Citeşte şi Kernelul Linux – partea I.
La fiecare două sau trei luni se lansează o nouă versiune a kernel-ului. Pentru a permite dezvoltatorilor de distribuţii Linux să folosească o versiune stabilă de kernel, a fost modificată schema de dezvoltare astfel încât, o dată cu lansarea versiunii stabile – de exemplu 2.6.38 – se începe lucrul la următoarea versiune – 2.6.39. Atât timp cât viitoarea versiune de kernel este în faza de dezvoltare, se lansează versiuni -rc. Astfel, la momentul scrierii acestui articol, pentru versiunea 2.6.39 au fost lansate 3 versiuni -rc: 2.6.39-rc1, 2.6.39-rc2, 2.6.39-rc3. În momentul în care dezvoltatorii kernel-ului vor considera versiunea 2.6.39 ca fiind stabilă, atunci va fi lansat şi kernel-ul cu numărul 2.6.39.
Pentru versiunea stabilă kernel-ului, se lansează noi versiuni (2.6.38.1, 2.6.38.2) ce conţin update-uri de securitate şi remedieri ale bug-urilor software descoperite pe durata utilizării.
Kernel-ul este modificat prin patch-uri ce produc o singură schimbare în sursa kernel-ului. Fiecare patch, modifică, adaugă sau scoate linii din codul sursă. O condiţie de bază după modificarea kernel-ului, este ca acesta să poată fi compilat şi rulat cu succes. La o versiune de kernel se fac undeva între 4000 şi 10000 de modificări, între 2 şi 5 modificari pe oră (luând în calcul o perioadă de 3 luni între două versiuni de kernel). Atenţie, este vorba doar de modificările acceptate!!!
Kernel-ul creşte în dimensiune cu o rată de aproximativ 10 % pe an, pe măsură ce sunt adăugate noi facilităţi sau sunt suportate noi componente hardware. Astfel, versiunea 2.6.11 lansată pe 02.03.2005, conţinea 17.090 fişiere cu un număr total de 6.624.076 linii de cod. Versiunea 2.6.35 lansată pe 01.08.2010 conţinea 33.335 fişiere cu un total de 13.468.253 linii de cod – ceea ce înseamnă o creştere de 95 % pentru numărul de fişiere şi de peste 100 % al numărului de linii de cod.
Sursa kernel-ului este modulară astfel încât se pot adăuga foarte uşor noi drivere sau facilităţi. În principiu sursa kernel-ului este structurată astfel:
core – miezul kernel-ului – este rulat pe toate distribuţiile şi arhitecturile hardware. Este localizat în subdirectoarele: block/, ipc/, init/, kernel/, lib/, mm/ şi porţiuni din directorul include/ ;
drivers – conţine driverele pentru diferite componente hardware. Este localizat în subdirectoarele: crypto/, drivers/, sound/, security/ şi porţiuni din directorul include/ ;
architecture – aici se află codul specific procesorului. Este localizat în subdirectorul arch/ şi porţiuni din directorul include/ ;
network – codul care implementează şi controlează diferite protocoale de comunicaţii. Este localizat în subdirectorul net/ şi subdirectorul include/net;
filesystems – codul care implementează şi controlează suportul pentru diferite sisteme de fişiere. Este localizat în directorul fs/;
miscellaneuos – restul sursei kernel-ului, conţine codul necesar pentru compilarea kernel-ului şi documentaţia pentru diverse comenzi sau programe. Este localizat în directoarele Documentation/, scripts/, şi usr/;
Va urma.
Cate parti or sa fie ? Cui i se adreseaza seria ?
Excelent articol! Ma bucur ca ati inceput sa tratati subiectul ceva mai in profunzime, fata de articolele precedente. Tineti’o tot asa ! 😉