Jądro Linuksa 5.0 RC1 jest dostępne z dużym procesorem ARM. Obsługa LITTLE EAS, poprawki F2FS i wiele więcej

Jądro Linuksa, na którym opierają się wszystkie urządzenia z Androidem, otrzymuje poważną aktualizację do wersji 5.0. Omawiamy zmiany istotne dla urządzeń mobilnych.

Chociaż zazwyczaj nie opisujemy tego, co dzieje się w głównym jądrze Linuksa, ważne jest, abyśmy śledzili, co dzieje się z każdą nową wersją jądra, ponieważ Google wymaga minimalna wersja jądra Linux wymagane przy każdej nowej wersji Androida. Niedawna decyzja o wydłużyć wydania LTS z 2 do 6 lat odegra główną rolę w ograniczeniu fragmentacji poprawek zabezpieczeń, ponieważ producenci urządzeń będą musieli mniej pracować przy przenoszeniu poprawek zabezpieczeń. Ponadto główne jądro często integruje nowe funkcje istotne dla urządzeń mobilnych.

Na przykład pierwszy Wydanie kompilacji kandydata dla kolejnej wersji jądra LTS została niedawno wypuszczona — jądro Linuksa 5.0 RC1. Do stabilnej wersji gry pozostał jeszcze miesiąc lub dwa, ale już możemy rzucić okiem na to, co pojawi się w nadchodzącej wersji. Podkreślę niektóre aktualizacje istotne dla urządzeń mobilnych, ale zalecam przejrzenie pełnego dziennika zmian, jeśli w ogóle interesuje Cię rozwój oprogramowania open source i jądro Linuksa.

RAMIĘ duże. MAŁE wsparcie EAS

Planowanie uwzględniające zużycie energii jest dostępny na urządzeniach z Androidem od czasu premiery oryginalnego Pixela. EAS to jeden z powodów, dla których urządzenia Google Pixel są generalnie szybsze niż ich konkurenci. Obsługa została już włączona w wydaniu Qualcomm jądra Snapdragon 845, więc każde urządzenie z tym SoC (lub nowszym) będzie obsługiwać EAS. Chociaż do tej pory Linux nie miał wcześniejszej obsługi Energy Aware Scheduling. Wsparcie wyższego szczebla powinno teoretycznie ułatwić producentom krzemu i urządzeń wdrażanie technologii w swoich urządzeniach. Jednak dla użytkowników końcowych wsparcie nadrzędne tak naprawdę nie ma większego znaczenia.

Wsparcie Adiantum

Speck to algorytm szyfrowania opracowany przez NSA (Administracja Bezpieczeństwa Narodowego), który działa dobrze na słabszym sprzęcie. Google przeznaczony dodać obsługę speck, ponieważ oferuje on obsługę szyfrowania danych dla urządzeń budżetowych z SoC pozbawionymi rozszerzeń szyfrowania przyspieszanych sprzętowo. Przyjęcie Specka spotkało się z szeroką krytyką ze względu na jego powiązania z NSA. Obsługa specka została usunięta w jądrze Linuksa 4.20, a jego zamiennik, Adiantum, działa równie dobrze, jeśli nie lepiej, na słabszym sprzęcie z systemami plików EXT4/F2FS.

Poprawki F2FS i EXT4

System plików przyjazny Flashowi (F2FS) to popularne w urządzeniach z Androidem. Google Pixel 3 i Pixel 3 XL oficjalnie obsługuje F2FS, Na przykład. Najwyraźniej Jaegeuk Kim, pierwotny twórca F2FS, wysłał prośbę o połączenie wielu poprawek systemu plików z repozytorium Linuksa. Zmiany te rozwiązują problemy z szyfrowaniem i zarządzaniem czasem bezczynności, a także poprawiają usuwanie elementów bezużytecznych. Wszystkie szczegóły można zobaczyć w to żądanie ściągnięcia. Ogólnie rzecz biorąc, naprawienie F2FS poprawia stabilność i niezawodność smartfonów z Androidem, które obsługują tę funkcję lub będą ją obsługiwać.

Podobnie popularny system plików EXT4 otrzymał nieco kilkanaście poprawek. EXT4 jest używany na wielu urządzeniach z Androidem, takich jak najnowsze urządzenia OnePlus (w tym OnePlusa 5T, OnePlus 6 i OnePlus 6T).

