Linux 5.11 çekirdek sürümü

İki aylık geliştirme sürecinin ardından Linus Torvalds, Linux çekirdeği 5.11'in sürümünü sundu. En dikkate değer değişiklikler arasında şunlar yer alıyor: Intel SGX bölgeleri desteği, sistem çağrılarını yakalamak için yeni bir mekanizma, sanal yardımcı veri yolu, MODULE_LICENSE() olmadan modüllerin birleştirilmesinin yasaklanması, seccomp'ta sistem çağrıları için hızlı filtreleme modu, ia64 mimarisi, WiMAX teknolojisinin "hazırlama" dalına aktarımı, SCTP'yi UDP'de kapsülleme yeteneği.

Yeni sürüm, 15480 geliştiriciden 1991 düzeltme içeriyor, yama boyutu 72 MB (değişiklikler 12090 dosyayı etkiledi, 868025 satır kod eklendi, 261456 satır silindi). 46'de yapılan değişikliklerin yaklaşık %5.11'sı aygıt sürücüleriyle, değişikliklerin yaklaşık %16'sı donanım mimarilerine özgü kodların güncellenmesiyle, %13'ü ağ yığınıyla, %3'ü dosya sistemleriyle ve %4'ü dahili çekirdek alt sistemleriyle ilgilidir.

