Linux 5.2 çekirdek sürümü

İki aylık geliştirme sürecinin ardından Linus Torvalds gönderilen çekirdek sürümü Linux 5.2. En göze çarpan değişiklikler arasında: Ext4 çalışma modu büyük/küçük harfe duyarlı değildir, dosya sistemini monte etmek için ayrı sistem çağrıları, GPU Mali 4xx/ 6xx/7xx sürücüleri, BPF programlarında sysctl değerlerindeki değişiklikleri işleme yeteneği, cihaz eşleyici dm-dust modülü, MDS saldırılarına karşı koruma, DSP için Sound Open Firmware desteği, BFQ performansının optimizasyonu, PSI (Basınç Durma Bilgisi) alt sistemini Android'de kullanım olanağına getirme.

Yeni sürüm, 15100 geliştiriciden gelen 1882 düzeltmeyi içeriyor.
yama boyutu - 62 MB (değişiklikler 30889 dosyayı etkiledi, 625094 kod satırı eklendi, 531864 satır silindi). 45'de sunulanların yaklaşık %5.2'i
değişiklikler aygıt sürücüleriyle ilgilidir; değişikliklerin yaklaşık %21'i
donanım mimarilerine özel kod güncellemeye yönelik tutum, %12
ağ yığınıyla ilgili, %3'ü dosya sistemleriyle ve %3'ü dahili
çekirdek alt sistemleri. Değişikliklerin %12.4'ü Intel, %6.3'ü Red Hat, %5.4'ü Google, %4.0'ı AMD, %3.1'i SUSE, %3'ü IBM, %2.7'si Huawei, %2.7'si Linaro, %2.2'si ARM tarafından hazırlandı. , %1.6 - Oracle.

