Çekirdek sürüm notları

Bu sayfada, her çekirdek sürümündeki başlıca özellikler özetlenmekte ve ek bilgilere bağlantılar verilmektedir.

Kernel 6.12'deki yeni özellikler

Bu bölümde, 6.12 çekirdeğindeki yeni özellikler açıklanmaktadır.

Bellek ayırma profili oluşturma

Bellek kullanımını anlamanın anahtarı, tahsislerin nerede yapıldığını bilmektir. Kernel 6.12, bellek ayırma profili oluşturma (yapılandırmada CONFIG_MEM_ALLOC_PROFILING) adlı yeni bir bellek ayırma ilişkilendirme sistemi içerir. Bellek ayırma profili oluşturma sayesinde, her ayırma benzersiz bir kaynak satırıyla ilişkilendirilir. Böylece, ayırmalarla ilgili sorunlar hızlı bir şekilde tespit edilebilir. Ayrıca, bellek ayırma profilini çıkarma:

  • Mühendislik aşamasında kullanılır ancak standart GKI görüntüsünde de mevcuttur.

  • sysctl.vm.mem_profiling önyükleme parametresi kullanılarak etkinleştirilebilir.

  • Hem çekirdek içi hem de yüklenen modüller için çalışır.

Sıfır kopyalama ve çoklu okuma ile daha hızlı io_uring

6.12 çekirdeğinde, statsd ve logd modülleri, performanslarını artırmak için sendfile zero-copy kullanır.

Ayrıca bu çekirdek sürümü, tek bir okuma işleminin aynı anda birden fazla veri parçasını alabileceği çoklu okuma özelliğini uygulayarak performansı artırır.

Geliştirilmiş Berkeley Packet Filter (BPF) özellikleri ve desteği

6.12 çekirdeğinde BPF araç zinciri, CO-RE'yi ve çeşitli modern özellikleri destekleyecek şekilde taşındı. Ayrıca, yeni bir BPF yükleyici, AOSP'nin parçası olan programlarda modern BPF kullanımını sağlar.

Proxy yürütme

Proxy yürütme, düşük öncelikli işlemler tarafından tutulan kilitleri kurtarmak için planlayıcının yüksek öncelikli işlemlerden CPU döngüleri ödünç almasına olanak tanır. Bu özellik, öncelik ters çevirme sorunlarını azaltır.

Kernel 6.6'daki yeni özellikler

Bu bölümde, 6.6 çekirdeğindeki yeni özellikler açıklanmaktadır.

Rust desteği

Birden fazla 6.6 sürümü çekirdek projesinde Rust kullanılıyor.

Sanal bellek alanı (VMA) başına kilitler

Kernel 6.6, mmap_lock (eski adıyla mmap_sem) ile ilgili çekişme sorunlarını gidermek için sanal bellek alanı başına kilitler kullanır. Bu nedenle, çok sayıda iş parçacığı kullanan uygulamaların başlatma süreleri %20'ye kadar kısalabilir.

Earliest Eligible Virtual Deadline First (EEVDF) zamanlayıcı, CFS'nin yerini alıyor

EEVDF, kısa ve uzun süren görevler arasında CPU erişimini daha iyi dengelemek için Tamamen Adil Planlayıcı'nın (CFS) yerini alır.

Okuma kopyası güncelleme (RCU) geri aramalarından kaynaklanan güç tüketiminin azaltılması

RCU_LAZY seçeneği, güç tasarrufu için zamanlayıcı tabanlı bir RCU geri çağırma toplu işleme yöntemi kullanır. Hafif yüklenmiş veya boşta duran bir sistemde bu seçenek, güç tüketimini% 5 ila %10 oranında azaltabilir.

Daha iyi ZRAM bellek sıkıştırması

Yeni CONFIG_ZRAM_MULTI_COMP derleme ayarı, ZRAM'in sayfaları üç alternatif algoritmadan biriyle yeniden sıkıştırmasına olanak tanır. Bu yeniden sıkıştırma, sıkıştırılmış belleği daha da küçülterek etkin görevler için daha fazla boş alan sağlar.

Kernel 6.1'deki yeni özellikler