Ana yenilikler:

  • Disk Alt Sistemi, G/Ç ve Dosya Sistemleri
    • Hasarlı bir dosya sisteminden verileri geri yüklerken kullanılmak üzere Btrfs'ye çeşitli montaj seçenekleri eklendi: Bazı kök ağaçlardaki hasara rağmen (kapsam, uuid, veri yeniden yerleştirme, cihaz, csum, boş alan) montaj için “rescue=ignorebadroots”, “ veriler için sağlama toplamı kontrolünü devre dışı bırakmak için save=ignoredatacsums” ve aynı anda 'ignorebadroots', 'ignoredatacsums' ve 'nologreplay' modlarını etkinleştirmek için "rescue=all". Daha önce kullanımdan kaldırılan "inode_cache" bağlama seçeneği kullanımdan kaldırıldı. Kod, meta veri ve sayfa boyutundan (PAGE_SIZE) daha küçük veri içeren bloklara yönelik desteğin yanı sıra bölgelere ayrılmış alan ayırma modunun desteklenmesi için hazırlanmıştır. Arabelleksiz (Doğrudan IO) istekler iomap altyapısına taşındı. Bir dizi operasyonun performansı optimize edildi; bazı durumlarda hızlanma yüzde onlarcaya ulaşabiliyor.
    • XFS, onarım ihtiyacını işaret eden "tamir gerekiyor" bayrağını uygular. Bu bayrak ayarlandığında, xfs_repair yardımcı programı tarafından bayrak sıfırlanıncaya kadar dosya sistemi bağlanamaz.
    • Ext4 yalnızca hata düzeltmeleri ve optimizasyonların yanı sıra kod temizleme olanağı da sunar.
    • NFS üzerine bağlanan dosya sistemlerinin yeniden dışa aktarımına izin verilir (örn. NFS aracılığıyla bağlanan bir bölüm artık NFS aracılığıyla dışa aktarılabilir ve ara önbellek olarak kullanılabilir).
    • Bir işlemin açık dosya tanımlayıcılarının tüm aralığını aynı anda kapatmasına izin veren close_range() sistem çağrısı, tanımlayıcıları yürütme sırasında kapat modunda kapatmak için bir CLOSE_RANGE_CLOEXEC seçeneği ekledi.
    • F2FS dosya sistemi, hangi dosyaların sıkıştırılmış biçimde saklanacağı konusunda kullanıcı alanı kontrolüne izin vermek için yeni ioctl() çağrıları ekler. Sıkıştırma işleyicisinin çekirdek tarafına mı yoksa kullanıcı alanına mı yerleştirileceğini seçmek için "compress_mode=" bağlama seçeneği eklendi.
    • Overlayf'leri ayrı bir kullanıcı ad alanı kullanarak ayrıcalıksız işlemlerle bağlama yeteneği sağlandı. Güvenlik modeli uygulamasına uygunluğu doğrulamak için tam kod denetimi gerçekleştirildi. Overlayfs ayrıca isteğe bağlı olarak UUID denetimini devre dışı bırakarak dosya sistemi görüntülerinin kopyalarını kullanarak çalıştırma yeteneğini de ekler.
    • Ceph dosya sistemi, verileri şifrelenmiş biçimde iletirken AES-GCM algoritmasının kullanılmasına izin veren msgr2.1 protokolü için destek ekledi.
    • dm-multipath modülü, G/Ç istekleri için rotayı seçerken CPU benzeşimini (“IO benzeşimi”) hesaba katma yeteneğini uygular.
  • Bellek ve sistem hizmetleri
    • Belirli bir sistem çağrısına erişirken kullanıcı alanından istisnalar oluşturmanıza ve bunun yürütülmesini taklit etmenize olanak tanıyan prctl() temeline dayalı yeni bir sistem çağrısı müdahale mekanizması eklenmiştir. Bu işlevsellik, Wine ve Proton'da Windows sistem çağrılarını taklit etmek için gereklidir; bu, Windows API'sini atlayarak doğrudan sistem çağrıları gerçekleştiren oyunlar ve programlarla uyumluluğu sağlamak için gereklidir (örneğin, yetkisiz kullanıma karşı koruma sağlamak için).
    • Kullanıcı alanındaki sayfa hatalarını (ayrılmamış bellek sayfalarına erişim) işlemek için tasarlanan userfaultfd() sistem çağrısı, artık belirli güvenlik açıklarından yararlanmayı daha zor hale getirmek için çekirdek düzeyinde meydana gelen istisna işlemeyi devre dışı bırakma yeteneğine sahiptir.
    • BPF alt sistemi, belirli bir BPF işleyicisine veri bağlamayı sağlayan yerel görev depolaması için destek ekledi.
    • BPF programları tarafından bellek tüketiminin muhasebeleştirilmesi tamamen yeniden tasarlandı - BPF nesnelerinde bellek kullanımını yönetmek için memlock rlimit yerine bir cgroup denetleyicisi önerildi.
    • BPF sözde kodunda tür denetimi bilgisi sağlayan BTF (BPF Tür Formatı) mekanizması, çekirdek modülleri için destek sağlar.
    • io_uring eşzamansız G/Ç arayüzüne kapatma(), renameat2() ve unlinkat() sistem çağrıları için destek eklendi. io_uring_enter() çağrılırken, zaman aşımı belirtme yeteneği eklenmiştir (IORING_FEAT_EXT_ARG bayrağını kullanarak zaman aşımı belirtmek için bağımsız değişken desteğini kontrol edebilirsiniz).
    • Intel Itanium işlemcilerde kullanılan ia64 mimarisi artık kategorisine taşındı, bu da testlerin durdurulduğu anlamına geliyor. Hewlett Packard Enterprise, yeni Itanium ekipmanı siparişlerini kabul etmeyi bıraktı ve Intel de bunu geçen yıl yaptı.
    • Bellek yönetim birimi (MMU) içermeyen MicroBlaze mimarisine dayalı sistemlere yönelik destek durduruldu. Bu tür sistemlere uzun zamandır günlük hayatta rastlanmıyordu.
    • MIPS mimarisi için, gcov yardımcı programı kullanılarak kod kapsamı testi desteği eklenmiştir.
    • Farklı sürücüler gerektiren işlevleri birleştiren çok işlevli cihazlarla (örneğin, Ethernet ve RDMA destekli ağ kartları) arayüz oluşturmak için sanal yardımcı veri yolu desteği eklendi. Veri yolu, MFD (Çok Fonksiyonlu Cihazlar) alt sisteminin kullanımının sorunlu olduğu durumlarda, bir cihaza birincil ve ikincil bir sürücü atamak için kullanılabilir.
    • RISC-V mimarisi için, bellek sayfası taşıma tekniklerini kullanarak büyük bitişik bellek alanlarının tahsis edilmesi için optimize edilmiş CMA (Bitişik Bellek Ayırıcı) bellek ayırma sistemi desteği eklenmiştir. RISC-V için, /dev/mem'e erişimi sınırlamak ve kesme işlem süresini hesaba katmak için araçlar da uygulanır.
    • 32 bit ARM sistemleri için, bellekle çalışırken hataların belirlenmesine yardımcı olan KASan (Çekirdek adresi temizleme) hata ayıklama aracı desteği eklendi. 64 bit ARM için KASan uygulaması MTE etiketlerini (MemTag) kullanacak şekilde dönüştürüldü.
    • Nanosaniye hassasiyetinde zaman aşımlarına izin vermek için epoll_pwait2() sistem çağrısı eklendi (epoll_wait çağrısı milisaniyeleri yönetir).
    • Yapı sistemi artık, kod lisansının MODULE_LICENSE() makrosu kullanılarak tanımlanmadığı yüklenebilir çekirdek modülleri oluşturmaya çalışırken bir hata görüntülüyor. Bundan sonra EXPORT_SYMBOL() makrosunun statik işlevler için kullanılması da derleme hatasına neden olacaktır.
    • GEM nesnelerinin G/Ç için kullanılan bellekten eşlenmesine yönelik destek eklendi; bu, bazı mimarilerde çerçeve ara belleğiyle çalışmayı hızlandırmayı mümkün kıldı.
    • Kconfig, Qt4 desteğini bıraktı (Qt5, GTK ve Ncurses desteğini korurken).
  • Sanallaştırma ve Güvenlik
    • seccomp() sistem çağrısına hızlı yanıt modu desteği eklendi; bu, belirli bir sistem çağrısına izin verilip verilmediğini veya yasaklandığını, çalıştırmayı gerektirmeyen, işleme eklenen sabit eylem bit haritasına göre çok hızlı bir şekilde belirlemenize olanak tanır. bir BPF işleyicisi.
    • Uygulamaların, sistemin geri kalanının sınırlı erişime sahip olduğu, belleğin yalıtılmış, şifrelenmiş alanlarında kod yürütmesine olanak tanıyan Intel SGX (Software Guard eXtensions) teknolojisine dayalı, koruma alanları oluşturmaya ve yönetmeye yönelik entegre çekirdek bileşenleri.
    • Kullanıcı alanından MSR'ye (modele özgü kayıt) erişimi sınırlama girişiminin bir parçası olarak, işlemci enerji verimliliği modunu değiştirmenize olanak tanıyan MSR_IA32_ENERGY_PERF_BIAS kaydına yazma ("normal", "performans", "güç tasarrufu") , yasak.
    • Yüksek öncelikli görevlerin CPU'lar arasında geçişini devre dışı bırakma yeteneği, gerçek zamanlı sistemler için kernel-rt dalından taşındı.
    • ARM64 sistemleri için, sinyal işleyici bellek adresleri için MTE etiketlerini (MemTag, Memory Tagging Extension) kullanma yeteneği eklendi. MTE kullanımı, sigaction()'da SA_EXPOSE_TAGBITS seçeneğinin belirtilmesiyle etkinleştirilir ve halihazırda serbest bırakılmış bellek bloklarına, arabellek taşmalarına, başlatma öncesindeki erişimlere ve sistem dışında kullanımdan kaynaklanan güvenlik açıklarından yararlanılmasını engellemek için işaretçilerin doğru kullanımını kontrol etmenize olanak tanır. mevcut bağlam.
    • dm-verity alt sisteminin ikincil anahtarlığa yerleştirilen sertifikaların karma imzalarını kontrol etmesine olanak tanıyan "DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING" parametresi eklendi. Uygulamada kurulum, yalnızca çekirdeğe yerleşik sertifikaları değil, aynı zamanda işlem sırasında yüklenen sertifikaları da doğrulamanıza olanak tanır; bu, tüm çekirdeği güncellemeden sertifikaları güncellemeyi mümkün kılar.
    • Kullanıcı modu Linux, ortamı dondurmanıza ve uyku modundan uyanmak için SIGUSR1 sinyalini kullanmanıza olanak tanıyan, bekleme modundan bekleme moduna destek ekledi.
    • Belleği sanal makinelere çalışırken takmanıza ve bağlantısını kesmenize olanak tanıyan virtio-mem mekanizması, çekirdek belleğinin boyutundan daha büyük bloklar halinde bellek aktarmayı veya almayı mümkün kılan Büyük Blok Modu (BBM) desteğini ekledi QEMU'da VFIO'yu optimize etmek için gerekli olan blok.
    • TLS'nin çekirdek uygulamasına CHACHA20-POLY1305 şifresi desteği eklendi.
  • Ağ alt sistemi
    • 802.1Q (VLAN) için, sanal köprülere (Sanal Köprülü Ağlar) sahip ağlardaki arızaları tanımlamanıza, doğrulamanıza ve izole etmenize olanak tanıyan bir bağlantı arızası yönetim mekanizması (CFM, Bağlantı Arıza Yönetimi) uygulanmıştır. Örneğin CFM, çalışanlarının yalnızca kendi ekipmanlarına erişebildiği birden fazla bağımsız kuruluşu kapsayan ağlardaki sorunları izole etmek için kullanılabilir.
    • SCTP protokol paketlerinin UDP paketlerinde (RFC 6951) kapsüllenmesine yönelik destek eklendi; bu, SCTP'yi doğrudan SCTP'yi desteklemeyen eski adres çeviricilerine sahip ağlarda kullanmanıza ve ayrıca IP'ye doğrudan erişim sağlamayan sistemlerde SCTP uygulamanıza olanak tanır. katman.
    • WiMAX teknolojisinin uygulanması aşamalandırmaya taşındı ve WiMAX'e ihtiyaç duyan kullanıcı olmaması durumunda gelecekte kaldırılması planlanıyor. WiMAX artık halka açık ağlarda kullanılmamaktadır ve çekirdekte WiMAX'ın kullanılabileceği tek sürücü eski Intel 2400m sürücüsüdür. NetworkManager ağ yapılandırıcısında WiMAX desteği 2015 yılında durduruldu. Şu anda WiMax'ın yerini neredeyse tamamen LTE, HSPA+ ve Wi-Fi 802.11n gibi teknolojiler alıyor.
    • Gelen TCP trafiğini sıfır kopyalama modunda işleme performansını optimize etmek için çalışmalar yapılmıştır; yeni arabelleklere ek kopyalamaya gerek kalmadan. Onlarca veya birkaç yüz kilobaytlık veriyi kapsayan orta büyüklükteki trafik için recvmsg() yerine sıfır kopyanın kullanılması fark edilir derecede daha etkilidir. Örneğin, uygulanan değişiklikler, sıfır kopya kullanırken RPC tarzı trafiğin 32 KB mesajlarla işlenmesinin verimliliğinin %60-70 oranında artırılmasını mümkün kıldı.
    • Birden fazla PPP bağlantısını kapsayan ağ köprüleri oluşturmak için yeni ioctl() çağrıları eklendi. Önerilen yetenek, çerçevelerin bir kanaldan diğerine, örneğin bir PPPoE'den bir PPPoL2TP oturumuna geçmesine olanak tanır.
    • MPTCP'nin (MultiPath TCP) çekirdeğine entegrasyon; TCP protokolünün, farklı IP adresleriyle ilişkili farklı ağ arayüzleri aracılığıyla paketlerin birkaç rota boyunca aynı anda teslim edilmesiyle TCP bağlantısının çalışmasını organize etmeye yönelik bir uzantısıdır. Yeni sürüm, mevcut bir MPTCP bağlantısına yeni akışlar eklerken bağlanılabilecek mevcut IP adreslerini tanıtmak için ADD_ADDR seçeneği desteğini sunuyor.
    • Bağlantı yoklama bütçesi aşıldığında (meşgul yoklama) eylemleri yapılandırma yeteneği eklendi. Daha önce mevcut olan SO_BUSY_POLL modu, bütçe tükendiğinde softirq'e geçmek anlamına geliyordu. Yoklamayı kullanmaya devam etmesi gereken uygulamalar için yeni bir seçenek SO_PREFER_BUSY_POLL önerilmektedir.
    • IPv6, çok kullanıcılı IPv6 L4 VPN'ler ve VRF (Sanal yönlendirme ve iletme) cihazları oluşturmak için kullanılan SRv6 End.DT4 ve End.DT3 modlarına yönelik desteği uygular.
    • Netfilter, küme ifadelerinin uygulanmasını birleştirerek küme listelerinin her bir öğesi için birden fazla ifade belirtmeyi mümkün kıldı.
    • SAR güç sınırlarının yanı sıra AE PWE ve HE MCS parametrelerini yapılandırmak için 802.11 kablosuz yığınına API'ler eklenmiştir. Intel iwlwifi sürücüsü, 6GHz (Ultra Yüksek Bant) aralığı için destek ekledi. Qualcomm Ath11k sürücüsü, bir erişim noktasından diğerine geçiş sırasında dolaşım gecikmelerinden kurtulmanıza olanak tanıyan FILS (IEEE 802.11ai olarak standartlaştırılmış Hızlı İlk Bağlantı Kurulumu) teknolojisine yönelik destek ekledi.
  • Оборудование
    • Amdgpu sürücüsü, AMD "Green Sardine" APU (Ryzen 5000) ve "Dimgrey Cavefish" GPU (Navi 2) desteğinin yanı sıra Zen 2 çekirdekli ve RDNA 2 GPU'lu (Navi 2) AMD Van Gogh APU için ilk desteği sağlar. Yeni Renoir APU tanımlayıcıları için destek eklendi (Zen 2 CPU ve Vega GPU'ya dayalı).
    • Intel video kartlarına yönelik i915 sürücüsü, eksik piksellerin rengini belirlemek için komşu piksellerin durumunu (En yakın komşu enterpolasyonu) dikkate alarak ölçeği artırmaya yönelik bir filtrenin uygulanmasıyla IS (Tamsayı ölçeklendirme) teknolojisini destekler. Intel DG1 ayrık kartlarına yönelik destek genişletildi. Ice Lake / Gen11 yongalarından bu yana mevcut olan ve örneğin bir DisplayPort aracılığıyla 8K ekrana çıktı almak için iki akışı işlemek için bir kod dönüştürücünün kullanılmasına olanak tanıyan "Big joiner" teknolojisi desteği uygulandı. Video belleğindeki iki arabellek arasında eşzamansız olarak geçiş yapmak için bir mod eklendi (eşzamansız çevirme).
    • Yeni sürücü, Ampere mikro mimarisini (GA100, GeForce RTX 30xx) temel alan NVIDIA GPU'lar için başlangıç ​​desteğini ekledi; bu destek şu ana kadar video modlarını kontrol etmeye yönelik araçlarla sınırlıydı.
    • LCD panellerde kullanılan 3WIRE protokolü için destek eklendi. Novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 ve ABT Y030XX067A 3.0 panelleri için destek eklendi. Ayrı olarak, değiştirilmemiş bir çekirdeğin cihazlara yüklenmesini organize etmeyi mümkün kılan OnePlus 6 ve 6T akıllı telefon paneli desteğini de not edebiliriz.
    • Intel'in ilk ayrık USB4 ana bilgisayar denetleyicisi Maple Ridge için destek eklendi.
    • Allwinner H6 I2S, Analog Cihazlar ADAU1372, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI ve XCVR, Realtek RT715 ve Qualcomm SM8250 ses codec bileşenleri için destek eklendi.
    • ARM panoları, cihazları ve platformları için destek eklendi: Galaxy Note 10.1, Microsoft Lumia 950 XL, NanoPi R1, FriendlyArm ZeroPi, Elimo Initium SBC, Broadcom BCM4908, Mediatek MT8192/MT6779/MT8167, MStar Infinity2M, Nuvoton NPCM730, Marvell Armada 382, ​​​Marvell Prestera 98DX3236 tabanlı Mikrotik, Nuvoton NPCM750 BMC, Kontron i.MX8M Mini, Espressobin Ultra, “Trogdor” Chromebook, Kobol Helios64, Engicam PX30.Core içeren sunucular.
    • NVIDIA Tegra 3 tabanlı Ouya oyun konsolu için yerleşik destek.

Aynı zamanda, Latin Amerika Özgür Yazılım Vakfı, tamamen ücretsiz 5.11 çekirdeğinin bir sürümünü oluşturdu - Linux-libre 5.11-gnu, kapsamı sınırlı olan özgür olmayan bileşenler veya kod bölümleri içeren ürün yazılımı ve sürücü öğelerinden arındırılmış üretici tarafından. Yeni sürüm, qat_4xxx (kripto), lt9611uxcm (dsi/hdmi köprüsü), ccs/smia++ (sensör), ath11k_pci, nxp ses alıcı-vericisi ve mhi pci denetleyicisi için sürücüleri temizliyor. Amdgpu, btqca, btrtl, btusb, i915 csr sürücüleri ve alt sistemlerindeki blob temizleme kodu güncellendi. M3 rproc, idt82p33 ptp saat ve qualcomm arm64'teki yeni bloblar devre dışı bırakıldı.

Kaynak: opennet.ru

Yorum ekle