Jak przeglądać i przeglądać źródło jądra Linux?

Jak przeglądać i przeglądać źródło jądra Linux?

W tym artykule krótko wyjaśnia jądro Linux i jak przeglądać kod źródłowy.

Ten samouczek jest zoptymalizowany dla niedoświadczonych użytkowników i programistów Linuksa, którzy chcą odczytać kod źródłowy jądra lub zostać programistami jądra Linux. Jądro Linux jest uniwersalne; Dlatego obecny dokument jest przydatny dla wszystkich dystrybucji Linuksa.

Czytając ten artykuł, zrozumiesz, czym jest jądro, jak jest ono ustrukturyzowane i jak przeglądać swoje komponenty. Ten artykuł został początkowo napisany w 2019 roku i zaktualizowany w 2022 roku.

Jakie jest jądro Linux i jak je przeglądać

Kernel Linux jest głównym komponentem umożliwiającym interakcję między oprogramowaniem a sprzętem za pomocą sterowników urządzeń. Możesz pomyśleć o jądrze Linux jako tłumacza umożliwiającym komunikację między programami, sprzętem i interfejsem użytkownika.

Nauka przeglądania jądra Linux jest pierwszym krokiem dla każdego programisty, który chce zostać programistą jądra. Jest również przydatny dla programistów lub użytkowników, którzy chcą odczytać kod źródłowy lub go zmodyfikować.

Struktura jądra Linux

Jądro Linux jest ustrukturyzowane z katalogami i podkatalogami zwanymi jako „drzewo jądra”, użytkownicy mogą przeglądać dostęp do określonych sekcji całego kodu. To pozwala użytkownikom i programistom skupić się na określonych częściach kodu.

Z wyjątkiem dystrybucji Slackware Linux, którego jądro jest utrzymywane przez jedną osobę, reszta społeczności Linux „Ogromne deweloperzy” dzieli zadania oparte na drzewie jądra. Natomiast kilku programistów koncentruje się na sterownikach, inni koncentrują się na bezpieczeństwie i innych na wirtualizacji.

Drzewo źródłowe jądra jest następującą strukturą opisaną, przez którą użytkownicy mogą przeglądać kod źródłowy:

Przeglądanie i przeglądanie kodu źródłowego jądra Linux

Zwykle podczas instalowania Linux nie dołączamy kodu źródłowego. Możemy zainstalować Linux i zachować kod źródłowy w naszym systemie. Ale większość użytkowników odrzuca go, aby pobrać mniejszy obraz ISO. W końcu możesz pobrać kod źródłowy później, jeśli go potrzebujesz.

Jeśli kod źródłowy jądra jest obecny w twoim systemie, można go znaleźć w katalogu/usr/src/linux-, gdzie należy zastąpić wersją kodu źródłowego, z którym masz do czynienia.

Możesz także znaleźć ostatni kod źródłowy jądra na https: // github.com/torvalds/Linux.

