Sunteți pe pagina 1din 13

Cursul 7

Congurarea si compilarea , nucleului Linux. Gestiunea modulelor Linux


Versiunea tiparita a notelor de curs pentru Administrarea Sistemelor de Operare from 11 ianuarie 2012 Adrian Colesa, Universitatea Tehnica din Cluj-Napoca, Fac. AC, Sectia Tehnologia , , Informatiei ,
7.1

Scop si continut , ,
Scopul acestui capitol 1. Prezentarea diferitelor modalit ti de organizare intern a (nucleului) unui SO. a, a 2. Prezentarea principalelor aspecte si a pasilor implicati n congurarea, compilarea si insta, , , , larea nucleului Linux. 3. Prezentarea strategiei de utilizare a modulelor Linux, precum si a comenzilor utilizate n , gestionarea acestora.

7.2

Cuprins
1 Compilarea nucleului (kernel-ului) Linux 1.1 Structura intern a unui SO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 1.2 Prezentarea nucleului Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Congurarea nucleului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Module Linux 2.1 Denitii . . . . . . . . , 2.2 Manipularea modulelor 2.3 Comenzi . . . . . . . . 2.4 Congurare . . . . . . 2 2 5 5

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

8 . 8 . 8 . 9 . 10

Modicarea parametrilor nucleului n timpul function rii a 11 , 3.1 Prin intermediul sistemului de siere /proc . . . . . . . . . . . . . . . . . . . 11 , 3.2 Cu ajutorul comenzii sysctl . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

7.3

Bibliograe Structura intern a nucleului unui SO a 1. A. Tanenbaum, Modern Operating Systems, Capitolul 1.7, p. 56 63 2. http://www.makelinux.net/kernel_map Congurarea si compilarea nucleului Linux si a modulelor , , 1. D. Acost chioaie, Administrarea si congurarea sistemelor Linux, Ed. Polirom, a , 2006, Cap. 11, Nucleul Linux, p. 135 152 2. Paginile de manual ale comenzilor lsmod, modprobe, insmod, rmmod si ale , sierelor implicate. , 1

7.4

1
1.1

Compilarea nucleului (kernel-ului) Linux


Structura interna a unui SO

Nucleul unui SO este partea central a unui SO a asigur mecanismele de baz de acces la hardware si de interactiune dintre celelalte coma a , ponente ale SO se execut n mod nucleu (kernel), adic ntr-un mod privilegiat de executie al CPU a a , aplicatiile utilizator si uneori componente ale SO se execut n mod utilizator (mod a , , neprivilegiat) uneori nucleul unui SO este chiar ntregul SO ntrebare: de ce vorbim atunci totusi de un nucleu al SO (vezi cazul Linux)? , R spuns: pentru a diferentia SO de aplicatiile care vin n mod normal mpreun cu a a , , un SO (interpretoare de comenzi, compilatoare, editoare etc.)
7.5

Tipuri de structuri de SO monolitic organizat pe niveluri micro-kernel masin virtual a , a exo-kernel

7.6

SO cu structura de monolit ntregul SO este compilat ca un singur obiect si va rula n mod nucleu ntr-un singur spatiu , , de adrese orice (variabile globale, functii) e accesibil de oriunde (din orice functie din codul SO) , , avantaje usurinta accesului la orice date ale SO , , viteza mare de executie , dezavantaje poate dicil de gestionat si dezvoltat (aparent nu exist nici o organizare, nici o a , protectie) , dimensiunea mare a nucleului (de ex. include si drivere de care nu e nevoie) , utilizare inecient a memoriei a dac o component (de ex. un driver) contine o eroare (bug) si se blocheaz , ntregul a a a , , sistem este blocat exemple majoritatea SO derivate din UNIX Linux MS Windows 9x Exemplu de structura de monolit (Linux) SO organizat pe niveluri SO e organizat ca o stiv de niveluri a nivelul 0 (hardware), . . . , nivelul N (spatiul utilizator) , un nivel foloseste serviciile (interfata) nivelului (nivelurilor) de sub el si ofer servicii a , , , (interfata) celui de deasupra lui , ecare nivel ofer o nou viziune asupra sistemului a a
7.7

7.8

