GNU/Linux >> Znalost Linux >  >> Linux

Prostředí hackování jádra

Můj osobní vkus pro vývoj jádra Linuxu je Debian. Nyní k vašim bodům:

  1. Jak jste pravděpodobně uhodli, Ubuntu nepřináší do jádra nic nového, co by usnadnilo vývoj afaik, kromě toho, co je již dostupné v Debianu. Pro např. make_kpkg je funkce Debianu a ne Ubuntu. Zde je několik odkazů, které vám pomohou začít s běžnými úkoly vývoje Linuxového jádra v Debianu:

    • Kapitola 4 – Běžné úlohy související s jádrem příručky Debian Linux Kernel Handbook
    • Kapitola 10 – Debian a jádro The Debian GNU/Linux FAQ
  2. Nejjednodušší způsob, jak provést ladění jádra, je pomocí QEMU a GDB. Pár odkazů, jak začít:

    • http://files.meetup.com/1590495/debugging-with-qemu.pdf
    • http://www.cs.rochester.edu/~sandhya/csc256/assignments/qemu_linux.html

    Měli byste si však uvědomit, že tato metoda není životaschopná pro určité scénáře, jako je ladění specifických problémů s hardwarem a podobně, pro které by bylo lepší použít fyzické sériové ladění a skutečný hardware. K tomu můžete použít KGDB (funguje také pomocí ethernetu). KDB je také dobrá volba. Jo, a mimochodem, KGDB i KDB byly začleněny do jádra Linuxu. Více o těchto dvou zde. Další skvělou metodou, která skvěle funguje pro problémy, které se netýkají hardwaru, je použití jádra Linuxu v uživatelském režimu. Spuštění jádra v uživatelském režimu jako jakéhokoli jiného procesu vám umožňuje ladit jej stejně jako jakýkoli jiný program (příklady). Více o Linuxu v uživatelském režimu zde. UML je součástí linuxového jádra od verze 2.6.0, takže můžete do režimu UML sestavit jakoukoli oficiální verzi jádra nad touto verzí pomocí následujících kroků.

  3. Viz bod 2. Bohužel zde neexistuje žádná nejlepší metoda, protože každý nástroj/způsob má své pro a proti.


Pokud vyvíjíte pro vestavěnou platformu, která není založena na hardwaru i386, budete muset provést křížovou kompilaci. Projekt Emdebian poskytuje nástrojové řetězce k vývoji pro mnoho architektur (ARM, m68k, MIPS a další) na PC (i386 nebo amd64). To znamená, že v Debianu můžete jednoduše přidat repozitáře a apt-get nainstalovat toolchain pro cíl(e) podle vašeho výběru.


Sondy JTAG existují, ale jsou poměrně drahé (a společnosti, které je vyrábějí, mají exkluzivní smlouvy). Nejlepší způsob, jak odladit kód jádra, je spustit jej v kvm nebo qemu s gdbserverem uvnitř emulace.


Linux
  1. Vytváření linuxových jader způsobem Debian

  2. Instalace jádra deb v chrootovém prostředí Debianu

  3. Odkazování na proměnné prostředí *v* /etc/environment?

  1. Jak nastavit virtuální prostředí Python na Debian 10 Buster

  2. Jak zkompilovat jádro – způsob Debianu

  3. Debian – používat Aes-ni v Debianu?

  1. Jak nainstalovat hlavičky jádra na Debian

  2. Jak nainstalovat GNOME Desktop Environment na Debian 11

  3. Správa upgradů linuxového jádra v Debianu