Jak widać na poprzednim zrzucie ekranu lub na dostarczonym adresie URL, w drzewie kodu źródłowego możemy znaleźć następujące główne katalogi i pliki:

  • łuk: Ten katalog zawiera kody źródłowe dla różnych architektur systemowych obsługiwanych przez jądro Linux.
  • blok: Katalog warstwy we/wy bloków zawiera kod do zarządzania urządzeniami blokowymi (takimi jak dyski twarde, DVD, dyski dyskietki itp.) i ich prośby.
  • certyfikaty: Katalog certs zawiera certyfikaty i podpisuje pliki, aby umożliwić podpisy modułu dla jądra na ładowanie podpisanych modułów. Może to być przydatne, aby zapobiec działaniu złośliwego kodu w modułach jądra, takich jak rootkits.
  • BIUROWY: Ten plik zawiera informacje o licencjach dla kodu źródłowego
  • Kredyty: Częściowa lista osób, które przyczyniły się do kodu źródłowego jądra Linux
  • Krypto: Ten katalog zawiera szyfrowanie kryptograficzne, które obsługują zadania kryptograficzne i kompresyjne.
  • Dokumentacja: Jak sama nazwa wskazuje, ten katalog zawiera całą dokumentację o wszystkich komponentach jądra.
  • kierowcy: Katalog sterowników zawiera kod źródłowy dla sterowników urządzeń do obsługi sprzętu. W tym katalogu znajdziesz podkstready dla każdego sprzętu, takie jak wideo, Bluetooth itp. (Wszelkie obsługiwane sprzęt).
  • Fs: Ten katalog zawiera źródła systemów plików, w tym wirtualne systemy plików oraz systemy odczytu i zapisu.
  • włączać: Ten katalog zawiera nagłówki C dla plików jądra, takie jak funkcje do kompilacji kodu.
  • w tym: Katalog IIN zawiera kod źródłowy związany z procesem rozruchu i inicjalizacja jądra Linux. Kod źródłowy jest przechowywany w pliku o nazwie Mainc.C w katalogu /init. Kod inicjuje jądro i niektóre początkowe procesy.
  • IPC: Komunikacja między procesami, taka jak sygnały i rury.
  • Kbuild: Plik KBuild wskazuje pliki obiektów dla vmlinuz.
  • Kconfig: Plik KCONFIG służy do wyłączenia lub włączenia funkcji jądra. Użytkownicy zajmują się prowadzeniem polecenia „Make Menuconfig”.
  • jądro: Katalog jądra zawiera podstawowe podsystemy, takie jak kod obsługi sygnału harmonogramu.
  • Lib: Ten katalog zawiera procedury biblioteczne, wspólne operacje ciągów, operacje zależne od sprzętu, procedury debugowania i kod parsowania wiersza poleceń.
  • Licencje: Zawiera licencje na zastosowanie do źródła jądra i poszczególnych plików źródłowych, które mogą mieć różne licencje. W tym katalogu znajdziesz cztery główne podwodniki zawierające obsługiwane licencje, takie jak LGPL-X, licencja Apache itp.
  • Mantainers: Plik opiekunów pokazuje listę opiekunów jądra i instrukcje dotyczące przesłania zmian jądra.
  • Makefile: Ten plik odczytuje .Plik konfiguracyjny i moduły i vmlinux.
  • mm: Jądro Linux zarządza sprzętem i pamięcią wirtualną (swap). To jest katalog, w którym przechowywane jest kod źródłowy do zarządzania pamięcią.
  • internet: Katalog netto zawiera stos sieciowy. Tutaj można znaleźć kod związany z protokołami komunikacyjnymi, takimi jak IP, TCP i UP.
  • Readme: Plik Readme odnosi się do przewodników dla programistów jądra w opisanym wcześniej katalogu dokumentacji.
  • Próbki: Katalog próbek zawiera kod przykładowy kernel i pliki konfiguracyjne.
  • Skrypty: Tutaj są przechowywane niezbędne skrypty do zbudowania jądra Linux.
  • bezpieczeństwo: Podkazowy podrzędny bezpieczeństwa zawiera framework bezpieczeństwa Linux (SELINUX).
  • dźwięk: Tutaj można znaleźć podsystem dźwięku, w tym sterowniki dźwięku, architektury sterowników i kod związane z dźwiękiem, takie jak ALSA.
  • narzędzia: Oto narzędzia do tworzenia kompresji jądra, takie jak ACPI, CGroup, narzędzia do testowania USB, moduł testowy VHOST, GPIO, IIO i SPI narzędzia oraz narzędzie Policy Międzynarodowej.
  • USR: tutaj, USR przechowuje initramfs, który korzysta z systemu plików i init in w pamięci podręcznej pamięci jądra. Uwzględnione kod pozwala wykonywać kod w przestrzeni użytkownika w procesie rozruchu, gdy jądro nie jest w pełni załadowane.
  • virt: Katalog wirtualizacji zawiera moduł KVM (maszyna wirtualna jądra) dla hiperwizorów, w tym architektury.

Są to wszystkie najlepsze pliki i katalogi zawarte w katalogu źródłowego głównego jądra. Możesz przeglądać każdą sekcję w zależności od potrzeb. Gdy zrozumiesz cel wszystkich plików i katalogów wymienionych powyżej, podkatalogy są dość intuicyjne.

Wniosek

Jak widać, ten artykuł został napisany dla nowatorskich i średnich użytkowników, aby zrozumieć podstawy jądra Linux. Jednak do praktycznego wykorzystania konieczne jest pewna wiedza na temat rozwoju w ramach Linux, sprzętu i charakterystyki systemu operacyjnego. Poprzedni wykład jest doskonały jako wprowadzenie do struktury jądra Linuksa i rozkładu Linuksa. Należy pamiętać, że jądro Linux ewoluuje okresowo. Dlatego informujemy wcześniej opisaną treść.

Mamy nadzieję, że ten artykuł uznałeś za przydatny. Czytaj dalej Linuxhint, aby uzyskać więcej artykułów profesjonalnych Linux.