Bu bölümde, 6.1 çekirdeğindeki yeni özellikler açıklanmaktadır.

Çekirdek kontrol akışı bütünlüğü (KCFI) ile daha hızlı güvenlik

KCFI, kontrol akışı bütünlüğünün (CFI) yerini alarak çalışma zamanı maliyetini azaltır ve derleme zamanı maliyeti oluşturmaz. Çalışma zamanı maliyetinin düşürülmesi, KCFI'ın CFI'ya kıyasla daha fazla yerde (özellikle izleme noktaları ve satıcı kancaları) etkinleştirilmesine olanak tanır.

KCFI'ya ek olarak, kernel 6.1; katı memcpy sınır kontrolü ve doğrudan spekülasyon saldırısı azaltma gibi çeşitli güvenlik özelliklerini kullanıma sunar.

KCFI hakkında daha fazla bilgi için Çekirdek kontrol akışı bütünlüğü başlıklı makaleyi inceleyin.

Çok Nesilli LRU (MGLRU)

MGLRU, hangi sayfaların gerçekten kullanıldığını daha iyi belirleyerek bellek yönetimini iyileştirmek için 6.1 sürüm numaralı çekirdeğe eklendi. Bu iyileştirme, sistemde bellek sıkıntısı yaşandığında uygulamaların durdurulması ihtiyacını azaltır. Bu güncelleme, cihazın genel yanıt verme hızı daha iyi olduğundan kullanıcı deneyimini de iyileştirir.

MGLRU'nun uygulanması, bazı durumlarda kırmızı-siyah ağacın (rbtree) yerine kullanılabilecek yeni bir RCU güvenli akçaağaç için de destek içerir. RCU güvenli maple ağacı, kullanıldığında daha düşük ayak izi ve kilitlenmeme özelliği sayesinde performansı artırır.

MGLRU hakkında daha fazla bilgi için Multi-Gen LRU başlıklı makaleyi inceleyin.

Planlama

Zamanlayıcıyı korumak ve güncellemek, çekirdeği iyileştirme çalışmalarının önemli bir yönüdür. 6.1'deki çekirdek güncellemeleri şunları içerir:

  • L2 önbelleğini paylaşan çekirdeklere geçiş yaparak performansı artıran küme duyarlı planlama eklendi.
  • Gereksiz enerji marjı sezgiseli kaldırıldı. Bu güncelleme, bazı taşıma işlemlerini sınırlayarak enerji kullanımını %5'e kadar iyileştirir.
  • Uyanma gecikmesini azaltmak için yük dengeleme iyileştirildi.
  • RCU hızlandırılmış ek süreleri gerçek zamanlı bir kthread'e taşındı. Bu güncelleme, RCU ile ilgili gecikme aykırı değerlerini önemli ölçüde azalttı.

Grafik

Kernel 6.1, senkronizasyon dosyalarını dışa ve içe aktarmak için dma-buf'a yönelik yeni yöntemler içerir. Bu yöntemler, Vulcan Video API'nin gereklilikleriyle uyumludur.

Yeni futex_waitv() yöntemi, aynı anda birden fazla futex'in beklenmesini sağlayarak oyunların diğer platformlardan taşınmasını kolaylaştırır.

Hata ayıklama araçları

Çekirdek kodundaki yarışları belirlemek için hata ayıklama derlemelerinde Kernel Concurrency SANitizer'ı (KCSAN) kullanın.

Ayrıca, çekirdekte başlatılmamış değerleri bulmak için Kernel Memory SANitizer'ı (KMSAN) kullanın.

ARM64 desteğiyle ilgili iyileştirmeler

6.1 çekirdeği, ARM64 mimarisi için aşağıdakiler de dahil olmak üzere çeşitli iyileştirmeler sunar:

  • ARMv8.6 zamanlayıcı uzantıları için destek
  • QARMA3 işaretçi kimlik doğrulama algoritması desteği
  • ARMv9 Ölçeklenebilir Matris Uzantısı (SME) için ilk destek
  • Alternatif özellik yamalarında iyileştirmeler yapılarak daha küçük bir çekirdek görüntüsü boyutu elde edildi.