Linux 5.19 çekirdek sürümü

İki aylık geliştirme sürecinin ardından Linus Torvalds, Linux çekirdeği 5.19'un sürümünü sundu. En dikkate değer değişiklikler arasında: LoongArch işlemci mimarisi desteği, "BIG TCP" yamalarının entegrasyonu, fscache'de isteğe bağlı mod, a.out formatını desteklemek için kod kaldırma, ürün yazılımı sıkıştırması için ZSTD'yi kullanma yeteneği, Kullanıcı alanından bellek çıkarılmasının yönetilmesi, sözde rastgele sayı oluşturucunun güvenilirliğinin ve performansının arttırılması, Intel IFS (Alan İçi Tarama), AMD SEV-SNP (Güvenli İç İçe Çağrı), Intel TDX (Güvenilir Etki Alanı Uzantıları) ve ARM desteği KOBİ (Ölçeklenebilir Matris Uzantısı) uzantıları.

Duyuruda Linus, 6.0.x şubesinin sürüm numarasındaki ilk numarayı değiştirmeye yetecek kadar sürüm biriktirdiğinden dolayı büyük olasılıkla bir sonraki çekirdek sürümünün 5 olarak numaralandırılacağını söyledi. Numaralandırma değişikliği estetik nedenlerden dolayı gerçekleştirilir ve seride çok sayıda konunun birikmesinden kaynaklanan rahatsızlığı gideren resmi bir adımdır.

Linus ayrıca, sürümü oluşturmak için Asahi Linux dağıtımını temel alan bir Linux ortamına sahip, ARM64 mimarisini (Apple Silicon) temel alan bir Apple dizüstü bilgisayar kullandığını da belirtti. Bu Linus'un birincil iş istasyonu değil, ancak platformu çekirdek çalışmasına uygunluğunu test etmek ve elinde hafif bir dizüstü bilgisayarla seyahat ederken çekirdek sürümleri üretebildiğinden emin olmak için kullandı. Daha önce, yıllar önce Linus'un geliştirme için Apple ekipmanlarını kullanma deneyimi vardı - bir zamanlar ppc970 CPU tabanlı bir bilgisayar ve bir Macbook Air dizüstü bilgisayar kullanıyordu.

Yeni sürüm, 16401 geliştiriciden 2190 düzeltme içeriyor (son sürümde 16206 geliştiriciden 2127 düzeltme vardı), yama boyutu 90 MB (değişiklikler 13847 dosyayı etkiledi, 1149456 satır kod eklendi, 349177 satır silindi). 39'da yapılan tüm değişikliklerin yaklaşık %5.19'u aygıt sürücüleriyle, değişikliklerin yaklaşık %21'i donanım mimarilerine özgü kodların güncellenmesiyle, %11'i ağ yığınıyla, %4'ü dosya sistemleriyle ve %3'üyle ilgilidir. dahili çekirdek alt sistemleriyle ilgilidir.