Figura 1: Structura si organizarea Linux-ului , noi concepte abstracte, o nou masin virtual si o nou modalitate de interactiune a a , a , a , cu aceasta e mai usor de dezvoltat si testat , , e n primul rnd o strategie de proiectare, dar poate utilizat si la nivel de executie a, , e posibil ca ecare nivel s se execute pe un nivel distinct de permisiuni pe procesor a (dac acesta suport ) a a exemple THE MULTICS majoritatea SO o folosesc combinat cu alte strategii a SO cu micro-kernel. Prezentare o mic parte a SO (nucleul) se execut n mod nucleu, iar celelalte componente ale SO se a a execut n mod utilizator, ca procese (server-e) a serverele comunic ntre pe baza modelului client-server a nucleul ofer o functionalitate minimal de acces la hardware (planicarea procesorului, a a , acces la dispozitivele de I/O) si mecanismul de comunicare dintre si cu servere-le SO , , avantaje structur modular a a utilizare ecient a memoriei; un server este pornit doar cnd e nevoie si pentru ct a , timp e nevoie e mult mai stabil; e eroare ntr-un driver (server) nu blocheaz ntregul sistem; coma ponenta defect poate repornit a a exibil: permite implementarea multipl si diferit a unui serviciu de c tre server-e a , a a diferite (ex.: un sistem de siere) , portabil se potriveste n mod natural SO distribuite , dezavantaje viteza mai redus ; introduce ntrzieri datorit necesit tii de comunicare dintre si cu a a a, server-e necesitatea transferului de date explicit dintre componentele SO (nu se execut n a acelasi spatiu de adrese) , , inecienta accesului la hardware , exemple: Mach, MINIX, L4
7.10

7.9

Figura 2: Tanenbaum, Modern OS

Figura 3: Tanenbaum, Modern OS SO cu micro-kernel. Exemplu SO distribuit cu micro-kernel. Exemplu SO hibrid Exemple: Mac OS, Windows NT SO de tip masina virtuala , ofer o multiplicare virtual a tuturor resurselor hardware sub forma unei masini virtuale a a , pe ecare masin virtual poate rula un SO de operare independent si chiar diferit a a , , SO gazd se numeste monitor de virtualizare (VM Monitor sau hypervisor) si asigur mula a , , tiplexarea/demultiplexarea hardware-ului exemple: CP/CMS, Xen, Linux KVM, VMware ESX Server SO cu exo-kernel similar cu arhitectura de masin virtual , dar hardware-ul nu e virtualizat a , a ofer acces direct la o parte din resursele hardware a gestioneaz alocarea resurselor (HDD, procesor, memorie) la nivel brut aplicatiilor si vea , , ric permisiunea de acces a aplicatiile si gestioneaz singure, n mod particular resursele hardware a , , ofer si un set de biblioteci de functii de gestionare (componente ale unui SO) a resurselor a, , avantajul principal este exibilitatea accesului la hardware si utilizarea lui ecient a ,
7.13 7.11

7.12

7.14

7.15

Figura 4: http://en.wikipedia.org/wiki/Hybrid_kernel 4

1.2

Prezentarea nucleului Linux

