Çekirdek sürümü Linux 5.16

İki aylık geliştirme sürecinin ardından Linus Torvalds, çekirdeği yayınladı. Linux 5.16 En dikkat çekici değişikliklerden biri: performansı artırmak için futex_waitv sistem çağrısı. Windows- Wine oyunları, fanotify aracılığıyla dosya sistemi hata takibi, bellek yönetim sisteminde folio kavramı, AMX işlemci komutlarına destek, ağ soketleri için bellek ayırma yeteneği, "çıkış" aşamasında netfilter paket sınıflandırmasına destek, kullanılmayan bellek alanlarını proaktif olarak boşaltmak için DAMON alt sisteminin kullanımı, büyük hacimli yazma işlemleri sırasında aşırı yüklenmelerin daha iyi yönetilmesi, çoklu sürücülü sabit disklere destek.

Yeni sürüm, 15415 geliştiriciden gelen 2105 düzeltmeyi içeriyor, yama boyutu 45 MB (değişiklikler 12023 dosyayı etkiledi, 685198 satır kod eklendi, 263867 satır silindi). 44'de tanıtılan değişikliklerin yaklaşık %5.16'ü aygıt sürücüleriyle, değişikliklerin yaklaşık %16'sı donanım mimarilerine özgü kodların güncellenmesiyle, %16'i ağ yığınıyla, %4'ü dosya sistemleriyle ve %4'ü dahili çekirdek alt sistemleriyle ilgilidir.

