This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
linux-kernel-dev:capitole:capitol-01 [2015/09/07 11:41] razvan [Verificarea conectivității la rețea] |
linux-kernel-dev:capitole:capitol-01 [2016/08/29 12:09] (current) razvan [Alterarea opțiunilor de pornire a nucleului] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Mediul de dezvoltare pentru cod kernel ====== | + | ====== 1. Mediul de dezvoltare pentru cod kernel ====== |
Vom face primi pași în investigarea nucleului Linux și ne vom acomoda cu infrastructura (minimalistă) de dezvoltare la nivelul nucleului. Infrastructura folosește o mașină virtuală [[http://wiki.qemu.org/Main_Page|QEMU]]. | Vom face primi pași în investigarea nucleului Linux și ne vom acomoda cu infrastructura (minimalistă) de dezvoltare la nivelul nucleului. Infrastructura folosește o mașină virtuală [[http://wiki.qemu.org/Main_Page|QEMU]]. | ||
Line 42: | Line 42: | ||
În acest mod vom porni mereu mașina virtuală QEMU | În acest mod vom porni mereu mașina virtuală QEMU | ||
- | Pentru oprirea mașinii virtuale folosim comanda ''poweroff'' în cadrul mașinii virtuale QEMU sau folosim combinația de taste ''Ctrl+c'' în fereastra din mașina virtuală VirtualBox în care am rualt comanda ''make''. | + | Pentru oprirea mașinii virtuale folosim comanda ''poweroff'' în cadrul mașinii virtuale QEMU sau folosim combinația de taste ''Ctrl+c'' în fereastra din mașina virtuală VirtualBox în care am rulat comanda ''make''. |
+ | <note important> | ||
+ | Ca să "intrați" în mediul QEMU dați click în cadrul ferestrei QEMU. | ||
+ | |||
+ | Ca să "ieșiți" din mediul QEMU apăsați pe ''Alt'' și ''Ctrl''. | ||
+ | </note> | ||
==== Investigarea stării sistemului ==== | ==== Investigarea stării sistemului ==== | ||
Line 164: | Line 169: | ||
==== Folosirea netcat pentru comunicarea între mașini virtuale ==== | ==== Folosirea netcat pentru comunicarea între mașini virtuale ==== | ||
- | Pentru a face ceva mai interesant, veți copia în mașina virtuală QEMU un fișier ''netcat'' compilat static. Îl găsiți în ''/home/training/linux-kernel-dev/''. Copiați-l în ''fsimg/root/programs/''. | + | Pentru a face ceva mai interesant, veți copia în mașina virtuală QEMU un fișier ''netcat'' compilat static. |
+ | |||
+ | <note> | ||
+ | Este vorba de fișierul ''nc-static'' din directorul ''/home/training/linux-kernel-dev/''. Copiați acest fișier în ''fsimg/root/programs/''. | ||
+ | </note> | ||
O dată copiat acest utilitar static, îl puteți folosi pentru comunicare cu mașina virtuală VirtualBox. Porniți pe mașina virtuală QEMU un server care ascultă mesaje pe un port UDP. Iar apoi trimiteți un mesaj de pe mașina virtuală VirtualBox folosind tot ''netcat''. | O dată copiat acest utilitar static, îl puteți folosi pentru comunicare cu mașina virtuală VirtualBox. Porniți pe mașina virtuală QEMU un server care ascultă mesaje pe un port UDP. Iar apoi trimiteți un mesaj de pe mașina virtuală VirtualBox folosind tot ''netcat''. | ||
Line 171: | Line 180: | ||
La nevoie puteți transmite și fișiere în acest mod folosind comenzi de forma:<code> | La nevoie puteți transmite și fișiere în acest mod folosind comenzi de forma:<code> | ||
(receiver/server) netcat -u -l -p 12345 > <filename> | (receiver/server) netcat -u -l -p 12345 > <filename> | ||
- | (sender/client) cat <filename> | netcat <IP-receiver> 12345 | + | (sender/client) cat <filename> | ./nc-static -u <IP-receiver> 12345 |
</code> | </code> | ||
unde ''<filename>'' este numele fișierului (sau calea către fișier) iar ''<IP-receiver>'' este adresa IP a a receiver-ului> | unde ''<filename>'' este numele fișierului (sau calea către fișier) iar ''<IP-receiver>'' este adresa IP a a receiver-ului> | ||
Line 197: | Line 206: | ||
append root=/dev/ram ro quiet rdinit=/init initrd=ramdisk.gz nodebug apci=off noapic | append root=/dev/ram ro quiet rdinit=/init initrd=ramdisk.gz nodebug apci=off noapic | ||
</code> | </code> | ||
+ | |||
+ | <note tip> | ||
+ | Mai sus am schimbat opțiunea ''noquiet'' în opțiunea ''quiet'' și ''debug'' în ''nodebug''. | ||
+ | </note> | ||
Pornim mașina virtuală QEMU folosind comanda<code> | Pornim mașina virtuală QEMU folosind comanda<code> | ||
Line 205: | Line 218: | ||
==== Adăugarea unei opțiuni de bootare a nucleului ==== | ==== Adăugarea unei opțiuni de bootare a nucleului ==== | ||
- | Urmăriți opțiunile de bootare ale nucleului și dezactivați folosirea ''vdso''. | + | Urmăriți [[https://www.kernel.org/doc/Documentation/kernel-parameters.txt|opțiunile de bootare ale nucleului]] și dezactivați folosirea ''vdso''. |
Pentru a verifica faptul că un proces folosește sau nu ''vdso'' urmăriți spațiul său de adresă folosind comanda<code> | Pentru a verifica faptul că un proces folosește sau nu ''vdso'' urmăriți spațiul său de adresă folosind comanda<code> |