Çekirdek 5.19'teki önemli yenilikler:

  • Disk Alt Sistemi, G/Ç ve Dosya Sistemleri
    • Salt okunur bölümlerde kullanılması amaçlanan EROFS (Gelişmiş Salt Okunur Dosya Sistemi) dosya sistemi, veri önbelleğe almayı sağlayan fscache alt sistemini kullanacak şekilde dönüştürüldü. Değişiklik, çok sayıda konteynerin EROFS tabanlı bir görüntüden başlatıldığı sistemlerin performansını önemli ölçüde artırdı.
    • EROFS'yi optimize etmek için kullanılan fscache alt sistemine isteğe bağlı okuma modu eklenmiştir. Yeni mod, yerel sistemde bulunan FS görüntülerinden okuma önbelleğe almayı düzenlemenize olanak tanır. Ağ dosya sistemleri aracılığıyla aktarılan verilerin yerel dosya sisteminde önbelleğe alınmasına odaklanan başlangıçta mevcut olan çalışma modunun aksine, "isteğe bağlı" mod, verileri alma ve önbelleğe yazma işlevlerini ayrı bir konuma devreder. Kullanıcı alanında çalışan arka plan işlemi.
    • XFS, milyarlarca genişletilmiş özelliği bir i-node'da saklama olanağı sağlar. Bir dosya için maksimum kapsam sayısı 4 milyardan 247'ye çıkarıldı. Birden fazla genişletilmiş dosya niteliğinin aynı anda atomik olarak güncellenmesi için bir mod uygulandı.
    • Btrfs dosya sistemi, doğrudan bekleme modunda yazarken performansta yaklaşık %7'lik bir artışa olanak tanıyan kilitlerle çalışmayı optimize etti. NOCOW modundaki (yazarken kopyalama olmadan) işlemlerin performansı yaklaşık %3 oranında artırılır. “Gönder” komutunu çalıştırırken sayfa önbelleğinin yükü azaltıldı. Alt sayfaların minimum boyutu 64K'dan 4K'ya düşürüldü (çekirdek sayfalarından daha küçük alt sayfalar kullanılabilir). Taban ağacı kullanımından XArrays algoritmasına geçiş yapıldı.
    • İsteklere yanıt vermeyi durduran bir istemci tarafından belirlenen kilitleme durumunun korunmasını genişletmek için NFS sunucusuna bir mod eklendi. Yeni mod, başka bir müşteri rakip bir kilit talep etmediği sürece kilit temizlemeyi bir güne kadar geciktirmenize olanak tanır. Normal modda, istemci yanıt vermeyi bıraktıktan 90 saniye sonra engelleme kaldırılır.
    • Fanotify FS'deki olay izleme alt sistemi, FAN_MARK_EVICTABLE bayrağını uygular; bununla, önbellekteki hedef i-düğümlerinin sabitlenmesini devre dışı bırakabilir, örneğin alt dalları, parçalarını önbelleğe sabitlemeden yok sayabilirsiniz.
    • FAT32 dosya sistemi sürücüsü, dosya hakkında genişletilmiş bilgi döndüren stat()'ın daha verimli ve işlevsel bir sürümünün uygulanmasıyla statx sistem çağrısı yoluyla dosya oluşturma zamanı hakkında bilgi edinme desteği ekledi.
    • ExFAT sürücüsünde, sıralı sektör bazında temizleme yerine 'dirsync' modu etkinken bir grup sektörün eşzamanlı olarak temizlenmesine olanak sağlamak için önemli optimizasyonlar yapılmıştır. Optimizasyon sonrası blok isteklerinin sayısı azaltılarak, SD kartta çok sayıda dizin oluşturma performansı, küme boyutuna bağlı olarak %73-85'ten fazla arttı.
    • Çekirdek, ntfs3 sürücüsüne yönelik ilk düzeltici güncellemeyi içerir. Ntfs3, geçen Ekim ayında 5.15 çekirdeğine dahil edildiğinden beri sürücü güncellenmedi ve geliştiricilerle iletişim kesildi, ancak geliştiriciler artık değişiklikleri yayınlamaya yeniden başladı. Önerilen yamalar, bellek sızıntılarına ve çökmelere yol açan hataları ortadan kaldırdı, xfstests yürütmeyle ilgili sorunları çözdü, kullanılmayan kodları temizledi ve yazım hatalarını düzeltti.
    • OverlayFS için, monte edilmiş bir yabancı bölümdeki belirli bir kullanıcının dosyalarını mevcut sistemdeki başka bir kullanıcıyla eşleştirmek için kullanılan, monte edilmiş dosya sistemlerinin kullanıcı kimliklerini eşleme yeteneği uygulanmıştır.
  • Bellek ve sistem hizmetleri
    • MIPS ve RISC-V'ye benzer şekilde yeni RISC ISA'yı uygulayan, Loongson 3 5000 işlemcilerinde kullanılan LoongArch komut seti mimarisi için başlangıç ​​desteği eklendi. LoongArch mimarisinin üç çeşidi mevcuttur: sadeleştirilmiş 32 bit (LA32R), normal 32 bit (LA32S) ve 64 bit (LA64).
    • Sürüm 5.1'de kullanımdan kaldırılan a.out yürütülebilir dosya biçimini desteklemek için kod kaldırıldı. A.out formatı Linux sistemlerinde uzun süredir kullanımdan kaldırılmıştır ve a.out dosyalarının oluşturulması, varsayılan Linux yapılandırmalarındaki modern araçlar tarafından desteklenmemektedir. a.out dosyaları için yükleyici tamamen kullanıcı alanında uygulanabilir.
    • x86'ya özgü önyükleme seçeneklerine yönelik destek durduruldu: nosp, nosmap, nosmep, noexec ve noclflush).
    • Uzun süredir desteksiz bırakılan eski CPU h8300 mimarisine (Renesas H8/300) yönelik destek durduruldu.
    • Atomik bir talimat yürütülürken verilerin iki CPU önbellek hattını geçmesi nedeniyle bellekteki hizalanmamış verilere erişirken ortaya çıkan bölünmüş kilitlerin ("bölünmüş kilitler") tespitine yanıt vermeyle ilgili genişletilmiş yetenekler. Bu tür tıkanmalar performansta önemli bir düşüşe neden olur. Daha önce varsayılan olarak çekirdek, engellemeye neden olan süreç hakkında bilgi içeren bir uyarı veriyordu; şimdi sorunlu süreç, sistemin geri kalanının performansını korumak için daha da yavaşlayacak.
    • Intel işlemcilerde uygulanan IFS (Alan İçi Tarama) mekanizması için destek eklendi; bu, hata düzeltme kodlarına (ECC) veya eşlik bitlerine dayalı olarak standart araçlar tarafından algılanmayan sorunları tanımlayabilen düşük seviyeli CPU tanılama testlerini çalıştırmanıza olanak tanır. . Gerçekleştirilen testler, mikro kod güncellemelerine benzer şekilde tasarlanmış, indirilebilir ürün yazılımı biçimindedir. Test sonuçlarına sysfs aracılığıyla ulaşılabilir.
    • Komut satırı seçeneklerine ek olarak, çekirdek parametrelerinin bir ayarlar dosyası aracılığıyla belirlenmesine olanak tanıyan, çekirdeğe bir bootconfig dosyası yerleştirme yeteneği eklendi. Gömme 'CONFIG_BOOT_CONFIG_EMBED_FILE=»/PATH/TO/BOOTCONFIG/FILE»' birleştirme seçeneği kullanılarak gerçekleştirilir. Daha önce bootconfig, initrd görüntüsüne eklenerek belirleniyordu. Çekirdeğe entegrasyon, bootconfig'in initrd olmadan yapılandırmalarda kullanılmasına olanak tanır.
    • Zstandard algoritması kullanılarak sıkıştırılmış ürün yazılımını indirme yeteneği uygulanmıştır. Sysfs'e bir dizi kontrol dosyası /sys/class/firmware/* eklenmiştir, bu sayede kullanıcı alanından firmware yüklemesini başlatabilirsiniz.
    • io_uring eşzamansız G/Ç arayüzü, ayarlandığında ilk önce yoklama kullanılarak işlenecek bir ağ işlemi gönderecek olan ve işlemin biraz gecikmeyle işlenmesinin kabul edilebilir olduğu durumlarda kaynakları koruyabilen yeni bir IORING_RECVSEND_POLL_FIRST bayrağı sunar. io_uring ayrıca soket() sistem çağrısı için destek ekledi, dosya tanımlayıcılarının yönetimini basitleştirmek için yeni bayraklar önerdi, Accept() çağrısında aynı anda birden fazla bağlantıyı kabul etmek için bir "çoklu çekim" modu ekledi ve NVMe'yi iletmek için işlemler ekledi. doğrudan cihaza komut verir.
    • Xtensa mimarisi, çekirdek içindeki yarış koşullarını dinamik olarak tespit etmek için tasarlanmış KCSAN (Çekirdek Eşzamanlılık Temizleyici) hata ayıklama aracı için destek sağlar. Ayrıca uyku modu ve yardımcı işlemciler için destek eklendi.
    • M68k mimarisi (Motorola 68000) için, Android Goldfish emülatörünü temel alan bir sanal makine (platform simülatörü) uygulanmıştır.
    • AArch64 mimarisi için Armv9-A SME (Ölçeklenebilir Matris Uzantısı) uzantıları desteği uygulandı.
    • eBPF alt sistemi, yazılan işaretçilerin harita yapılarında saklanmasına olanak tanır ve ayrıca dinamik işaretçiler için destek ekler.
    • Memory.reclaim dosyasını kullanarak kullanıcı alanı kontrolünü destekleyen yeni bir proaktif bellek geri kazanım mekanizması önerilmiştir. Belirtilen dosyaya bir sayı yazmak, ilgili bayt sayısını grupla ilişkili kümeden çıkarmaya çalışacaktır.
    • Zswap mekanizmasını kullanarak takas bölümündeki verileri sıkıştırırken bellek kullanımının doğruluğu iyileştirildi.
    • RISC-V mimarisi için, 32 bit sistemlerde 64 bit yürütülebilir dosyaları çalıştırma desteği sağlanır, kısıtlayıcı nitelikleri bellek sayfalarına bağlamak için bir mod eklenir (örneğin, önbelleğe almayı devre dışı bırakmak için) ve kexec_file_load() işlevi uygulanır .
    • 32 bit Armv4T ve Armv5 sistemlerine yönelik desteğin uygulanması, farklı ARM sistemlerine uygun evrensel çoklu platform çekirdek yapılarında kullanılmak üzere uyarlanmıştır.
  • Sanallaştırma ve Güvenlik
    • EFI alt sistemi, gizli bilgileri ana sisteme ifşa etmeden konuk sistemlere gizli bir şekilde aktarma yeteneğini uygular. Veriler, Securityfs'deki Security/coco dizini aracılığıyla sağlanır.
    • Kök kullanıcının çekirdeğe erişimini kısıtlayan ve UEFI Güvenli Önyükleme atlama yollarını engelleyen kilitleme koruma modu, çekirdek hata ayıklayıcısını değiştirerek korumanın atlanmasına izin veren bir boşluğu ortadan kaldırdı.
    • Sözde rastgele sayı üretecinin güvenilirliğini ve performansını artırmayı amaçlayan yamalar dahildir.
    • Clang 15 kullanarak derleme yaparken, çekirdek yapılarını rastgele hale getirmeye yönelik mekanizma desteği uygulanır.
    • Bir grup işlemin dış ortamla etkileşimini sınırlamanıza olanak tanıyan Landlock mekanizması, dosya yeniden adlandırma işlemlerinin yürütülmesini kontrol etmenize olanak tanıyan kurallar için destek sağlar.
    • İşletim sistemi bileşenlerinin bütünlüğünü dijital imzalar ve karmalar kullanarak doğrulamak için tasarlanan IMA (Bütünlük Ölçüm Mimarisi) alt sistemi, dosya doğrulama için fs-verity modülünün kullanılmasına geçildi.
    • EBPF alt sistemine ayrıcalıksız erişimi devre dışı bırakırken yapılan eylemlerin mantığı değiştirildi - daha önce bpf() sistem çağrısıyla ilişkili tüm komutlar devre dışı bırakıldı ve 5.19 sürümünden başlayarak, nesnelerin oluşturulmasına yol açmayan komutlara erişim bırakıldı. . Bu davranış, bir BPF programını yüklemek için ayrıcalıklı bir işlemi gerektirir, ancak daha sonra ayrıcalığı olmayan işlemler programla etkileşime girebilir.
    • Yuvalanmış bellek sayfa tablolarıyla güvenli çalışma sağlayan ve AMD SEV'nin (Güvenli Şifrelenmiş Sanallaştırma) atlanmasına olanak tanıyan AMD EPYC işlemcilerine yönelik "undeSErVed" ve "SEVerity" saldırılarına karşı koruma sağlayan AMD SEV-SNP (Güvenli Yuvalanmış Çağrı) uzantısı için destek eklendi ) koruma mekanizması.
    • Üçüncü tarafların sanal makinelerin şifrelenmiş belleğine erişme girişimlerini engellemenize olanak tanıyan Intel TDX (Güvenilir Etki Alanı Uzantıları) mekanizması için destek eklendi.
    • Blok aygıtlarını taklit etmek için kullanılan virtio-blk sürücüsü, yoklama kullanan G/Ç desteği ekledi; bu, testlere göre gecikmeyi yaklaşık %10 azalttı.
  • Ağ alt sistemi
    • Paket, yüksek hızlı dahili veri merkezi ağlarının çalışmasını optimize etmek için bir TCP paketinin maksimum paket boyutunu 4 GB'a çıkarmanıza olanak tanıyan bir dizi BÜYÜK TCP yaması içerir. 16 bitlik başlık alanı boyutuyla paket boyutunda benzer bir artış, IP başlığındaki boyutu 0 olarak ayarlanan "jumbo" paketlerin uygulanmasıyla elde edilir ve gerçek boyut ayrı bir 32 bit olarak iletilir ayrı bir ekli başlıktaki alan. Performans testinde paket boyutunun 185 KB olarak ayarlanması verimi %50 artırdı ve veri aktarımı gecikmesini önemli ölçüde azalttı.
    • Paketlerin düşürülmesinin nedenlerini (neden kodları) takip etmek için araçların ağ yığınına entegre edilmesine yönelik çalışmalar devam etti. Neden kodu, paketle ilişkili bellek boşaldığında gönderilir ve başlık hataları nedeniyle paketin atılması, rp_filter sahtekarlığı tespiti, geçersiz sağlama toplamı, bellek yetersiz, IPSec XFRM kurallarının tetiklenmesi, geçersiz sıra numarası TCP vb. gibi durumlara izin verir.
    • Belirli MPTCP özelliklerinin kullanılamadığı durumlarda normal TCP'yi kullanmak üzere MPTCP (MultiPath TCP) bağlantılarının geri çekilmesine yönelik destek eklendi. MPTCP, paketlerin farklı IP adresleriyle ilişkili farklı ağ arayüzleri aracılığıyla birkaç rota boyunca eşzamanlı olarak teslim edilmesiyle bir TCP bağlantısının çalışmasını düzenlemek için TCP protokolünün bir uzantısıdır. Kullanıcı alanından MPTCP akışlarını kontrol etmek için API eklendi.
  • Оборудование
    • Amdgpu sürücüsüyle ilgili 420 binden fazla kod satırı eklendi; bunların yaklaşık 400 bin satırı, AMD GPU sürücüsündeki ASIC kayıt verileri için otomatik olarak oluşturulan başlık dosyalarıdır ve diğer 22.5 bin satır, AMD SoC21 desteğinin ilk uygulamasını sağlar. AMD GPU'lar için toplam sürücü boyutu 4 milyon kod satırını aştı. AMD sürücüsü, SoC21'e ek olarak SMU 13.x (Sistem Yönetim Birimi) desteğini, güncellenmiş USB-C ve GPUVM desteğini içerir ve yeni nesil RDNA3 (RX 7000) ve CDNA'yı (AMD Instinct) desteklemeye hazırdır. platformlar.
    • i915 sürücüsünün (Intel) güç yönetimiyle ilgili yetenekleri genişletilmiştir. Dizüstü bilgisayarlarda kullanılan Intel DG2 (Arc Alchemist) GPU'ları için tanımlayıcılar eklendi, Intel Raptor Lake-P (RPL-P) platformu için ilk destek sağlandı, Arctic Sound-M grafik kartları hakkında bilgi eklendi, bilgi işlem motorları için ABI uygulandı, Tile2 formatı için DG4 kart desteği; Haswell mikro mimarisini temel alan sistemler için DisplayPort HDR desteği uygulanmaktadır.
    • Nouveau sürücüsü drm_gem_plane_helper_prepare_fb işleyicisini kullanmaya geçti; bazı yapılara ve değişkenlere statik bellek ayırma uygulandı. Nouveau'da NVIDIA tarafından açık kaynaklı çekirdek modüllerinin kullanımına gelince, şu ana kadar yapılan iş, hataların tanımlanması ve ortadan kaldırılmasından ibarettir. Gelecekte, yayınlanan ürün yazılımının sürücü performansını artırmak için kullanılması planlanıyor.
    • M1 yongasını temel alan Apple bilgisayarlarda kullanılan NVMe denetleyicisi için bir sürücü eklendi.

Aynı zamanda, Latin Amerika Özgür Yazılım Vakfı, kapsamı ö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ış, tamamen ücretsiz çekirdek 5.19 - Linux-libre 5.19-gnu'nun bir sürümünü oluşturdu. üretici tarafından sınırlandırılmıştır. Yeni sürüm, pureLiFi X/XL/XC ve TI AMx3 Wkup-M3 IPC'nin sürücülerini temizliyor. Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, pu3-imgu sürücüleri ve alt sistemlerinde blob temizleme kodu güncellendi. Qualcomm AArch64 cihaz ağacı dosyalarının işlenmesi uygulandı. Yeni Sound Open Firmware bileşen adlandırma şeması için destek eklendi. Çekirdekten kaldırılan ATM Ambassador sürücüsünün temizlenmesi durduruldu. HDCP ve Mellanox Core'da blob temizleme yönetimi ayrı kconfig etiketlerine taşındı.

Kaynak: opennet.ru

Yorum ekle