Çekirdek 5.16'teki önemli yenilikler:

  • Disk Alt Sistemi, G/Ç ve Dosya Sistemleri
    • Dosya sisteminin durumunu izlemek ve hataların oluşumunu izlemek için fannotify mekanizmasına araçlar eklendi. Hatalarla ilgili bilgiler, yöneticiyi derhal bilgilendirmek veya kurtarma süreçlerini başlatmak için kullanıcı alanında çalışan izleme sistemlerinde ele geçirilebilen yeni bir olay türü olan FAN_FS_ERROR kullanılarak iletilir. Bir dizi hata art arda meydana geldiğinde, fanotify, arızanın nedeninin sonraki analizini basitleştirmek için ilk hata mesajının genel bir sorun sayacıyla birlikte iletilmesini sağlar. Hata izleme desteği şu anda yalnızca Ext4 dosya sistemi için uygulanmaktadır.
    • Yazma işlemlerinin hacmi sürücünün verimini aştığında ve sistem, önceden gönderilen istekler tamamlanana kadar bir işlemin yazma isteklerini engellemek zorunda kaldığında ortaya çıkan yazma tıkanıklığının iyileştirilmiş yönetimi. Yeni versiyonda, aşırı yüklenmenin ortaya çıkması ve görevlerin engellenmesi hakkında bilgi elde etmek için kullanılan çekirdek mekanizması tamamen yeniden tasarlandı, çünkü eski uygulamada aşırı yazma işleminin bellek sayfalarının takasla değiştirilmesiyle ilişkilendirilmesinde sorunlar vardı. Sistemde yetersiz bellek olduğunda bölüm.
    • Btrfs, depolama alanını yalnızca sıralı veri eklenmesine izin verilen blok veya sektör gruplarını oluşturan bölgelere bölmek için sabit sürücülerde veya NVMe SSD'lerde kullanılan cihaz bölgeleme teknolojisi (Bölgelenmiş Ad Alanı) desteğini uygular ve tüm veri grubunu günceller. bloklar. Ayrıca inode loglamada küçük optimizasyonlar yapıldı, bu da dbench testindeki verimi %3 artırdı ve gecikmeyi %11 azalttı. Verimliliği artırmak için ağaçtaki arama ve engelleme işlemlerinin sayısının azaltıldığı dizin kayıt mekanizması yeniden tasarlandı. Toplu modda öğelerin btree yapısına eklenmesi hızlandırıldı (elemanların toplu olarak eklenmesi için gereken süre %4, silme süresi ise %12 oranında azaltıldı). Kısmi sayfalar yazarken sıkıştırma kullanımına yönelik sınırlı desteğin yanı sıra alt sayfaları birleştirme yeteneği eklendi. “Gönder” komutu için protokolün ikinci versiyonuna destek sağlanmasına yönelik hazırlıklar yapıldı.
    • XFS dosya sistemi, sık kullanılan öğeler için ayrı levha önbellekleri kullanarak ve bazı veri yapılarını azaltarak bellek tüketimini azaltır.
    • Ext4 dosya sisteminde yalnızca hata düzeltmeleri ve Inode tablosunun tembel başlatma parametrelerinin daha doğru hesaplanması not edilmiştir.
    • İşlemleri CPU çekirdeklerine bağlama verimliliğini önemli ölçüde artırmak için blok cihaz düzeyinde optimizasyonlar uygulandı.
    • Birden fazla bağımsız sürücüye (çoklu çalıştırıcı) sahip sabit sürücüler için başlangıç ​​desteği eklendi, bu da manyetik plakanın farklı alanlarındaki birkaç sektöre aynı anda erişmeyi mümkün kıldı.
    • Optik disk sürücüsündeki medya değişikliği olaylarını algılamak için yeni bir ioctl komutu CDROM_TIMED_MEDIA_CHANGE eklendi.
    • EROFS (Gelişmiş Salt Okunur Dosya Sistemi) dosya sistemi, birden fazla depolama aygıtının üzerinde çalışma olanağını ekledi. Farklı cihazlar tek bir 32 bitlik blok adres alanına eşlenebilir. LZMA algoritmasını kullanan sıkıştırma desteği de eklenmiştir.
    • Depolamaya yerleştirildiğinde dosya parçalanmasını kontrol etmek için (örneğin, parçalanmış depolamayla çalışmaya yönelik optimizasyonlarda hata ayıklamak için) F2FS dosya sistemine bağlama seçenekleri eklenmiştir.
    • CEPH, varsayılan olarak eşzamansız dizin oluşturma ve silme işlemlerini etkinleştirir (eski davranışa geri dönmek için montaj sırasında '-o wsync' işaretini kullanın). Harici nesnelerin kopyalama işlemlerini izleyen ölçümlerin bakımı eklendi.
    • CIFS'ye, ağ soketi için tcp_sock_set_nodelay modunu ayarlayan ve TCP yığınını doldurmak için kuyruğun beklenmesini devre dışı bırakan bir tcpnodelay bağlama parametresi eklenmiştir. Yeniden bağlama sırasında iç içe geçmiş DFS Bağlantıları (Dağıtılmış Dosya Sistemi) için destek eklendi.
    • Toplu modda bir blok cihaza yönelik isteklerin tamamlanması için destek eklendi. Değişikliğin test edilmesi, tek bir CPU çekirdeğinde Optane sürücülerinden rastgele okuma işlemlerinin yoğunluğunun 6.1'den 6.6 milyon IOPS'ye arttığını gösterdi.
  • Bellek ve sistem hizmetleri
    • Yeni bir sistem çağrısı olan futex_waitv eklendi; bu sayede birden fazla futex'in durumu tek bir sistem çağrısıyla izlenebiliyor. Bu özellik, mevcut olan özelliğe benzer. Windows futex_waitv aracılığıyla taklit edilebilen WaitForMultipleObjects işlevselliği, performansı artırmak için faydalı olabilir. Windows-Wine veya Proton altında çalışan oyunlar. Ayrıca, eş zamanlı futex beklemeleri, yerel oyun derlemelerinin performansını optimize etmek için de kullanılabilir. Linux.
    • Bazı çekirdek alt sistemlerinde kullanımı tipik iş yükleri altında bellek yönetimini hızlandıracak olan sayfa folioları kavramı uygulanmıştır. Şu anda çekirdekteki ana bellek yönetimi alt sistemi ve sayfa önbelleğinin uygulanması halihazırda foliolara aktarılmış olup, gelecekte dosya sistemlerinin de aktarılması planlanmaktadır. Gelecekte çekirdeğe çok sayfalı folio desteğinin de eklenmesi planlanıyor.

      Ciltler bileşik sayfalara benzer ancak gelişmiş anlambilime ve daha net bir iş organizasyonuna sahiptir. Sistem belleğini yönetmek için kullanılabilir RAM, boyutu mimariye göre değişen bellek sayfalarına bölünür, ancak x86 sistemlerinde kilobayt (tipik olarak 4096 bayt) cinsinden ölçülür. Modern sistemler onlarca gigabayt RAM ile birlikte gelir, bu da çok sayıda bellek sayfasını işleme ihtiyacı nedeniyle bellek yönetimini daha karmaşık hale getirir. Sayfa sayısını azaltmak için çekirdek daha önce birden fazla fiziksel bellek sayfasını kapsayan yapılara sahip bileşik sayfalar konseptini uygulamıştı. Ancak birleştirilmiş bellek sayfalarını işlemeye yönelik API, arzulanan çok şey bıraktı ve ek yüke yol açtı.

    • Görev zamanlayıcıya, CPU'daki önbellek kümelemesini hesaba katan bir işleyici eklendi. Kunpeng 920 (ARM) ve Intel Jacobsville (x86) gibi bazı işlemcilerde, belirli sayıda (genellikle 4) CPU çekirdeği L3 veya L2 önbelleğini birleştirebilir. Bu tür topolojilerin dikkate alınması, görevlerin görev zamanlayıcıdaki CPU çekirdekleri arasında dağıtılmasının verimliliğini önemli ölçüde artırabilir; çünkü görevlerin aynı CPU kümesi içinde taşınması, bellek erişim veriminin artırılmasına ve önbellek çekişmesinin azaltılmasına olanak tanır.
    • Sapphire Rapids kod adlı yakında çıkacak Intel Xeon Ölçeklenebilir sunucu işlemcilerinde uygulanan AMX (Gelişmiş Matris Uzantıları) talimatları için destek eklendi. AMX, matris çarpımı için TMUL (Tile matris MULTiply) gibi yeni yapılandırılabilir TMM "TILE" kayıtları ve bu kayıtlardaki verileri işlemek için talimatlar sunar.
    • Son sürümde eklenen DAMON (Veri Erişim Monitörü) alt sistemine dayalı olarak çeşitli yeni özellikler uygulanmıştır; bu, kullanıcı alanında çalışan seçilen işlemle ilişkili olarak RAM'deki verilere erişimi izlemenize olanak tanır. Örneğin alt sistem, sürecin tüm çalışması boyunca hangi bellek alanlarına eriştiğini, hangi bellek alanlarının talep edilmeden kaldığını analiz etmeyi mümkün kılar.
      • DAMON_RECLAIM, erişilmeyen bellek alanlarını tanımlamak ve çıkarmak için. Mekanizma, boş bellek tükenmeye yaklaştığında bellek sayfalarını proaktif olarak geçici olarak çıkarmak için kullanılabilir.
      • Belirli bir bellek erişimi frekansının sabit olduğu bellek alanlarını işlemek için ek boş bellek serbest bırakmak gibi belirli madvise() işlemlerini uygulamak için DAMOS (Veri Erişimi İzleme Tabanlı Operasyon Şemaları). DAMOS parametreleri debugfs aracılığıyla yapılandırılır.
      • Belleğin fiziksel adres alanını izleme yeteneği (önceden yalnızca sanal adresler izlenebiliyordu).
    • Zstd sıkıştırma algoritmasının uygulanması, sıkıştırma kullanan çeşitli çekirdek alt sistemlerinin performansını önemli ölçüde artıran 1.4.10 sürümüne güncellendi (örneğin, bir çekirdek görüntüsünün paketten çıkarılması %35 hızlandırıldı, sıkıştırılmış verilerin paketten çıkarılması performansı %15 artırıldı) Btrfs ve SquashFS'de %30, ZRAM'de ise %1.3.1 arttı. Çekirdek başlangıçta, üç yıl önce piyasaya sürülen ve pek çok önemli optimizasyon içermeyen XNUMX sürümünü temel alan ayrı bir zstd uygulamasını kullandı. Geçerli sürüme geçmenin yanı sıra, eklenen yama zstd yukarı akış dalı ile senkronizasyonu da basitleştirerek doğrudan ana zstd deposundan çekirdeğe eklenecek kod oluşturmanıza olanak tanır. Gelecekte zstd kütüphanesinin yeni sürümleri çıktıkça çekirdekteki zstd kodunun da güncellenmesi planlanıyor.
    • eBPF alt sisteminde iyileştirmelerin büyük bir kısmı yapıldı. BPF programlarından çekirdek modülü işlevlerini çağırma yeteneği eklendi. Aynı anda üçten fazla argüman çıktısı almanıza olanak tanıyan bpf_trace_vprintk() işlevinden farklı olarak bpf_trace_vprintk() işlevi uygulanmıştır. Bir kümedeki bir öğenin varlığını belirlemek için aynı adı taşıyan olasılıksal veri yapısını kullanmanıza olanak tanıyan yeni bir veri depolama yapısı (BPF haritası) çiçeklenme filtresi eklendi. BPF programlarında etiketleri işlev parametrelerine bağlamak için (örneğin, kullanıcı programlarındaki hataların tespitini basitleştirmek için) kullanılabilen yeni bir BTF_KIND_TAG özelliği eklenmiştir. Libbpf'de kendi .rodata.*/.data.* bölümlerinizi oluşturmanız mümkündür, uprobe ve kprobe trace olayları için destek uygulanmıştır ve tüm BTF türlerinin bir nesneden diğerine kopyalanması için bir API eklenmiştir. AF_XDP desteği libbpf'ten ayrı bir libxdp kitaplığına taşındı. MIPS mimarisi için, BPF sanal makinesine yönelik bir JIT derleyicisi uygulanmıştır.
    • ARM64 mimarisi için, zamanlayıcıya yönelik ARMv8.6 uzantıları desteği uygulanmıştır; bunlar arasında, ISB talimatlarını kullanmadan sistem kayıtlarının kendi kendine senkronizasyonlu temsiline izin verenler de vardır.
    • PA-RISC mimarisi için, bellekle çalışırken hataları tespit etmek amacıyla KFENCE mekanizmasını kullanma yeteneği uygulandı ve KCSAN yarış durumu dedektörü desteği eklendi.
    • Tracef'lere erişim haklarını bireysel kullanıcılar ve gruplar düzeyinde yapılandırmak mümkündür; örneğin, artık izleme araçlarına yalnızca belirli bir grubun üyelerine erişim izni verebilirsiniz.
  • Sanallaştırma ve Güvenlik
    • io_uring ve cihaz eşleyici alt sistemleri, denetim olaylarının oluşturulmasına yönelik desteği uygular. io_uring, LSM modülleri aracılığıyla erişimi kontrol etme yeteneği sağlar. openat2() sistem çağrısını denetleme yeteneği eklendi.
    • Çekirdek kodu, anahtardaki sürekli durum ifadelerinden tamamen arınmıştır (her durum bloğundan sonra geri dönüş veya ara yoktur). Çekirdeği oluştururken artık “-Wimplicit-fallthrough” modunu kullanmak mümkün olacak.
    • Memcpy() işlevi yürütülürken sınır kontrollerini sıkılaştıracak değişiklikler eklendi.
    • Asenkron G/Ç arayüzü io_uring artık SE modülleri tarafından tanımlanan güvenlik politikalarının G/Ç işlemlerine uygulanmasına olanak tanıyor.Linux ve Şap.
    • Orijinalliklerini sağlamak için çekirdek alt sistemlerinin durumunu harici bir hizmetin doğrulamasına olanak tanıyan IMA (Bütünlük Ölçüm Mimarisi) alt sistemi, dosyanın ait olduğu veya kullanıcının ait olduğu grup tanımlayıcısına (GID) dayalı olarak kurallar uygulama yeteneğini uygular. dosyaya erişim aittir.
    • Seccomp() iş parçacıklarını gereksiz olduğu düşünülen ve güvenliği önemli ölçüde artırmayan ancak performansı olumsuz yönde etkileyen Spectre saldırılarından koruyan bazı gelişmiş mekanizmalar varsayılan olarak devre dışı bırakıldı. Retpoline korumasının kullanımı revize edildi.
    • 2004 yılında dm-crypt ile değiştirilen ve gerekirse aynı algoritmaları destekleyen cryptoloop mekanizmasının uygulaması kaldırıldı.
    • Varsayılan olarak eBPF alt sistemine ayrıcalıksız erişim yasaktır. Değişiklik, BPF programlarının yan kanal saldırılarına karşı korumayı atlamak için kullanılmasını önlemek için yapıldı. Gerekirse yönetici, ayrıcalıklı olmayan kullanıcıların eBPF'yi kullanma yeteneğini geri yükleyebilir.
    • Gerçek zamanlı görevler ve kritik görev sistemlerinde kullanım için tasarlanan ACRN hipervizörü, sanal cihazların oluşturulması/silinmesi ve MMIO cihazlarının iletilmesi için destek ekledi.
    • Kripto motoruna KPP (Anahtar Anlaşma Protokolü İlkelleri) tanımları desteği eklendi ve böylece kriptosistemler için sürücü geliştirme mantığı basitleştirildi.
    • Hyper-V hipervizörü için izolasyon modu desteği uygulamaya konmuştur. Sanal makinelerBu işlem, bellek içeriğinin şifrelenmesini içerir.
    • Sanallaştırma yazılımında KVM RISC-V mimarisine destek eklendi. Ana bilgisayar ortamında AMD SEV ve SEV-ES uzantıları kullanılarak çalışan sanal makinelerin geçişi uygulandı. AMD SEV (Güvenli Şifreli Sanallaştırma) kullanılarak şifrelenmiş konuk sistemlerin canlı geçişi için bir API eklendi.
    • PowerPC mimarisi için STRICT_KERNEL_RWX modu varsayılan olarak etkindir; bu, yazma ve yürütme için aynı anda kullanılabilen bellek sayfalarının kullanımını engeller.
    • 32 bit x86 sistemlerde, bir yıldan uzun süredir çalışmayan bellek çalışırken takılabilir desteği durduruldu.
    • Liblockdep kütüphanesi çekirdekten kaldırıldı ve artık çekirdekten ayrı tutulacak.
  • Ağ alt sistemi
    • Soketler için, bir soket için belirli miktarda bellek ayırabileceğiniz, soket için her zaman kullanılabilir kalacak ve kaldırılmayacak yeni bir SO_RESERVE_MEM seçeneği uygulandı. Bu seçeneğin kullanılması, özellikle sistemde düşük bellek koşulları oluştuğunda, ağ yığınındaki bellek ayırma ve geri alma işlemlerini azaltarak daha yüksek performans elde etmenize olanak tanır.
    • Çok Noktaya Yayını destekleyen ağlardan Çok Noktaya Yayın olmayan ağlardaki alıcılara çok noktaya yayın trafiğinin iletilmesine olanak tanıyan Otomatik Çok Noktaya Yayın Tünel Oluşturma (RFC 7450) protokolü desteği eklendi. Protokol, UDP paketlerinde kapsülleme yoluyla çalışır.
    • IOAM (Yerinde Operasyonlar, Yönetim ve Bakım) verilerinin aktarım paketlerinde iyileştirilmiş kapsüllenmesi.
    • Alıcı-verici güç tüketimi modlarını kontrol etme yeteneği, ethtool netlink API'sine eklendi.
    • Netfilter alt sistemi, paketleri çıkış seviyesinde sınıflandırma yeteneğini uygular; sürücünün çekirdek ağ yığınından bir paket aldığı aşamada. Nftables'da ilgili filtreler için destek 1.0.1 sürümünde göründü. Netfilter, taşıma başlığından sonra gelen UDP ve TCP (iç başlık / yük) için dahili başlıkları ve verileri karşılaştırma ve değiştirme yeteneğini ekledi.
    • Yeni sysctl parametreleri arp_evict_nocarrier ve ndisc_evict_nocarrier eklendi; ayarlandığında, bağlantı hatası durumunda (NOCARRIER) ARP önbelleği ve ndisc (komşu keşfi) tablosu temizlenecektir.
    • fq_codel (Kontrollü Gecikme) ağ kuyruğu yönetim mekanizmasına Düşük Gecikme, Düşük Kayıp ve Ölçeklenebilir Verim (L4S) modları eklendi.
  • Mutfak Cihazları
    • amdgpu sürücüsü, DP 2.0 spesifikasyonu (DisplayPort 2.0) ve USB4 üzerinden DisplayPort tünelleme için başlangıç ​​desteğini sağlar. Cyan Skillfish APU'ları (GPU Navi 1x ile donatılmış) için ekran denetleyicileri desteği eklendi. Sarı Sazan APU'ları (Ryzen 6000 “Rembrandt” mobil işlemciler) desteği genişletildi.
    • i915 sürücüsü, Intel Alderlake S yongalarına yönelik desteği sabitler ve Intel Xe yongalarına sahip sistemlerde donanım korumalı bir grafik oturumu düzenlemenize olanak tanıyan Intel PXP (Korumalı Xe Yolu) teknolojisi desteğini uygular.
    • Hataları düzeltmek ve kod stilini geliştirmek için nouveau sürücüsünde çalışmalar yapıldı.
    • x86 uyumlu Vortex işlemciler (Vortex86MX) için destek eklendi. Linux Bu yöntem daha önce benzer işlemcilerde işe yaramıştı, ancak Spectre/Meltdown saldırılarına karşı korumayı devre dışı bırakmak için söz konusu işlemcilerin açıkça belirtilmesi gerekiyordu ve bu özellik bu çipler için geçerli değil.
    • Surface Pro 86 ve Surface Laptop Studio'ya x8 platformları için başlangıç ​​desteği eklendi.
    • AMD Yellow Carp, Van Gogh APU'larında kullanılan ses yongalarını desteklemek için sürücü eklendi; ayrıca ses sistemleri ve Cirrus CS35L41, Maxim MAX98520/MAX98360A, Mediatek MT8195, Nuvoton NAU8821, NVIDIA Tegra210, NXP i.MX8ULP, Qualcomm AudioReach, Realtek kodekleri için destek eklendi ALC5682I-VS, RT5682S, RT9120, Rockchip RV1126 ve RK3568.
    • Pil, sıcaklık ve UCSI (USB Tip-C Konektör Sistemi Yazılımı) ile ilgili bilgi arayüzü gibi ISHTP (Entegre Sensör Hub Aktarım Protokolü) kullanan Intel PSE (Programlanabilir Hizmet Motoru) yerleşik denetleyicilerine erişmek için ishtp_eclite sürücüsü eklendi.
    • Switch Pro ve Joy-Cons'u destekleyen Nintendo Switch oyun kumandaları için bir sürücü eklendi. Wacom Intuos BT tabletler (CTL-4100WL/CTL-6100WL) ve Apple 2021 Magic Keyboard için destek eklendi. Sony PlayStation DualSense denetleyicileri için geliştirilmiş destek. Xiaomi Mi fare yan düğmeleri için destek eklendi.
    • Realtek 89ax kablosuz yongalarını destekleyen RT802.11 sürücüsünün yanı sıra Asix AX88796C-SPI Ethernet adaptörleri ve Realtek RTL8365MB-VC anahtarları için sürücüler eklendi.
    • Apple M1 çipleri için PCI ve PASemi i2c sürücüleri eklendi.
    • ARM SoС, cihazlar ve kartlar için destek eklendi Raspberry Pi Compute Module 4, Fairphone 4, Snapdragon 690, LG G Watch R, Sony Xperia 10 III, Samsung Galaxy S4 Mini Value Edition, Xiaomi MSM8996 (Mi 5, Mi Note 2, Mi 5s) , Mi Mix, Mi 5s Plus ve Xiaomi Mi 5), Sony Yoshino (Sony Xperia XZ1 ve Sony Xperia XZ Premium), F(x)tec Pro1 QX1000, Microchip LAN966, CalAmp LMU5000, Exegin Q5xR5, sama7g5, Samsung ExynosAutov9, Rockchip RK3566 , RK3399 ROCK Pi 4A+, RK3399 ROCK Pi 4B+, Firefly ROC-RK3328-PC, Firefly ROC-RK3399-PC-PLUS, ASUS Chromebook Tablet CT100, Pine64 Quartz64-A, Netgear GS110EMX, Globalscale MOCHAbin 7040, NXP S32G2, R8A779 olarak 1 milyon * , Xilinx Kria, Radxa Zero, JetHub D1/H70, Netronix E02KXNUMX.

Kaynak: opennet.ru

DDoS korumalı siteler, VPS VDS sunucuları için güvenilir hosting satın alın 🔥 DDoS korumalı, güvenilir VPS ve VDS sunucu barındırma hizmeti satın alın | ProHoster