Przegląd jądra

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

Jądro systemu Android jest oparte na pierwotnym jądrze Linux Long Term Supported (LTS) . W Google jądra LTS są łączone z łatami specyficznymi dla systemu Android, tworząc tak zwane wspólne jądra systemu Android (ACK) .

Nowsze pakiety ACK (wersja 5.4 i nowsze) są również znane jako jądra GKI , ponieważ obsługują oddzielenie niezależnego od sprzętu kodu jądra podstawowego i niezależnego od sprzętu modułów GKI . Jądro GKI współdziała ze specyficznymi dla sprzętu modułami dostawcy zawierającymi system na chipie (SoC) i kod specyficzny dla płyty. Interakcja między jądrem GKI a modułami dostawcy jest możliwa dzięki interfejsowi modułu jądra (KMI) składającemu się z list symboli identyfikujących funkcje i dane globalne wymagane przez moduły dostawców. Rysunek 1 przedstawia architekturę jądra GKI i modułu dostawcy: Architektura jądra i modułu dostawcy GKI

Rysunek 1. Architektura jądra GKI i modułu dostawcy

Słownik jądra

Ta sekcja zawiera terminy używane w dokumentacji jądra.

Rodzaje jądra

Wspólne jądro systemu Android (ACK)
Jądro, które jest niższe od jądra LTS i zawiera poprawki interesujące dla społeczności Androida, które nie zostały połączone z jądrami Linuksa głównego lub długoterminowymi (LTS). Nowsze pakiety ACK (wersja 5.4 i nowsze) są również znane jako jądra GKI, ponieważ obsługują oddzielenie niezależnego od sprzętu kodu Generic Kernel i niezależnego od sprzętu modułów GKI.
Jądro Android Open Source Project (AOSP)
Zobacz wspólne jądro systemu Android.
Funkcja jądra
Jądro, dla którego gwarantuje się zaimplementowanie funkcji wydania platformy. Na przykład w systemie Android 12 dwa jądra funkcji to android12-5.4 i android12-5.10. Funkcje Androida 12 nie mogą być przeniesione do jąder 4.19; zestaw funkcji byłby podobny do urządzenia, które uruchomiono z 4.19 na R i zaktualizowano do S).
ogólne jądro rdzenia
Część jądra GKI , która jest wspólna dla wszystkich urządzeń.
Ogólne jądro obrazu jądra (GKI)
Dowolne nowsze (5.4 i nowsze) jądro ACK (obecnie tylko aarch64). To jądro składa się z dwóch części: podstawowego jądra GKI z kodem wspólnym dla wszystkich urządzeń oraz modułów jądra GKI opracowanych przez Google, które można dynamicznie ładować na urządzeniach, jeśli ma to zastosowanie.
Jądro interfejsu modułu jądra (KMI)
Zobacz jądro GKI .
Uruchom jądro
Jądro, które jest prawidłowe do uruchamiania urządzenia dla danej wersji platformy Android. Na przykład w Androidzie 12 prawidłowymi jądrami uruchamiania były 4.19, 5.4 i 5.10.
Jądro z długoterminowym wsparciem (LTS)
Jądro Linux obsługiwane przez 2 do 6 lat. Jądra LTS są wydawane raz w roku i stanowią podstawę każdego pakietu ACK Google .

Rodzaje oddziałów

Gałąź jądra ACK KMI
Gałąź, dla której budowane są jądra GKI . Na przykład android12-5.10 i android13-5.15.
Android-główna linia
Podstawowa gałąź programistyczna dla funkcji Androida. Gdy nowe jądro LTS jest deklarowane w górę, odpowiednie nowe jądro GKI jest rozgałęzione z systemu Android-mainline.
Linia główna Linuksa
Podstawowa gałąź programistyczna dla nadrzędnych jąder Linuksa, w tym jąder LTS.

Inne warunki

Certyfikowany obraz rozruchowy
Jądro dostarczane w formie binarnej ( boot.img ) i flashowane na urządzeniu. Ten obraz jest certyfikowany w tym sensie, że zawiera osadzone certyfikaty, dzięki czemu Google może sprawdzić, czy urządzenie jest dostarczane z jądrem certyfikowanym przez Google.
Dynamicznie ładowany moduł jądra (DLKM)
Moduł, który może być dynamicznie ładowany podczas rozruchu urządzenia w zależności od potrzeb urządzenia. Moduły GKI i dostawcy to oba typy DLKM. Pliki DLKM są wydawane w postaci .ko i mogą być sterownikami lub mogą dostarczać inne funkcje jądra.
Projekt GKI
Projekt Google zajmujący się fragmentacją jądra poprzez oddzielenie wspólnych podstawowych funkcji jądra od obsługi SoC i kart charakterystycznych dla dostawcy na moduły ładowalne.
Ogólny obraz jądra (GKI)
Obraz rozruchowy certyfikowany przez Google, który zawiera jądro GKI zbudowane na podstawie drzewa źródłowego ACK i nadaje się do flashowania na partycję rozruchową urządzenia z systemem Android.
KMI
Interfejs między jądrem GKI a modułami dostawcy umożliwiający aktualizowanie modułów dostawcy niezależnie od jądra GKI. Ten interfejs składa się z funkcji jądra i danych globalnych, które zostały zidentyfikowane jako zależności od dostawcy/OEM przy użyciu list symboli dla poszczególnych partnerów.
Moduł jądra GKI
Dynamicznie ładowane moduły zbudowane przez Google, które można dynamicznie ładować na urządzeniach, jeśli ma to zastosowanie. Moduły te są zbudowane z jądrem GKI i są dostarczane wraz z GKI jako obraz system_dlkm . Moduły jądra GKI są podpisywane przez Google przy użyciu pary kluczy czasu kompilacji jądra i są zgodne tylko z ogólnym jądrem jądra, z którym zostały zbudowane. Moduły jądra GKI są rodzajem DLKM
.
Moduł dostawcy
Moduł specyficzny dla sprzętu opracowany przez partnera i zawierający funkcje SoC i specyficzne dla urządzenia. Moduł dostawcy to rodzaj dynamicznie ładowanego modułu jądra.

Co dalej?