Çekirdek sürümü Linux 7.2

İki aylık geliştirme sürecinin ardından Linus Torvalds, çekirdeği yayınladı. Linux 7.2. En dikkat çekici değişiklikler arasında şunlar yer almaktadır: USB4STREAM veri akışı mekanizması, btrfs, xfs ve ext4 performans optimizasyonları, i486 CPU desteği için kodun sürekli olarak kaldırılması, iç içe SCHED_EXT zamanlayıcıları oluşturma yeteneği, takas alt sisteminde bellek tüketiminin azaltılması, hızlandırılmış isimsiz borular, KVM'de Intel MBEC ve AMD GMET uzantıları desteği, AppleTalk protokolünün kaldırılması, AMDGPU sürücüsünde HDMI 2.1 FRL için ilk destek.

Çekirdek 7.2'deki başlıca yeni özellikler (1, 2, 3):

  • Disk Alt Sistemi, G/Ç ve Dosya Sistemleri
    • iomap mekanizmasında, iomap_iter() fonksiyonunda zaten tamamlanmış yinelemeler için memset fonksiyonuna yapılan fazladan bir çağrı kaldırılmıştır. Bu durum, hızlı NVMe sürücülerde yüksek G/Ç yoğunluğuyla birlikte, ext4 ve xfs dosya sistemleri kullanılırken yapılan testlerde saniyedeki giriş/çıkış işlemi sayısını (IOPS) %5 oranında artırmıştır.
    • XFS, bölgelere ayrılmış depolama aygıtlarını (blok veya sektör gruplarını bölgelere ayıran ve bu bölgelere yalnızca ardışık veri eklemelerine izin vererek tüm blok grubunu güncelleyen) destekleme konusunda kararlı olarak ilan edildi.
    • Btrfs artık varsayılan olarak büyük dosyaları destekleyerek, yoğun sıralı G/Ç sırasında ek yükü azaltıyor ve performansı artırıyor. Çok büyük dosyalar (2 MB'a kadar) için deneysel destek eklendi. Kullanıcı alanında sağlama toplamı bilgilerini almak için (örneğin, mkfs yardımcı programı ve veri tekilleştirme optimizasyonu için) yeni bir ioctl olan GET_CSUMS eklendi. Sıralı yazma performansı %15, doğrudan G/Ç performansı ise %59 artırıldı.
    • Ext4 dosya sisteminin "hızlı commit" mekanizması, çekişmeyi ve kilitlenmeleri ortadan kaldırmak için önemli ölçüde yeniden tasarlandı. /proc/fs/ext4/*/fc_info aracılığıyla inode anlık görüntü istatistiklerinin dışa aktarılması eklendi. Dizin karma hesaplama performansı optimize edildi (255 karakterlik adlar için hız neredeyse iki katına, 64 karakterlik adlar için %27'ye ve 32 karakterlik adlar için %11'e çıktı).
    • F2FS artık fserror hata dönüşünü destekleyerek dosya sistemi sorunlarının kullanıcı alanından izlenmesine olanak tanıyor. Kesme işleme süresi azaltıldı.
    • Aygıt Eşleyiciye (DM), satır içi şifreleme işlevine sahip donanım aygıtları kullanılarak blok aygıtlarının şeffaf bir şekilde şifrelenmesi ve şifresinin çözülmesi için yeni bir dm-inlinecrypt işleyici eklendi.
    • Çekirdeğe yeni dosya sistemleri eklemeye ilişkin dokümantasyon sağlanmıştır.
    • NFS'de, en az 16 GB RAM'e sahip sistemlerde varsayılan blok boyutu 4 MB'a çıkarılmıştır (blok boyutunu manuel olarak değiştirmek için /proc/fs/nfsd/max_block_size komutunu kullanabilirsiniz). Dizin yetkilendirmesi desteği eklenmiştir; bu sayede belirli bir dizinle ilgili işlemler, durum değişiklikleri kontrol edilmeden belirli bir süre boyunca gerçekleştirilebilir. sunucu.
    • SMB sunucusu artık sıkıştırılmış biçimde depolanan dosyaları ve ağ üzerinden iletim sırasında veri sıkıştırmayı destekliyor.
    • Yeni NTFS uygulaması (ntfsplus), sembolik bağlantılar için destek ekliyor. Windows ve birçok meta veri bozulması türünün doğru şekilde ele alınması sağlanır.
    • İki yıl önce kullanımdan kaldırılan EROFS (Gelişmiş Salt Okuma Dosya Sistemi) verilerini önbelleğe almak için kullanılan fscache arka uç sistemi kaldırıldı.
    • Ceph FS artık istemci oturumlarının manuel olarak sıfırlanmasını destekliyor.
    • 9P dosya sistemi, proje derlemeleri gibi senaryolarda performansı artırmak için optimize edilmiştir.
    • Dosya sistemi büyük/küçük harf duyarlılığı hakkında bilgi almak için kullanılan bayraklar, `file_getattr()` sistem çağrısına eklendi. `FS_XFLAG_CASEFOLD` bayrağı, dosya adı kontrolünün büyük/küçük harf duyarlılığı olmadan yapıldığını, `FS_XFLAG_CASENONPRESERVING` bayrağı ise yeni dosya adları oluşturulurken büyük/küçük harf bilgisinin korunmadığını gösterir. Bu bayraklar, büyük/küçük harf duyarlılığı olmayan NFS istemcilerinde kullanılabilir.
    • openat2() sistem çağrısına O_EMPTYPATH bayrağı eklendi ve bu sayede boş bir dosya yolu geçirilmesine olanak sağlandı. Bu durumda, açılacak dosyanın yolu, geçirilen dosya tanımlayıcısına göre belirlenir.
    • openat2() sistem çağrısına OPENAT2_REGULAR bayrağı eklendi; bu bayrak yalnızca normal dosyaların açılmasına izin verir (soket, boru veya aygıt gibi özel bir dosya açılmaya çalışılırsa EFTYPE hatası döndürülür).
  • Bellek ve sistem hizmetleri
    • USB4STREAM mekanizması, USB4 portları üzerinden bağlanan bilgisayarlar arasında veri akışı sağlamak için uygulanmıştır. /dev/tbstreamX aygıtı eklenmiştir ve bu sayede standart read() ve write() fonksiyonları kullanılarak, dosya okuma ve yazmaya benzer şekilde veri okuma ve yazma işlemleri gerçekleştirilebilir. Örneğin, bir bilgisayarda "echo hello > /dev/tbstream0" komutuyla bilgi gönderebilir, diğerinde ise "cat /dev/tbstream0" komutuyla okuyabilirsiniz. USB4STREAM mekanizması, USB4 kablosu (thunderbolt_net) üzerinden ağ bağlantısı kurma özelliğiyle birleştirilebilir veya ağ soketlerini desteklemeyen uygulamalar arasında veri aktarmak için ayrı olarak kullanılabilir.
    • i486 işlemciler için desteği kaldırmaya yönelik ikinci değişiklik serisi de dahil edildi. FPU'su olmayan işlemciler için kayan nokta birimi öykünmesiyle ilgili 13 satırdan fazla kod kaldırıldı. CX8 (8 bayt karşılaştırma ve değiştirme) ve TSC (görev zamanlayıcısında kullanılan CPU döngü sayacı) donanım işlemlerine sahip olmayan i486 işlemciler için destek kaldırıldı, çünkü bunların öykünme kodu da kaldırıldı.
    • OLPC XO-1 bilgisayarında kullanılan AMD Geode işlemcilerine yönelik desteğin sonlandırıldığı duyuruldu.
    • Intel'in TDX (Trusted Domain Extensions) uygulamasının güncellenmesi için destek eklendi. TDX, konuk sistem RAM'ini şifrelemek için kullanılan bir mekanizmadır. TDX, önyükleme sırasında BIOS tarafından flash bellekten RAM'e aktarılan özel bir yazılım çalışma zamanı modülü olarak uygulanır. Çekirdek artık bu modülü yönetme ve çalışan bir sistemde yeniden başlatma gerektirmeden daha yeni bir sürümle değiştirme yeteneklerini içeriyor.
    • Yeni bir GPU kaynak tahsis zamanlayıcısı (Adil GPU zamanlayıcısı) uygulandı. Bu zamanlayıcı, GPU kullanan işlemler tarafından gönderilen işlerin GPU üzerinde hangi sırayla yürütüleceğini belirlemek için kullanılır. Yeni zamanlayıcı, GPU istekleri için geleneksel FIDO kuyruğu yerine, bir sonraki işlem için geçiş süresi içeren bir başlatma planı kullanan Tamamen Adil Zamanlayıcı (CFS) görev zamanlayıcısına dayalı adil kaynak tahsis mekanizmalarını kullanır. Yeni zamanlayıcının en belirgin etkisi, GPU'yu yoğun olarak kullanan etkileşimli görevlerin paralel yürütülmesi sırasında gözlemlenir. Çekirdek 7.2'nin yayınlanmasından hemen önce, Proton'da belirli oyunları çalıştırırken performans düşüşüne ve %100 GPU kullanımına neden olan bir hatayı giderme ihtiyacı nedeniyle Adil GPU zamanlayıcısı devre dışı bırakıldı ve eski FIFO zamanlayıcısı geri getirildi.
    • eBPF alt sistemindeki değişiklikler: Tek bir BPF programını birden fazla izleme noktasına bağlama özelliği eklendi. İzleme noktalarına bağlı BPF programları artık, tahsis edilmemiş bellek sayfalarının (sayfa hataları) doğru şekilde işlenmesiyle, kullanıcı alanı bileşenlerinin belleğine erişebilir. bpf() sistem çağrısı artık standart öznitelikleri (log_buf, log_size, log_level ve log_true_size) destekliyor; bu da BPF_PROG_LOAD, BPF_BTF_LOAD ve BPF_MAP_CREATE ile sınırlı kalmayarak tüm BPF komutlarında birleşik meta veri aktarımına olanak tanıyor. BPF fonksiyonlarına en fazla 5 parametre geçirme sınırlaması kaldırıldı. Tahsis edilmemiş bellek sayfalarına (sayfa hataları) erişme korkusu olmadan bpf_arena paylaşımlı belleğine güvenli bir şekilde erişme özelliği eklendi. Dinamik yeniden boyutlandırmaya olanak tanıyan yeni bir BPF karma harita yapısı uygulandı.
    • "/proc/interrupts" çıktısının kesme istatistikleriyle oluşturulması optimize edildi ve kesme sayaçlarını saklama yapıları modernize edilerek önbellekleme eklendi.
    • libselinux'ta kullanılan "/proc/filesystems" dosyasının oluşturulma süreci hızlandırıldı.
    • Görev zamanlayıcı artık işlemcinin dahili önbelleğinin durumunu dikkate alarak CPU çekirdekleri arasında yük dengelemesini destekliyor. Zamanlayıcı, artık tek bir işlem içindeki iş parçacıkları gibi paylaşılan kaynakları kullanan işlemleri aynı üst düzey önbelleği paylaşacak şekilde gruplandırmaya çalışıyor; bu da gerekli verilerin önbellekte bulunma olasılığını artırarak veri erişim verimliliğini iyileştiriyor.
    • BPF kullanarak CPU zamanlayıcıları oluşturmaya olanak sağlayan SCHED_EXT mekanizması, her bir cgroup'un kendi görev zamanlayıcısını kullanmasına izin veren iç içe zamanlayıcılar (alt zamanlayıcılar) oluşturma özelliğini uygulamaya devam etmiştir.
    • Rust-for- dalından değişikliklerin taşınmasına devam edildi.LinuxRust'ı sürücü ve çekirdek modülleri geliştirmek için ikinci bir dil olarak kullanmakla ilgili (Rust desteği varsayılan olarak etkinleştirilmemiştir ve Rust zorunlu bir çekirdek derleme bağımlılığı olarak dahil edilmemiştir). Çekirdekte Rust desteği s390 mimarisi için uygulanmıştır. "Güvenli olmayan" modda kod için hızlı bellek temel öğeleri sağlayan "zerocopy" paketi dahildir.
    • Çekirdeği derlemek için gereken LLVM araç setinin minimum sürümü 17.0.1'e yükseltildi.
    • Çekirdek kaynak koduyla birlikte sağlanan minimalist C kütüphanesi nolibc'de Linux Ayrıca OpenRISC ve 32-bit PA-RISC mimarilerini destekleyen temel sistem çağrıları için bir çerçeve sağlar.
    • Takas alt sistemi, statik meta verilerin depolanması sırasında oluşan ek yükü ortadan kaldırarak ve tome'lar kullanılırken anonim ve paylaşımlı belleği birleştirerek, alt sistem içindeki performansı artırmak ve bellek tüketimini azaltmak için optimize edilmiştir. Bellek azalması oldukça önemlidir; örneğin, 1 TB'lık bir takas bölümünün bağlanması bellek tüketimini yaklaşık 512 MB azaltır.
    • Sistem yoğun kullanımdayken bellek alanını boşaltmak için bellek silme veya takas alanına taşıma işlemini gerçekleştiren bellek tahliye mekanizmasının performansı iyileştirildi. YCSB (Yahoo! Cloud Serving Benchmark) kullanılarak MongoDB test edilirken olduğu gibi belirli iş yüklerinde %30'a varan performans artışları gözlemlendi.
    • "make sbom" komutu, mevcut çekirdek derlemesinde kullanılan bileşenleri, kütüphaneleri ve bağımlılıkları yansıtan SBOM (Yazılım Malzeme Listesi) listeleri oluşturmak ve kod dosyalarındaki SPDX başlıklarından elde edilen lisans bilgilerini de eklemek için derleme sistemine eklendi.
    • İsimsiz boruların uygulanması, kilitlerin işlenmesi için optimize edilmiştir (bellek tahsis işlemleri kilidin kapsamı dışına taşınmıştır), bu da isimsiz boruların verimliliğini %21-48 oranında artırmış ve gecikmeyi %17-33 oranında azaltmıştır.
  • Sanallaştırma ve Güvenlik
    • Slab bellek ayırıcısı artık Clang 22 derleyicisinde uygulanan Tahsis Belirteçlerinin kullanımını destekliyor. Belirteçler, bellek tahsis işlemleri için benzersiz tanımlayıcılar sağlar ve arabellek taşması güvenlik açıklarının istismarını zorlaştırmak için farklı nesne türlerinin ayrı ayrı tahsis edilmesine olanak tanır (ayrım sayesinde, bir nesne türündeki arabellek taşması diğer nesne türlerine zarar vermek için kolayca istismar edilemez).
    • Sayfa önbelleğindeki verileri değiştirmek için kullanılan Copy Fail güvenlik açığında istismar edilen AF_ALG mekanizması kullanımdan kaldırılmıştır ve gelecekteki bir sürümde tamamen kaldırılması planlanmaktadır. AF_ALG, çekirdeğin Crypto API'sinde kriptografik hesaplamalar için donanım hızlandırıcılarını etkinleştirir, ancak oldukça özel durumlarda kullanılır. Çekirdek 7.2'de, skcipher ve aead uygulamalarındaki eşzamansız G/Ç, eski sürücüler ve sıfır kopyalama mekanizması desteği AF_ALG'den kaldırılmıştır. Yalnızca kriptografik algoritmaların yazılım uygulamaları korunmuştur ve çekirdeğin Crypto API'sindeki donanım kriptografik hızlandırıcıları desteği kaldırılmıştır, çünkü AF_ALG saldırı yüzeyini önemli ölçüde genişletir ancak kullanıcı alanı kriptografi uygulamalarına kıyasla performans avantajı sağlamaz. AF_ALG, Cryptsetup araç setinde kullanılıyordu, ancak desteği son 2.8.7 sürümünde kaldırıldı.
    • Çekirdek alt sistemlerinin durumunu doğrulamak ve orijinalliğini sağlamak için harici bir servisin kullanılmasına olanak tanıyan IMA (Bütünlük Ölçüm Mimarisi) mekanizması, ölçüm sonuçlarını içeren dahili tabloları kullanıcı alanına aktarma ve bellekten tasarruf etmek için çekirdek tamponlarından silme desteğiyle tamamlanmıştır.
    • Ayrıcalıksız programlara çekirdek nesnelerinin kullanımını kısıtlama olanağı sağlayan Landlock modülünde, Linux (Dosya hiyerarşileri, ağ soketleri, ioctl vb.) UDP soketlerine erişim kontrolü desteği eklendi ve ayrıca günlük dosyasını alakasız bilgilerle doldurmayı önlemek için nesne kilitleme bilgilerinin günlüğe çıktısının seçici olarak devre dışı bırakılması özelliği de eklendi.
    • Çekirdek, giriş dizesinden belirtilen sayıda baytı kopyalayan `strncpy()` fonksiyonunu kullanmaktan vazgeçmiştir. `strncpy()` kullanımı, dizenin sonundaki boş karakterin eksik olması veya sıfırlarla ek dolgu yapılması nedeniyle hata riskini yaratıyordu. `strncpy()` yerine, boş karakterle sonlandırılmış dizeleri kopyalamak için `strscpy()` ve `strscpy_pad()` fonksiyonlarının yanı sıra, bilinen sabit boyuttaki dizeleri kopyalamak için `strtomem_pad()`, `memcpy_and_pad()` ve `memcpy()` fonksiyonlarının kullanılması önerilir. Çekirdekte `strncpy()` kullanımının kaldırılması çalışmaları 2020 yılında başlamış ve 70 geliştiriciden 362 taahhüt gerektirmiştir.
    • Sanallaştırma yazılımında KVM Intel MBEC (Mod Tabanlı Yürütme Kontrolü) ve AMD GMET (Konuk Modu Yürütme Tuzağı) uzantıları için destek eklendi; bu uzantılar, konuk sistemlerde bellek çeviri tablolarında çekirdek ve kullanıcı alanı yürütme haklarının ayrı ayrı ele alınmasını sağlar. Daha önce, Intel ve AMD donanım sanallaştırma uzantıları, bellek sayfalarının yalnızca tek bir bit ile yürütülebilir olarak işaretlenmesine izin veriyordu ve çekirdek ile kullanıcı alanı hakları hipervizör düzeyinde yazılım tabanlı olarak ayrıştırılıyordu. MBEC ve GMET kullanımı, hipervizör tarafındaki izin kontrollerini ortadan kaldırır ve konuk sistemden VMexit hipervizörüne kaynak yoğun kontrol aktarımlarını önemli ölçüde azaltır.
  • Ağ alt sistemi
    • TCP-AO (TCP Kimlik Doğrulama Seçeneği, RFC 5925) uzantısı, kodu basitleştirip performansını iyileştirmek amacıyla yeni libcrypto kriptografik kütüphanesine taşındı. TCP-AO, daha modern HMAC-SHA-1-96 ve AES-128-CMAC-96 algoritmalarını kullanarak MAC (Mesaj Kimlik Doğrulama Kodu) kodlarıyla TCP başlıklarının doğrulanmasını sağlar ve daha önce mevcut olan ve eski MD5 algoritmasına dayanan TCP-MD5 seçeneğinin yerini alır.
    • Çok yollu TCP (MPTCP) bağlantıları için desteklenen alt akış sayısı 8'den 64'e çıkarıldı.
    • Çekirdek ağ yığınında rtnl_lock global kilidinin kullanımını azaltmaya yönelik çalışmalar devam etti.
    • Çekirdek, 1985'ten beri Apple bilgisayarlarında kullanılan ve 1990'larda yerini başka bir protokole bırakan AppleTalk protokol yığınının uygulamasını kaldırdı. TCP/IPEk olarak, PPPoATM ile ilgisi olmayan ATM veri aktarım teknolojisi bileşenleri, ISA ve PCMCIA veri yollarına dayalı ARCnet ağ arayüzleri, PCMCIA arayüzlü Bluetooth adaptörleri, Chelsea TLS hızlandırıcıları, TLS'yi sockmap ile entegre etme kodu ve cfg80211/mac80211 kablosuz yığınındaki 5/10 MHz frekans bantları desteği kaldırılmıştır. Çözülmemiş engelleme sorunları ve bakımcı eksikliği nedeniyle, TCP Offload Engine'e dayalı belirli bir TLS işleme hızlandırma uygulaması kaldırılmıştır (daha yaygın olan TLS offload uygulaması korunmuştur). 64 bit sistemlerde 32 bit x_tables ile uyumluluk kodu devre dışı bırakılmış ve kaldırılması planlanmaktadır.
    • PPPoE sürücüsü artık paket yeniden birleştirme ve bölümleme işlemlerinin donanım hızlandırması için GRO (Generic Receive Offload) ve GSO (Generic Segmentation Offload) mekanizmalarını destekliyor. GRO ve GSO kullanımı, gelen trafik verimliliğini önemli ölçüde artırıyor. Örneğin, adres çevirici ile yapılandırılmış MediaTek MT7621 cihazlarında maksimum verimlilik 130 Mbit/s'den 630 Mbit/s'ye yükseldi.
  • Mutfak Cihazları
    • AMDGPU sürücüsü artık HDMI 2.1 FRL (Sabit Hız Bağlantısı) teknolojisi için ilk desteği içeriyor ve bu sayede sıkıştırılmamış videonun 4K/120Hz ve 8K/60Hz'de iletilmesi mümkün oluyor. HDMI 2.1 desteği, HDMI Forum lisanslama gereksinimleri nedeniyle daha önce açık kaynaklı sürücülerde bulunmuyordu, ancak AMD şimdi benzer bir uygulamayı güvence altına aldı.
    • i915 sürücüsü artık ekran denetleyicisi için arka plan renginin ayarlanmasını destekliyor. pin_params.needs_low_address parametresi uygulandı.
    • Intel Arc serisi grafik kartlarında ve Tiger Lake işlemcilerinden başlayarak entegre grafiklerde kullanılan Intel Xe mimarisine dayalı GPU'lar için Xe DRM (Doğrudan İşleme Yöneticisi) sürücüsü üzerindeki çalışmalar devam etti. CRI (Crescent Island) platformu için ilk destek eklendi. Xe3p dGPU platformları için bir sistem denetleyicisi uygulandı.
    • Nouveau sürücüsü, NVIDIA GA100 GPU ile ilgili sorunları çözüyor.
    • v3d sürücüsü, Raspberry Pi kartlarında v3D GPU güç tüketimini yönetme özelliğini içerecek şekilde güncellendi.
    • Turing mikro mimarisine dayalı NVIDIA GeForce RTX 2000 serisinden beri kullanılan GSP bellenimiyle donatılmış NVIDIA GPU'lar için Nova sürücü bileşenlerini entegre etmeye devam ettik. Sürücü Rust dilinde yazılmıştır. NVIDIA GA100, Hopper ve Blackwell serisi GPU'lar için destek eklendi.
    • ARM anakartlar, SoC'ler ve cihazlar için destek eklendi: Apple t8122 (M3), Motorola Edge 30, Nothing Phone 3a, Google Pixel 3a XL, Qualcomm Dragonwing IPQ9650, Huawei Hawi, ZTE zx297520v3, Renesas R-Car M3Le, ASPEED AST27xx, Cortina Gemini, NXP i.MX6/8/9, NXP LX2160A, TI K3 AM62x.

Aynı zamanda, Latin Amerika Özgür Yazılım Vakfı tamamen özgür bir 7.2 çekirdeği sürümü oluşturdu. Linux-libre 7.2-gnu, üretici tarafından sınırlı kapsamda olan veya özgür olmayan bileşenler içeren bellenim ve sürücü öğelerinden temizlenmiştir. 7.2 sürümü, yeni rt722-sdca ve tac5xx2 sürücüleri için bir blob temizliği içerir. amdgpu, nova core, qcom iris, q6v5, iwlwifi, amdxnda, adreno, r8152 ve mt792x sürücüleri için temizleme kodu güncellenmiştir. Bellenim yükleme arayüzleri ayarlanmıştır. ARM çipleri için aygıt ağacı (dts) dosyalarındaki blob adları temizlenmiştir.

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