Linux Kernel

Dokumentacja

Wybór wersji jądra

2011.09.05 W związku z wykrytym niedawno włamaniem na serwery kernel.org, Linus Torvalds umieścił najnowszą wersję swojego drzewa (3.1-rc5) w serwisie github. Ogłoszenie: https://lkml.org/lkml/2011/9/4/92. Repozytorium w github-ie: https://github.com/torvalds/linux.
Git jest rozproszonym systemem kontroli wersji (w skrócie: zdecentralizowany - nie ma centralnego repozytorium), więc taką zmianę da się przeprowadzić szybko i bezboleśnie dla deweloperów.

Programowanie w jądrze

Praktyczne przykłady

Moduły jądra, które pokazują, jak wykorzystywać mechanizmy dostarczane przez jądro.

  1. Pierwszy moduł. Hello World! w jądrze.
  2. Moduł powstający ze skonsolidowania kilku plików źródłowych.
  3. Łata do jądra pokazująca jak integrować kod modułów z jądrem.
  4. Przykład wykorzystania funkcji zaimplementowanej w innym miejscu (module - bibliotece).
  5. Moduł z parametrami - można je zmieniać podczas ładowania modułu a także asynchronicznie, gry jest on już załadowany.
  6. Przykłady korzystania z systemu plików /proc - obsługa generycznego pliku z własnymi funkcjami odczytu i zapisu oraz przykład wykorzystania interfejsu sysctl (/proc/sys).
  7. Przykład korzystania z Debugfs przy pomocy mechanizmów typowych dla tego systemu plików, oraz ogólnych funkcji, które można również wykorzystać w innych interfejsach.
  8. Obsługa pliku urządzenia znakowego. Prosty moduł, oraz przykłady synchronizacji procesów korzystających z urządzenia przy pomocy semafora (mutex).
  9. Mmap jest jedyną metodą komunikacji proces ↔ jądro niewymagającą kopiowania danych. Dwa przykłady wykorzystania funkcji: do komunikacji procesu ze sterownikiem, oraz do implementacji pamięci współdzielonej.
  10. Rootkit - prosty Linuksowy wirus, który ukrywa swoją obecność (moduł znika po załadowaniu).
  11. Oczekiwanie w kodzie jądra (dwa przykłady obsługi timerów).
  12. Lista - to generyczna struktura danych dostarczana przez jądro (oprócz niej udostępniane są również różne rodzaje drzew). Przykład użycia listy.
  13. Opóźnione wykonywanie zadań: tasklety i kolejki robót (workqueue). Mechanizmy wykorzystywane zwykle w procedurach obsługi przerwań.

ostatnio zmienione: 2011/09/05 23:52