kernel-header
Pakiety dystrybucyjne zawierają, jak wskazuje ich nazwa, tylko pliki nagłówków jądra (plus niezbędna instalacja wodno-kanalizacyjna), które są wymagane do zbudowania oprogramowania takiego jak moduły jądra.
Nie należy oczekiwać, że w ogóle znajdziesz pliki binarne w katalogu źródłowym jądra , z wyjątkiem danych wyjściowych kompilacji. (Jeśli sam skonfigurujesz i zbudujesz jądro, katalog źródłowy jądra będzie również zawierał skompilowane obiekty, moduły, samo zbudowane jądro i kilka innych binarnych bitów i elementów, które sprawiają, że działa.)
KConfig
Pliki to opis opcji konfiguracji jądra (i ich zależności), które są dostępne dla danego katalogu / modułu.
Poza tym to wszystko (głównie) kod źródłowy C, pliki nagłówkowe i pliki Makefile
s. Tu i tam jest kilka skryptów pomocniczych, a także źródło asemblera.
Pakiety nagłówków (to, co zainstalowałeś) zawierają tylko część nagłówka powyższego (i nie wszystko - tylko „wyeksportowane” nagłówki) oraz część infrastruktury kompilacji. Tak więc oczekuje się tego, co widzisz. Pakiety nagłówków nie zawierają kodu źródłowego C (z wyjątkiem niektórych kodów pośredniczących i kodu infrastruktury kompilacji). Istotą tego typu pakietów jest oszczędność miejsca (i przepustowości) - całe drzewo źródeł jądra Linux jest dość duże i całkowicie niepotrzebne, jeśli nie zamierzasz samodzielnie kompilować jądra. Pakiety nagłówków są budowane i wysyłane przez dystrybucje, aby zapewnić odpowiednie rzeczy niezbędne do zbudowania modułów, ale nie więcej. (Z pewnością nie zawierają skompilowanego jądra).
Adresowanie komentarza: pakiety nagłówków nigdzie się nie przenoszą. Są one zbudowane dla określonych wersji jądra, spakowanych w określonym katalogu i to wszystko. To tylko zestaw plików. (Zauważ, że pakiety nagłówkowe niekoniecznie mają tę samą wersję, co obecne stabilne pakiety binarne jądra - pakiety nagłówkowe są ogólne i mogą pozostawać w tyle za rzeczywistym jądrem, którego używasz. Nie powinny one jednak pochodzić z jądra wersja nowsza niż obecnie zainstalowane (lub docelowe) jądro).
Zainstalowane pliki binarne jądra są zwykle instalowane w /boot
katalogu wraz z plikami binarnymi programu ładującego i plikami konfiguracyjnymi. (Czasami jest to niezależny system plików, który nie jest domyślnie montowany). Dokładna nazwa plików zależy od jądra i dystrybucji. (Podobnie jak bootloader).
Zainstalowane moduły jądra znajdują się w podkatalogach:
/lib/modules/`uname -r`/
Na przykład w moim systemie są obecnie w
/lib/modules/3.1.4-gentoo/
Pełny kod źródłowy jądra : Jeśli na Ubuntu chcesz, aby pełne źródła jądra samodzielnie budowały jądro, powinieneś zainstalować postępując zgodnie z instrukcjami tutaj .
Możesz również pobrać źródłowy plik archiwum kernel.org
i rozpakować go gdzieś ( nie zastępuj plików zainstalowanych w systemie Ubuntu, jeśli używasz tego pliku archiwum, przechowuj swoje rzeczy osobiste i rzeczy zarządzane przez RPM osobno).
/usr/src/linux
to tradycyjne miejsce do umieszczania źródeł jądra, ale nic nie stoi na przeszkodzie, aby umieścić źródła jądra w innym miejscu. Ta ścieżka jest również często tylko dowiązaniem symbolicznym do katalogu. np. mam to na moim komputerze:
$ ls -l /usr/src/linux
lrwxrwxrwx 1 root root 18 Dec 7 17:03 /usr/src/linux -> linux-3.1.4-gentoo
Dowiązanie symboliczne ma na celu uproszczenie budowania aplikacji zależnych od źródła jądra. Łączysz tę ścieżkę z działającym (lub docelowym) jądrem, abyś nie musiał określać dokładnej wersji lub informacji o ścieżce podczas budowania modułu spoza drzewa. Pomaga grupie przynajmniej w przypadku dystrybucji opartych na źródłach.
linux-source
zawiera źródło źródłowe,apt-get source linux-image-$(uname -r)
pobiera źródło jądra z łatami Ubuntu.