Pas dy muajsh zhvillimi, Linus Torvalds prezantoi lëshimin e kernelit Linux 5.19. Disa nga ndryshimet më të dukshme përfshijnë: mbështetje për arkitekturën e procesorëve LoongArch, integrimin e patches "BIG TCP", një modalitet "on-demand" në fscache, heqjen e kodit për mbështetje të formatit a.out, mundësinë e përdorimit të ZSTD për kompresimin e firmware, një ndërfaqe për menaxhimin e zëvendësimit të memories nga hapësira e përdoruesit, rritjen e besueshmërisë dhe performancës së gjeneratorit të numrave të rastësishëm, mbështetje për zgjerimet Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Trusted Domain Extensions) dhe ARM SME (Scalable Matrix Extension).
Në njoftimin e tij, Linus bëri të ditur se shumë mundësish, numri i ardhshëm i bërthamës do të jetë 6.0, pasi në degën 5.x janë grumbulluar mjaft lëshime për të ndryshuar numrin e para. Ndryshimi i numeracionit bëhet për arsye estetik dhe është një hap formal, që heq discomfort-in për shkak të grumbullimit të numrit të madh të lëshimeve në serinë.
Po ashtu, Linus përmendi se përdori një laptop Apple me arkitekturën ARM64 (Apple Silicon) me një ambient Linux bazuar në distribucionin Asahi Linux për formimin e lëshimit. Kjo nuk është stacioni i tij kryesor i punës, por ai e përdori këtë platformë për të provuar përshtatshmërinë e saj për punën mbi kernelin dhe për t'u siguruar se mund të ndihmojë me lëshimet e kernelit gjatë udhëtimit, duke pasur një laptop të lehtë në dorë. Më parë, shumë vite më parë, Linus kishte përvojë në përdorimin e pajisjeve Apple për zhvillim — dikur kishte përdorur një kompjuter me CPU ppc970 dhe një laptop Macbook Air.
Në versionin e ri janë pranuar 16401 korrigjime nga 2190 zhvillues (në lëshimin e kaluar kishte 16206 korrigjime nga 2127 zhvillues), madhësia e patch-it është 90 MB (ndryshimet kanë prekur 13847 skedarë, janë shtuar 1149456 rreshta kodi, janë fshirë 349177 rreshta). Rreth 39% e të gjitha ndryshimeve të paraqitura në 5.19 lidhen me drejtoritë e paisjeve, rreth 21% e ndryshimeve kanë të bëjnë me përditësimin e kodit specifik për arkitekturën e pajisjeve, 11% ka të bëjë me grumbullin e rrjetit, 4% me sistemet e skedarëve dhe 3% me nën-sistemet e brendshme të kernelit.
Kryesoret në bërthamën 5.19:
- Sistemi i diskut, hyrja/ dalje dhe sistemet e skedarëve
- Sistemi i skedarëve EROFS (Enhanced Read-Only File System), i krijuar për t’u përdorur në parti që janë të aksesueshme vetëm në mënyrë të lexueshme, është përmirësuar për të përdorur nën-sistemin fscache, i cili siguron memorie të dhënash. Ky ndryshim ka lejuar një rritje të konsiderueshme të performancës së sistemeve, në të cilat fillojnë një numër të madh kontenjersh nga një imazh i bazuar në EROFS.
- Në nën-sistemin fscache është shtuar një modalitet leximi sipas kërkesës («on-demand»), i cili është aktivizuar për optimizimin e EROFS. Ky modalitet i ri lejon organizimin e mbajtjes në distancë për leximin nga imazhet e FS, që ndodhin në sistemin lokal. Ndryshe nga modaliteti fillestar i disponueshëm, i orientuar ndaj mbajtjes në sistemin e skedarëve lokal të të dhënave që transmetohen përmes sistemeve të skedarëve në rrjet, modaliteti "on-demand" delegon funksionet e nxjerrjes së të dhënave dhe ruajtjen në cache për një proces të veçantë në sfond, që ekzekutohet në hapësirën e përdoruesit.
- Në XFS, është përcaktuar mundësia e ruajtjes së miliardave atributeve të avancuara në i-node. Numri maksimal i ekstentëve për një skedar është rritur nga 4 miliardë në 247. Është realizuar një mod për azhurnimin atomik të disa atributeve të avancuara të skedarit në të njëjtën kohë.
- Në sistemin e skedarëve Btrfs është optimizuar puna me bllokadat, çka ka mundësuar një rritje të performancës prej rreth 7% gjatë shkruarjes direkte në modalitetin nowait. Performanca e operacioneve në modalitetin NOCOW (pa copy-on-write) është rritur për rreth 3%. Ngarkesa në cache-n e faqeve është reduktuar gjatë punës me komandën "send". Madhësia minimale e nën-faqeve është ulur nga 64K në 4K (mund të përdoren nën-faqe me madhësi më të vogël se faqet e kernelit). Ka ndodhur kalimi nga përdorimi i pemës bazë (radix tree) në algoritmin XArrays.
- Në serverin NFS është shtuar një mod për të zgjasur bllokimin e një klienti që ka ndaluar së përgjiguri ndaj kërkesave. Ky mod lejon që pastrimi i bllokimit të shtyhet deri në një ditë, nëse një klient tjetër nuk kërkon një bllokim konkurrent. Në funksionimin standard, bllokimi pastruar brenda 90 sekondash pas ndalimit të përgjigjes së klientit.
- Në nën sistemin e ndjekjes së ngjarjeve në FS fanotify është implementuar një flamur FAN_MARK_EVICTABLE, me anë të të cilit mund të çaktivizohet ngulja e i-node-ve të synuar në cache, për shembull, për të injoruar nën-deget pa nguljen e pjesëve të tyre në cache.
- Në drejtuesin për FS FAT32 është shtuar mbështetje për marrjen e informacionit mbi kohën e krijimit të skedarit përmes thirrjes sistemike statx me implementimin e një versioni më efikas dhe funksional të stat(), që kthen informacion të zgjeruar mbi skedarin.
- Janë bërë optimizime të rëndësishme në drejtuesin exFAT lidhur me sigurimin e pastrimit të përbashkët të grupit të sektorëve kur është aktivizuar modaliteti ‘dirsync’, përveç pastrimit secilës sektor në rend. Falë reduktimit të numrit të kërkesave për bllok, pas optimizimit, performanca e krijimit të një numri të madh katalogësh në kartën SD është rritur me më shumë se 73-85% varësisht nga madhësia e grumbullit.
- Në bërthamë është përfshirë azhurnimi i parë korektues për driver-in ntfs3. Që nga përfshirja e ntfs3 në bërthamën 5.15 në tetor të vitit të kaluar, driver-i nuk është azhurnuar, dhe është humbur lidhja me zhvilluesit, por tani zhvilluesit kanë rifilluar publikimin e ndryshimeve. Në patch-at e propozuara janë rregulluar gabimet që çonin në rrjedhje të memories dhe përfundime të papritura, janë zgjidhur problemet me ekzekutimin e xfstests, është bërë pastrimi i kodit të papërdorur dhe janë korrigjuar tiparet.
- Për OverlayFS është implementuar mundësia e mapimit të identifikatorëve të përdoruesve të sistemeve të skedareve të montuara, e cila përdoret për të përputhur skedarët e një përdoruesi në një ndarje të huaj të montuar me një përdorues tjetër në sistemin aktual.
- Kujtesa dhe shërbimet sistemore
- Është shtuar mbështetje fillestare për arkitekturën e grupit të komandave LoongArch, e cila përdoret në procesorët Loongson 3 5000 dhe implementon një ISA të ri RISC, të ngjashëm me MIPS dhe RISC-V. Arkitektura LoongArch është në dispozicion në tri variante: e reduktuar 32-bit (LA32R), e zakonshme 32-bit (LA32S) dhe 64-bit (LA64).
- Është hequr kodi për mbështetje të formatit të skedarëve ekzekutivë a.out, i cili është shpallur si i vjetruar në versionin 5.1. Formati a.out nuk përdoret më në sistemet me Linux, dhe gjenerimi i skedarëve a.out nuk mbështetet nga mjetet moderne në konfigurimet e Linux në mënyrë default. Pjesa ngarkuese për skedarët a.out mund të implementohet plotësisht në hapësirën e përdoruesit.
- Është ndërprerë mbështetja për opsionet e ngarkesës specifike për arkitekturën x86: nosep, nosmap, nosmep, noexec dhe noclflush).
- Është ndërprerë mbështetja për arkitekturën e vjetër të CPU h8300 (Renesas H8/300), e cila ka mbetur pa mbështetje për një kohë të gjatë.
- Janë zgjeruar mundësitë për reagimin ndaj identifikimit të bllokadave të ndara («split lock»), që ndodhin gjatë aksesit në të dhëna të papërshtatura në memorie për shkak se, gjatë ekzekutimit të një instruksioni atomik, të dhënat kalojnë mbi dy linja cache të CPU-së. Të tilla bllokada çojnë në një rënie të dukshme të performancës. Nëse më parë, për default, kernel-i lëshonte një paralajmërim me informacion mbi procesin që shkaktonte bllokimin, tani procesi problematik do të ngadalësohet gjithashtu për të ruajtur performancën e pjesës tjetër të sistemit.
- Është shtuar mbështetje për mekanizmin IFS (In-Field Scan) të implementuar në procesorët Intel, i cili lejon kryerjen e testeve diagnostike të nivelit të ulët të CPU-së që mund të evidentojnë probleme, të cilat nuk identifikohen nga mjetet standarde të bazuara në kodet e korrigjimit të gabimeve (ECC) ose bitët e paritetit. Testet e kryera paraqiten në formën e një firmware të shkarkueshëm, të ngjashëm me përditësimet e mikro-kodit. Rezultatet e testimit janë të disponueshme përmes sysfs.
- Është shtuar mundësia e integrimit të skedarit bootconfig në kernel, që lejon, përveç opsioneve të komandës, përcaktimin e parametrave të funksionimit të kernelit përmes një skedari me cilësime. Integrimi realizohet përmes opsionit të ndërtimit ‘CONFIG_BOOT_CONFIG_EMBED_FILE=»/PATH/TO/BOOTCONFIG/FILE»‘. Më herët, bootconfig përcaktohej përmes bashkimit me imazhin initrd. Integrimi në kernel lejon përdorimin e bootconfig në konfigurime pa initrd.
- Është realizuar mundësia e ngarkimit të firmuerave të kompresuar me algjoritmin Zstandard. Në sysfs është shtuar një grup skedarësh menaxherësh /sys/class/firmware/*, që lejon inicimin e ngarkimit të firmuerave nga hapësira e përdoruesit.
- В интерфейсе асинхронного ввода/вывода io_uring предложен новый флаг IORING_RECVSEND_POLL_FIRST, при выставлении которого сетевая операция вначале будет передана для обработки с использованием полинга (polling), что может сэкономить ресурсы в ситуациях, когда допустима обработка операции с некоторой задержкой. В io_uring также добавлена поддержка системного вызова socket(), предложены новый флаги для упрощения управления файловыми дескрипторами, добавлен режим «multi-shot» для приёма в вызове accept() разом нескольких соединений, добавлены операции для проброса команд NVMe напрямую в устройство.
- Për arkitekturën Xtensa është siguruar mbështetje për mjetin e debuggimit KCSAN (Kernel Concurrency Sanitizer), që ka për qëllim zbardhjen dinamike të gjendjeve të garës brenda kernelit. Është shtuar gjithashtu mbështetje për gjendjen e fjetjes dhe koprocessorët.
- Për arkitekturën m68k (Motorola 68000) është realizuar виртуальная машина (simulatori i platformës), i bazuar në emuluesin Android Goldfish.
- Për arkitekturën AArch64 është realizuar mbështetje për zgjerimet Armv9-A SME (Scalable Matrix Extension).
- Në nën-sistemin e eBPF është lejuar ruajtja e treguesve të tipizuara në struktura map, si dhe është shtuar mbështetje për tregues dinamikë.
- Është propozuar një mekanizëm i ri parashikues për zëvendësimin e memories, që mbështet menaxhimin nga hapësira e përdoruesit përmes skedarit memory.reclaim. Shkrimi i një numri në skedarin e caktuar do të përpiqet të zëvendësojë numrin përkatës të bajtëve nga grupi i lidhur me cgroup.
- Është rritur saktësia e llogaritjes së përdorimit të memories gjatë kompresimit të të dhënave në seksionin e ndërrimit përmes mekanizmit zswap.
- Për arkitekturën RISC-V është siguruar mbështetje për ekzekutimin e skedave 32-bit në sisteme 64-bit, është shtuar një mod për të lidhur atribute kufizuese me faqet e memories (p.sh., për të ndaluar ndjekjen) dhe është implementuar funksioni kexec_file_load().
- Implementimi i mbështetjes për sistemet 32-bit Armv4T dhe Armv5 është adaptoar për t'u përdorur në ndërtimet universale multi-platformë të bërthamës, të përshtatshme për sisteme të ndryshme ARM.
- Virtualizimi dhe siguria
- Në nën-sistemin EFI është implementuar mundësia e trasferimit të informacionit sekret për sistemet e ftuara pa e zbuluar atë në sistemin pritës. Të dhënat ofrohen përmes katalogut security/coco në securityfs.
- Në modin e mbrojtjes Lockdown, i cili kufizon qasjen e përdoruesit root në bërthamë dhe bllokon mënyrat e kalimit të UEFI Secure Boot, është eliminuar një shpërthim që lejonte kalimin e mbrojtjes përmes manipulimeve me debugin e bërthamës.
- Janë përfshirë patch-e me qëllim rritjen e besueshmërisë dhe performancës së gjeneratorit të numrave të rastit.
- Gjatë përpilimit me Clang 15 është realizuar mbështetje për mekanizmin e rastit të struktura të bërthamës.
- Në mekanizmin Landlock, i cili lejon kufizimin e ndërveprimit të një grupi procesesh me ambientin e jashtëm, është ofruar mbështetje për rregulla që lejojnë kontrollin e ekzekutimit të operacioneve të rinjësimit të skedarëve.
- Nën-sistemi IMA (Infrastrukturës së Matjes së Integritetit), i destinuar për të kontrolluar integritetin e komponentëve të sistemit operativ përmes nënshkrimeve digjitale dhe hash-eve, është kaluar në përdorimin e modulit fs-verity për verifikimin e skedarëve.
- Изменена логика действий при отключении непривилегированного доступа к подсистеме eBPF — ранее отключались все команды, связанные с системным вызовом bpf(), а начиная с версии 5.19 оставлен доступ к командам, которые не приводят к созданию объектов. При подобном поведении для загрузки BPF-программы требуется привилегированный процесс, но затем непривилегированные процессы могут взаимодействовать с этой программой.
- Добавлена поддержка расширения AMD SEV-SNP (Secure Nested Paging), обеспечивающего безопасную работу с вложенными таблицами страниц памяти и защищающего от атак «undeSErVed» и «SEVerity» на процессоры AMD EPYC, позволяющих обойти механизм защиты AMD SEV (Secure Encrypted Virtualization).
- Është shtuar mbështetje për mekanizmin Intel TDX (Trusted Domain Extensions), i cili mundëson bllokimin e përpjekjeve për qasje ndërhyrëse në memorien e enkriptuar. makinave virtuale.
- Në drejtorin virtio-blk, e cila përdoret për emulimin e pajisjeve blok, është shtuar mbështetje për hyrje/dalje duke përdorur polling, gjë që në testet e kryera ka lejuar uljen e vonesave përreth 10%.
- Sistemi i rrjetit
- В состав включена серия патчей BIG TCP позволяющих увеличить максимальный размер пакета TCP-пакета до 4ГБ для оптимизации работы высокоскоростных внутренних сетей дата-центров. Подобное увеличение размера пакета при 16-битном размере поля в заголовке достигается через реализацию «jumbo»-пакетов, размер в IP-заголовке которых выставляется в 0, а фактический размер передаётся в отдельном 32-разрядном поле в отдельном прикреплённом заголовке. При тестировании производительности выставление размера пакета в 185 КБ позволило увеличить пропускную способность на 50% и значительно сократить задержки передачи данных.
- Puna për integrimin e mjeteve në skedarin rrjetës për monitorimin e shkaqeve të humbjes së paketave (kodet e arsyes) ka vazhduar. Kodi i arsyes transmetohet gjatë lirimit të memories që lidhet me paketën dhe lejon që të merren parasysh situata të tilla si humbja e paketës për shkak të gabimeve në plotësimin e fushave të titullit, identifikimi i spoofing nga filtri rp_filter, kontrolli i gabuar i somë, mungesa e memories, aktivizimi i rregullave IPSec XFRM, numri i gabuar i sekuencës TCP, etj.
- Shtuar mbështetje për rikthimin e lidhjeve MPTCP (MultiPath TCP) në përdorimin e TCP të zakonshëm, në situata kur disa mundësi të MPTCP nuk mund të përdoren. MPTCP është një zgjerim i protokollit TCP për organizimin e funksionimit të lidhjeve TCP me dërgimin e paketave në të njëjtën kohë përmes disa rrugëve përmes interfeciesh të ndryshme rrjeti, të lidhura me adresa të ndryshme IP. Shtuar një API për menaxhimin e rrjedhave MPTCP nga hapësira e përdoruesit.
- Pajisjet
- Shtuar më shumë se 420 mijë rreshta kode të lidhura me drejtuesin amdgpu, nga të cilat rreth 400 mijë rreshta përbëhen nga skedarë titujsh të gjeneruar automatikisht me të dhëna për regjistrat ASIC në drejtuesin për GPU AMD, ndërsa 22.5 mijë rreshta ofrojnë implementimin fillestar të mbështetjes për AMD SoC21. Madhësia totale e drejtuesit për GPU AMD kaloi 4 milion rreshta kode. Përveç SoC21, drejtuesi AMD përfshin mbështetje për SMU 13.x (Njësia e Menaxhimit të Sistemit), është përditësuar mbështetje USB-C dhe GPUVM, dhe është bërë përgatitja për mbështetje të gjeneratave të ardhshme të platformave RDNA3 (RX 7000) dhe CDNA (AMD Instinct).
- Në driverin i915 (Intel) janë zgjeruar mundësitë e menaxhimit të konsumit të energjisë. Janë shtuar identifikues të GPU Intel DG2 (Arc Alchemist), të përdorur në laptopë, është siguruar mbështetje fillestare për platformën Intel Raptor Lake-P (RPL-P), është shtuar informacioni për kartat grafike Arctic Sound-M), është realizuar ABI për motorët llogaritës, për kartat DG2 është shtuar mbështetje për formatin Tile4, dhe për sistemet e bazuara në mikroarkitekturën Haswell është realizuar mbështetje për DisplayPort HDR.
- Në driverin Nouveau është bërë kalimi në përdorimin e trajtuesit drm_gem_plane_helper_prepare_fb, për disa struktura dhe variabla është aplikuar alokimi statik i memorjes. Sa i përket përdorimit në Nouveau të burimeve të hapura të moduleve të bërthamës nga kompania NVIDIA, puna aktualisht përqendrohet në identifikimin dhe zgjidhjen e gabimeve. Në të ardhmen, firmware-ja e publikuar planifikohet të përdoret për të rritur performancën e driverit.
- Është shtuar një driver për kontrollorin NVMe, të përdorur në kompjuterët Apple me çipin M1.
Одновременно латиноамериканский Фонд свободного ПО сформировал вариант полностью свободного ядра 5.19 — Linux-libre 5.19-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске проведена чистка драйверов для pureLiFi X/XL/XC и TI AMx3 Wkup-M3 IPC. Обновлён код чистки блобов в драйверах и подсистемах Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, pu3-imgu drivers. Реализована обработка devicetree-файлов Qualcomm AArch64. Добавлена поддержка новой схемы наименования компонентов Sound Open Firmware. Прекращена чистка драйвера ATM Ambassador, удалённого из ядра. Управление чисткой блобов в HDCP и Mellanox Core перенесено в отдельные теги kconfig.
Burimi: opennet.ru
