Linux 5.2 nüvə buraxılışı

İki aylıq inkişafdan sonra Linus Torvalds təqdim etdi kernel buraxılışı Linux 5.2. Ən nəzərə çarpan dəyişikliklər arasında: Ext4 iş rejimi hərflərə həssas deyil, fayl sisteminin quraşdırılması üçün ayrıca sistem çağırışları, GPU Mali 4xx/ 6xx/7xx üçün drayverlər, BPF proqramlarında sysctl dəyərlərində dəyişiklikləri idarə etmək imkanı, cihaz-mapper modul dm-toz, hücumlardan qorunma MDS, DSP üçün Sound Open Firmware dəstəyi, BFQ performansının optimallaşdırılması, PSI (Pressure Stall Information) alt sistemini Android-də istifadə imkanlarına çatdırmaq.

Yeni versiyaya 15100 tərtibatçıdan 1882 düzəliş daxildir,
patch ölçüsü - 62 MB (dəyişikliklər 30889 fayla təsir etdi, 625094 kod sətri əlavə edildi, 531864 sətir silindi). 45-də təqdim olunanların təxminən 5.2% -i
Dəyişikliklərin təxminən 21%-i cihaz sürücüləri ilə bağlıdır
hardware arxitekturasına xas kodun yenilənməsinə münasibət, 12%
şəbəkə yığını, 3% fayl sistemləri və 3% daxili ilə bağlıdır
nüvə alt sistemləri. Bütün dəyişikliklərin 12.4%-i Intel, 6.3%-i Red Hat, 5.4%-i Google, 4.0%-i AMD, 3.1%-i SUSE, 3%-i IBM, 2.7%-i Huawei, 2.7%-i Linaro, 2.2%-i ARM tərəfindən hazırlanıb. , 1.6 % - Oracle.