Caracteristici Linux sistem de tip monolit mprumut partial din arhitectura cu micro-kernel a , structura modular : instalarea/dezinstalarea anumitor p rti ale nucleului, numite moa a, dule, n timpul executiei , permite implementarea de drivere care ruleaz n spatiul utilizator (component nua a , mit UIO) a Nucleul Linux partea central a SO Linux a codul surs al nucleului sistemului de operare Linux localizat la www.kernel.org a compilarea kernel-ului: obtinerea imaginii executabile a SO Linux prin compilarea di, rect a surselor kernelului cu anumite optiuni activate sau dezactivate (drivere, module, a , functionalitate) , Versiuni nucleul Linux e caracterizat printr-o secventa de numere de versiune , pn la versiunea 2.5 de forma X.Y.Z a X.Y: indic versiunea a X: schimbat foarte rar, atunci cnd principiile de proiectare se modic radical; a schimbat o singur dat n 1996 a a Y: indic tipul nucleului; schimbat rar, indicnd schimb ri majore; versiunile pare a a (ex.: 2.4, 2.6) indic un nucleu stabil, pe cnd cele impare (ex.: 2.5) indic un nucleu a a instabil (n dezvoltare) Z: indic corecturi/modic ri ale versiunilor ap rute anterior (release), dar f r a a a a aa introduce schimb ri de algoritmi sau structur a a de la versiunea 2.6 de forma X.Y.Z.W X: similar cu modelul anterior Y: nu mai indic tipul de nucleu, ci e folosit tot pentru versiune; astfel, att 2.6, ct si a , 2.7 pot versiuni stabile, ns se schimb rar (cnd apar modic ri radicale) a a a Z: indic un nou release al unei versiuni; diferite release-uri pot diferi destul de mult, a chiar si la nivelul componentelor sau algoritmilor de baz a , W: indic corecturi ale unui release a Patch-uri modic ri ale surselor (ale unui release) prin care se corecteaz erori (bug-uri) a a sunt furnizate ca siere text cu format special, prin care se descriu diferentele dintre ver, , siunea cu erori si cea cu erorile corectate , patch-ul indic noua versiune de release la care se ajunge prin aplicarea corecturilor (diferentelor) a , exemplu: patch-2.6.26.8 obtinerea unui patch se face cu ajutorul comenzii diff , aplicarea unui patch se face cu ajutorul comenzii patch: patch -p1 < patch-2.6.26.8

7.16

7.17

7.18

7.19

1.3

Congurarea nucleului

Congurarea nucleului Linux: descriere congurarea const n stabilirea parametrilor de compilare, prin care se indic includerea a a sau excluderea anumitor componente ale nuclului (de exemplu drivere) optiunile posibile pentru o anumit component congurabil sunt a a a , 1. inclus (activat ) n kernel, a a 2. compilat ca modul (pentru incuderea ulterioar , n timpul function rii, doar cnd e a a a , nevoie de ea) 3. exclus (dezactivat ) a a 5

7.20

Congurarea nucleului Linux: comenzi de pornire make config realizeaz congurarea ec rei optiuni pe rnd, pe baza unui dialog la consol a a a , make menuconfig aseaz un meniu text de congurare a , necesit instalarea pachetele libncurses5 si libncurses5-dev (Ubuntu, Dea , bian) make xconfig aseaz un meniu grac de congurare a , functioneaz doar n mod grac si necesit instalarea pachetului qt3-apps-dev a a , , (Ubuntu, Debian) make oldconfig cogurarea se bazeaz pe optiunile prezente n sierul .config din directorul local a , , va cere setarea doar a optiunilor noi , make allyesconfig/allmodconfig/allnoconfig congureaz automat optiunile cu valoarea implicit (acolo unde e posibil) yes (aca a , tivat ) / mod (modul) / no (dezactivat ) a a
7.21

Compilarea nucleului
cd /usr/src/linux-2.6.N make O=/home/name/build/kernel menuconfig make O=/home/name/build/kernel sudo make O=/home/name/build/kernel modules_install install cd /boot/ mkinitramfs -o /boot/initrd.img-2.6.N 2.6.N # modificare /boot/grub/menu.lst 7.22

Compilarea nucleului pe Debian: descriere se recomand utilizarea comenzilor din pachetul kernel-package a automatizeaz activitatea de compilare a nucleului Linux a creaz un pachet Debian cu imaginea nucleului a ajut la mentinerea diferitelor versiuni de nucleu a , permite portarea imaginii nucleului: compilarea lui pe o masin (mai performant ) a , a si apoi instalarea lui pe o alta (mai putin performant ) a , , principala comand : make-kpkg a
7.23

Comanda make-kpkg: prezentare trebuie rulat din r d cina surselor nucleului Linux a a a presupune n mod normal o congurare n prealabil a surselor nucleului (make config) dac nu detecteaz sierul .config n directorul local, caut unul (?) furnizat cu a a , a distributia Debian si apoi execut make oldconfig a , , trebuie executat n mod normal ca si root sau cu ajutorul comenzii fakeroot a , comanda fakeroot permite executia unor comenzi cu permisiuni de acces la siere , , identice cu cele ale root-ului pachetul Debian rezultat este creat n directorul p rinte al celui unde se execut comanda a a (mai sus cu un nivel de sursele nucleului)
7.24