Nowa obsługa sprzętu ARM

Dystrybucje GNU/Linux są prawdopodobnie najlepszymi systemami operacyjnymi do uruchomienia na sprzęcie opartym na architekturze ARM. Oferują niezawodną wielozadaniowość opartą na modelu open source. Procesory ARM są specjalnie zaprojektowane do wykonywania wielu zadań jednocześnie. Dlatego ważne jest, aby system operacyjny dotrzymywał kroku sprzętowi. Jak niektórzy z Was wiedzą, większość smartfonów i tabletów z Androidem wykorzystuje chipsety z architekturą ARM. Chipy oparte na architekturze RISC doskonale nadają się do wykonywania codziennych zadań (które wykonujesz na smartfonie. Jądro Linuksa 5.0 dodaje obsługę wielu nowego sprzętu ARM. Tutaj jest kilka z nich:

  • Tegry X2
  • Tegra Xavier
  • Allwinner F1C100
  • Qualcomma QCS404
  • Allwinner T3
  • NXP Layerscape LX2160

Oprócz uniwersalnej obsługi kompatybilności dla określonego sprzętu ARM, jądro Linuksa 5.0 ma również ulepszone zarządzanie energią.

Obsługa BinderFS

Android używa Bindera do wymiany argumentów pomiędzy różnymi procesami w systemie. Aplikacje, działania i procesy korzystają z Bindera do uruchamiania procesów i zarządzania nimi. Bezpieczeństwo na Androidzie w dużym stopniu opiera się na uprawnieniach UID. Binder sprawdza identyfikatory UID dostarczane przez aplikacje za pomocą dwukierunkowych wywołań IPC, aby potwierdzić, że ma dostęp do funkcji, z której chce korzystać. BinderFS to zaktualizowana wersja Bindera, ale jest bardziej wyspecjalizowana i kompatybilna z systemem. Wsparcie dla BinderFS nie zmieni wiele dla użytkownika końcowego, ale na dłuższą metę rozwiąże niektóre problemy z implementacją dla programistów. Tutaj jest odpowiednie zatwierdzenie.

Ramy zarządzania modelem energetycznym

Kolejnym dodatkiem jest obsługa Ram Zarządzania Modelem Energetycznym. Ta zmiana jest przeznaczona głównie dla programistów ARM i jądra. Oferuje nową warstwę ujednoliconych informacji o zużyciu energii z różnych źródeł, takich jak drzewo urządzeń lub sterowniki. Zużycie energii i raportowanie są obsługiwane w różny sposób przez sprzęt i oprogramowanie. Energy Model Management Framework zapewni standardowy interfejs API, który może być używany przez inny sterownik w jądrze w celu uzyskania dostępu do informacji o zużyciu energii. Teoretycznie ułatwi to inżynierom oprogramowania i programistom uzyskanie odpowiednich informacji ze sprzętu. Możesz przeczytać więcej o tym frameworku w tym zatwierdzeniu.

Obsługa uwierzytelniania wskaźnika ARM64

Każde odpowiednie rozwiązanie sprzętowe i programowe, szczególnie na urządzeniach mobilnych, wymaga silnych protokołów bezpieczeństwa. To właśnie oferuje jądro Linuksa 5.0 ze wsparciem uwierzytelniania wskaźników ARM64. Ponieważ większość smartfonów ma chipsety oparte na ARM64, niezwykle ważne jest, aby atakujący nie mogli wykorzystać wskaźników, które są używane w jądrze Linuksa w celu uzyskania dostępu do adresów pamięci. Nowy protokół uwierzytelniania porównuje wskaźniki z tajnymi kluczami. Uwierzytelnianie wskaźnika będzie próbowało uniknąć programowania zorientowanego na zwrot (ROP) i innych rodzajów ataków.


Jest dużo więcej aktualizacji jądra Linuksa 5.0, których nie omówiliśmy. Większość z nich tak naprawdę nie ma większego znaczenia dla urządzeń z Androidem, dlatego musieliśmy wybrać dziennik zmian. Jeśli chcesz zobaczyć pełny „dziennik zmian”, sprawdź Firma Phoronix zasięg.

Dzięki uznanemu programiście XDA flara2 za pomoc przy tym artykule.