Çekirdeğe genel bakış

Android çekirdeği, yukarı akış Linux uzun süreli destekli (LTS) çekirdeğine dayanır. Google'da LTS çekirdekleri, Android Common Kernels (ACK) oluşturmak için Android'e özel yamalarla birleştirilir.

ACK'ler, kernel/common deposundan oluşturulur. Bu depo, yukarı akış Linux çekirdeğinin üst kümesidir ve Android'e özel ek yamalar içerir.

5.10 ve sonraki sürümlerdeki ACK'ler *genel çekirdek görüntüleri (GKI) çekirdekleri olarak da bilinir. GKI çekirdekleri, donanımdan bağımsız genel çekirdek kodunun ve GKI modüllerinin donanıma özgü sağlayıcı modüllerinden ayrılmasını destekler.

GKI çekirdeği ile satıcı modülleri arasındaki etkileşim, satıcı modüllerinin ihtiyaç duyduğu işlevleri ve genel verileri tanımlayan sembol listelerinden oluşan Kernel Module Interface (KMI) tarafından sağlanır. Şekil 1'de GKI çekirdeği ve satıcı modülü mimarisi gösterilmektedir:

GKI çekirdeği ve tedarikçi modülü mimarisi.

1.şekil GKI çekirdeği ve tedarikçi modülü mimarisi.

Kernel sözlüğü

Çekirdek belgelerinde kullanılan terimler aşağıda verilmiştir.

Çekirdek türleri

Android Common Kernel (ACK)
Bir LTS çekirdeğinin alt akışında olan ve Android topluluğu için önemli yamalar içeren bir çekirdek. Bu yamalar, Linux ana hattına veya uzun vadeli GKI çekirdeklerine birleştirilmemiştir.

5.10 ve sonraki sürümlere sahip çekirdekler, Genel Çekirdek Görüntüsü (GKI) çekirdekleri olarak da adlandırılır.

Android Açık Kaynak Projesi (AOSP) çekirdeği
Android Common Kernel'e bakın.

Android 12 özellikleri 4.19 çekirdeklerine geri bağlanamaz. Özellik seti, Android 11'de 4.19 ile kullanıma sunulan ve Android 12'ye yükseltilen bir cihaza benzer.

Genel Çekirdek Görüntüsü (GKI) çekirdeği

5.10 ve üzeri tüm ACK çekirdekleri(yalnızca aarch64). GKI çekirdeği şu iki bölümden oluşur:

  • Genel çekirdek: GKI çekirdeğinin tüm cihazlarda ortak olan kısmı.

  • GKI modülleri: Google tarafından oluşturulan ve geçerli olduğu durumlarda cihazlara dinamik olarak yüklenebilen çekirdek modülleri. Bu modüller, GKI çekirdeğinin yapıtları olarak oluşturulur ve GKI ile birlikte system_dlkm_staging_archive.tar.gz arşivi olarak teslim edilir. GKI modülleri, çekirdek derleme zamanı anahtar çifti kullanılarak Google tarafından imzalanır ve yalnızca derlendikleri GKI çekirdeğiyle uyumludur.

Çekirdek Modülü Arayüzü (KMI) çekirdeği

GKI çekirdeği başlıklı makaleyi inceleyin.

Uzun süreli desteklenen (LTS) çekirdek

2-6 yıl boyunca desteklenen bir Linux çekirdeği. LTS çekirdekleri yılda bir kez yayınlanır ve Google'ın Android Common Kernels'ının temelini oluşturur.

Şube türleri

ACK KMI çekirdek dalı
GKI çekirdeklerinin oluşturulduğu dal. Şube adları, android15-6.6 gibi çekirdek sürümlerine karşılık gelir.
Android-mainline
Android özelliklerinin birincil geliştirme dalı. Yeni bir LTS çekirdeği yukarı akışta ilan edildiğinde, ilgili yeni GKI çekirdeği, android-mainline'dan dallandırılır.

Linux ana hattı : LTS çekirdekleri de dahil olmak üzere yukarı akış Linux çekirdeklerinin birincil geliştirme dalı.

Diğer terimler

Sertifikalı başlatma görüntüsü
Çekirdek, ikili biçimde (boot.img) teslim edilir ve cihaza yüklenir. Bu resim, yerleştirilmiş sertifikalar içerdiğinden sertifikalı olarak kabul edilir. Böylece Google, cihazın Google tarafından sertifikalı bir çekirdekle gönderildiğini doğrulayabilir.
Dinamik olarak yüklenebilen çekirdek modülü (DLKM)
Cihazın ihtiyaçlarına bağlı olarak cihaz başlatılırken dinamik olarak yüklenebilen bir modül. GKI ve satıcı modülleri, her ikisi de DLKM türleridir. DLKM'ler .ko biçiminde yayınlanır ve sürücü olabilir ya da başka çekirdek işlevleri sunabilir.
GKI projesi
Ortak çekirdek çekirdek işlevlerini satıcıya özel SoC ve kart desteğinden ayırarak çekirdek parçalanmasını ele alan bir Google projesi.

Genel çekirdek görüntüsü (GKI): Google tarafından onaylanmış bir başlatma görüntüsüdür. ACK kaynak ağacından oluşturulmuş bir GKI çekirdeği içerir ve Android destekli bir cihazın başlatma bölümüne yüklenmeye uygundur.

Kernel Module Interface (KMI)
GKI çekirdeği ile satıcı modülleri arasında bir arayüzdür. Bu arayüz, satıcı modüllerinin GKI çekirdeğinden bağımsız olarak güncellenmesine olanak tanır. Bu arayüz, iş ortaklarına özel sembol listeleri kullanılarak satıcı/OEM bağımlılıkları olarak tanımlanan çekirdek işlevlerinden ve global verilerden oluşur.
Tedarikçi modülü
Bir iş ortağı tarafından geliştirilen ve SoC ile cihaza özel işlevsellik içeren donanıma özel bir modül. Tedarikçi modülü, dinamik olarak yüklenebilen bir çekirdek modülü türüdür.

Sırada ne var?

Android çekirdek geliştirme konusunda yeniyseniz aşağıdaki kaynakları okuyarak başlayın:

GKI çekirdek geliştirmeyle ilgili deneyiminiz yoksa GKI geliştirme başlıklı makaleyi okuyarak başlayın.