Comanda make-kpkg: sintaxa si optiuni , , sintaxa: optiuni ,


make-kpkg [optiuni] [rezultat1 [rezultat2 ...]] ,

-revision number: stabileste num rul de versiune pentru pachetul Debian rea , zultat -added-modules lista_module: indic module (directoare) ce nu sunt loa calizate n sursele nuclului si care trebuie incluse la compilare , -added-patches lista_fisiere: indic sierele patch (corectare bug-uri) a , aditionale ce trebuie aplicate surselor nainte de compilarea nucleului , -arch nume_arhitectur: indic arhitectura pentru care se compileaz nua a a cleul, n caz c aceasta difer de cea local (se face cross-compilare) a a a -config tip_configurare: indic explicit tipul de congurare (menucong, a xcong etc.; implicit este oldcong) -initrd: indic compilarea unui nucleu care va nc rcat cu initrd a a -zimage: indic obtinerea unui sier zImage cu imaginea nucleului a , , -bzimage: indic obtinerea unui sier bzImage cu imaginea nucleului (e optiunea a , , , implicit ) a
7.25

Comanda make-kpkg: rezultate (moduri de utilizare) clean: sterge din directorul cu sursele toate sierele create de o rulare anterioar a coa , , menzii cu rezultatul kernel_image binary-indep: creaz pachete Debian independente de arhitectur (ruleaz comanda a a a cu rezultatele kernel_source, kernel_manual, kernel_doc) binary-arch: creaz pachete Debian dependente de arhitectur (ruleaz comanda cu a a a rezultatele kernel_headers, kernel_image) kernel_source: creaz un pachet Debian cu sursele Linux din directorul curent a kernel_headers: creaz un pachet Debian cu sierele header ale surselor Linux din a , directorul curent kernel_manual: creaz un pachet Debian cu sectiunea 9 de manual din nucleul Linux a , kernel_doc: creaz un pachet Debian cu documentatia inclus n sursele Linux din a a , directorul curent kernel_image: creaz un pachet Debian cu imaginea nucleului Linux obtinut prin a , compilarea surselor din directorul curent si cu modulele selectate la conguare ,
7.26

Comanda mkinitramfs creaz un sier ramdisk utilizat la boot-area nucleului Linux; acest sier contine un sistem a , , , de siere utilizat temporar la nc rcarea Linuxului a , alte comenzi similare: mkcramfs, genromfs
7.27

Compilarea nucleului pe Debian: exemplu


sudo apt-get install kernel-package fakeroot make-kpkg clean fakeroot make-kpkg --initrd --revision=custom.1.0 kernel_image dpkg -i ../linux-image-2.6.N_custom.1.0_i386.deb cd /boot/ mkinitramfs -o /boot/initrd.img-2.6.N 2.6.N # modificare /boot/grub/menu.lst 7.28

Congurarea ncarcatorului (Grub) editarea sierului /boot/grub/menu.lst pentru a include printre optiunile de boot, , are si noua imagine compilat a nucleului a ,
7.29

Testarea versiunii curente a nucleului uname -r cat /proc/version

7.30

2
2.1

Module Linux
Denitii ,

Ce este un modul Linux? cod ce este atasat la sau detasat de nucleul sistemului de operare n timpul function rii a , , , o dat nc rcat (lipit), face parte integrant din nucleu a a a a se vedea mai jos modul de compilare a unui modul n contextul surselor nucleului de exemplu un driver, un sistem de siere , Avantajele utilizarii modulelor o utilizare mai ecient a memoriei: nc rcare a modulului doar cnd e nevoie, desc rcare a a a cnd nu mai e nevoie nu e nevoie de recompilarea kernel-ului, integrarea/detasarea modulului n/din kernel f cndua , se n timpul function rii sistemului, f r oprirea si recompilarea lui a aa , , pentru compilarea unui modul e nevoie de header-ele din sursele kernel-ului sier Makele folosit pentru compilarea unui modul , obj-m = my_mod.o mod.ko : mod.o make -C /lib/modules/uname -r/build \ SUBDIR=pwd modules
7.32 7.31

