Ikhtisar kernel

Kernel Android didasarkan pada kernel Linux Long Term Supported (LTS) upstream. Di Google, kernel LTS digabungkan dengan patch khusus Android untuk membentuk apa yang dikenal sebagai Android Common Kernel (ACKs) .

ACK yang lebih baru (versi 5.4 dan lebih tinggi) juga dikenal sebagai kernel GKI . Kernel GKI mendukung pemisahan kode kernel generik agnostik perangkat keras dan modul GKI dari modul vendor khusus perangkat keras.

Kernel GKI berinteraksi dengan modul vendor khusus perangkat keras yang berisi sistem pada chip (SoC) dan kode khusus board. Interaksi antara kernel GKI dan modul vendor diaktifkan oleh Kernel Module Interface (KMI) yang terdiri dari daftar simbol yang mengidentifikasi fungsi dan data global yang diperlukan oleh modul vendor. Gambar 1 menunjukkan arsitektur modul kernel dan vendor GKI:

arsitektur GKI
Gambar 1. Arsitektur GKI

Glosarium kernel

Bagian ini berisi istilah-istilah yang digunakan di seluruh dokumentasi kernel.

Jenis kernel

Kernel Umum Android (ACK)
Kernel yang merupakan downstream dari kernel LTS dan menyertakan patch yang menarik bagi komunitas Android yang belum digabungkan ke dalam kernel Linux utama atau kernel yang Didukung Jangka Panjang (LTS). ACK yang lebih baru (versi 5.4 dan lebih tinggi) juga dikenal sebagai kernel GKI karena mendukung pemisahan kode Kernel Generik agnostik perangkat keras dan modul GKI agnostik perangkat keras.
Kernel Proyek Sumber Terbuka Android (AOSP).
Lihat Kernel Umum Android.
Fitur Kernel
Kernel yang fitur rilis platformnya dijamin akan diimplementasikan. Misalnya, di Android 12, dua kernel fitur adalah android12-5.4 dan android12-5.10. Fitur Android 12 tidak dapat di-backport ke kernel 4.19; rangkaian fiturnya akan serupa dengan perangkat yang diluncurkan dengan 4.19 di R dan ditingkatkan ke S).
kernel inti generik
Bagian kernel GKI yang umum di semua perangkat.
Kernel Gambar Kernel Generik (GKI).
Kernel ACK yang lebih baru (5.4 dan lebih tinggi) (saat ini hanya aarch64). Kernel ini memiliki dua bagian: Kernel inti GKI dengan kode yang umum di semua perangkat dan modul GKI yang dikembangkan oleh Google yang dapat dimuat secara dinamis di perangkat jika memungkinkan.
Kernel Antarmuka Modul Kernel (KMI).
Lihat kernel GKI .
Luncurkan Kernel
Kernel yang valid untuk meluncurkan perangkat untuk rilis platform Android tertentu. Misalnya, di Android 12, kernel peluncuran yang valid adalah 4.19, 5.4, dan 5.10.
Kernel yang Didukung Jangka Panjang (LTS).
Kernel Linux yang didukung selama 2 hingga 6 tahun. Kernel LTS dirilis setahun sekali dan menjadi dasar bagi setiap ACK Google.

Jenis cabang

Cabang kernel ACK KMI
Cabang tempat kernel GKI dibuat. Misalnya android12-5.10 dan android13-5.15.
Android-jalur utama
Cabang pengembangan utama untuk fitur Android. Ketika kernel LTS baru dideklarasikan di upstream, kernel GKI baru yang terkait akan dicabangkan dari android-mainline.
jalur utama Linux
Cabang pengembangan utama untuk kernel Linux upstream, termasuk kernel LTS.

Istilah lainnya

Gambar boot bersertifikat
Kernel dikirimkan dalam bentuk biner ( boot.img ) dan di-flash ke perangkat. Gambar ini disertifikasi dalam arti berisi sertifikat yang tertanam sehingga Google dapat memverifikasi bahwa perangkat dikirimkan dengan kernel yang disertifikasi oleh Google.
Modul kernel yang dapat dimuat secara dinamis (DLKM)
Sebuah modul yang dapat dimuat secara dinamis selama booting perangkat tergantung pada kebutuhan perangkat. Modul GKI dan vendor keduanya merupakan jenis DLKM. DLKM dirilis dalam bentuk .ko dan dapat menjadi driver atau dapat memberikan fungsionalitas kernel lainnya.
proyek GKI
Sebuah proyek Google yang menangani fragmentasi kernel dengan memisahkan fungsionalitas kernel inti umum dari SoC khusus vendor dan dukungan board ke dalam modul yang dapat dimuat.
Gambar Kernel Generik (GKI)
Gambar boot yang disertifikasi oleh Google yang berisi kernel GKI yang dibuat dari pohon sumber ACK dan cocok untuk di-flash ke partisi boot perangkat Android.
KMI
Antarmuka antara kernel GKI dan modul vendor yang memungkinkan modul vendor diperbarui secara independen dari kernel GKI. Antarmuka ini terdiri dari fungsi kernel dan data global yang telah diidentifikasi sebagai dependensi vendor/OEM menggunakan daftar simbol per mitra.
Modul GKI
Modul kernel yang dibuat oleh Google yang dapat dimuat secara dinamis di perangkat jika memungkinkan. Modul-modul ini dibuat sebagai artefak kernel GKI dan dikirimkan bersama GKI sebagai arsip system_dlkm_staging_archive.tar.gz . Modul GKI ditandatangani oleh Google menggunakan pasangan kunci waktu pembuatan kernel dan hanya kompatibel dengan kernel GKI yang digunakan untuk membuatnya.
Modul vendor
Modul khusus perangkat keras yang dikembangkan oleh mitra dan berisi SoC serta fungsionalitas khusus perangkat. Modul vendor adalah jenis modul kernel yang dapat dimuat secara dinamis.

Apa berikutnya?