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

İki aylıq inkişafdan sonra Linus Torvalds Linux 5.14 nüvəsinin buraxılışını təqdim etdi. Ən diqqətəlayiq dəyişikliklər arasında: yeni quotactl_fd() və memfd_secret() sistem zəngləri, ide və xam sürücülərin silinməsi, qruplar üçün yeni I/O prioritet nəzarətçisi, SCHED_CORE tapşırıq planlaşdırma rejimi, təsdiqlənmiş BPF proqram yükləyicilərinin yaradılması üçün infrastruktur.

Yeni versiyaya 15883 tərtibatçıdan 2002 69 düzəliş daxildir, yamaq ölçüsü 12580 MB-dır (dəyişikliklər 861501 321654 fayla təsir edib, 47 5.14 kod sətri əlavə edilib, 14 13 sətir silinib). 3-də təqdim edilən bütün dəyişikliklərin təxminən 3%-i qurğu drayverləri, dəyişikliklərin təxminən XNUMX%-i hardware arxitekturasına xas kodun yenilənməsi, XNUMX%-i şəbəkə yığını, XNUMX%-i fayl sistemləri və XNUMX%-i ilə bağlıdır. daxili nüvə alt sistemləri ilə əlaqədardır.

Əsas yeniliklər:

  • Disk alt sistemi, giriş/çıxış və fayl sistemləri
    • Qruplar üçün yeni I/O prioritetləşdirmə nəzarətçisi rq-qos tətbiq edilib ki, bu da hər bir qrup üzvləri tərəfindən yaradılan cihazları bloklamaq üçün sorğuların emal prioritetini idarə edə bilir. Yeni prioritet nəzarətçi dəstəyi mq-deadline I/O planlaşdırıcısına əlavə edildi.
    • Ext4 fayl sistemi yeni ioctl əmrini, EXT4_IOC_CHECKPOINT tətbiq edir ki, bu da jurnaldan və onlarla əlaqəli buferlərdən bütün gözlənilən əməliyyatları diskə silməyə məcbur edir, həmçinin jurnalın saxlandığı sahənin üzərinə yazır. Dəyişiklik fayl sistemlərindən məlumat sızmasının qarşısını almaq üçün təşəbbüsün bir hissəsi kimi hazırlanıb.
    • Btrfs-də performans optimallaşdırmaları edildi: fsync icrası zamanı genişləndirilmiş atributların lazımsız qeydini aradan qaldırmaqla genişləndirilmiş atributlarla intensiv əməliyyatların performansı 17%-ə qədər artdı. Əlavə olaraq, ölçülərə təsir etməyən trim əməliyyatlarını yerinə yetirərkən, tam sinxronizasiya deaktiv edilir, bu da əməliyyat müddətini 12% azaldır. FS yoxlanarkən I/O bant genişliyini məhdudlaşdırmaq üçün sysfs-ə parametr əlavə edildi. Cihaz əməliyyatlarının ölçüsünün dəyişdirilməsini və silinməsini ləğv etmək üçün ioctl zəngləri əlavə edildi.
    • XFS-də bufer keşinin həyata keçirilməsi yenidən işlənib, o, toplu rejimdə yaddaş səhifələrinin ayrılmasına keçib. Təkmilləşdirilmiş keş səmərəliliyi.
    • F2FS yalnız oxumaq rejimində işləmək üçün seçim əlavə edir və təsadüfi oxuma performansını yaxşılaşdırmaq üçün sıxılmış blok keş rejimini (compress_cache) tətbiq edir. mmap() əməliyyatından istifadə edərək yaddaşa uyğunlaşdırılmış faylların sıxılması üçün dəstək həyata keçirilib. Maska əsasında fayl sıxılmasını selektiv şəkildə söndürmək üçün nocompress yeni montaj seçimi təklif edilmişdir.
    • Bəzi rəqəmsal kamera yaddaşı ilə uyğunluğu yaxşılaşdırmaq üçün exFAT sürücüsündə işlər görülüb.
    • Kvotaları xüsusi cihaz faylı vasitəsilə deyil, kvotanın tətbiq olunduğu fayl sistemi ilə əlaqəli fayl deskriptorunu təyin etməklə idarə etməyə imkan verən quotactl_fd() sistem çağırışı əlavə edildi.
    • IDE interfeysli blok cihazları üçün köhnə drayverlər nüvədən çıxarılıb, onlar çoxdan libata alt sistemi ilə əvəz olunub.
    • /dev/raw interfeysi vasitəsilə bloklanmış cihazlara bufersiz girişi təmin edən "xam" drayver nüvədən silindi. Bu funksionallıq O_DIRECT bayrağından istifadə edən proqramlarda çoxdan tətbiq edilmişdir.
  • Yaddaş və sistem xidmətləri
    • Tapşırıq planlayıcısı eyni CPU nüvəsində hansı proseslərin birlikdə icra oluna biləcəyini idarə etməyə imkan verən yeni planlaşdırma rejimini, SCHED_CORE tətbiq edir. Hər bir prosesə proseslər arasında etimad dairəsini müəyyən edən kuki identifikatoru təyin edilə bilər (məsələn, eyni istifadəçiyə və ya konteynerə aid olan). Kod icrasını təşkil edərkən, planlaşdırıcı bir CPU nüvəsinin yalnız eyni sahiblə əlaqəli proseslər arasında paylaşılmasını təmin edə bilər ki, bu da etibarlı və etibarsız tapşırıqların eyni SMT (Hyper Threading) ipində işləməsinin qarşısını almaqla bəzi Spectre hücumlarının qarşısını almaq üçün istifadə edilə bilər. .
    • Cgroup üçün, cgroup.kill virtual faylına “1” yazaraq qrupla əlaqəli bütün prosesləri birdən öldürməyə (SIGKILL göndər) imkan verən öldürmə əməliyyatı üçün dəstək həyata keçirilib.
    • Atom təlimatını yerinə yetirərkən məlumatların iki CPU keş xəttini keçməsi səbəbindən yaddaşda uyğunlaşdırılmamış məlumatlara daxil olduqda baş verən bölünmüş kilidlərin ("parçalanmış kilidlər") aşkarlanmasına cavab verməklə bağlı genişləndirilmiş imkanlar. Bu cür bloklama performansın əhəmiyyətli dərəcədə azalmasına səbəb olur, buna görə də əvvəllər bloklamaya səbəb olan tətbiqi məcburi şəkildə dayandırmaq mümkün idi. Yeni buraxılış, “split_lock_detect=ratelimit:N” kernel əmr satırı parametrini əlavə edir ki, bu da sizə saniyədə kilidləmə əməliyyatlarının sürətinə sistem miqyasında limit müəyyən etməyə imkan verir, bundan sonra split kilidin mənbəyinə çevrilmiş istənilən proses. dayandırmaq əvəzinə 20 ms dayanmağa məcbur olacaq.
    • Hər bir qrupa nə qədər prosessor vaxtının ayrıla biləcəyini müəyyən edən cgroup bandwidth controller CFS (CFS bandwidth controller), gecikmə müddətinə həssas iş yüklərinin daha yaxşı tənzimlənməsinə imkan verən vaxt məhdudiyyətlərini müəyyən etmək qabiliyyətini həyata keçirir. Məsələn, cpu.cfs_quota_us-u 50000-ə və cpu.cfs_period_us-u 100000-a təyin etmək bir qrup prosesə hər 100ms-dən bir 50ms CPU vaxtını sərf etməyə imkan verəcək.
    • Yalnız etibarlı rəqəmsal açarla imzalanmış BPF proqramlarının yüklənməsinə imkan verəcək BPF proqram yükləyicilərinin yaradılması üçün əlavə ilkin infrastruktur.
    • Sistemin yuxu rejimində sərf etdiyi vaxtı nəzərə alan fasiləni hesablamaq üçün monoton taymerdən istifadə edən yeni futex əməliyyatı FUTEX_LOCK_PI2 əlavə edildi.
    • RISC-V arxitekturası üçün böyük yaddaş səhifələrinə dəstək (Şəffaf Böyük Səhifələr) və yaddaşla işləyərkən səhvləri aşkar etmək üçün KFENCE mexanizmindən istifadə etmək imkanı həyata keçirilir.
    • Prosesin yaddaş idarəçiliyini optimallaşdırmaq üçün vasitə təmin edən madvise() sistem çağırışı, faktiki oxuma və ya yazma əməliyyatlarını yerinə yetirmədən oxumaq və ya yazma əməliyyatları üçün xəritələnmiş bütün yaddaş səhifələrində "səhifə xətası" yaratmaq üçün MADV_POPULATE_READ və MADV_POPULATE_WRITE bayraqlarını əlavə etdi. (əvvəlcədən). Bayraqların istifadəsi proqramın icrasında gecikmələrin azaldılması üçün faydalı ola bilər, çünki "səhifə xətası" işləyicisinin bütün bölüşdürülməmiş səhifələr üçün bir anda, onlara faktiki girişi gözləmədən aktiv şəkildə icrası.
    • Kunit vahid test sistemi QEMU mühitində testlərin aparılması üçün dəstək əlavə etdi.
    • Yeni izləyicilər əlavə edildi: fasilələrin idarə edilməsi nəticəsində yaranan tətbiq gecikmələrini izləmək üçün "osnoise" və taymer siqnalından oyanarkən gecikmələr haqqında ətraflı məlumatı göstərmək üçün "timerlat".
  • Virtuallaşdırma və Təhlükəsizlik
    • memfd_secret() sistem çağırışı təcrid olunmuş ünvan məkanında yalnız sahiblik prosesinə görünən, digər proseslərdə əks olunmayan və nüvəyə birbaşa daxil olmayan şəxsi yaddaş sahəsi yaratmaq üçün əlavə edilmişdir.
    • Seccomp sistem zəng filtrləmə sistemində bloklama işləyicilərini istifadəçi məkanına köçürərkən, tək atom əməliyyatından istifadə edərək, təcrid olunmuş tapşırıq üçün fayl deskriptoru yaratmaq və sistem çağırışını emal edərkən onu qaytarmaq mümkündür. Təklif olunan əməliyyat siqnal gəldiyi zaman istifadəçi məkanında işləyicinin kəsilməsi problemini həll edir.
    • Fərdi rlimit sayğaclarını "istifadəçi ad məkanında" istifadəçiyə bağlayan istifadəçi ID ad məkanında resurs məhdudiyyətlərinin idarə edilməsi üçün yeni mexanizm əlavə edildi. Dəyişiklik bir istifadəçi müxtəlif konteynerlərdə prosesləri idarə edərkən ümumi resurs sayğaclarının istifadəsi ilə bağlı problemi həll edir.
    • ARM64 sistemləri üçün KVM hipervizoru qonaq sistemlərində MTE (MemTag, Memory Tagging Extension) genişlənməsindən istifadə etmək imkanı əlavə etmişdir ki, bu da hər bir yaddaş ayırma əməliyyatına teqləri bağlamağa və istismarın qarşısını almaq üçün göstəricilərin düzgün istifadəsini yoxlamağı təşkil etməyə imkan verir. artıq boşaldılmış yaddaş bloklarına, daşqın buferinə, işə salınmazdan əvvəl girişlərə və cari kontekstdən kənar istifadəyə daxil olmaq nəticəsində yaranan zəifliklər.
    • ARM64 platformasının Pointer Authentication imkanları indi nüvə və istifadəçi sahəsi üçün ayrıca konfiqurasiya edilə bilər. Texnologiya, göstəricinin özünün istifadə olunmamış yuxarı bitlərində saxlanılan rəqəmsal imzalardan istifadə edərək, qayıdış ünvanlarını yoxlamaq üçün xüsusi ARM64 təlimatlarından istifadə etməyə imkan verir.
    • İstifadəçi rejimi Linux, PCI-over-virtio sürücüsü tərəfindən həyata keçirilən virtual PCI avtobusu ilə PCI cihazları üçün drayverlərdən istifadə üçün əlavə dəstəyi əlavə etdi.
    • X86 sistemləri üçün virtio-iommu paravirtuallaşdırılmış cihaz üçün əlavə dəstək, ATTACH, DETACH, MAP və UNMAP kimi IOMMU sorğularının yaddaş səhifə cədvəllərini təqlid etmədən virtio nəqliyyat vasitəsilə göndərilməsinə imkan verir.
    • Skylake ailəsindən Coffee Lake-ə qədər Intel CPU-ları üçün lazımsız sinxronizasiya əməliyyatlarını dinamik şəkildə aradan qaldırmaqla çox yivli proqramların işini yaxşılaşdırmaq üçün alətlər təmin edən Intel TSX (Transactional Synchronization Extensions) istifadəsi standart olaraq qeyri-aktivdir. TAA (TSX Asynchronous Abort) mexanizminin işləməsi zamanı baş verən üçüncü tərəf kanalları vasitəsilə məlumat sızmasını manipulyasiya edən Zombieload hücumlarının mümkünlüyü səbəbindən genişləndirmələr deaktiv edilir.
  • Şəbəkə alt sistemi
    • Müxtəlif IP ünvanları ilə əlaqəli müxtəlif şəbəkə interfeysləri vasitəsilə eyni vaxtda bir neçə marşrut üzrə paketlərin çatdırılması ilə TCP bağlantısının işini təşkil etmək üçün TCP protokolunun genişləndirilməsi olan MPTCP (MultiPath TCP) nüvəsinə inteqrasiya. Yeni buraxılış, IPv4 və IPv6 (çox yollu hash siyasəti) üçün öz trafik hashing siyasətlərinizi təyin etmək üçün bir mexanizm əlavə edir ki, bu da istifadəçi məkanından paketlərdə, o cümlədən kapsullaşdırılan sahələrin hansı hashın hesablanması zamanı istifadə ediləcəyini müəyyən etməyə imkan verir. paket üçün yol seçimi.
    • Virtio virtual nəqliyyata SOCK_SEQPACKET soketlərinə dəstək (dataqramların sifarişli və etibarlı ötürülməsi) əlavə edilmişdir.
    • SO_REUSEPORT yuva mexanizminin imkanları genişləndirilmişdir ki, bu da bir neçə dinləmə rozetkasının SO_REUSEPORT vasitəsilə qoşulmuş bütün soketlər üzrə eyni vaxtda daxil olan sorğuların paylanması ilə əlaqəni qəbul etmək üçün bir porta bir anda qoşulmağa imkan verir ki, bu da çox yivli server proqramlarının yaradılmasını asanlaşdırır. . Yeni versiya, ilkin seçilmiş rozetka tərəfindən sorğunun işlənilməsi zamanı uğursuzluq halında idarəetmənin başqa rozetkaya ötürülməsi üçün alətlər əlavə edir (xidmətləri yenidən işə salarkən fərdi əlaqələrin itirilməsi ilə bağlı problemi həll edir).
  • Оборудование
    • Amdgpu sürücüsü “Beige Goby” (Navi 6000) və “Yellow Carp” kod adlı yeni AMD Radeon RX 24 seriyalı qrafik prosessorları, həmçinin Aldebaran GPU (gfx90a) və Van Qoq APU üçün təkmilləşdirilmiş dəstəyi təmin edir. Bir neçə eDP paneli ilə eyni vaxtda işləmək imkanı əlavə edildi. APU Renoir üçün video yaddaşda (TMZ, Trusted Memory Zone) şifrələnmiş buferlərlə işləmək üçün dəstək həyata keçirilib. Qrafik kartları isti rejimdə çıxarmaq üçün əlavə dəstək. Radeon RX 6000 (Navi 2x) GPU-ları və köhnə AMD GPU-ları üçün əvvəllər yalnız Navi 1x, Vega və Polaris GPU-ları üçün aktiv edilmiş ASPM (Aktiv Dövlət Güc İdarəetməsi) dəstəyi standart olaraq aktivdir.
    • AMD çipləri üçün HMM (Heterojen yaddaşın idarə edilməsi) alt sistemi əsasında paylaşılan virtual yaddaşa (SVM, paylaşılan virtual yaddaş) dəstək əlavə edilmişdir ki, bu da öz yaddaş idarəetmə vahidləri (MMU, yaddaş idarəetmə vahidi) olan cihazlardan istifadə etməyə imkan verir, əsas yaddaşa daxil ola bilər. Xüsusilə, HMM-dən istifadə edərək, GPU və CPU arasında paylaşılan ünvan sahəsi təşkil edə bilərsiniz, burada GPU prosesin əsas yaddaşına daxil ola bilər.
    • Oyun, videoların redaktəsi və 3D göstərilməsi üçün performansı artırmaq üçün AMD çipset və qrafik kartı olan noutbuklarda CPU və GPU güc parametrlərini dinamik şəkildə dəyişən AMD Smart Shift texnologiyası üçün ilkin dəstək əlavə edildi.
    • Intel qrafik kartları üçün i915 drayverinə Intel Alderlake P çipləri üçün dəstək daxildir.
    • Hyper-V virtual qrafik adapteri üçün drm/hyperv sürücüsü əlavə edilib.
    • Raspberry Pi 400 all-in-one kompüter üçün əlavə dəstək.
    • Dell noutbuklarına daxil olan kamera və mikrofon açarlarını dəstəkləmək üçün dell-wmi-məxfilik sürücüsü əlavə edildi.
    • Lenovo noutbukları üçün sysfs /sys/class/firmware-attributes/ vasitəsilə BIOS parametrlərini dəyişdirmək üçün WMI interfeysi əlavə edilmişdir.
    • USB4 interfeysli cihazlar üçün genişləndirilmiş dəstək.
    • AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 və Texas Instruments TAS2505 səs kartları və kodekləri üçün əlavə dəstək. HP və ASUS noutbuklarında təkmilləşdirilmiş audio dəstəyi. Audio USB cihazlarında oxunmağa başlamazdan əvvəl gecikmələri azaltmaq üçün yamaqlar əlavə edildi.

Mənbə: opennet.ru

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