Caracteristicile unui modul ofer o interfata (un set de simboluri) accesibil din alte zone ale kernel-ului a a , de asemenea, poate accesa date si functii localizate n alte zone ale kernel-ului , , vezi sierul /proc/kallsyms , sistemul de gestiune a modulelor tine evidenta referirii unui modul din alte module , , un modul poate desc rcat numai cnd num rul de referiri la el este zero, adic nu este a a a posibil s mai e accesat de c tre nici un alt modul a a modulul este stocat sub forma unui sier obiect ntr-un director din sistemul de siere, de , , unde este nc rcat n memorie n kernel a

7.33

2.2

Manipularea modulelor

Vizualizarea modulelor instalate comanda lsmod aseaz lista modulelor instalate a , ea preia informatiile din /proc/modules , cnd SO are nevoie de o functionalitate implementat ntr-un modul, acesta este nc rcat a a , automat cu ajutorul comenzii modprobe modulul poate nc rcat si manual de c tre utilizator cu ajutorul aceleiasi comenzi a a , , ncarcarea/Descarcarea unui modul nc rcarea se poate face automat, cnd e nevoie de el, sau manual a nc rcarea se face cu ajutorul comenziilor insmod si modprobe a , desc rcarea se poate face automat sau manual, cnd modulul nu mai e folosit (referit) de a nici un alt modul (num rul de referiri este zero) a comenzile modprobe, depmod, insmod de manipulare a modulelor sunt furnizate n pachetul module-init-tools (Debian, Ubuntu)

7.34

7.35

2.3

Comenzi
instaleaz (insereaz n nucleu) un modul a a sintaxa: insmod [nume_modul] [parametri ...] trebui s i se precizeze calea complet spre sierul ce contine modulul a a , , exemplu: insmod /lib/modules/uname -r/kernel/fs/fuse/fuse.ko
7.36

Comanda insmod

Comanda modprobe: prezentare este comanda care instaleaz si dezinstaleaz n mod inteligent module Linux a, a calea implicit de c utare a modulelor sau a altor siere necesare este /lib/modules/uname a a , -r/ alte c i si siere: /etc/modules.conf si /etc/modprobe.d a , , , foloseste si presupune a actualizat sierul modules.dep , , , nu intervine cu nimic n congurarea modulului; vericarea si interpretarea parametrilor , se face n kernel argumentele care urmeaz numelui modulului sunt transmise kernel-ului ca parametri ai a modulului sistemul veric lista de dependente a modulului n /lib/modules/uname -r/modules.dep a , a se vede sierul /lib/modules/uname -r/modules.dep , dependentele unui modul sunt create cu ajutorul comenzii depmod , modulul poate specicat printr-un nume sau un identicator generic exemple modprobe fuse modprobe char-major-10-229 asocierea dintre nume si identicator se g seste n a , , /etc/modules.conf sau /lib/modules/uname -r/modules.alias exemplu alias char-major-10-229 fuse se ncarc modulele de care depinde modulul cerut, apoi modulul a nc rcarea efectiv se face cu ajutorul comenzii insmod a a
7.37

Comanda modprobe: sintaxa


modprobe [-v] [-V] [-C config-file] [-n] [-i] [-q] [-Q] [-o modulename] [modulename] [module parameters ...] modprobe [-r] [-v] [-n] [-i] [modulename ...] modprobe [-l] [-t dirname] [wildcard] modprobe [-c] modprobe [--dump-modversions] \

7.38

Comanda modprobe: optiuni , -v, -verbose: aseaz informatii detaliate n timpul executiei comenzii a , , , -n, -dry-run: din executia normal a comenzii se exclude doar inserarea/desc rcarea a a , modului; e util n asociere cu optiunea -v pentru depanare a , -r, -remove: sterge (descarc ) modulul; f r aceast optiune, modulul este nc rcat a aa a , a , (instalat) -a, -all: insereaz toate modulele a c ror nume este indicat n linia de comand a a a -i, -ignore-install, -ignore-remove: indic ignorarea regulilor de tip install a si ignore din siere de congurare , ,
7.39

Comanda modinfo: prezentare aseaz informatii despre module Linux a , , accept e o cale, e numele unui modul a dac nu se specic un nume de sier, atunci se caut modulul dup nume n /lib/modules/uname a a a a , -r aseaz atributele modulului sub forma nume: valoare a ,
7.40

