Apa perbedaan antara Kernel Linux dan Kernel Android?
18
Apa saja modifikasi yang dilakukan di kernel linux untuk menjadikannya kernel Android? Maksud saya, apa perbedaan antara kernel linux dan kernel android?
Perbedaannya berubah dari versi ke versi (Linux dan Android), dan kernel yang tepat berbeda untuk setiap perangkat. Kernel untuk Android adalah kernel Linux mainstream, dengan driver tambahan untuk perangkat tertentu, dan fungsi tambahan lainnya, seperti manajemen daya yang ditingkatkan atau dukungan grafis yang lebih cepat.
Banyak fitur di kernel Android yang kemudian ditambahkan ke Linux hulu setelah komunitas open-source menerimanya (dan mungkin dimodifikasi), tetapi yang lain tidak pernah di-upstream, baik karena tidak dapat diterima oleh pengembang kernel Linux, atau karena mereka ' hanya berlaku untuk Android atau perangkat keras tertentu.
Sebagian besar driver untuk perangkat keras spesifik Android diterima ke dalam kernel mainline; tetapi beberapa fitur, seperti kunci penguncian yang menyebabkan kontroversi besar beberapa waktu lalu, tetap bermasalah karena pengembang utama dan kernel android tidak setuju apakah itu ide yang bagus.
Lie Ryan
"Kernel untuk Android adalah kernel Linux mainstream, dengan driver tambahan untuk perangkat tertentu, dan fungsi tambahan lainnya, seperti manajemen daya yang ditingkatkan atau dukungan grafis yang lebih cepat", jadi apakah itu terutama driver? Tidak ada kode sumber yang diubah?
Guerlando OCs
@GuerlandoOCs Saya tidak yakin apa yang Anda pikirkan driver jika bukan perubahan kode sumber, tetapi terlepas dari, "fungsi tambahan lainnya" yang saya sebutkan cukup besar hari ini. Ada banyak perubahan kode sumber.
Dan Hulme
@DanHulme sumber perubahan patch atau hanya kode yang diubah dengan tangan? Bagaimana saya bisa melihat hal-hal yang berubah? Saya pernah membaca bahwa Anda dapat menambal kernel linux agar kompatibel dengan android, tetapi di mana tambalan itu sehingga saya dapat membacanya?
Guerlando OC
5
Di samping perbedaan spesifik perangkat dan kunci penguncian yang disebutkan Dan Hulme dan Lie Ryan, Android menghapus fitur System V IPC (antrian pesan, segmen memori bersama, semaphores) yang dapat menyebabkan kebocoran sumber daya ( http://www.kandroid.org/ndk /docs/system/libc/SYSV-IPC.html ). Ini mungkin hanya masalah mengkonfigurasi kernel build. Juga Android IPC pilihan, disebut Binder, memiliki beberapa dukungan di kernel yang setahu saya tidak termasuk dalam kernel Linux standar.
Jawaban:
Perbedaannya berubah dari versi ke versi (Linux dan Android), dan kernel yang tepat berbeda untuk setiap perangkat. Kernel untuk Android adalah kernel Linux mainstream, dengan driver tambahan untuk perangkat tertentu, dan fungsi tambahan lainnya, seperti manajemen daya yang ditingkatkan atau dukungan grafis yang lebih cepat.
Banyak fitur di kernel Android yang kemudian ditambahkan ke Linux hulu setelah komunitas open-source menerimanya (dan mungkin dimodifikasi), tetapi yang lain tidak pernah di-upstream, baik karena tidak dapat diterima oleh pengembang kernel Linux, atau karena mereka ' hanya berlaku untuk Android atau perangkat keras tertentu.
sumber
Di samping perbedaan spesifik perangkat dan kunci penguncian yang disebutkan Dan Hulme dan Lie Ryan, Android menghapus fitur System V IPC (antrian pesan, segmen memori bersama, semaphores) yang dapat menyebabkan kebocoran sumber daya ( http://www.kandroid.org/ndk /docs/system/libc/SYSV-IPC.html ). Ini mungkin hanya masalah mengkonfigurasi kernel build. Juga Android IPC pilihan, disebut Binder, memiliki beberapa dukungan di kernel yang setahu saya tidak termasuk dalam kernel Linux standar.
sumber
Saya pikir Sumber Android ini adalah dokumentasi yang bagus untuk memahaminya.
Dan berikut adalah daftar perubahan yang dilakukan dari kernel mainline untuk kernel Android 4.14.
Fitur terbesar termasuk:
Perbedaan dari LTS
Jika dibandingkan dengan LTS (4.14.0), kernel umum Android memiliki 355 perubahan, 32266 penyisipan, dan penghapusan 1546 (per Februari 2018).
sumber