Ana yenilikler:

  • Disk Alt Sistemi, G/Ç ve Dosya Sistemleri
    • Ext4 için eklendi destek yalnızca yeni “+F” (EXT4_CASEFOLD_FL) niteliğini kullanarak tek tek boş dizinlerle ilişkili olarak etkinleştirilen, dosya adlarındaki karakterlerin büyük/küçük harflerini ayırmadan çalışır. Bu öznitelik bir dizinde ayarlandığında, dosyaları ve alt dizinleri içeren tüm işlemler, dosyaları ararken ve açarken (örneğin, Test.txt dosyaları, Bu tür dizinlerdeki test.txt ve test.TXT aynı kabul edilecektir). Varsayılan olarak dosya sistemi, “chattr +F” özniteliğine sahip dizinler dışında, büyük/küçük harfe duyarlı olmaya devam eder;
    • Dize karşılaştırma ve normalleştirme işlemlerini gerçekleştirirken kullanılan dosya adlarındaki UTF-8 karakterlerini işlemeye yönelik işlevler birleştirildi;
    • XFS, dosya sistemi sağlığının izlenmesi için altyapı ve sistem durumu sorgulaması için yeni bir ioctl ekler. Süper blok sayaçlarını çevrimiçi olarak kontrol etmek için deneysel bir özellik uygulandı.
    • Yeni modül cihaz eşleyici eklendi "dm-toz“, medyadaki bozuk blokların görünümünü veya diskten okurken oluşan hataları simüle etmenize olanak tanır. Modül, olası arızalar karşısında uygulamaların ve çeşitli depolama sistemlerinin hata ayıklamasını ve test edilmesini basitleştirmenize olanak tanır;
    • Gerçekleştirillen BFQ I/O zamanlayıcı için önemli performans optimizasyonları. Yüksek I/O yükü koşullarında optimizasyonlar yapıldı позволяют Uygulamaların başlatılması gibi işlemlerin süresini %80'e kadar azaltın.
    • Dosya sistemlerini bağlamak için bir dizi sistem çağrısı eklendi: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() и move_mount(). Bu sistem çağrıları, daha önce ortak mount() sistem çağrısı kullanılarak gerçekleştirilen farklı montaj aşamalarını (süper bloğu işleme, dosya sistemi hakkında bilgi alma, bağlama, bağlama noktasına ekleme) ayrı ayrı işlemenize olanak tanır. Ayrı çağrılar, daha karmaşık bağlama senaryolarını gerçekleştirme ve süper bloğu yeniden yapılandırma, seçenekleri etkinleştirme, bağlama noktasını değiştirme ve farklı bir ad alanına geçme gibi ayrı işlemleri gerçekleştirme olanağı sağlar. Ek olarak, ayrı işleme, hata kodlarının çıktısının nedenlerini doğru bir şekilde belirlemenize ve çok katmanlı dosya sistemleri için kaplamalar gibi birden fazla kaynak ayarlamanıza olanak tanır;
    • Eşzamansız I/O io_uring için arayüze, sistem çağrısına eşdeğer eylemleri gerçekleştiren yeni bir IORING_OP_SYNC_FILE_RANGE işlemi eklendi senkronizasyon_dosyası_aralığı()ve ayrıca eventfd'yi io_uring'e kaydetme ve işlemlerin tamamlanmasıyla ilgili bildirimler alma yeteneğini uyguladı;
    • CIFS dosya sistemi için, etkili kapsam eşlemesinin yanı sıra SEEK_DATA ve SEEK_HOLE modlarına destek sağlayan FIEMAP ioctl eklenmiştir;
    • FUSE alt sisteminde önerilen Veri önbelleğe almayı yönetmek için API;
    • Btrfs, qgroups uygulamasını optimize etti ve birden fazla sabit bağlantıya sahip dosyalar için fsync yürütme hızını geliştirdi. Veri bütünlüğü kontrol kodu iyileştirildi; bu kod artık verileri diske aktarmadan önce RAM'deki bilgilerin olası hasarlarını hesaba katıyor;
    • CEPH, anlık görüntülerin NFS yoluyla dışa aktarılması için destek ekledi;
    • "Yumuşak" modda NFSv4 montajının uygulanması iyileştirildi ("yumuşak" modda sunucuya erişimde bir hata meydana gelirse, çağrı hemen bir hata kodu döndürür ve "sert" modda kontrol FS'ye kadar verilmez. kullanılabilirlik veya zaman aşımı geri yüklenir). Yeni sürüm, daha doğru zaman aşımı yönetimi, daha hızlı kilitlenme kurtarma ve zaman aşımı oluştuğunda döndürülen hata kodunu (ETIMEDOUT) değiştirmenize olanak tanıyan yeni bir "daha yumuşak" bağlama seçeneği sunar;
    • NFS istemcilerinin durumunu izlemek için tasarlanan nfsdcld API, NFS sunucusunun, yeniden başlatma sonrasında istemcinin durumunu doğru şekilde izlemesine olanak tanır. Böylece, nfsdcld arka plan programı artık bir nfsdcltrack işleyicisi olarak görev yapabilir;
    • AFS için katma dosyalarda bayt aralığı kilitlerinin emülasyonu (Bayt Aralığı Kilitleme);
  • Sanallaştırma ve Güvenlik
    • Çekirdekte, yazılabilir yansıtılan bellek alanlarından kod yürütülmesine izin veren ve bir saldırı sırasında yararlanılabilecek potansiyel deliklerin engellenmesine olanak tanıyan yerleri ortadan kaldırmak için çalışmalar yapıldı;
    • CPU üzerinde talimatların spekülatif olarak yürütülmesiyle ilişkili güvenlik açıklarına karşı koruma sağlamak amacıyla belirli tekniklerin etkinleştirilmesini kontrol etmek için basitleştirilmiş bir yol sağlayan yeni bir çekirdek komut satırı parametresi "azaltmalar =" eklendi. "mitigations=off" ifadesinin iletilmesi mevcut tüm yöntemleri devre dışı bırakır ve varsayılan "mitigations=auto" modu korumayı etkinleştirir ancak Hyper Threading kullanımını etkilemez. "Azaltmalar=auto,nosmt" modu, koruma yöntemi gerektiriyorsa Hyper Threading'i ek olarak devre dışı bırakır.
    • Katma GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3) uyarınca elektronik dijital imza desteği, tarafından geliştirilmiş Basalt DPT'den Vitaly Chikunov. Yerel TLS uygulamasına AES128-CCM desteği eklendi. crypto_simd modülüne AEAD algoritmaları için destek eklendi;
    • Kconfig'de katma çekirdek korumasını geliştirmeye yönelik seçeneklerin bulunduğu ayrı bir "çekirdek sertleştirme" bölümü. Şu anda yeni bölüm yalnızca GCC denetimini geliştiren eklentileri etkinleştirmeye yönelik ayarları içeriyor;
    • Çekirdek kodu neredeyse teslim edilmiş anahtardaki bölünmeyen case ifadelerinden (her case bloğundan sonra return veya break olmadan). Bu tür anahtar kullanımıyla ilgili 32 durumdan 2311'sini düzeltmeye devam ediyor; bundan sonra çekirdeği oluştururken "-Wimplicit-geçiş" modunu kullanmak mümkün olacak;
    • PowerPC mimarisi için, kullanıcı alanındaki verilere istenmeyen çekirdek erişim yollarını sınırlandırmaya yönelik donanım mekanizmaları desteği uygulanmıştır;
    • Engelleme kodu eklendi saldırılar Intel işlemcilerde MDS (Mikro Mimari Veri Örnekleme) sınıfı. Bir sistemin güvenlik açıklarına karşı savunmasız olup olmadığını SysFS değişkeni "/sys/devices/system/cpu/vulneraibility/mds" aracılığıyla kontrol edebilirsiniz. Mevcut iki koruma modu: güncellenmiş mikro kod gerektiren tam ve kontrol kullanıcı alanına veya konuk sisteme aktarıldığında CPU arabelleklerinin tamamen temizlenmesini garanti etmeyen bypass. Koruma modlarını kontrol etmek için çekirdeğe “full”, “full,nosmt” (+ Hyper-Threads'i devre dışı bırak) ve “off” değerlerini alabilen “mds=” parametresi eklenmiştir;
    • X86-64 sistemlerinde, IRQ, hata ayıklama mekanizmaları ve istisna işleyicileri için "yığın koruma sayfası" koruması eklenmiştir; bunun özü, sınırdaki bellek sayfalarının yığınla değiştirilmesidir; bu erişim, bir istisna (sayfa hatası);
    • Ayrıcalığı olmayan işlemlerin userfaultfd() sistem çağrısını kullanma yeteneğini kontrol eden vm.unprivileged_userfaultfd sysctl ayarı eklendi;
  • Ağ alt sistemi
    • Katma IPv6 yolları için IPv4 ağ geçidi desteği. Örneğin, artık “ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0” gibi yönlendirme kurallarını belirleyebilirsiniz;
    • ICMPv6 için, herhangi bir yayın için ICMP ECHO'yu yok saymak amacıyla ioctl çağrıları icmp_echo_ignore_anycast ve icmp_echo_ignore_multicast uygulanır ve
      çok noktaya yayın adresleri. Katma ICMPv6 paket işlemenin yoğunluğunu sınırlama yeteneği;

    • Her düğümün komşu düğümler aracılığıyla bağlandığı merkezi olmayan ağların oluşturulmasına olanak tanıyan BATMAN (Mobil Adhoc Ağ İletişimine Daha İyi Yaklaşım) mesh protokolü için, katma çok noktaya yayından tek noktaya yayına yayın desteğinin yanı sıra sysfs aracılığıyla kontrol etme yeteneği;
    • Ethtool'da katma 1000BaseT için bir bağlantı kopma olayı hakkında bilgi almak için gereken süreyi azaltmanıza olanak tanıyan yeni bir Hızlı Bağlantı Düşmesi parametresi (normal koşullar altında gecikme 750 ms'ye kadardır);
    • Ortaya çıktı fırsat Foo-Over-UDP tünellerini belirli bir adrese, ağ arayüzüne veya sokete bağlamak (önceden bağlama yalnızca ortak bir maske ile yapılıyordu);
    • Kablosuz yığında sağlanan işleyicileri uygulama olasılığı
      Kullanıcı alanında OWE (Fırsatçı Kablosuz Şifreleme);

    • Netfilter'da, nat zincirlerine inet adres ailesi desteği eklendi (örneğin, ipv4 ve ipv6 kurallarını ayırmadan artık ipv4 ve ipv6'yı işlemek için tek bir çeviri kuralı kullanabilirsiniz);
    • netlink'te katma kip beklenen öznitelik boyutunun aşılmasına izin verilmeyen ve mesajların sonuna ek veri eklenmesinin yasak olduğu, tüm mesajların ve özniteliklerin doğruluğunun kesin olarak doğrulanması konusunda katı;
  • Bellek ve sistem hizmetleri
    • clone() sistem çağrısına CLONE_PIDFD bayrağı eklenmiştir, belirtildiğinde, oluşturulan alt süreçle tanımlanan dosya tanımlayıcı “pidfd” üst sürece döndürülür. Örneğin bu dosya tanımlayıcı, yarış durumuna girme korkusu olmadan sinyal göndermek için kullanılabilir (sinyal gönderildikten hemen sonra, hedef PID, işlemin sonlandırılması nedeniyle serbest bırakılabilir ve başka bir işlem tarafından işgal edilebilir);
    • Grupların ikinci sürümü için, bir gruptaki çalışmayı durdurabileceğiniz ve diğer görevleri gerçekleştirmek için bazı kaynakları (CPU, I/O ve hatta potansiyel olarak bellek) geçici olarak serbest bırakabileceğiniz dondurucu denetleyici işlevi eklenmiştir. Yönetim, cgroup ağacındaki cgroup.freeze ve cgroup.events kontrol dosyaları aracılığıyla yapılır. cgroup.freeze dosyasındaki giriş 1, geçerli gruptaki ve tüm alt gruplardaki işlemleri dondurur. Donma biraz zaman aldığından, işlemin tamamlandığını öğrenebileceğiniz ek bir cgroup.events dosyası sağlanır;
    • Güvenli sysfs'deki her düğüme eklenen bellek niteliklerinin dışa aktarımı; bu, kullanıcı alanından, heterojen belleğe sahip sistemlerde bellek bankalarının işlenmesinin doğasını belirlemenize olanak tanır;
    • PSI (Basınç Durma Bilgisi) alt sistemi geliştirildi; bu, bir gruptaki belirli görevler veya işlem kümeleri için çeşitli kaynakların (CPU, bellek, G/Ç) alınmasına yönelik bekleme süresi hakkındaki bilgileri analiz etmenize olanak tanır. Kullanıcı alanı işleyicileri, PSI'yı kullanarak, Yük Ortalaması'na kıyasla sistem yükünün seviyesini ve yavaşlama düzenlerini daha doğru bir şekilde tahmin edebilir. Yeni sürüm, hassasiyet eşiklerini ayarlama desteği ve ayarlanan eşiklerin belirli bir süre boyunca tetiklendiğine dair bildirim almak için poll() çağrısını kullanma yeteneği sağlar. Bu özellik, Android'in bellek eksikliklerini erken bir aşamada izlemesine, sorunların kaynağını belirlemesine ve kullanıcının fark edebileceği sorunlara neden olmadan önemsiz uygulamaları sonlandırmasına olanak tanır. Stres testi sırasında PSI tabanlı bellek tüketimi izleme araçları, vmpression istatistikleriyle karşılaştırıldığında 10 kat daha az hatalı pozitif sonuç gösterdi;
    • BPF programlarını kontrol etme kodu optimize edildi ve bu, büyük programların 20 kata kadar daha hızlı kontrol edilmesine olanak tanıyor. Optimizasyon, BPF programlarının boyut sınırının 4096'dan bir milyon talimata çıkarılmasını mümkün kıldı;
    • BPF programları için tarafından sağlanan programlarda küresel değişkenleri ve sabitleri tanımlamanıza olanak tanıyan küresel verilere erişme yeteneği;
    • Katma APIsysctl parametrelerindeki değişiklikleri BPF programlarından kontrol etmenizi sağlayan;
    • MIPS32 mimarisi için eBPF sanal makinesine yönelik bir JIT derleyicisi uygulanmıştır;
    • 32 bit PowerPC mimarisi için, bellekle çalışırken hataların belirlenmesine yardımcı olan KASan (Çekirdek adresi temizleme) hata ayıklama aracı desteği eklendi;
    • X86-64 sistemlerinde, çekirdek çökmesi (çökme dökümü) sırasında durum dökümlerinin 896 MB'ın üzerindeki bellek alanlarına yerleştirilmesine ilişkin kısıtlama kaldırıldı;
    • s390 mimarisi için, çekirdek adres alanı rastgeleleştirmesi (KASLR) desteği ve çekirdeği kexec_file_load() yoluyla yüklerken dijital imzaları doğrulama yeteneği uygulanır;
    • PA-RISC mimarisi için, çekirdek hata ayıklayıcı (KGDB), atlama işaretleri ve kprobe'lar için destek eklendi;
  • Оборудование
    • Sürücü dahil Lima ARM mimarisini temel alan birçok eski yongada kullanılan Mali 400/450 GPU için. Daha yeni Mali GPU'lar için, Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) ve Bifrost (Mali G3x, G5x, G7x) mikro mimarilerini temel alan yongaları destekleyen Panfrost sürücüsü eklendi;
    • Açık ürün yazılımını kullanan ses cihazları için destek eklendi Ses Açık Bellenim (SOF). Açık sürücülerin mevcut olmasına rağmen, ses yongalarının ürün yazılımı kodu hala kapalı kaldı ve ikili biçimde sağlandı. Sound Open Firmware projesi, ses işlemeyle ilgili DSP çipleri için açık firmware oluşturmak amacıyla Intel tarafından geliştirildi (daha sonra Google da geliştirmeye katıldı). Şu anda proje, Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake ve IceLake platformlarının ses yongaları için ürün yazılımı keşfine hazırlandı;
    • Intel DRM sürücüsü (i915) çipler için destek ekler
      Elkhartlake (Gen11). Comet Lake (Gen9) yongaları için PCI kimlikleri eklendi. Icelake yongalarına yönelik destek stabilize edildi ve bunlara ilave PCI aygıt tanımlayıcıları da eklendi.
      Dahil
      mmio aracılığıyla yazma işlemleri gerçekleştirirken video belleğindeki iki arabellek arasında eşzamansız geçiş modu (zaman uyumsuz geçiş), bu, bazı 3D uygulamaların performansını önemli ölçüde artırdı (örneğin, 3DMark Buz Fırtınası testindeki performans% 300-400 arttı). Teknoloji desteği eklendi HDCP2.2 HDMI aracılığıyla iletilen video sinyallerini şifrelemek için (Yüksek Bant Genişliğine Sahip Dijital İçerik Koruması);

    • Vega20 GPU için amdgpu sürücüsü katma RAS (Güvenilirlik, Kullanılabilirlik, Hizmet Verilebilirlik) desteği ve Powerplay teknolojisinin yerini alan SMU 11 alt sistemi için deneysel destek. GPU Vega12 için katma BACO modu desteği (Bus Active, Chip Off). GPU ara bağlantısı için yüksek hızlı bir veri yolu (PCIe 4.0) olan XGMI için başlangıç ​​desteği eklendi. Polaris10 GPU'yu temel alan kartlar için eksik tanımlayıcılar amdkfd sürücüsüne eklendi;
    • Nouveau sürücüsü, NVIDIA Turing 117 yonga setini (GeForce GTX 117'de kullanılan TU1650) temel alan kartlar için destek ekledi. İÇİNDE
      kconfig katma libdrm'in mevcut sürümlerinde artık kullanılmayan eski işlevleri devre dışı bırakma ayarı;

    • DRM API'sine ve amdgpu sürücüsüne "zaman çizelgesi" senkronizasyon nesneleri desteği eklenerek klasik engelleme olmadan işlem yapmanıza olanak sağlanır.
    • VirtualBox sanal GPU'sunun vboxvideo sürücüsü, hazırlama dalından ana yapıya taşındı;
    • GFX SoC ASPEED çipi için bir hız sürücüsü eklendi;
    • ARM SoC ve Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi) desteği eklendi ) panolar RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST Mikro (stm32mp157a, stm32mp157c), NXP (
      Eckelmann ci4x10 (i.MX6DL),

      i.MX8MM EVK (i.MX8MM),

      ZII i.MX7 RPU2 (i.MX7),

      ZII SPB4 (VF610),

      Zii Ultra (i.MX8M),

      TQ TQMa7S (i.MX7Solo),

      TQ TQMa7D (i.MX7Dual),

      Kobo Aura (i.MX50),

      Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).

Aynı zamanda Latin Amerika Özgür Yazılım Vakfı oluşturulan
seçenek tamamen ücretsiz çekirdek 5.2 - Linux-libre 5.2-gnu, kapsamı üretici tarafından sınırlandırılmış, özgür olmayan bileşenler veya kod bölümleri içeren ürün yazılımı ve sürücü öğelerinden temizlenmiş. Yeni sürüm dosya yüklemeyi içerir
Ses Açık Firmware. Sürücülerde blobların yüklenmesi devre dışı bırakıldı
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp ve ucsi_ccg. İxp4xx, imx-sdma, amdgpu, nouveau ve goya sürücüleri ve alt sistemleri ile mikro kod belgelerindeki blob temizleme kodu güncellendi. Kaldırılması nedeniyle r8822be sürücüsündeki lekelerin temizlenmesi durduruldu.

Kaynak: opennet.ru

Yorum ekle