Jądro Linux jest niezwykle ważną częścią oprogramowania na prawie każdym urządzeniu z Androidem. Ta sekcja opisuje rozwój jądra Linuksa i modele wydań (poniżej), stabilne i długo wspierane (LTS) jądra (w tym dlaczego wszystkie urządzenia z Androidem powinny używać stabilnych wydań zamiast wybierać łaty), konfigurację i wzmacnianie jądra, wymagania dla interfejsów i jądra temodularnego (wprowadzone w Android O), testowanie jądra i sieci oraz SquashFS.
Rozwój jądra Linuksa
Jądro Linuksa jest największym projektem oprogramowania opartym na współpracy w historii. W 2016 r. ponad 4000 różnych deweloperów z ponad 450 różnych firm wniosło swój wkład do projektu i było 6 wydań, z których każde zawierało od 12 000 do 16 000 różnych zmian. Pod koniec 2016 roku rozmiar jądra Linuksa wynosił nieco ponad 56 tysięcy plików, składających się z 22 milionów linii kodu, skryptów kompilacji i dokumentacji (wydanie jądra 4.9). (Pełne statystyki rozwoju Linuksa można znaleźć na stroniehttps://kernelnewbies.org/DevelopmentStatistics.)
Podczas gdy jądro Linuksa zawiera kod dla wszystkich różnych architektur układów scalonych i sterowników sprzętowych, które obsługuje, pojedynczy system uruchamia tylko ułamek tej bazy kodowej. Przeciętny laptop używa około 2 milionów linii kodu jądra z 5 tysięcy plików do poprawnego działania, podczas gdy telefon Pixel używa 3.2 milionów linii kodu jądra z 6 tysięcy plików (ze względu na większą złożoność SoC).
Wydania jądra Linuksa
Jądro Linuksa używa modelu wydań, który różni się znacząco od standardowych wydań AOSP. Wraz z wydaniem jądra 2.6 w grudniu 2003, społeczność deweloperów jądra odeszła od poprzedniego modelu posiadania oddzielnej gałęzi rozwoju i stabilnej gałęzi jądra, i przeszła na model tylko stabilnej gałęzi. W tym modelu, nowe wydanie pojawiało się co 2 do 3 miesięcy, a to wydanie było uznawane za stabilne i zalecane do uruchomienia dla wszystkich użytkowników. Ta zmiana modelu rozwoju była spowodowana bardzo długim cyklem wydawniczym przed jądrem 2.6 (prawie 3 lata), i walką o utrzymanie dwóch różnych gałęzi bazy kodowej w tym samym czasie.
Numeracja wydań jądra rozpoczęła się od 2.6.x, gdzie x było rosnącym numerem, który zmieniał się na każdym wydaniu (wartość numeru nie ma żadnego znaczenia, poza tym, że jest nowsza niż poprzednie wydanie jądra). Od tego czasu wersja jądra przeszła na 4.x, co odpowiada dwóm głównym zmianom wersji. Te numery wersji są wybierane przez opiekuna(ów) tylko po to, aby uniknąć zamieszania wśród użytkowników spowodowanego przez wyższe numery mniejszych wydań.