Comanda modinfo: sintaxa


modinfo [-0] modinfo -V modinfo -h [-F field] [-k kernel] [modulename|filename ...]

7.41

Comanda modinfo: optiuni , -F, -field nume_atribut: aseaz doar cmpul (atributul) specicat a , -k kernel Aseaz informatii despre modulele din nucleul specicat, altul dect cel a , , care ruleaz n mod curent a -a, -d, -l, -p, -n: aseaz autorul, descrierea, licenta, parametri modulului sau a , , respectiv, numele sierului ce contine modulul , ,
7.42

Comanda moddep: prezentare genereaz automat toate inter-dependentele dintre module a , n mod implicit ia n considerare modulele din /lib/modules/uname -r/ genereaz sierul modules.dep n acelasi director a , ,
7.43

Comanda moddep: sintaxa


depmod [-b basedir] [-e] [-F System.map] [-n] [-v] [version] [-A] depmod [-e] [-FSystem.map] [-n] [-v] \ [version] [filename ...] \

7.44

Comanda moddep: optiuni , -A, -quick: veric dac exist module mai noi dect sierul modules.dep si doar a a a , , n acest caz regenereaz inter-dependentele a , -v, -verbose: aseaz informatii detaliate pe durata executiei comenzii a , , , -n, -dry-run: nu genereaz sierul modules.dep, ci aseaz inter-dependentele a , a , , pe ecran
7.45

Comanda lsmod aseaz modulele instalate a , sintaxa: lsmod

7.46

2.4

Congurare

Fisierul /etc/modprobe.conf. Directorul /etc/modprobe.d , ofer posibilitatea congur rii comportamentului comenzii modprobe n cazurile n care a a mai multe module sunt instalate/dezinstalate n timpul executiei comenzii (ca efect al inter, dependentei dintre module) , sierele const din linii ce descriu anumite reguli (comenzi) a , continuarea unei comenzi pe linia urm toare se face terminnd linia curent cu caracterul a a \ n cadrul numelor modulelor caracterele _ si - au aceeasi interpretare , ,
7.47

10

Comenzi specice sierelor de congurare , alias wildcard modulename Permite denirea de nume alternative (mai usor de memorat si uti, , lizat) pentru module. Se permite utilizarea caracterelor speciale precum *. options modulename option... Permite ad ugarea de optiuni modulului specicat, utilizate a , atunci cnd acesta va nc rcat. Optiunile specicate n felul acesta se ad ug celor a a a , specicate n linia de comand . a install modulename command... Specic un mod special de instalare a modulului specicat, a executnd comanda indicat . a remove modulename command... Similar cu regula install, dar luat n considerare la dezinstaa a larea unui modul (executia comenzii modprobe cu optiunea -r). , , include filename Specic includerea altor siere de congurare sau chiar a unor directoare. a , blacklist modulename Indic faptul c alias-urile interne ale modulului trebuie ignorate. Util a a cnd exist suprapuneri de nume ntre alias-urile diferitelor module. a Exemple siere de conguare ,
# permite referirea modulului cu un nume care ncepe cu "modul-test" alias modul-test* modul-test-cursul-ASO # instalarea modulului X se face prin instalarea prealabil a a # de care X nu depinde, deci care nu este instalat automat de # utilizarea variabilei de mediu CMDLINE_OPTS permite pasarea # din linia de comand a install X /sbin/modprobe Y; /sbin/modprobe --ignore-install X modului Y modprobe optiunilor , ${CMDLINE_OPTS}

7.48

# la dezinstalarea modului X se face si dezinstalarea Y de care nu depinde, , # dar a crui instalare a fost fcut la instalarea lui X a a a remove X /sbin/modprobe -r --ignore-remove X && /sbin/modprobe -r Y

a se vedea sierele (aliases, blacklist, options etc) din directorul /etc/modprobe.d , Fisierul /etc/modules , contine numele modulelor ce trebuie nc rcate la boot-area sistemului a , exemplu: vezi sierul /etc/modules , Directorul /sys/modules contine cte un director pentru ecare modul nc rcat n sistem a , sunt asate sub forma unor directoare informatii despre modul , , a se vedea directorul /sys/modules Fisierul /proc/modules , contine lista modulelor nc rcate n sistem la momentul curent a , a se vedea sierul /proc/modules , Directorul /lib/modules contine sierele obiect cu codul modulelor , , a se vedea directorul /lib/modules

