Jakie modyfikacje wprowadzono w jądrze Linuksa, aby uczynić go jądrem Androida? Przez to pytanie mam na myśli różnice między jądrem systemu Linux a jądrem systemu Android?
Jakie modyfikacje wprowadzono w jądrze Linuksa, aby uczynić go jądrem Androida? Przez to pytanie mam na myśli różnice między jądrem systemu Linux a jądrem systemu Android?
Odpowiedzi:
Różnice zmieniają się w zależności od wersji (zarówno Linux, jak i Android), a dokładne jądro jest różne dla każdego urządzenia. Jądro dla Androida jest głównym jądrem Linuksa, z dodatkowymi sterownikami dla określonego urządzenia i innymi dodatkowymi funkcjami, takimi jak ulepszone zarządzanie energią lub szybsza obsługa grafiki.
Wiele funkcji jądra Androida jest później dodawanych do starszego systemu Linux po zaakceptowaniu (i być może zmodyfikowaniu) przez społeczność Open Source, ale inne nigdy nie są upstreamowane, albo dlatego, że nie są akceptowane przez programistów jądra Linuksa, lub dlatego, że „ dotyczy tylko Androida lub określonego sprzętu.
Oprócz różnic specyficznych dla urządzenia i blokady obudzenia, o których wspominają Dan Hulme i Lie Ryan, Android usunął funkcje IPC systemu V (kolejki wiadomości, segmenty pamięci wspólnej, semafory), które mogą prowadzić do wycieków zasobów ( http://www.kandroid.org/ndk /docs/system/libc/SYSV-IPC.html ). Prawdopodobnie jest to tylko kwestia konfiguracji kompilacji jądra. Również wybrane IPC dla Androida, zwane Binder, ma pewne wsparcie w jądrze, które według mojej wiedzy nie jest zawarte w standardowych jądrach Linuksa.
Myślę, że to źródło Androida jest świetną dokumentacją do zrozumienia.
A oto lista zmian dokonanych z jądra głównego dla jądra Androida 4.14.
Największe funkcje obejmują:
Różnice w stosunku do LTS
W porównaniu do LTS (4.14.0), wspólne jądro Androida ma 355 zmian, 32266 wstawek i 1546 usunięć (od lutego 2018).