Android çekirdeği, yayın öncesi bir Linux Uzun Süreli Desteklenen (LTS) çekirdeğini temel alır. Google'da LTS çekirdekleri, Android'e özel yamalarla birleştirilerek Android Ortak Çekirdekleri (ACK'ler) olarak bilinen öğeler oluşturulur.
Daha yeni ACK'ler (5.4 ve sonraki sürümler) GKI çekirdekleri olarak da bilinir. GKI çekirdekleri, donanıma duyarlı olmayan genel çekirdek çekirdeği kodunun ve GKI modüllerinin donanıma özgü tedarikçi modüllerinden ayrılmasını destekler.
GKI çekirdeği, çip üzerinde sistem (SoC) ve kart özelinde kod içeren donanıma özel tedarikçi modülleri ile etkileşim kurar. GKI çekirdeği ile tedarikçi modülleri arasındaki etkileşim, tedarikçi modülleri tarafından ihtiyaç duyulan işlevleri ve genel verileri tanımlayan simge listelerinden oluşan çekirdek modülü arayüzü (KMI) tarafından etkinleştirilir. Şekil 1'de GKI çekirdeği ve tedarikçi modülü mimarisi gösterilmektedir:
![GKI mimarisi](https://source.android.com/static/docs/core/architecture/images/generic-kernel-image-architecture.png?authuser=3&hl=tr)
Çekirdek sözlüğü
Bu bölümde, çekirdek dokümanlarında kullanılan terimler yer almaktadır.
Çekirdek türleri
- Android Ortak Çekirdeği (ACK)
- LTS çekirdeğinden gelen ve Android topluluğu için ilgi çekici olan, Linux ana hattı veya uzun süreli destekli (LTS) çekirdeklere dahil edilmemiş yamalar içeren bir çekirdek. Donanımdan bağımsız Genel Çekirdek kodunun ve donanımdan bağımsız GKI modüllerinin ayrılmasını destekledikleri için daha yeni ACK'ler (5.4 ve sonraki sürümler) GKI çekirdekleri olarak da bilinir.
- Android Açık Kaynak Projesi (AOSP) çekirdeği
- Android Ortak Çekirdeği başlıklı makaleyi inceleyin.
- Özellik çekirdeği
- Platform sürüm özelliklerinin uygulanacağı garanti edilen bir çekirdek. Örneğin, Android 12'de iki özellik çekirdeği android12-5.4 ve android12-5.10 idi. Android 12 özellikleri 4.19 çekirdeklerine geri bağlanamaz. Bu durumda özellik grubu, Android 11'de 4.19 ile kullanıma sunulan ve Android 12'ye yükseltilen bir cihaza benzer olur.
- genel çekirdek çekirdeği
- GKI çekirdeğinin tüm cihazlarda ortak olan kısmı.
- Genel Çekirdek Görüntüsü (GKI) çekirdeği
- Daha yeni (5.4 ve üzeri) ACK çekirdeği (şu anda yalnızca aarch64). Bu çekirdek iki bölümden oluşur: Tüm cihazlarda ortak olan koda sahip çekirdek GKI çekirdeği ve Google tarafından geliştirilen ve uygun olduğu durumlarda cihazlara dinamik olarak yüklenebilen GKI modülleri.
- Çekirdek Modülü Arayüzü (KMI) çekirdeği
- GKI çekirdeği bölümüne bakın.
- Launch Kernel
- Belirli bir Android platform sürümü için cihazı başlatmak üzere geçerli olan bir çekirdek. Örneğin, Android 12'de geçerli başlatma çekirdekleri 4.19, 5.4 ve 5.10 idi.
- Uzun Süreli Desteklenen (LTS) çekirdek
- 2 ila 6 yıl boyunca desteklenen bir Linux çekirdeği. LTS çekirdekleri yılda bir kez yayınlanır ve Google'ın ACK'lerinin her birinin temelini oluşturur.
Şube türleri
- ACK KMI çekirdek dalı
- GKI çekirdeklerinin derlendiği dal. Örneğin, android12-5.10 ve android13-5.15.
- Android-mainline
- Android özellikleri için birincil geliştirme dalıdır. Yeni bir LTS çekirdeği yukarı akışta tanımlandığında, ilgili yeni GKI çekirdeği android-mainline'den ayrılır.
- Linux ana hattı
- LTS çekirdekleri dahil olmak üzere yayın öncesi Linux çekirdekleri için birincil geliştirme dalıdır.
Diğer terimler
- Sertifikalı önyükleme görüntüsü
- Çekirdek, ikili biçimde (
boot.img
) yayınlandı ve cihaza yüklendi. Bu resim, Google'ın cihazın Google sertifikalı bir çekirdekle gönderildiğini doğrulayabilmesi için yerleşik sertifikalar içerdiği için sertifikalıdır. - Dinamik olarak yüklenebilir çekirdek modülü (DLKM)
- Cihazın ihtiyaçlarına bağlı olarak cihazın başlatılması sırasında dinamik olarak yüklenebilecek bir modül. GKI ve tedarikçi modülleri, DLKM'lerin iki türüdür. DLKM'ler
.ko
biçiminde yayınlanır ve sürücü olabilir veya diğer çekirdek işlevlerini sağlayabilir. - GKI projesi
- Ortak çekirdek çekirdek işlevini, satıcıya özel SoC ve kart desteğinden yüklenebilir modüllere ayırarak çekirdek parçalanmasını ele alan bir Google projesi.
- Genel Çekirdek Görüntüsü (GKI)
- ACK kaynak ağacından oluşturulan ve Android cihazın önyükleme bölümüne yazılmaya uygun bir GKI çekirdeği içeren, Google tarafından onaylanmış bir önyükleme resmi.
- KMI
- GKI çekirdeği ile tedarikçi firma modülleri arasında, tedarikçi firma modüllerinin GKI çekirdeğinden bağımsız olarak güncellenmesine olanak tanıyan bir arayüz. Bu arayüz, iş ortağı başına simge listeleri kullanılarak tedarikçi/OEM bağımlılıkları olarak tanımlanan çekirdek işlevlerden ve global verilerden oluşur.
- GKI modülleri
- Google tarafından oluşturulan ve uygun olduğu durumlarda cihazlara dinamik olarak yüklenebilen çekirdek modülleri.
Bu modüller, GKI çekirdeğinin yapıları olarak oluşturulur ve
system_dlkm_staging_archive.tar.gz
arşivi olarak GKI ile birlikte yayınlanır. GKI modülleri, çekirdek derleme zamanı anahtar çifti kullanılarak Google tarafından imzalanır ve yalnızca derlendikleri GKI çekirdeğiyle uyumludur. - Tedarikçi modülü
- Bir iş ortağı tarafından geliştirilen ve SoC'ye ve cihaza özel işlevler içeren, donanıma özel bir modül. Tedarikçi modülü, dinamik olarak yüklenebilir bir çekirdek modülü türüdür.
Sırada ne var?
- Android çekirdek geliştirme konusunda yeniyseniz aşağıdakileri okuyarak başlayabilirsiniz:
- Uzun Süreli Kararlı Çekirdekler: ACK'lere beslenen yayın öncesi LTS çekirdekleriyle ilgili arka plan bilgileri.
- Android Ortak Çekirdekleri: ACK'ler hakkında bilgi.
- GKI çekirdek geliştirme konusunda yeniyseniz GKI geliştirme bölümünü okuyarak başlayın.