7.49

7.50

7.51

7.52

7.53

3
3.1

Modicarea parametrilor nucleului n timpul functionarii ,


Prin intermediul sistemului de siere /proc ,

Prezentare generala a sistemului de siere /proc , este un sistem de siere virtual , este montat (creat) automat la boot-are si actualizat permanent de c tre sistem pe durata a , function rii lui a , reprezint o modalitate de asare a unor informatii interne ale nucleului sub forma unui a , , sistem de siere , interactiunea cu sistemul de siere /proc, si indirect cu nucleul, se face prin operatii , , , , specice accesului la siere (read, write) , permite operatii att de citire (obtinerea informatiilor ce descriu starea sistemului), ct si , , , , de scriere (setarea n timpul executiei a unor parametrii ai nucleului sau comunicarea cu , anumite procese) a se vedea directorul /proc 11

7.54

Fisiere din /proc , sierele din directorul /proc contin informatii (statice sau dinamice) despre sistem , , , au nume sugestive cmdline: parametri de apel ai nucleului (a se vedea sierul si parametri din /boot/grub/menu.lst) , , cpuinfo: informatii despre procesor , filesystems: sistemele de siere suportate de c tre nucleu a , kallsyms: toate simbolurile din kernel accesibile si modulelor , meminfo: informatii despre utilizarea curent a memoriei RAM a , modules: modulele nc rcate la momentul curent a version: versiunea nucleului si a compilatorului ,

7.55

Directoare din /proc cte un director pentru ecare proces creat n sistem, cu siere si subdirectoare continnd , , , diverse informatii despre proces (thread-uri, siere deschise, memorie etc.) , , self: leg tur simbolic spre directorul procesului executat curent a a a sys: contine siere prin care, prin scriere n ele, se permite modicarea anumitor para, , metri ai nucleului sysvipc: contine informatii despre resursele IPC (Inter-Process Communication) ale , , nucleului (semafoare, cozi de mesaje etc.) tty: informatii despre terminalele folosite la momentul curent , Modicarea parametrilor nucleului se face prin scrierea n anumite siere din /proc , trebuie cunoscut formatul sierelor accesate si semnicatia parametrilor si valorilor acce, , , , sate exemplu: echo 10000 > /proc/sys/kernel/pid_max a se vedea siere din directorul /proc/sys/kernel: ctrl-alt-del, modprobe, , msgmax, osrelease, ostype, pid_max etc. a se vedea /proc/sys/vm prin care se permite congurarea sistemului de gestiune a memoriei virtuale

7.56

7.57

3.2

Cu ajutorul comenzii sysctl

Comanda sysctl permite citirea/modicarea parametrilor nucleului n timpul function rii a , sintaxa
sysctl sysctl sysctl sysctl sysctl [-n] [-n] [-n] [-n] [-n] [-e] [-e] [-e] [-e] [-e] variable ... [-q] -w variable=value ... [-q] -p [filename] -a -A

numele variabilei corespunde parametrilor accesibili prin /proc/sys/kernel; de exemlu kernel.ostype sau kernel/ostype optiuni , -a, -A: aseaz valorile tuturor variabilelor accesibile a , -n: aseaz doar valoarea, f r numele variabilei a aa , -N: aseaz doar numele variabilei a , -w: utilizat cnd se doreste modicarea unui parametru a , -p [nume_fisier]: preia set rile din /etc/sysctl.conf sau din sierul a , , specicat Fisierul /etc/sysctl.conf , e un sier text ce contine valori ale parametrilor nucleului ce pot setati cu ajutorul co, , , menzii sysctl contine linii de forma nume_parametru = valoare ,

7.58

7.59

12

Alte comenzi ipcs: asarea informatiilor despre resursele IPC ale nucleului , , ipcrm: stergerea unor resurse IPC ale nucleului , free, vmstat: asarea informatiilor despre memoria virtual a , , slabtop: asarea n timp real a informatiilor despre cache-ul nucleului , ,
7.60

13

S-ar putea să vă placă și