Linux 6.14

Linux 6.14

Pärast kahte kuud arendust Linus Torvalds esitles Linux 6.14 tuum. Kõige silmapaistvamad muudatused: draiver ntsync Windows NT sünkroniseerimisprimitive jaoks, lugemise tasakaalustamise seadistamine Btrfs RAID1-s, reflinki tugi XFS-is reaalajas režiimis, mittevahemälutatav puhverdatud sisend/väljund, dmem cgroup GPU mälu piiramise jaoks, io_uringi kaasamine FUSE-is, atribuutide delegeerimine NFS-is, aatomilise kirjutamise tugi seadmestikus, sümboolsete linkide kiirendamine, skriptide käivitamise haldamine, Qualcomm Snapdragon 8 Elite kiipide tugi, AMD NPU draiver.

Uude versiooni on lisatud 12115 parandust 1984 arendajalt, patši suurus on 39 MB (muudatused kattusid 10170 failiga, lisatud 531586 rida koodi, kustutatud 235999 rida). Eelmises väljaandes oli 14172 parandust 2086 arendajalt, patši suurus oli 46 MB. Umbes 41% kõigist 6.14-s esitatud muudatustest on seotud seadmedraiveritega, ligikaudu 13% muudatustest puudutab riistvara arhitektuurile spetsiifilise koodi uuendamist, 14% on seotud võrgu protokolliga, 7% -ga failisüsteemide ja 4% -ga tuuma sisemiste alamsüsteemidega.

