PĂ€rast kahte kuud arendust tutvustas Linus Torvalds Linuxi 6.15 tuuma. KĂ”ige silmatorkavamad muudatused on: auditeerimismehhanism Landlockis, mĂ€lu kaardistamise fikseerimise reĆŸiim, fwctl alam sĂŒsteem, NVIDIA GPU jaoks Nova draiver, Hyper-V hĂŒperviisori jaoks host-sĂŒsteemi rakendamine, tsoonitud salvestusseadmete toe lisamine XFS-is, vĂ”rgu alamsĂŒsteemi optimeerimine, Bcachefsis scrub-kontroll ja vĂ”imalus operatsioonide jĂ€lgimiseks io_uringi kaudu.
Uues versioonis on vastuvĂ”etud 15945 parandust 2154 arendajalt, patĆĄi suurus on 59 MB (muudatused hĂ”lmasid 13596 faili, lisatud koodiridu 739608, kustutatud koodiridu 312168). Eelmises vĂ€ljaandes oli 12115 parandust 1984 arendajalt, patĆĄi suurus oli 39 MB. Umbes 41% kĂ”igist Linux 6.15 muudatustest on seotud seadme draiveritega, umbes 16% muudatustest on seotud arhitektuurispetsiifilise koodi vĂ€rskendamisega, 13% on seotud vĂ”rgu staagiga, 5% failisĂŒsteemidega ning 4% tuuma sisemiste alamsĂŒsteemidega.
Peamised uuendused tuumas 6.15:
- DiskisĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
- Fanotify mehhanismi on lisatud vĂ”imalus jĂ€lgida monteerimise ja monteerimise eemaldamise sĂŒndmusi.
- XFS-is on lisatud tugi tsoonitud salvestusseadmetele (gruppide vĂ”i sektorite tsoonide jagamine, kuhu on lubatud ainult jĂ€rjestikune andmete lisamine koos kogu blokigruppi uuendamisega). Lisatud rwf_dontcache lipp, et keelata kirjutamisel vahemĂ€lu. Rakendatud vĂ”imalus kirjutada ĂŒheaegselt mitmeid andmeblokke.
- Btrfs-is on rakendatud vÔimalus mÀÀrata negatiivsed zstd tihendustasemed (alates -15 kuni -1, nÀiteks "compress=zstd:-5") monteerimisel, mis tagavad suurema töökiirusest tingitud efektiivsuse languse. Failiteede vahemÀlu on parendatud (teostatud testis kiirenes "send" toimingu tÀitmine 30%). Lisatud tugi 2Kb suurustele blokkidele.
- EXT4-s on parendatud jĂ”udlust ĆŸurnali taasesitamises, kus on vĂ€ga palju tĂŒhistatud kirjeid (koormus, mis iseloomustab Lustre FS sektsioone). Rakendatud lineaarne otsing "dentry" kirjetele (kaustade elementide sisemine esitus), mis lahendab mĂ”nede failide juurde pÀÀsemise probleeme vĂ€henenud tĂ€hed pole arvesse vĂ”etud. Parandatud monteerimise valiku "errors=remount-ro" toimimist. Tugevdatud kahjustatud failisĂŒsteemide töötlemise vastupidavust.
- F2FS-is on rakendatud ioctl, et saada teavet sisendi/vÀljundi operatsiooni prioriteedi kohta mÀÀratud faili jaoks. On tehtud edusamme mÀlulehtede (page folios) kasutusele vÔtmisel.
- Bcachefs-is on lisatud 'scrub' reĆŸiim, milles kontrollitakse kĂ”igi andmete ja metainfo lugemise Ă”igsust. Kui leitakse vigu, kĂ€ivitatakse taastamisprotseduur. Bcachefs-is on ka lisatud tugi failisĂŒsteemidele, mille ploki suurus ĂŒletab mĂ€lulehe suuruse. Bcachefs-i ketastruktuuride formaat on stabiliseeritud (tĂ€iendavad formaadi muutused viiakse ellu valikuliste tĂ€iustuste kujul).
- EROFS-is on lisatud tugi 48-bitisele plokkide aadressimisele.
- FUSE alamsĂŒsteemis on rakendatud sysctl default_request_timeout ja max_request_timeout, et mÀÀrata pĂ€ringute tĂ€itmise ajavood, mille abil saab jĂ€lgida FUSE komponentide hangumisi kasutaja ruumis. FUSE-is on failinimede maksimaalne suurus suurendatud 1024 sĂŒmbolile.
- Statmount() sĂŒsteemikutsesse on lisatud vĂ”imalus saada teavet kasutajate identifikaatorite kaardistamise kohta monteeritud failisĂŒsteemides, mida kasutatakse teatud kasutaja failide vastavusse viimiseks monteeritud vÔÔras osas teiste kasutajatega praeguses sĂŒsteemis.
- On realiseeritud vÔimalus luua mount-punkt, millel on erinev kasutajate identifikaatorite kaardistus kui originaalsel monteeritud osal.
- MĂ€lu haldamise API-s on tehtud muudatusi, mis lihtsustavad keeruliste failisĂŒsteemihierarhiate koostamist, ilma et oleks vaja avada eraldi failisĂŒsteemide osi, mida tuleb hoida peidetuna.
- Blokiajamite haldamise alamsĂŒsteemi on lisatud tugi riistvaralistele krĂŒpteerimisvĂ”tme kaitse seadmetele.
- SMB failisĂŒsteemis on rakendatud valik is_network_name_deleted ning vaikimisi on sisse lĂŒlitatud smb_server_kerberos5 reĆŸiim.
- OverlayFS-ile on lisatud mountimise valik 'override_creds', mille mÀÀramisel kasutatakse juurdepÀÀsuks madalamatele tasemetele kutsuja kasutaja autentimisandmeid, mitte mountimist teinud kasutaja omi. Muudatus vĂ”imaldab nĂ€iteks OverlayFS-i mountimisel nĂ”uda kasutajalt CAP_SYS_ADMIN volitusi, kuid kasutada failisĂŒsteemi autentimisandmetega ilma selle privileegita.
- exFAT-s toimub failide kustutamise operatsioonide kiirendus. Kustutatava faili vabastatud klastrite puhul ei saadeta enam eraldi 'discard' pÀringuid, vaid draiver gruppib need pÀringud. Teostatud testis vÀhenes 80 GB faili kustutamise aeg 286 sekundilt 1,6 sekundile.
- KĂ”ik vale-FS-d ning EXT2 FS on viidud ĂŒle uue partitsioonide mountimise API kasutamisele.
- Eemaldatud on tugi SYSV failisĂŒsteemidele (SystemV/386, Xenix ja Coherent), mis alates 2023. aastast on mĂ€rgitud kui toetamata (orphaned).
- MĂ€lu ja sĂŒsteemiteenused
- Kerneli koostamiseks vajalik minimaalne GCC versioon on tÔstetud 8.1-le ja Clang versioonile 15.0.0.
- Lisatud on fwctl (Firmware Control) alamsĂŒsteem, mis pakub API-d turvaliseks firmade haldamiseks ning kĂ€ivitusprotsessorite töötlemiseks kasutajaruumi kaudu. fwctl-i pĂ”hjal on ette valmistatud draiverid CXL (Compute Express Link) seadmete, Mellanoxi ConnectX (mlx5) Ethernet-adapterite ja AMD/Pensando teeninduskaartide jaoks.
- Pidfd mehhanismi funktsioone on laiendatud, vĂ”imaldades kasutada spetsiifiliste protsessidega seotud ja mitte ĂŒmbermÀÀritavaid identifikaatoreid. Saadaval on vĂ”imalus tĂ”mmata vĂ€lja teavet protsessi lĂ”petamise staatuse kohta, mille tuvastamine on lĂ€bi pidfd, pĂ€rast seda, kui vanemprotsess on saanud kinnituse tĂŒtarprotsessi lĂ”petamise kohta (reaped) ja selle ressursid on vabastatud. SĂŒsteemikutsesse on lisatud PIDFD_SELF lipp, millega protsess saab viidata iseendale.
- RISC-V arhitektuuri jaoks on rakendatud toe laiendustele BFloat16, Zaamo (atomaarsed mÀluoperatsioonid), Zalrsc (Load-Reserved/Store-conditional) ja ZBKB (kriptograafilised bititegevused).
- JÀlgimisel on vÔimalik salvestada kutsutud funktsioonide argumente ja kuvada neid jÀlgimislogides.
- AsĂŒnkroonse sisendi/vĂ€ljundi sĂŒsteemi io_uring on lisatud toetus epolli sĂŒndmuste teabe lugemiseks. io_uringi kasutamine epolli sĂŒndmuste töötlemiseks vĂ€hendab konteksti vahetuste arvu ja vĂ”imaldab korraga töödelda mitut epolli sĂŒndmust.
- eBPF alamsĂŒsteemis on tĂ€iustatud programmituvastust, sealhulgas tsĂŒklitega. Lisatud on uued kĂ€sud «timed_may_goto», «load-acquire» ja «store-release». Antud on vĂ”imalus muuta failide laiendatud atribuute BPF-programmidest. Lisatud on funktsioon try_alloc_pages(), mis vĂ”imaldab mĂ€lu eraldamist kĂ”rge ebaĂ”nnestumise tĂ”enĂ€osusega (BPF-programmide kĂ€ivitamisel piiratud kontekstides).
Rakendatud on uus lukustusprimitiv â rqspinlock (Resilient Queued Spin Lock), mis tuvastab tĂ€idete kĂ€igus olukordi, mis vĂ”ivad viia lukustumisteni. Uus primitiiv vĂ”imaldab laadida BPF-programme, mille korral valideerija ei taganud lukustuste korrektset toimimist.
- Oluliselt on suurenenud suurte mÀlulehtede (huge-page) eraldamise usaldusvÀÀrsus.
- SĂŒsteemides x86 on oluliselt kiirendatud CRC64 kontrollsummade arvutamist. Muuhulgas on kiirusel rakendatud uusi vektorkĂ€ske AVX-512 komplektist. MĂ”nes olukorras on jĂ”udlus tĂ”usnud 100 korda.
- JĂ€tkub muutuste edastamine Rust-for-Linux harust, mis on seotud Rusti keele kasutamisega teise keelenana draiverite ja tuuma moodulite arendamisel (Rusti tugi ei ole vaikimisi aktiveeritud ja ei too kaasa Rusti lisamist tuuma kohustuslikesse ehitus sĂ”ltuvustesse). Antud on vĂ”imalus kasutada tuuma koodis makrot «#[kunit_tests()]» ĂŒheus-testide kĂ€ivitamiseks. Lisatud on ARMv7 arhitektuuri tugi. Rakendatud on DMA ja hrtimer moodulid Rusti sidemete jaoks DMA jaoks (lisatud Linuse poolt hooldaja ringristil, kes seejĂ€rel lahkus oma ametist) ja kĂ”rgelt tĂ€psete ajastusmoodulite jaoks. Laiendatud on mooduleid âlistâ, âstrâ, âsyncâ, âerrorâ ja âallocâ. Lisatud on uus sĂŒntaks â&rawâ (raw_ref_op).
- perf alamsĂŒsteemis on rakendatud vĂ”imalus profilleerida viivitusi, kasutades teavet ĂŒlesande ajastajalt.
- Lisatud on tuuma kĂ€surea parameeter «traceoff_after_boot», mis vĂ€ljub jĂ€lgimisest pĂ€rast kernelitĂ”mbamist ja init-protsessi kĂ€ivitamist. Parameetrit saab kasutada tĂ”rkeotsingus, mis on seotud kĂ€ivitamisega, tagades, et laadimise ajal kogutud jĂ€lgimisandmeid ei kirjutata ĂŒle.
- 32-bit x86 systems with more than 8 CPU and 4 GB of RAM are no longer supported. Such hardware has not been produced for a long time and systems that require these resources have been transitioned to 64-bit CPUs.
- Changes have been made to the implementation of POSIX timers, allowing the CRIU (Checkpoint/Restore in Userspace) tool to save and restore timer IDs.
- Virtualiseerimine ja turvalisus
- Added the ability to use Linux as the root environment (Dom0. root partition) for the Hyper-V (Microsoft Hypervisor) hypervisor. The host environment is responsible for managing the hypervisor, organizing the launch of guest systems, allocating resources, and ensuring interaction virtuaalmasinate with hardware. Management of the Hyper-V hypervisor in Linux is done through the device /dev/mshv.
- The Landlock module, which provides unprivileged programs with means to restrict the use of Linux kernel objects (file hierarchies, network sockets, ioctl, etc.), has added an auditing mechanism. The audit allows a detailed assessment of the reasons for access blocks occurring when using Landlock, as well as provides the ability to understand when and which operation was blocked, why the blocking occurred, and which rule was activated.
- The ability to implement handlers in LSM modules (Linux Security Modules) that control access to the io_uring asynchronous I/O system and allow blocking the use of io_uring to bypass access restrictions to system calls has been added. Such a handler has been implemented in the SELinux LSM module.
- In SELinux, the ability to apply policies to any types of data loaded by the kernel, including firmware images, security policies, and certificates, has been realized.
- A sealing mode has been added for certain memory mapping operations performed by the kernel in the process's address space. Sealing changes the mapping to read-only mode and does not allow modifications in the event of an exploitation of vulnerabilities. This applies to mappings for vDSO, vsyscall, vvar, sigpage, and uprobes. The mode is disabled by default, as it may disrupt the operation of some applications. A build configuration option CONFIG_MSEAL_SYSTEM_MAPPINGS has been added to enable it.
- VĂ”rgusĂŒsteem
- Work on removing the global RTNL lock (rtnl_lock) from the network stack and transforming it into locks bound to individual network namespace spaces has continued.
- Lisa ĂŒlesanne saada vĂ”rgu pakette io_uring kaudu, kopeerides sisu otse programmi mĂ€llu kasutaja ruumis ilma vahetu puhverdamiseta (zero-copy). Teostatud testid nĂ€itasid, et muudatus vĂ”imaldas kĂ€sitleda liiklust 200 gigabiti suures kanalites, kasutades ĂŒhte CPU tuuma.
- Teostatud sysctl tcp_rto_max_ms ja TCP sokettide valik TCP_RTO_MAX_MS, mille kaudu saab mÀÀrata maksimaalse ajavahe pakettide uuesti edastamise katsete vahel.
- BPF-sse on lisatud seeria callback-kutsungite kohta, et saada aega erinevates kohtades vÔrgu virnas, mida saab kasutada vÔrgu viivituste probleemide diagnoosimiseks.
- Lisatud vÔrguoperatsioonide jÔudluse optimeerimised:
- GRO (Generic Receive Offload) optimeerimine, mis kombineerib mitu vĂ€ikest paketti ĂŒheks suureks, on nĂŒĂŒd rakendatud paketi töötlemise ĂŒleviimise ajal teisele CPU-le (koormuse tasakaalustamiseks) XDP (eXpress Data Path) alamsĂŒsteemi kasutamisel, mis vĂ”imaldab töötada pakettidega vĂ”rgu draiveri tasemel enne nende edastamist vĂ”rgu kihile. TCP-voogude töötlemise jĂ”udluse kasvu optimeerimise rakendamise tĂ”ttu vĂ”ib ulatuda kahekordseks.
- Suure koormuse tingimustes on connect() funktsiooni jĂ”udlust tĂ”stetud kahekordseks, asendades spin-blokeerimise RCU (Read-Copy-Update) sĂŒnkroniseerimismehhanismiga ĂŒhenduspoolte (allikad ja sihtportid) kirje leidmisel. IP-aadressid Lisaks on toimunud hashesimise optimeerimine, mis on andnud veel 229% jĂ”udlust.
- MPTCP (Multipath TCP), TCP protokolli laiendus pakettide edastamiseks samaaegselt mitme marsruudi kaudu, mis on seotud erinevate IP-aadressidega, on kiirus suurenenud. Ăhe voolu reĆŸiimis on MPTCP kiirus tĂ”usnud 29% vĂ”rra.
- Netfilter'is, kui soket on olemas, lÔpetatakse marsruutide otsimise operatsioonide sooritamine FIB (Forwarding Information Base) via. Selle optimeerimise tÔttu on jÔudlus kasvanud 20%.
- UDP jĂ”udlus rĂŒnnakute (flood) korral on suurenenud 10% vĂ”rreldes, eemaldades liigseid operatsioone sk_tsflags struktuuriga pakettide vastuvĂ”tu ajal.
- Lisatud draiver protokolli MCTP-over-USB rakendusega.
- Varustus
- Tuuma vĂ”eti vastu esmane Nova draiveri rakendus NVIDIA GPU-dele, mis on varustatud GSP-firmware'iga, mida kasutatakse alates NVIDIA GeForce RTX 2000 seeriast Turing mikroarhitektuuri alusel. Draiver on kirjutatud Rusti keeles. Esimeses etapis lisati ainult nova-core karkass, mis sisaldab umbes 400 koodi rida ja rakendab pĂ”hilisi abstraktsioone GSP firmware programmiliideste ĂŒle. JĂ€rgmises etapis plaanitakse tuuma lisada DRM-draiver nova-drm (Direct Rendering Manager) GPU-dega suhtlemiseks kasutaja ruumist, samuti VFIO-draiveri vGPU halduriga, mis vĂ”imaldab kasutada virtuaalseid NVIDIA GPU-sid virtualiseerimissĂŒsteemides.
- Tööd jÀtkatakse Intel Xe arhitektuuril pÔhineva GPU-draiveri (Direct Rendering Manager) Xe kallal, mida kasutatakse Intel Arc seeria graafikakaartides ja integreeritud graafikates alates Tiger Lake protsessoritest. Lisatud on SVM (Shared Virtual Memory) tugi, mis on DRM raamistikus jagatud mÀlu haldamiseks, mida jagavad CPU ja GPU.
- Draiverisse i915 on lisatud uute GPU-de tunnused.
- Draiveris Nouveau on ĂŒmber töötatud GSP RPC ja integreeritud drm_slave_encoder liides.
- Draiveris AMDGPU on rakendatud DCN36 (Display Core Next) arhitektuuri tugi. Lisatud on vÔimalus mÀÀrata oma heledusgrafikad, mida kasutatakse ekraani heleduse korrigeerimiseks.
- Draiverisse adreno on lisatud Qualcomm Adreno 623 GPU tugi.
- Lisatud on tugi Apple Touch Bar puutetundlikele paneelidele.
- Lisatud to support eUSB2 teise versiooni (eUSB2V2 â Embedded USB2 Version 2.0), mis vĂ”imaldab vĂ€hendada toitepinget (kuni 1,2 volti) ja suurendada USB 2.0 jĂ”udlust. eUSB2V2 andmepiirang vĂ”ib ulatuda kuni 4.8 Gbit sekundi kohta, mis on 10 korda kiiremini kui tavapĂ€rased 480 Mbit sekundi kohta, mis on tĂŒĂŒpiline USB 2.0 jaoks. eUSB2V2 vĂ”imaldab sĂŒlearvutite tootjatel varustada oma seadmeid kĂ”rgema resolutsiooniga veebikaameratega, jĂ€tkates samal ajal Embedded USB2 busside kasutamist nende ĂŒhendamiseks.
- Lisatud to support Intel Killer E5000 (RTL8126) Ethernet-adaptereid.
- Lisatud to support Visionox RM692E5, Rockchip w552793dba-v10, kingdisplay-kd110n11-51ie ja starry-2082109qfh040022-50e ekraanipaneele.
- Lisatud draiver Samsung Galaxy Book sĂŒlearvutitele.
- Lisatud to support Presonus Studio 1824c ja Jabra Evolve 65 helisĂŒsteeme. Lisatud to support AMD ACP 7.x, AWINC WM88166, Everest ES8388, Intel AVS PEAKVOL ja GAIN DSP mooduleid. Parandatud helitoe toimetulekut ASUS, HP ja Lenovo sĂŒlearvutites.
- Lisatud to support ARM-plaatide, SoC-de ja seadmete: Arm Morello, AMD (Xilinx) Versal NET, Google Pixel Pro 6, NetCube Kumquat, MYIR Remi Pi, Huawei Matebook E Go, Milk-V Jupiter ST STM32MP2, Mediatek MT8370, Apple T2, Skov (i.MX8MP), EVK (i.MX95), Rockchip RK35xx, Allwinner A523, 11 Toradexi plaati i.MX6 baasil.
Samas lÔi Ladina-Ameerika vabade tarkvarade fond tÀielikult vaba Linux-libre 6.15 tuuma variandi, millel ei ole firmware elemente ega draivereid, millel on tootja poolt piiratud vabad komponendid vÔi koodiosad. Versioonis 6.15 on neutraliseeritud blobide laadimine nova, Qualcomm iris v4l2, Airoha NPU, Tehuti Networks TN40xx 10G ethernet, Realtek 8814A wifi, Apple Silicon SoC puutetundlikud ekraanid, Renesas UFS ja aw88166 audio draiverites. Spider 1Gb ethernet draiveri puhastamine on lÔpetatud ning see on kernelist eemaldatud. Eemaldatud on viidatud tivoeritud binaarfailidele. Ellu viidud on blobide laadimise blokeerimine Rusti koodi kaudu.
Allikas: opennet.ru
