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 profili oluşturma:
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 sendfile zero-copy'yi kullanarak performanslarını artırır.
Ayrıca bu çekirdek sürümünde, tek bir okuma işleminin aynı anda birden fazla veri parçası alabileceği çoklu okuma işlemi uygulanır. Bu da performansı artırır.
Gelişmiş 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ülerini ö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 çekirdek projesinde Rust kullanılıyor.
Sanal bellek alanı (VMA) başına kilitler
Kernel 6.6, mmap_sem
(eski adıyla mmap_lock
) 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 Zamanlayıcı'nın (CFS) yerini alır.
Okuma kopyası güncelleme (RCU) geri çağırmalarından kaynaklanan güç tüketiminin azaltılması
RCU_LAZY
seçeneği, güç tasarrufu için zamanlayıcı tabanlı bir RCU geri çağırma toplama yöntemi kullanır. Hafif yüklenmiş veya boşta duran bir sistemde bu seçenek, tüketilen gücü% 5 ila %10 oranında azaltabilir.
Daha iyi ZRAM bellek sıkıştırma
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 işlemi, 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 düşürür ve derleme zamanı maliyeti oluşturmaz. Çalışma zamanı maliyetinin düşürülmesi, KCFI'nın CFI'ya kıyasla daha fazla yerde (özellikle izleme noktaları ve satıcı kancaları) etkinleştirilmesine olanak tanır.
Kernel 6.1, KCFI'ya ek olarak sıkı memcpy
sınır kontrolü ve doğrudan spekülasyon saldırısı azaltma gibi çeşitli güvenlik özellikleri sunar.
KCFI hakkında daha fazla bilgi için Çekirdek kontrol akışı bütünlüğü başlıklı makaleyi inceleyin.
Çok Nesilli En Küçük Değiştirilebilir Birim (MGLRU)
MGLRU, hangi sayfaların gerçekten kullanıldığını daha iyi belirleyerek bellek yönetimini iyileştirmek için 6.1 çekirdeğine eklendi. Bu iyileştirme, sistemde bellek yetersizliği 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ılabilen yeni bir RCU güvenli akçaağaç desteğini de içerir. RCU güvenli akçaağaç, kullanıldığında daha düşük yer kaplaması ve kilitlenmemesi nedeniyle 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.
- Uyandırma 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 büyük ölçüde azalttı.
Grafik
Kernel 6.1, senkronizasyon dosyalarını dışa ve içe aktarmak için dma-buf ile ilgili 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.