Linux 7.1 nüvəsinin buraxılışı.

İki aylıq inkişafdan sonra Linus Torvalds, Linux 7.1 nüvəsinin buraxılışını təqdim etdi. Ən diqqət çəkən dəyişikliklər arasında: yeni ntfsplus sürücüsü, CPU i486 dəstəyinin dayandırılmasının birinci mərhələsi, köhnə Ethernet adapterlərinin silinməsi, ISDN və AX.25 protokollarının silinməsi, Intel FRED mexanizminin standart olaraq daxil edilməsi, io_uringdə BPF emalçıları üçün dəstək, səhifələmə alt sisteminin optimallaşdırılması, sched_ext-də alt-planlaşdırıcıların dəstəyi, ublk sürücüsündə zero-copy rejimində giriş/çıxış, Btrfs-də "shutdown" ioctıl əməliyyatı, amd-pstate sürücüsündə performans rejiminin dinamik dəyişdirilməsi, Unix soketləri üçün xattr dəstəyi.

Yeni versiyaya 2589 inkişafçıdan 17275 düzəliş qəbul edilmişdir.
Patch ölçüsü — 57 MB (dəyişikliklər 13528 faylı əhatə etmiş, 751785 kod sətiri əlavə edilmiş, 405916 sətir silinmişdir). Ötən buraxılışda 2477 inkişafçıdan 15624 düzəliş, patch ölçüsü — 56 MB olub. 7.1-də təqdim olunan bütün dəyişikliklərin təxminən 41%-i cihaz sürücüləri ilə, 12%-i xüsusi avadanlıq arxitekturalarının kodunun yenilənməsi ilə, 14%-ü şəbəkə yığınağı ilə, 5%-i fayl sistemləri ilə və 3%-i nüvə daxili sistemləri ilə bağlıdır.

7.1 nüvəsindəki əsas yeniliklər (1, 2, 3):

  • Disk alt sistemi, giriş/çıxış və fayl sistemləri
    • NTFS fayl sisteminin yeni reallaşması — ntfsplus, klassik ntfs sürücüsünün kodu üzərində qurulmuşdur. Köhnə sürücü yenidən işlənmiş, məlumat yazma imkanı ilə genişləndirilmiş və müasir imkanları dəstəkləmək üçün adaptasiya edilmişdir, məsələn, buffer_head strukturu əvəzinə yaddaş səhifə kitabçalarının (folios) istifadəsi. Yeni sürücü, yazı əməliyyatlarının yüksək performansını və defragmentasiyanı azaltmağa imkan verən blokların təxirə salınmış ayrılmasını həyata keçirir. Yaddaşdan istifadə ilə yazma/oxuma, birbaşa giriş/çıxış, xoog/çoxluqlara xəritələmə və səhifə yazma/oxuma əməliyyatları üçün iomap kitabxanası istifadə olunur. iozone testlərində ntfsplus sürücüsü, bir-birinə bağlı rejimdə 3-5% daha sürətli və 4 iplikdə 35-110% daha sürətli çıxış verir. ntfsplus və ntfs3 üçün oxuma sürəti təxminən eyni səviyyədədir. ntfs3 sürücüsü nüvənin tərkibində qalır və ona düzəlişlər və kiçik yaxşılıqlar əlavə edilmişdir.
    • Xüsusi cihaz sürücülük səviyyəsində, yalnız block device deyil, fayl sistemində T10 bütövlük yoxlama məlumatlarının yaradılması və təsdiqi üçün dəstək əlavə edilmişdir, bu da oxuma əməliyyatlarının performansını artırmağa imkan verir.
    • Ublk block device sürücüsünə, müəyyən məntiqləri istifadəçi səhnəsində prosesə köçürmək imkanı verərək, zero-copy rejimində giriş/çıxışa dəstək əlavə edilmişdir, bu da yazılar arasında məlumatları kopyalamadan istifadə etməyə imkan tanır.
    • Öz-şifrələnən block device SED-OPAL üçün Single User rejimi idarə etməyi təmin edən ioctl əlavə edilmiş və STACK_RESET əmri həyata keçirilmişdir.
    • Btrfs-də «shutdown» ioctl əməliyyatının stabilliyi elan edilib, bu da fayl sistemini, artıq icra edilən əməliyyatları başa çatdırmaq cəhdinin edildiyi bir vəziyyətə gətirir, lakin yeni əməliyyatların hamısını bloklayır.
    • exfat-da boş sahələrin ehtiyat nüsxəsinin alınması üçün fallocate() çağırışı ilə imkan yaradılıb.
    • CIFS fayl sisteminə O_TMPFILE flaqı ilə müvəqqəti faylların yaradılması dəstəyi əlavə edilib.
    • fsmount() sistem çağırışına, montaj edilən fayl sisteminə yeni montaj nöqtəsi məkanını yaradan FSMOUNT_NAMESPACE seçimi daxil edilib. clone3() və unshare() sistem çağırışlarına, yalnız nullfs əsaslı boş fayl sistemi quraşdırılmış məkanını ehtiva edən yeni montaj nöqtəsi məkanını qaytarmaq üçün flaq əlavə edilib.
    • NFS-serverə fayl təsvirçiləri üzrə hücumlardan qorunma əlavə edilib, bu da təsvirçilərin kriptografik imza ilə təsdiqlənməsi vasitəsilə həyata keçirilir. Qoruma sign_fh montaj seçimi ilə açılır.
    • fs-dax simvol sürücüsü əlavə edilib ki, bu da səhifə önbelleğini aşaraq DAX (Direct Access) cihazları ilə qarşılıqlı əlaqə üçün interfeys təmin edir. Bu interfeys, RAM-da yerləşdirilən famfs fayl sisteminə inteqrasiya üçün tələb olunur.
    • Ceph fayl sistemində bölmələr üzrə giriş/çıxış metrikalarının toplanması həyata keçirilib.
  • Yaddaş və sistem xidmətləri
    • i486 prosessorlarını dəstəyi dayandırmaq üçün ilk dəyişikliklər qəbul edilib. Kconfig-dən 486DX, 486SX və AMD ELAN prosessorları üçün kernel tərtib etmə seçimləri silinib (CONFIG_M486, CONFIG_M486SX və CONFIG_MELAN), Makefile-dən isə i486 sistemləri üçün tərtib seçimləri çıxarılıb (-march=i486). i486 prosessorlarında işləməyi dəstəkləyən kod hələlik kernel-də saxlanılıb, lakin belə sistemlər üçün tərtibat artıq tərtib fayllarına patçların tətbiqini tələb edir. i486 prosessorlarının dəstəyi elim edilməsi, kernel-i bəzi əməliyyatları emulyasiya edən komplike koddan xilas etmək istəyindən irəli gəlir, məsələn, CX8 (8 baytı müqayisə et və mübadilə et) və TSC (CPU dövr sayğacı, vəzifə planlayıcısında istifadə olunur).
    • AMD prosessorları ilə enerji istehlakını idarə etmə üçün istifadə olunan amd-pstate sürücüsündə enerji istehlakının idarəedilməsi davranışının stasionar enerji ilə işləmə və akkumulyatorla işləmə vəziyyətinə görə dinamik olaraq dəyişdirilməsi həyata keçirilib. Stasionar bağlantıda indi «performance» rejimi aktivləşdirilir, akkumulyatorla işlədikdə isə «balance_performance» aktivləşdirilir.
    • Intel FRED (Flexible Return and Event Delivery) mexanizmi avtomatik olaraq aktivləşdirilib, aşağı səviyyəli hadisələrin məlumatlarının çatdırılmasını daha səmərəli və etibarlı edir. Performansın artırılması və gecikmələrin azaldılması, hadisələrin IRET prosessor təlimatı ilə qaytarılması sayəsində təmin edilir, bu isə hadisələri IDT (Interrupt Descriptor Table) cədvəlindən ötürmə yerinə istifadə edilərək həyata keçirilir. Etibarlılığın artırılması, hadisənin nüvə və istifadəçi kontekstində ayrı-ayrılıqda işlənməsi, NMI-nin iç-içə icrasına qarşı qorunma və istisna ilə bağlı CPU qeydçilərinin hamısını genişləndirilmiş yığım çərçivəsində saxlamaqla təmin edilir.
    • Perf alt sisteminə SoC NVIDIA Tegra410-da istifadə olunan yaddaşın performansını izləmə bloklarının (PMU - Performance Monitoring Unit) dəstəyi əlavə edilib.
    • ARM sistemlərində futex əməliyyatlarının icrası sürətləndirilib, çünki Arm 9.6 LSUI təlimatlarından istifadə edilərək nüvə istifadəçi yaddaşına əvvəlcədən PAN (Privileged Access Never) qoruma rejimini deaktiv etmədən daxil ola bilir.
    • ARM prosessorları olan sistemlərdə MPAM (Memory System Resource Partitioning and Monitoring) komanda seti genişlənməsinin dəstəyi yaxşılaşdırılıb və resursların idarə edilməsi üçün istifadəçi məkanında resctrl mexanizmi vasitəsilə onun istifadəsi imkanı əlavə olunub. MPAM, hər yaddaş müraciətinə PARTID (Partition ID) və PMG (Monitoring Group ID) identifikatoru ilə etiketləməyi təmin edir. PARTID ilə bağlı resurs istehlakının, məsələn, yaddaş bant genişliyi və ya keş ölçüsü kimi məhdudlaşdırılması mümkündür ki, müəyyən bir tapşırıq qrupuna bütün resursları tutmasın. Monitorinq kontekstində PMG və PARTID birləşməsi, müəyyən yükləmə növlərində yaddaş resurslarının istehlakını izləmək üçün istifadə oluna bilər.
    • 32-bit ARM prosessorlarında real vaxt (PREEMPT_RT) rejimini istifadə etmə imkanı əlavə edilib. Əvvəlcə PREEMPT_RT dəstəyi x86, x86-64, ARM64, RISC-V və LoongArch arxitekturaları üçün təmin olunmuşdu.
    • clone3() sistem çağırışına yeni bayraqlar əlavə edilib: CLONE_NNP - yaradılan prosesdə yeni imtiyazların alınmasına qadağa; CLONE_AUTOREAP - prosesin avtomatik olaraq tamamlanması, ana prosesin wait() funksiyasını yerinə yetirməsindən əvvəl prosesin zombie prosesə çevrilməsi yerinə.
      CLONE_PIDFD_AUTOKILL - bağlı olan pidfd deskriptorunun bağlanması halında (məsələn, ana prosesin bağlanması zamanı) alt prosesin tamamlanması.
    • Hər bir nüvə modulu üçün /sys/module kataloquna import_ns adlı fayl əlavə edilib, bu faylda idxal edilmiş simvol məkanlarının siyahısı saxlanılır.
    • Asinxron giriş/çıxış sisteminə io_uring BPF alt sisteminin handlerlər yaratmaq üçün istifadəsi dəstəyi əlavə edilib. Məsələn, əsas idarəetmə dövrünü BPF proqramı ilə əvəz etmək mümkündür.
    • BPF alt sistemində stek istifadəsinin analizi müasirləşdirilib, bu isə bir çox BPF proqramlarının yoxlanmasını əhəmiyyətli dərəcədə sürətləndirib.
    • Performansı optimallaşdırmaq məqsədilə hrtimer (yüksek dəqiqlikli zamanlayıcı) alt sistemi yenidən yazılıb. İcra planlayıcısı artıq performans itkisi olmadan yüksək dəqiqlikli zamanlayıcılardan istifadə edə bilər.
    • Rust-for-Linux budağındakı dəyişikliklərin, Rust dilinin sürücülərin və nüvənin modulları üçün ikinci dil kimi istifadəsi ilə bağlı köçürülməsi davam edir (Rust dəstəyi standart olaraq aktiv deyil və Rust-u nüvənin mütləq tərkib hissəsi olaraq qəbul etməyə səbəb olmur). Debian 13-də təqdim olunan 1.85 versiyasına qədər nüvənin komponentlərini qurmaq üçün tələb olunan Rust versiyasının tələbləri artırılıb. Kompilyasiya zamanı Rust koduna C prosloyeklərinin inteqrasiyası üçün eksperimental Kconfig seçimi CONFIG_RUST_INLINE_HELPERS əlavə edilib (bu optimizasiya null blok sürücüsünün işini 2% sürətləndirib). ‘const_assert!’ makrosu əlavə edilib. ‘sizes’, ‘clk’, ‘ptr’, ‘sync’, ‘error’ modulları genişləndirilib.
    • SCHED_EXT mexanizminə BPF-dən CPU planlayıcıları yaratmağa imkan verən başlanğıc sub-planlayıcılar (nested scheduler) yaratma imkanı əlavə edilib, bunun sayəsində hər bir cgroup üçün öz vəzifələrini planlayan sistemlərdən yararlanmaq mümkündür.
    • Swap alt sisteminin optimallaşdırılması davam edir. Köhnə swap_map strukturu aradan qaldırılaraq ‘Swap Table’ mexanizmi ilə əvəzlənib. Bu dəyişiklik, swap alt sistemində performansı artırmağa və yaddaş istehlakını azaltmağa imkan tanıyır.
    • DAMON (Data Access MONitor) alt sisteminə prosesin yaddaşda məlumatlara girişini izləməyə imkan verən yeni avtomatik tənzimləmə alqoritmləri dəstəyi əlavə edilib (məsələn, prosesin hansı yaddaş sahələrinə müraciət etdiyini və hansı sahələrin istifadəsiz qaldığını öyrənmək mümkündür).
    • İzləmə alt sistemində xarici halqa buferləri konsepsiyası həyata keçirilib, bu da izləmə məlumatlarını əldə etməyə imkan tanıyır, virtual maşınlarBu imkan hipervizorlarda KVM və nVHE-də qonaq sistemdən ev sahibi tərəfə izləmə məlumatlarını ötürmək üçün istifadə olunub.
    • RV (Runtime Verification) alt sisteminə, yüksək etibarlı sistemlərin düzgün işlədiyini yoxlamaq məqsədilə, müvəqqəti dayandırılan və ya bloklanan vəzifələrin izlənməsi üçün ‘stall’ monitorinq komponentləri və vəzifə planlayıcısının davranışını analiz etmək üçün ‘deadline’ komponentləri əlavə edilib.
  • Virtualizasiya və təhlükəsizlik
    • Standart olaraq PROC_MEM_FORCE_PTRACE flag-ı təyin edilib ki, bu da daxil edilmiş sistem çağırışı ptrace() ilə debug etmək üçün yalnız proseslər üçün prosesin yaddaşına giriş hüquqlarını aşmağa imkan tanıyır.
    • LSM-modulları üçün yeni bir hook dəsti əlavə edilib (Linux Təhlükəsizlik Modulu), overlayfs kimi qatlı fayl sistemləri üçün siyasətlərin tətbiqini asanlaşdırır. LSM-ə Unix socket-lərə girişin idarə edilməsi üçün bir hook da əlavə edilib, bu, Unix socket-lərə giriş siyasətlərinin təyin edilməsi üçün Landlock LSM modulunda istifadə olunur.
    • Tradicional crypto API-dən daha sadə və sürətli funksiyaları təmin edən daxili lib/crypto kripto kitabxanasına AES-CMAC, AES-XCBC-MAC, AES-CBC-MAC, GHASH və SM3 alqoritmlərinin dəstəyi əlavə edilib. lib/crypto üzrə sənəd hazırlanıb.
    • AArch64 arxitekturası üçün virtualizasiya genişləndirmələrindən istifadə etməklə anonim yaddaşın sıx izolyasiyası üçün pKVM (Protected KVM) rejimi həyata keçirilib. Bu rejimdə qonaqın yaddaş səhifələri ev sahibi sistemin virtual ünvan cədvəlindən çıxarılır.
    • KVM hipervizoruna ARM-ın beşinci nəsil virtual kəsilmə idarəçisinin (VGICv5 - ARM Virtual Generic Interrupt Controller v5) dəstəyi əlavə edilib.
  • Şəbəkə alt sistemi
    • socket() funksiyası tərəfindən yaradılan unix socket-lər üçün genişləndirilmiş fayl atributları (xattr) «user.*» dəstəklənir. İstifadə sahələrindən biri IPC Varlink üçün istifadə olunan Unix socket-lərə genişləndirilmiş atributlar vasitəsilə etiketlərin qoyulmasıdır ki, bu da onların yığcam tədqiqat və BPF proqramları vasitəsilə yoxlama üçün ayrılmasına imkan tanıyır. systemd-journald-a genişləndirilmiş atributlar log formatının socket \/dev\/log ilə əlaqələndirilməsi üçün istifadə ediləcək.
    • Düzgün yoxlama cəmi olmayan paketlərin çatdırılmasına imkan verən UDP-Lite protokolu (RFC 3828) dəstəyi ləğv edilib, çünki insanlar bununla istifadə etmir. Məsələn, qismən zədələnmiş audio və video məlumatları kodek səviyyəsində bərpa edilə bilər.
    • İstifadədə olmayan bir nümunə (IPv6 ya da yerinə yetirilir, ya da tamamilə deaktiv edilir) şəklində IPv6 stəkinin kernel modulu kimi tərtibi imkanı ləğv edilib. Lakin bu, IPv6-nın kernel modulu kimi qurulması (CONFIG_IPV6=m) zamanı bir çox alt sistemləri, IPv6 modulunun silinməsi halında boş işlemçidən istifadə etmək məcburiyyətini artırdığı üçün qoruyucu bir çətinlik yaradır.
  • Avadanlıq
    • AMDGPU sürücüsünə AMD HD 7000 seriyalı APU üçün yeni bir ekran mühərriki (DC) daxil edilib (Sea Islands, GCN 1.1).
    • Nouveau sürücüsünə Ampere mikroarxitekturasına əsaslanan NVIDIA GA100 GPU üçün ilkin dəstək əlavə edilib.
    • Intel Xe arxitekturasına əsaslanan GPU üçün drm sürücüsü (Direct Rendering Manager) üzərində iş davam edir, bu, Intel Arc ailəsi videokartlarında və Tiger Lake prosessorlarından başlayaraq inteqrasiya olunmuş qrafikada istifadə olunur. Intel Nova Lake-P prosessorlarının qrafik alt sisteminin dəstəyi əlavə olunub. Təmizlənə bilən bufer obyektləri (Purgeable Buffer Objects) həyata keçirilib.
    • GSP firmware-ləri ilə təchiz olunmuş NVIDIA GPU-ları üçün Nova sürücüsü komponentlərinin inteqrasiyası davam etdirilib ki, bunlar 2000-ci seriyaya aid NVIDIA GeForce RTX mikroarxitekturası Turing-dən başlayır. Sürücü Rust dilində yazılmışdır. Turing mikroarxitekturası əsasında GPU üçün ilkin dəstək əlavə edildi.
    • CoreBoot əsaslı firmware-lar vasitəsilə qrafikanı göstərmək üçün corebootdrm DRM sürücüsü əlavə edilib.
    • AMD RPL DMIC, Cirrus Logic CS42L43, CS47L47, NVIDIA CPCAP və WM8962 üçün ASoC səs dəstəyi əlavə edilib. Huawei Headset, Focusrite Novation, MV-Silicon, Studio 1824, Arturia AF16Rig, Hotone Audio, Feaulle Rainbow ilə USB interfeysli səs cihazlarının dəstəyi yaxşılaşdırılıb.
      PreSonus AudioBox, Moondrop Ju Jiu, Scarlett 18i20.
    • Yogafan sürücüsü Lenovo Yoga, Legion və IdeaPad noutbuklarında fanın dövrünü izləmək üçün əlavə edildi.
    • ARM platformaları, SoC və cihazlar üçün dəstək əlavə edildi: Qualcomm Glymur, Qualcomm Mahua, Qualcomm Eliza, Qualcomm IPQ5210, Qualcomm apq8084 və ipq806x, Axis ARTPEC-9, ARM Zena, ARM corstone-1000-a320, Microchip LAN9691, Microchip PIC64GX, Rockchip RV1103B, Renesas RZ/G3L, NXP S32N79.
    • Baikal-T1 SoC üzərində istifadə olunan AHCI SATA və PCIe idarəediciləri, həmçinin timer, memory, physmap, bus, hwmon, dwc və bt1-rom sürücülərinin dəstəyi ləğv edildi. Bunun səbəbi müşayiət olunmaması və Baikal platforması komponentlərinin mərkəzdə tamamlanmamış inteqrasiyasıdır, istehsalı isə 2025-ci ilin noyabrında Rusiya Federasiyasında dayandırılıb.
    • 2002-ci ildən əvvəl istehsal olunan ISA və PCMCIA interfeysli Ethernet cihazları üçün 12 sürücü ləğv edilib; bu sürücüləri iş sistemi üçün istifadə edən istifadəçilər tapılmadı.
      ISDN alt sistemi, AX.25, CAIF və Bluetooth CMTP (Common ISDN Application Programming Interface Message Transport Protocol) protokollarının realları, yellowfin (Yellowfin Gigabit-NIC), hamachi (Hamachi GNIC-II), hamradio (Amateur Radio), inport və logibm (busmouse) sürücüləri də həyata keçirildi. Ləğv edilməsinin səbəbi syzbot və AI alətləri ilə aşkar edilən xətaların artırılmasıdır ki, bunları düzəltmək üçün aktiv müşayiət edənlər yoxdur, və bütün yük əsas şəbəkə alt sistemlərindəki müşayiət edənlərin üzərinə düşür. Cəmi 140 mindən çox kod sətiri ləğv edilib.

Mənbə: opennet.ru

DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər 🔥 DDoS qoruması olan saytlara etibarlı hosting satın alın, VPS VDS serverlər | ProHoster