Teoria

Kernel Hacking HOWTO.

Spis treści.

  1. Wstęp. prosze tego nie czytać!!!
    1. Czym jest Kernel ?
    2. Jaki język programowania?
    3. Co mogę zrobić z Kernelem ?
    4. Książki o Kernelu.
  2. Jak zdobyć kod kernela?
    1. Sposób odradzany.
    2. Dlaczego powinienem zdobyć kod kernela?
    3. Jak zdobyć kod źródłowy Kernela?
    4. Gdzie szukać najnowszych wersji kernela?
  3. Przygotowywanie systemu do hackowania kernela.
    1. Pomoce do kompilacji i instalacji.
    2. Pomoce do debugowania kernela.
  4. Kompilacja i instalacja kernela.
    1. Dlaczego rekompilować kernel?
    2. Numerowanie wersji kernela.
    3. Konfiguracja jądra do kompilacji
    4. Instalowanie jądra na dysku twardym
    5. Konfiguracja programu rozruchowego (Grub i LILO)
  5. Rzut okiem na drzewo kody kernela.
    1. Krótki opis każdego z katalogów..
    2. Zmiany pomiędzy 2.4 kernel a 2.6 kernel (new features).
  6. Wykorzystanie funkcji printk() w jądrze
  7. Debugging Kernel
    1. Czego potrzeba do poprawienia buga?
    2. Funkcja printk()
    3. Błąd oops
    4. Dodatkowe opcje przy kompilacji
    5. Powodowanie błędu oraz wyświetlanie dodatkowych informacji
    6. Magic SysRq Key.
    7. Jak używać debuggerów?
    8. Różne sztuczki co umilają życie.
    9. Gdy wszystko się sypnie…
  8. Kernel Programming Style Guidelines
    1. Styl kodowania kernela
    2. Wcięcia
    3. Przerywanie długich linii i łańcuchów.
    4. Ułożenie nawiasów i spacji
    5. Spacje
    6. Nazwy
    7. Typedefs
    8. Funkcje
    9. Scentralizowany powrót z funkcji
    10. Komentarze
    11. Namieszałeś ?
    12. Pliki konfiguracyjne
    13. Struktury danych
    14. Makra, typy wyliczeniowe i RTL
    15. Wypisywanie wiadomości kernela
    16. Alokacja pamięci
    17. Inline'owa zaraza
    18. Function return values and names Funkcje zwracające wartości i nazwy.
    19. Nie odkrywaj już raz odkrytych makr !!!
  9. Subsystems
    1. Tworzenie, zarządzanie i niszczenie procesu
    2. Szeregowanie procesów
    3. Wywołania systemowe
    4. Obsługa wyjątków i przerwań.
    5. (Deferring Work: Tasklets and SoftIRQ)
    6. Synchronizacja
    7. Zarządzanie czasem
    8. Zarządzanie pamięcią
    9. Wirtualny system plików
    10. Block I/O Layer
    11. Przestrzeń adresowa procesu
    12. Page Cache
    13. Komunikacja między procesami
    14. Odzyskiwanie Stron (Reclaiming Pages)
    15. Accessing Directories and Files
    16. Security Subsystem and SELinux
    17. TCP/IP Stack and Netfilter
    18. Device Drivers, Kobjects and Sysfs
    19. Module Management: Insert Code at Run-Time
  10. API (Kernel Internal Use)
  11. Device Drivers
  12. How to contribute to kernel community?
  13. Jak uzyskać pomoc?
  14. Jak mogę pomóc?
O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-Share Alike 2.5 License.