Əsas yeniliklər:

  • Disk alt sistemi, giriş/çıxış və fayl sistemləri
    • Ext4 üçün əlavə edilib dəstək yeni “+F” (EXT4_CASEFOLD_FL) atributundan istifadə edərək yalnız ayrı-ayrı boş qovluqlara münasibətdə aktivləşdirilən fayl adlarında simvolların hallarını ayırmadan işləmək. Bu atribut kataloqda qurulduqda, faylların və alt-kataloqların daxilində olan bütün əməliyyatlar simvolların registrləri nəzərə alınmadan yerinə yetiriləcək, o cümlədən faylların axtarışı və açılması zamanı reys nəzərə alınmayacaq (məsələn, Test.txt faylları, belə kataloqlarda test.txt və test.TXT eyni hesab olunacaq). Varsayılan olaraq, fayl sistemi “chattr +F” atributlu qovluqlar istisna olmaqla, hərf hərfinə həssas olmağa davam edir;
    • Sətirlərin müqayisəsi və normallaşdırma əməliyyatlarının yerinə yetirilməsi zamanı istifadə olunan fayl adlarında UTF-8 simvollarının işlənməsi funksiyaları vahidləşdirilmişdir;
    • XFS fayl sisteminin sağlamlığının monitorinqi üçün infrastruktur və sağlamlıq vəziyyətinin sorğulanması üçün yeni ioctl əlavə edir. Superblok sayğaclarını onlayn yoxlamaq üçün eksperimental funksiya həyata keçirilib.
    • Yeni modul cihaz-mapper əlavə edildi "dm-toz“, bu, mediada pis blokların görünüşünü və ya diskdən oxuyarkən səhvləri simulyasiya etməyə imkan verir. Modul, mümkün nasazlıqlar qarşısında proqramların və müxtəlif saxlama sistemlərinin sazlanması və sınaqdan keçirilməsini sadələşdirməyə imkan verir;
    • Həyata keçirilən BFQ I/O planlaşdırıcısı üçün əhəmiyyətli performans optimallaşdırmaları. Yüksək I/O yükü şəraitində optimallaşdırmalar aparılmışdır icazə verin Proqramların işə salınması kimi əməliyyatların vaxtını 80%-ə qədər azaldın.
    • Fayl sistemlərinin quraşdırılması üçün bir sıra sistem çağırışları əlavə edildi: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() и move_mount(). Bu sistem çağırışları, əvvəllər ümumi mount() sistem çağırışından istifadə etməklə yerinə yetirilən montajın müxtəlif mərhələlərini (superblokun işlənməsi, fayl sistemi haqqında məlumatın alınması, montaj, montaj nöqtəsinə qoşulma) ayrıca emal etməyə imkan verir. Ayrı çağırışlar daha mürəkkəb montaj ssenarilərini yerinə yetirmək və superblokun yenidən konfiqurasiyası, seçimləri aktivləşdirmək, quraşdırma nöqtəsini dəyişdirmək və fərqli ad sahəsinə keçmək kimi ayrı-ayrı əməliyyatları yerinə yetirmək imkanı verir. Bundan əlavə, ayrıca emal səhv kodlarının çıxarılmasının səbəblərini dəqiq müəyyən etməyə və çox qatlı fayl sistemləri üçün çoxlu mənbələri təyin etməyə imkan verir, məsələn, overlayfs;
    • Sistem çağırışına ekvivalent hərəkətləri yerinə yetirən asinxron I/O io_uring üçün interfeysə yeni əməliyyat IORING_OP_SYNC_FILE_RANGE əlavə edildi sync_file_range(), həmçinin eventfd-ni io_uring ilə qeydiyyatdan keçirmək və əməliyyatların başa çatması barədə bildirişlər almaq imkanı həyata keçirdi;
    • CIFS fayl sistemi üçün FIEMAP ioctl əlavə edilmişdir ki, bu da SEEK_DATA və SEEK_HOLE rejimlərini dəstəkləməklə yanaşı, səmərəli həcm xəritəsini təmin edir;
    • FUSE altsistemində təklif etdi verilənlərin keşini idarə etmək üçün API;
    • Btrfs qgroups tətbiqini optimallaşdırdı və çoxsaylı sərt keçidləri olan fayllar üçün fsync icra sürətini yaxşılaşdırdı. Məlumatların bütövlüyünün yoxlanılması kodu təkmilləşdirilmişdir ki, bu da indi məlumatları diskə silməzdən əvvəl RAM-dakı məlumatlara mümkün zərərləri nəzərə alır;
    • CEPH NFS vasitəsilə snapshotların ixracı üçün dəstək əlavə etdi;
    • “Yumşaq” rejimdə NFSv4 montajının həyata keçirilməsi təkmilləşdirilmişdir (“yumşaq” rejimdə serverə daxil olmaqda xəta baş verərsə, zəng dərhal xəta kodunu qaytarır və “sərt” rejimdə FS-ə qədər nəzarət verilmir. əlçatanlıq və ya vaxt aşımı bərpa olunur). Yeni buraxılış daha dəqiq vaxt aşımının idarə edilməsini, qəzaların daha sürətli bərpasını və fasilə yarandıqda qaytarılan xəta kodunu (ETIMEDOUT) dəyişməyə imkan verən yeni “yumşaq” quraşdırma seçimini təmin edir;
    • NFS müştərilərinin vəziyyətini izləmək üçün nəzərdə tutulmuş nfsdcld API NFS serverinə yenidən başladıqdan sonra müştərinin vəziyyətini düzgün izləməyə imkan verir. Beləliklə, nfsdcld demonu indi nfsdcltrack işləyicisi kimi çıxış edə bilər;
    • AFS üçün əlavə etdi fayllarda bayt diapazonunun kilidlərinin emulyasiyası (Bayt diapazonunun kilidlənməsi);
  • Virtuallaşdırma və Təhlükəsizlik
    • Yazıla bilən əks olunan yaddaş sahələrindən kodun icrasına imkan verən nüvədə yerlərin aradan qaldırılması üçün işlər görülüb ki, bu da hücum zamanı istifadə oluna biləcək potensial dəliklərin bloklanmasına imkan verir;
    • CPU-da təlimatların spekulyativ icrası ilə bağlı zəifliklərdən qorunmaq üçün müəyyən texnikaların aktivləşdirilməsinə nəzarət etmək üçün sadələşdirilmiş üsul təmin edən yeni nüvə əmr xətti parametri "mitigations=" əlavə edilmişdir. "Mütəxəssislər=off" keçidi bütün mövcud metodları deaktiv edir və standart rejim "azaltmalar=avtomatik" qorumağa imkan verir, lakin Hyper Threading-in istifadəsinə təsir etmir. Qoruma metodu tələb edərsə, “azaltmalar=auto,nosmt” rejimi əlavə olaraq Hyper Threading-i deaktiv edir.
    • Əlavə edilib GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3) uyğun olaraq elektron rəqəmsal imza dəstəyi, inkişaf etmişdir Bazalt SPO-dan Vitali Çikunov. Doğma TLS tətbiqinə AES128-CCM dəstəyi əlavə edildi. crypto_simd moduluna AEAD alqoritmləri üçün əlavə dəstək;
    • Kconfig-də əlavə etdi nüvə qorunmasını artırmaq üçün seçimləri olan ayrıca "ləpə bərkidilməsi" bölməsi. Hazırda yeni bölmədə yalnız GCC yoxlamasını gücləndirən plaginləri işə salmaq üçün parametrlər var;
    • Kernel kodu demək olar ki çatdırılmış keçiddə kəsilməyən hal ifadələrindən (hər bir iş blokundan sonra qayıtmadan və ya kəsilmədən). 32 keçiddən belə istifadə halından 2311-ni düzəltmək qalır, bundan sonra nüvəni qurarkən "-Wimplicit-fallthrough" rejimindən istifadə etmək mümkün olacaq;
    • PowerPC arxitekturası üçün istifadəçi məkanında verilənlərə arzuolunmaz nüvəyə giriş yollarını məhdudlaşdırmaq üçün aparat mexanizmlərinə dəstək həyata keçirilib;
    • Bloklama kodu əlavə edildi hücumlar Intel prosessorlarında MDS (Microarchitectural Data Sampling) sinfi. Siz “/sys/devices/system/cpu/vulnerabilities/mds” SysFS dəyişəni vasitəsilə sistemin zəifliklərə qarşı həssas olub-olmadığını yoxlaya bilərsiniz. Mövcuddur iki qorunma rejimi: tam, yenilənmiş mikrokod tələb edən və idarəetmə istifadəçi sahəsinə və ya qonaq sisteminə ötürüldükdə CPU buferlərinin təmizlənməsinə tam zəmanət verməyən bypass. Qoruma rejimlərinə nəzarət etmək üçün nüvəyə “full”, “full,nosmt” (+ Hyper-Threads-i söndür) və “off” dəyərlərini qəbul edə bilən “mds=” parametri əlavə edilmişdir;
    • X86-64 sistemlərində IRQ, sazlama mexanizmləri və istisna işləyiciləri üçün “stack guard-page” mühafizəsi əlavə edilmişdir ki, bunun da mahiyyəti yaddaş səhifələrinin steklə sərhəddə əvəz edilməsindən ibarətdir ki, bu da girişin yaradılmasına gətirib çıxarır. istisna (səhifə səhvi);
    • Əlavə edilmiş sysctl parametri vm.unprivileged_userfaultfd, imtiyazsız proseslərin userfaultfd() sistem çağırışından istifadə etmək qabiliyyətinə nəzarət edir;
  • Şəbəkə alt sistemi
    • Əlavə edilib IPv6 marşrutları üçün IPv4 şlüz dəstəyi. Məsələn, indi “ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0” kimi marşrutlaşdırma qaydalarını təyin edə bilərsiniz;
    • ICMPv6 üçün ioctl zəngləri icmp_echo_ignore_anycast və icmp_echo_ignore_multicast hər hansı bir yayım üçün ICMP ECHO-ya məhəl qoymamaq üçün həyata keçirilir.
      multicast ünvanları. Əlavə edilib ICMPv6 paket emalının intensivliyini məhdudlaşdırmaq imkanı;

    • Hər bir qovşağın qonşu qovşaqlar vasitəsilə birləşdirildiyi mərkəzləşdirilməmiş şəbəkələrin yaradılmasına imkan verən BATMAN (Mobil Adhoc Şəbəkələrə Daha Yaxşı Yanaşma) mesh protokolu üçün, əlavə etdi multicast-dan unicast-a yayım dəstəyi, həmçinin sysfs vasitəsilə idarə etmək imkanı;
    • Ettoolda əlavə etdi 1000BaseT (normal şəraitdə gecikmə 750 ms-ə qədər) üçün keçidin aşağı düşməsi hadisəsi haqqında məlumat almaq üçün lazım olan vaxtı azaltmağa imkan verən yeni Fast Link Down parametri;
    • Görünür imkan Foo-Over-UDP tunellərinin müəyyən bir ünvana, şəbəkə interfeysinə və ya rozetkaya bağlanması (əvvəllər bağlama yalnız ümumi maska ​​ilə həyata keçirilirdi);
    • Simsiz yığında təmin olunub işləyicilərin həyata keçirilməsi imkanı
      İstifadəçi məkanında OWE (Opportunistic Wireless Encryption);

    • Netfilter-də inet ünvan ailəsi üçün dəstək nat zəncirlərinə əlavə edilmişdir (məsələn, indi ipv4 və ipv6 üçün qaydaları ayırmadan ipv4 və ipv6-nı emal etmək üçün bir tərcümə qaydasından istifadə edə bilərsiniz);
    • Netlinkdə əlavə etdi rejim atributların gözlənilən ölçüsünü aşmağa icazə verilməyən və mesajların sonunda əlavə məlumatların əlavə edilməsi qadağan edilən bütün mesajların və atributların düzgünlüyünün ciddi şəkildə yoxlanılması üçün ciddi;
  • Yaddaş və sistem xidmətləri
    • CLONE_PIDFD bayrağı clone() sistem çağırışına əlavə edildi, müəyyən edildikdə, yaradılmış uşaq prosesi ilə müəyyən edilmiş “pidfd” fayl deskriptoru ana prosesə qaytarılır. Bu fayl deskriptoru, məsələn, yarış vəziyyətinə düşmək qorxusu olmadan siqnalları göndərmək üçün istifadə edilə bilər (siqnal göndərildikdən dərhal sonra, hədəf PID prosesin dayandırılması səbəbindən sərbəst buraxıla bilər və başqa bir proses tərəfindən işğal edilə bilər);
    • Qrupların ikinci versiyası üçün dondurucu nəzarətçi funksionallığı əlavə edilmişdir ki, bu funksiya ilə siz qrupda işi dayandıra və digər tapşırıqları yerinə yetirmək üçün bəzi resursları (CPU, I/O və potensial hətta yaddaş) müvəqqəti olaraq boşalta bilərsiniz. İdarəetmə cgroup ağacında cgroup.freeze və cgroup.events nəzarət faylları vasitəsilə həyata keçirilir. cgroup.freeze-də 1-ci giriş cari qrupda və bütün uşaq qruplarında prosesləri dondurur. Dondurma bir qədər vaxt apardığından, əməliyyatın başa çatması barədə məlumat əldə edə biləcəyiniz əlavə cgroup.events faylı təqdim olunur;
    • Təminatlı sysfs-də hər bir node-a əlavə edilmiş yaddaş atributlarının ixracı, bu, istifadəçi məkanından heterojen yaddaşa malik sistemlərdə yaddaş banklarının işlənməsinin xarakterini müəyyən etməyə imkan verir;
    • PSI (Pressure Stall Information) alt sistemi təkmilləşdirilmişdir ki, bu da qrupdakı müəyyən tapşırıqlar və ya proseslər dəstləri üçün müxtəlif resursların (CPU, yaddaş, giriş/çıxış) alınması üçün gözləmə müddəti haqqında məlumatı təhlil etməyə imkan verir. PSI istifadə edərək, istifadəçi sahəsi idarəçiləri, Orta Yüklə müqayisədə sistem yükünün səviyyəsini və yavaşlama nümunələrini daha dəqiq qiymətləndirə bilər. Yeni versiya həssaslıq hədlərinin təyin edilməsi üçün dəstək və müəyyən edilmiş hədlərin müəyyən müddət ərzində işə salınması barədə bildiriş almaq üçün poll() çağırışından istifadə etmək imkanı verir. Bu funksiya Android-ə yaddaş çatışmazlığını ilkin mərhələdə izləməyə, problemlərin mənbəyini müəyyən etməyə və istifadəçi üçün nəzərə çarpan problemlər yaratmadan əhəmiyyətsiz proqramları dayandırmağa imkan verir. Stress testi zamanı PSI əsaslı yaddaş istehlakının monitorinqi alətləri vmpressure statistikası ilə müqayisədə 10 dəfə az yalan pozitivlik nümayiş etdirdi;
    • BPF proqramlarını yoxlamaq üçün kod optimallaşdırılmışdır ki, bu da böyük proqramlar üçün 20 dəfəyə qədər daha sürətli yoxlamaya imkan verir. Optimallaşdırma BPF proqramlarının ölçüsü üzrə limiti 4096-dan bir milyon təlimata qaldırmağa imkan verdi;
    • BPF proqramları üçün tərəfindən verilmişdir proqramlarda qlobal dəyişənləri və sabitləri təyin etməyə imkan verən qlobal məlumatlara çıxış imkanı;
    • Əlavə edilib API, BPF proqramlarından sysctl parametrlərində dəyişiklikləri idarə etməyə imkan verir;
    • MIPS32 arxitekturası üçün eBPF virtual maşını üçün JIT kompilyatoru tətbiq edilmişdir;
    • 32 bitlik PowerPC arxitekturası üçün yaddaşla işləyərkən səhvləri müəyyən etməyə kömək edən KASan (Kernel address sanitizer) sazlama alətinə dəstək əlavə edilmişdir;
    • x86-64 sistemlərində 896MB-dan yuxarı yaddaş sahələrində nüvə qəzası (qəza-damp) zamanı dövlət dumplərinin yerləşdirilməsi ilə bağlı məhdudiyyət aradan qaldırıldı;
    • s390 arxitekturası üçün nüvə ünvan məkanının təsadüfiləşdirilməsi (KASLR) dəstəyi və kexec_file_load() vasitəsilə nüvəni yükləyərkən rəqəmsal imzaları yoxlamaq imkanı həyata keçirilir;
    • PA-RISC arxitekturası üçün kernel debugger (KGDB), keçid işarələri və kproblar üçün əlavə dəstək;
  • Оборудование
    • Sürücü daxildir Lima ARM arxitekturasına əsaslanan bir çox köhnə çiplərdə istifadə olunan Mali 400/450 GPU üçün. Daha yeni Mali GPU-ları üçün Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) və Bifrost (Mali G3x, G5x, G7x) mikroarxitekturalarına əsaslanan çipləri dəstəkləyən Panfrost sürücüsü əlavə edildi;
    • Açıq proqram təminatından istifadə edən audio cihazları üçün əlavə dəstək Səs proqramı açıqdır (SOF). Açıq sürücülərin mövcudluğuna baxmayaraq, səs çipləri üçün proqram kodu hələ də qapalı qaldı və ikili formada təmin edildi. Sound Open Firmware layihəsi səs emalı ilə bağlı DSP çipləri üçün açıq proqram təminatı yaratmaq üçün Intel tərəfindən hazırlanmışdır (Google da sonradan inkişafa qoşulmuşdur). Hazırda layihə artıq Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake və IceLake platformalarının səs çipləri üçün proqram təminatının kəşfini hazırlayıb;
    • Intel DRM sürücüsü (i915) çiplər üçün dəstək əlavə edir
      Elkhartlake (Gen11). Comet Lake (Gen9) çipləri üçün PCI ID-ləri əlavə edildi. Icelake çiplərinə dəstək sabitləşdi, bunun üçün əlavə PCI cihaz identifikatorları da əlavə edildi.
      Yandırmaq
      mmio vasitəsilə yazma əməliyyatlarını yerinə yetirərkən video yaddaşdakı iki bufer arasında asinxron keçid rejimi (async flip), bu da bəzi 3D proqramların işini əhəmiyyətli dərəcədə artırdı (məsələn, 3DMark Ice Storm testində performans 300-400% artdı). Əlavə texnologiya dəstəyi HDCP 2.2 (High-bandwidth Digital Content Protection) HDMI vasitəsilə ötürülən video siqnalların şifrələnməsi üçün;

    • Vega20 GPU üçün amdgpu sürücüsü əlavə etdi RAS (Reliability, Availability, Serviceability) dəstəyi və Powerplay texnologiyasını əvəz edən SMU 11 alt sistemi üçün eksperimental dəstək. GPU Vega12 üçün əlavə etdi BACO rejimi üçün dəstək (Bus Active, Chip Off). GPU qarşılıqlı əlaqəsi üçün yüksək sürətli avtobus (PCIe 4.0) olan XGMI üçün ilkin dəstək əlavə edildi. Amdkfd sürücüsünə Polaris10 GPU-ya əsaslanan kartlar üçün çatışmayan identifikatorlar əlavə edildi;
    • Nouveau sürücüsü NVIDIA Turing 117 çipsetinə əsaslanan lövhələr üçün dəstək əlavə etdi (TU117, GeForce GTX 1650-də istifadə olunur). IN
      kconfig əlavə etdi libdrm-in cari buraxılışlarında artıq istifadə edilməyən köhnəlmiş funksiyaları söndürmək üçün parametr;

    • DRM API-yə və amdgpu drayverinə “vaxt qrafiki” sinxronizasiya obyektləri üçün dəstək əlavə edilib və klassik bloklama olmadan etməyə imkan verir.
    • VirtualBox virtual GPU üçün vboxvideo drayveri quruluş bölməsindən əsas struktura köçürüldü;
    • GFX SoC ASPEED çipi üçün əlavə sürət sürücüsü;
    • ARM SoC və Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, ,Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi) üçün əlavə dəstək ) lövhələr RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST Micro (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).

Eyni zamanda Latın Amerikası Azad Proqram təminatı Fondu formalaşmışdır
seçimi tamamilə pulsuz kernel 5.2 - Linux pulsuz 5.2-gnu, əhatə dairəsi istehsalçı tərəfindən məhdudlaşdırılan, sərbəst olmayan komponentləri və ya kod bölmələrini ehtiva edən proqram təminatı və sürücü elementlərindən təmizlənmişdir. Yeni buraxılışa fayl yükləmə daxildir
Səs Açıq Mikroproqram. Sürücülərdə blobların yüklənməsi qeyri-aktiv edilib
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp və ucsi_ccg. ixp4xx, imx-sdma, amdgpu, nouveau və goya sürücüləri və alt sistemlərində, həmçinin mikrokod sənədlərində blob təmizləmə kodu yeniləndi. R8822be drayverində silinməsi səbəbindən ləkələrin təmizlənməsi dayandırıldı.

Mənbə: opennet.ru

Добавить комментарий