Peamised uuendused:

  • Diskisüsteem, sisend/väljund ja failisüsteemid
    • Btrfs failisüsteemis on uute meetodite toimetamise toetamine lugemisoperatsioonide tasakaalustamiseks RAID1 massiivi kuuluvate seadmete vahel. Lisaks varem toimivale protsessi identifikaatorite (pid) põhisele koormuse jaotusele on uues versioonis pakutud kolme uut tasakaalustamise režiimi: "rotation" (koormuse ühtlane jaotamine kõigi seadmete vahel, režiim aktiveeritud vaikimisi); "latency" (jaotamine viivituste arvestamisega, mis võib olla kasulik tõrgete või ebaühtlaste seadmete töö korral); devid (manuaalne juhtimine). Tasakaalustamise režiimi muutmiseks on lisatud liidesele /sys/fs/btrfs//read_policy. Btrfs-is on mitmeid teisi muudatusi - rakendus ioctl FS_IOC_READ_VERITY_METADATA.
    • Lisatud mittevahemälutatav puhverdatud sisend/väljund, kus andmed eemaldatakse leheküljest kohe pärast lugemis- või kirjutamisoperatsioonide lõpetamist. See muudatus võib olla kasulik väga kiirete salvestusseadmete puhul, mille puhul vahemälutamine on liigne. Selliste seadmete puhul võimaldab uus režiim vältida lehekülje vahemälu liigset kasutamist, vältides keerulise otse sisend/väljund API kasutamist.
    • fsnotify's, failede muutuste jälgimise mehhanismis, on lisatud uus üritus FS_PRE_ACCESS, mis genereeritakse faili sisu juurde pääsemise etapis. Üritust töödeldakse sünkroonses režiimis, st tuum saadab ürituse ja ootab vastuse saamist. Kui vastus on saadud – toiming täidetakse, ja kui ebaõnnestumine toimub – süsteemikõne tagastab kasutajaruumi tõrkekoodi. FS_PRE_ACCESS abil saab kasutajaruumi protsessis korraldada näiteks faili täitmise andmete valmiduse järgi aeglasest salvestusest.
    • FUSE-alamsüsteemi, mis võimaldab luua failisüsteemide rakendusi kasutajaruumi, on lisatud toetamine andmevahetust tuuma ja kasutajaruumi töötleja vahel kasutades io_uring sisend-/väljundmehhanismi. Muudatus võimaldab suurendada FUSE'i jõudlust, vähendades konteksti vahetusi tuuma ja kasutajaruumi vahel.
    • Failisüsteemi XFS on lisatud võimaluse tagasimapimist (rmap, reverse-mapping) reaalajas viivitustega töötamise režiimis. Tagasimapimine võimaldab kindlaks teha, millise faili salvestamiseks kasutatakse antud plokki salvestusseadmel. RMap abil on XFS-i reaalajas režiimile rakendatud reflink operatsiooni tugi, mis võimaldab failide koopiaid luua faili metaandmete kloonimise ja juba olemasolevatele andmetele lingi loomisega ilma nende tegeliku kopeerimiseta.
    • VFS-s rakendatakse ongi sümboolsete linkide suuruse vahemälu, mis on võimaldanud kiirendada readlink operatsiooni täitmist 1,5% võrra (testiga /initrd.img ext4 süsteemis). Vahemälu on aktiveeritud FS ext4 ja tmpfs-s.
    • NFSv4.2 rakendusse on lisatud tugi faili atribuutide delegeerimiseks, mis võimaldab hallata selliseid faili atribuute nagu muudatuste aeg (mtime) NFS-i kliendi poolel ilma muudatuste serverisse edastamiseta. NFS-is on samuti parendatud protokolliLOCALIO, mis võimaldab kindlaks teha, kas NFS-i klient ja server asuvad samal hostil, et rakendada vastavaid optimeerimisi, nagu kliendi otsene sisend-/väljund (Direct I/O).
    • Jõudlust on parandatud NETFS, CIFS ja AFS (Andrew File System) failisüsteemide lugemisoperatsioonides.
    • Squashfs-i on lisatud otsemise laadimise režiim lehtede vahemällu (SQUASHFS_FILE_DIRECT), mis võimaldab vältida eraldi vahemälus read_page. Muudatus võimaldas vähendada mälu suurust, mida Squashfs tööprotsessis vajab.
    • süsteemikutses statx() rakendatud lipp STATX_DIO_READ_ALIGN, et määrata vajalik joondamine faili lugemiseks.
    • failisüsteemis Bcachefs uuendatud ja stabiliseeritud ketasstruktuuride formaat. Kõik edasised formaadi muudatused loetakse mitte kohustuslikuks ja rakendatakse valikulisena. FS-i terviklikkuse kontrollimise kiirus on oluliselt suurenenud. Lisaks on Bcachefs-is paranenud töölt ainult lugemise režiimis; kõrvaldatud probleemid, mis põhjustasid mälu juurde pääsemise pärast selle vabastamist (use after free); lahendatud reflink-viidatud probleemid fsck-s; parandatud tehingute taaskäivitamise töötlemine.
    • tagasi viidud md-linear moodul, mis on mõeldud plokkseadmete ühendamiseks. See moodul oli varem kuulutatud vananenuks ja eemaldatud tuumast 6.8, kuid kuna seda oli nõutud, on see nüüd taastatud.
    • failisüsteemid F2FS ja SQUASHFS on viidud üle kasutusele mälulehtede foliandid (page folios).
    • draiveris null_blk rakendatud atribuut „rotational“, mis määratakse läbi configfs ja võimaldab simuleerida töötamist pöörlevatel ketastel olevate seadmetega, et lihtsustada tuuma funktsioonide testimist.
    • seadmestiku kaardis ja moodulites dm-mirror, dm-io, dm-table, dm-linear, dm-stripe ja dm-raid1 rakendatud toetatakse aatomaarset kirjutamist.
  • Mälu ja süsteemiteenused
    • Lõpetatud draiveri integreerimine tuuma ntsync, mis rakendab sümboolset seadet /dev/ntsync ja komplekti sünkroniseerimisprimitive, mida kasutatakse Windows NT tuumas. Selliste primitivi rakendamine tuuma tasandil võimaldab oluliselt suurendada Windowsi mängude jõudlust, kui neid käitada Wine'i kaudu. Jõudluse suurenemine saavutatakse RPC kasutamisega seotud kulude kõrvaldamise teel, mis esinevad kasutajaruumi tasandil. Eraldi draiveri loomine Linuxi tuuma jaoks on põhjendatud NT sünkroniseerimise API korrektse rakendamise keerukusega olemasolevate primitivi peal.
    • lisatud uus cgroup juhtimiseks DMEM separate memory area accounting for devices like GPU. DMEM allows creating separate cgroups for different tasks interacting with the GPU, enabling them to run without interfering with each other. This new feature addresses the issue of forced operation termination on the GPU when available memory is exhausted by accounting for both reflected GPU memory and CPU memory used by drivers within separate cgroups.
    • Optimizations have been made for scaling the flush operation of the Translation Lookaside Buffer (TLB), used to speed up the conversion of virtual addresses to physical ones. The added optimizations involve deferred updates of certain data structures during context switching, which enhances performance in specific tests.
    • Jõudlust performance of the mechanism MGLRU (Multi-Generational LRU), used to determine which memory pages are in use and which can be evicted to swap space.
    • Continued the transfer of changes from the branch Rust-for-Linux, related to using the Rust language as a secondary language for driver and kernel module development (Rust support is not enabled by default and does not include Rust in the mandatory build dependencies for the kernel). The kernel code now allows the use of the macro "derive(CoercePointee)", which enables the use of smart pointers with trait objects. The kernel features lisakujunduse truuduse fondid OpenType formaadis, mida saab kasutada programmis gnome-terminal (pärast HarfBuzz'i kasutusele võtmist on tõusnud probleeme vanade truuduse fontide kasutamisel gnome-terminalis). Rust bindings for PCI, platforms, Open Firmware, symbolic devices and some input/output functions. Greg Kroah-Hartman, overseeing the stable branch support of the Linux kernel, characterized the current state as "almost ready for writing a real driver in Rust."
    • In build scenarios on pakutud new code for generating debug symbol versions for loadable modules, which now uses information from debugging records in DWARF format instead of parsing the source code directly. This change allows for versioning of debug symbols for modules written in Rust. The old implementation is also retained in the kernel, with the choice of generator made at the build options level.
    • For the PowerPC architecture rakendatud toetab režiimi leniva asendamine ülesandeid (PREEMPT_LAZY, leniv asendamine), mis vastab täieliku asendamise režiimile («full preemption») reaalajas ülesannete (RR/FIFO/DEADLINE) jaoks, kuid lükkab tavainimeste (SCHED_NORMAL) asendamise edasi tiksumise piirini.
    • tulemuse profiilimise alam süsteem perf lisatud toetab AMD protsessorite energia tarbimise loendureid. Lisatud võimalusel töötada süsteemides, kus on kuni 2048 CPU tuuma.
    • Pakkuv võimalus kasutada sysctl parameetrit pid_max protsesside identifikaatorite ruumide (ID namespace) puhul. Parameeter pid_max on mõeldud protsesside identifikaatorite (PID) maksimaalse väärtuse piiramiseks ja võib nüüd kasutada määratletud identifikaatori ruumis käivitatud protsesside maksimaalse arvu piiramiseks. Parameetri töötlemine toimub hierarhiliselt, st välised identifikaatorite ruumide piirangud kehtivad ka sisemiste identifikaatorite ruumide jaoks.
    • Süsteemi kõne kasutamisel execveat kuvatakse failisüsteemis /proc nüüd käivitatud faili nimi, mitte failikirjeldaja number.
    • Tuuma allika koodis (kaustas samples) on lisatud utiliit mountinfo, mis demonstreerib süsteemi kõnede statmount() ja listmount() kasutamist.
    • BPF alam süsteemis pakutakse uus bpf_local_irq_save() ja bpf_local_irq_restore() funktsioonid, mis võimaldavad ajutiselt katkestusi kohaliku CPU peal välja lülitada. Funktsioone saab kasutada struktuuride rakendamiseks, mille töötlemine ei peatu katkestuste tõttu.
    • Süsteemi kõnes madvise() kui kasutatakse lippu MADV_DONTNEED ja MADV_FREE on tagatud vabastatakse mäluleheküljed, mis on seotud vabastatava aadresside vahemikuga, kuna mõnel juhul võivad tühjad mäluleheküljed tarbida piisavalt kummalist mälu.
    • OpenRISC arhitektuuri jaoks on rakendatud taastatavate järjestuste mehhanismi (rseq, taastatavad järjestused), mis on mõeldud kiireks aatomaarseks teostamiseks toimingutest, mis katkestuse korral teise punkti poolt tühistatakse ja tehakse uus katse teostamiseks.
    • Kood on reorganiseeritud, rakendades CRC32 ja CRC-T10DIF algoritme, mis ei ühti enam krüpto alamsüsteemiga ja kutsutakse otse välja raamatukogu liidest. Muudatus on võimaldanud koodi lihtsustada ja selle tõhusust suurendada.
    • Asünkroonse sisendi/väljundi süsteemi io_uring on lisatud liides, et edastada täiendavaid metaandmeid terviklikkuse kohta lugemis- ja kirjutamistoimingute ajal.
  • Virtualiseerimine ja turvalisus
    • Süsteemi kõnes execveat on lisatud lipp AT_EXECVE_CHECK, mis võimaldab teostada kontrollimist faili täitmise lubatavuse kontrollimise, arvestades siiski turvapoliitikaid, ligipääsuõigusi ja aktiivseid LSM-mooduleid. AT_EXECVE_CHECK'i koos kasutamiseks on soovitatud securebit-lippe SECBIT_EXEC_RESTRICT_FILE ja SECBIT_EXEC_DENY_INTERACTIVE, mida saab kasutada skriptifailide täitmise piiramiseks interpreteeritavad programmeerimiskeeled. Lipp SECBIT_EXEC_RESTRICT_FILE käskib linkimistöötluses ja tõlgendustes kasutada AT_EXECVE_CHECK'i valikut lubatavuse kontrollimiseks, samas kui lipp SECBIT_EXEC_DENY_INTERACTIVE keelab interaktiivsete käskude töötlemise. Muutuse peamine idee on rakendada turvapoliitikaid mitte ainult traditsioonilistele käivitatavatele failidele, vaid ka skriptifailidele, mida saab laadida interpreteeri kaudu (st täitmise piirangut saab rakendada mitte ainult käivitamisel "./script.sh", vaid ka kui seda teostatakse kujul "sh script.sh").
    • x86 süsteemides on ellu viidud kaitstud ajaloendite tugi külalis süsteemide jaoks, mis ei luba hosti keskkonnast külalis süsteemi süsteemi kellaaegu muuta. Võime on rakendatud mehhanismi põhjal AMD SEV (Secure Encrypted Virtualization), mida kasutatakse virtualiseerimissüsteemides virtuaalmasinate kaitsmiseks hüperviisori või host-süsteemi administraatori sekkumise eest.
    • SELinux'i mandaadi kontrollimise süsteemi lisatud toetamine xperm-reeglid, mis võimaldavad siduda SELinux'i poliitikaid teatud ioctl() või netlinki sõnumitega.
    • Kerneli moodulite digitaalset allkirjastamist jätkusuutlikult SHA1 asemel, on vaikimisi aktiveeritud SHA512 algoritm.
    • VirtualBox'i külalsüsteemide draiverites on aktiveeritud on toetatud ARM64 arhitektuur.
    • KVM hüperviisor, on jätkunud töö Intel TDX (Trusted Domain Extensions) mehhanismi rakendamisega külalis süsteemide mälutuvastamiseks.
    • virtio_blk lisatud toetab veakorrigeerimisrežiimi.
  • Võrgusüsteem
    • Protokolli rakendamisel RxRPC on on võimalus kasutada suuri UDP kaadreid läbilaskevõime suurendamiseks.
    • TCP-le on lisatud toetust algoritmile RACK-TLP pakettide kadumise tuvastamiseks.
    • Lisatud uus sysctl parameeter tcp_tw_reuse_delay, mis kehtib nimiruumi (network namespace) seondumisel ja võimaldab määrata viivituse, mille jooksul süsteem saab TCP-soketi sulgemise järel uuesti kasutada võrguporti.
    • Lisatud võimalus valida täpset aega edastava teenusepakkuja (PTP) ajatempli loomiseks PHY ja MAC tasanditel.
    • IPsec jaoks rakendatud toetab kapseldatud IP-pakettide kogumise ja fragmenteerimise mehhanismi – IP-TFS/AGGFRAG (IP Traffic Flow Security/Aggregation and Fragmentation Mode for Encapsulating Security Payload).
    • Tehnoloogiasse on integreeritud võrgu soketitesse lisatud toetamine infot prioriteedi (SO_PRIORITY) edastamiseks juhtmes sõnumites (cmsg — control messages). Võrgu soketites lisatud on valik SO_RCVPRIORITY, mis lisab funktsioonile recvmsg() soketi prioriteedi edastamise.
  • Varustus
    • Lisatud draiver amdxdna integratsiooniks AMD protsessoritesse NPU (Neural Processing Unit) kiiruskiirendite jaoks, mis põhinevad XDNA, mis on mõeldud masinõppe seotud toimingute kiiruskiirendamiseks. XDNA arhitektuuriga NPU-d on saadaval AMD Ryzen 7040 ja 8040 seeria protsessorites, AMD Alveo V70 kiiruskiirendites ja SoC AMD Versal.
    • Draiverisse i915 on lisatud on lisatud uute GPU-de identifikaatorid, HDMI- alguse tõrke töötlemine ning paranenud GPU-mootorite usaldusväärsus Haswell'i ja vanemate süsteemide puhul.
    • Jätkatakse drm-draiveri (Direct Rendering Manager) Xe täiustamist Intel Xe arhitektuuriga GPU-dele, mida kasutatakse Intel Arc perekonna graafikakaartides ja integreeritud graafikas alates Tiger Lake'i protsessoritest.
    • Nouveau draiverisse on lisatud GSP-RM logi puhverdate edastamise võimalus läbi debugfs.
    • AMDGPU draiveris on rakendatud DRM panic mehhanismi tuge, mis kuvab sarnase „sinise ekraani surma“ vigade puhul. Jätkatakse ettevalmistusi tulevaste Radeon RX 9000 seeria graafikakaartide toetamiseks, mis põhinevad RDNA4 arhitektuuril. Uuendatud toetust DCN 3.5, GG 9.5, IH 4.4, PSP 13.x, SMU 13.x, VCN 5.x, JPEG 5.x, GC 12.x, DC FAMS, RAS ja ISP.
    • DRM-draiveris msm (GPU Qualcomm Adreno) on lisatud Qualcomm SM6150 (QCS615) platvormi tugi.
    • DRM-draiverisse panfrost on lisatud toetust SoC MediaTek MT8188 koos GPU Mali-G57-ga.
    • DRM-draiverisse vc4 on lisatud toetust SoC Broadcom BCM2712 (Raspberry Pi 5).
    • vfio-draiveris nvgrace-gpu lisatud toetamine NVIDIA Grace Blackwell 200 kiipide jaoks.
    • kuuluvad on lisatud draiver Intel THC (Touch Host Controller) kontrollerite jaoks, mida kasutatakse puuteekraanide ja puuteplaatide jaoks mõnes sülearvutis. Lisatud tugi Wacomi PCI-liidese seadmetele. Lisatud toetust QH Electronics mängu kontrolleritele.
    • Lisatud toetamine ARM-platvorm, SoC ja seadmed: Qualcomm Snapdragon 8 Elite (SM8750), Qualcomm Snapdragon AR2 (SAR2130P), Qualcomm IQ6/IQ8, Snapdragon 425 (MSM8917), Samsung Exynos 9810, Blaize BLZP1600, Microchip SAMA7D65, Renesas R-Car V4H ES3.0, Renesas RZ/G3E. Lisatud tugi SoC SpacemiT K1 RISC-V arhitektuuril.
    • ALSA helisüsteemis MIDI 2.0 on laiendatud API rawmidi ja sequencer. Helikaardi võimaluste väljavõtmiseks on API-sse lisatud ASRC (Asynchronous Sample Rate Conversion) tugi.
    • Lisatud tugi kõlarite süsteemidele, sealhulgas Allwinner suinv F1C100s, Awinc AW88083, Realtek ALC5682I-VE, TAS2781, Focusrite Scarlett 4th Gen 16i16, 18i16 ja 18i20. Lisatud SteelSeries Arctis 9 juhtmeta kõrvaklappide tugi.

Allikas: linux.org.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster