User Tools

Site Tools


linux-kernel-dev:capitole:capitol-01

This is an old revision of the document!


Mediul de dezvoltare pentru cod kernel

  • Ce este un kernel, care este rolul său? Ce este o imagine de kernel? Exemple.
  • Pornirea (bootarea) sistemului
  • Necesarul pentru a porni (boota) un mediu de dezvoltare: imagine de kernel, sistem de fișiere, set minimal de utilitare
  • De ce folosim mașini virtuale
  • Folosirea mediulu QEMU
  • Opțiuni la bootarea nucleului
  • Investigarea nucleului: /proc/cmdline, dmesg, uname, /var/log/messages, /proc/modules, lsmod
  • (opțional) Compilarea nucleului

* https://www.kernel.org/doc/Documentation/kernel-parameters.txt

Exerciții

Pornirea mediului QEMU

Pentru partea practică vom folosi mașina virtuală VirtualBox și o mașină virtuală (emulator) QEMU rulând în aceasta. Pentru aceasta vom intra în directorul linux-kernel-dev/qemu-vm/ din mașina virtuală QEMU. Acest director conține o serie de script-uri pentru pornirea mașinii virtuale QEMU. Pe scurt, se construiește un sistem de fișiere virtual care este apoi folosit pentru pornirea mașinii virtuale.

Pentru pornirea mașinii virtuale folosim comanda

make

În urma rulării comenzii se deschide un prompt QEMU în care este pornită mașina virtuală.

Mașina virtuală ne va afișa un prompt de root în care putem include comenzi. Mașina virtuală conține un sistem de fișiere minimal cuprins din:

  • imaginea de kernel
  • busybox: un shell pentru sisteme embedded cuprinzând mai multe utilitare încorporate
  • fișiere de configurare

Î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.

Investigarea stării sistemului

Investigarea stării sistemului folosind uname, /proc/cmdline, dmesg, ps

Investigarea imaginii de kernel

Investigarea imaginii de kernel a sistemului

Urmărirea intrărilor din /proc/kallsyms

Folosirea intrării /proc/kallsyms

Verificarea conectivității la rețea

Verificarea conectivității la mașina virtuală QEMU

Vizualizarea mesajelor din kernel prin rețea

TODO

Adăugarea unui fișier în mașina virtuală QEMU

TODO

Folosirea netcat pentru comunicarea între mașini virtuale

TODO

Folosirea unui client de SSH

(exercițiu) Adăugarea daemon-ului SSH (dropbear) pe mașina virtuală QEMU

Alterarea opțiunilor de pornire a nucleului

Adăugarea unei opțiuni de bootare a nucleului

ignore_log_level

[BONUS] Compilarea unui nou kernel

TODO

linux-kernel-dev/capitole/capitol-01.1441568166.txt.gz · Last modified: 2015/09/06 22:36 by razvan