Linux 6.14

Linux 6.14

Kahden kuukauden kehitystyön jälkeen Linus Torvalds toimitettu ytimen julkaisu Linux 6.14. Merkittävimpiä muutoksia: ntsync-ajuri synkronointiprimitiiveineen Windows NT, lukutasapainotuksen konfigurointi Btrfs RAID1:ssä, reaaliaikainen relink-tuki XFS:ssä, välimuistiin tallentamattoman puskuroidun I/O:n käyttöönotto, dmem cgroup GPU-muistin rajoittamiseen, io_uringin käyttöönotto FUSE:ssa, attribuuttien delegointi NFS:ssä, atomikirjoitusten tukeminen Device Mapperissa, symbolisten linkkien kiihdyttäminen, komentosarjojen suorituksen hallinta, Qualcomm Snapdragon 8 Elite -sirujen tuki ja ajuri AMD NPU:ille.

Uusi versio sisältää 12115 1984 korjausta 39 10170 kehittäjältä, korjaustiedoston koko on 531586 MB (muutokset vaikuttivat 235999 14172 tiedostoon, 2086 46 koodiriviä lisättiin, 41 6.14 riviä poistettiin). Viimeisessä julkaisussa oli 13 14 korjausta 7 4 kehittäjältä, korjaustiedoston koko oli XNUMX MB. Noin XNUMX % kaikista versiossa XNUMX tehdyistä muutoksista liittyy laiteajureihin, noin XNUMX % muutoksista liittyy laitteistoarkkitehtuurikohtaiseen koodin päivittämiseen, XNUMX % liittyy verkkopinoon, XNUMX % liittyy tiedostojärjestelmiin ja XNUMX % liittyy sisäisiin ytimen alijärjestelmiin.

Pääasiallinen innovaatioita:

  • Levyalijärjestelmä, I/O ja tiedostojärjestelmät
    • Btrfs-tiedostojärjestelmässä ilmestyi tuki uusille menetelmille lukutoimintojen tasapainottamiseksi RAID1-ryhmään sisältyvien asemien välillä. Aiemman olemassa olevan prosessitunnisteisiin (pid) perustuvan kuormituksen jakautumisen lisäksi uudessa versiossa on kolme uutta tasapainotustilaa: "kierto" (yhtenäinen kuormituksen jakautuminen kaikissa asemissa, tila on oletuksena käytössä); "latenssi" (jakelu, joka ottaa huomioon viiveet, voi olla hyödyllinen vikatilanteissa tai asemien epävakaan toiminnan yhteydessä); devid (manuaalinen ohjaus). Tasapainotustilan vaihtaminen lisätty käyttöliittymä /sys/fs/btrfs/ /read_policy. Muita muutoksia Btrfs:ssä ovat: toteutus ioctl FS_IOC_READ_VERITY_METADATA.
    • lisättyä Ei-välimuistiin puskuroitu I/O-tila, jossa tiedot poistetaan sivuvälimuistista heti luku- tai kirjoitustoimintojen päätyttyä. Muutoksesta voi olla hyötyä käytettäessä erittäin nopeita tallennuslaitteita, joille RAM-muistin välimuistitoiminnot ovat tarpeettomia. Tällaisissa laitteissa uusi tila eliminoi sivun välimuistin tarpeettoman muistin kulutuksen turvautumatta monimutkaisen Direct I/O API:n käyttöön.
    • fsnotifyssa mekanismi, jolla seurataan muutoksia FS:ssä, lisätty uusi FS_PRE_ACCESS-tapahtuma, joka on luotu vaiheessa ennen tiedoston sisällön käyttöä. Tapahtuma käsitellään synkronisessa tilassa, eli ydin lähettää tapahtuman ja odottaa vastausta. Jos vastaus vastaanotetaan, toiminto suoritetaan, ja jos tapahtuu vika, järjestelmäkutsu palauttaa virhekoodin käyttäjätilaan. FS_PRE_ACCESS:n avulla esimerkiksi käyttäjätilassa oleva prosessi voi järjestää tiedoston täytön heti, kun tiedot ovat valmiita hitaassa tallennustilassa.
    • FUSE-alijärjestelmä, jonka avulla voit luoda tiedostojärjestelmien toteutuksia käyttäjätilassa, on lisätty tukea viestintä ytimen ja käyttäjätilan käsittelijän välillä io_uring I/O -mekanismin avulla. Muutos parantaa FUSE-suorituskykyä vähentämällä kontekstin vaihtoa ytimen ja käyttäjätilan välillä.
    • Lisätty XFS-tiedostojärjestelmään tilaisuus käyttämällä käänteistä kartoitusta (rmap, reverse-mapping) käyttötilassa ennakoitavissa olevilla viiveillä ("reaaliaikainen laite"). Käänteinen kartoitus antaa sinun määrittää, minkä tiedoston tallennuslaitteen tiettyä lohkoa käytetään. Käyttämällä rmapia XFS:ssä reaaliaikaisessa tilassa, on toteutettu tuki reflink-toiminnolle, jonka avulla voit luoda kopioita tiedostoista kloonaamalla tiedoston metatiedot ja luomalla linkin olemassa oleviin tietoihin kopioimatta niitä.
    • VFS:ssä toteutettu symbolisten linkkien koon välimuisti, mikä mahdollisti lukulinkin toiminnan nopeuttamisen 1.5 % (testissä /initrd.img:llä ext4:ssä). Välimuisti sisältyy ext4- ja tmpfs-tiedostojärjestelmiin.
    • NFSv4.2-toteutukseen on lisätty tuki tiedostomääritteen delegointi, jonka avulla voit hallita tiedostomääritteitä, kuten muokkausaikaa (mtime) NFS-asiakaspuolella, ilman että sinun tarvitsee huuhdella palvelimeen tehtyjä muutoksia. NFS:llä on myös parannettu tuki "LOCALIO", jonka avulla voit määrittää, ovatko asiakas ja NFS-palvelin samassa isännässä, jotta voit ottaa käyttöön asianmukaiset optimoinnit, kuten asiakas käyttää suoraa I/O:ta.
    • Lisääntynyt lukutoimintojen suorituskyky NETFS-, CIFS- ja AFS-tiedostojärjestelmissä (Andrew File System).
    • Squashfsissa mukana lohkojen suora lataus sivun välimuistiin (SQUASHFS_FILE_DIRECT), jonka avulla voit tehdä ilman erillistä lukusivuvälimuistia. Muutos mahdollisti Squashfs-sovelluksen käytön aikana kulutetun muistin määrän vähentämisen.
    • Statx()-järjestelmäkutsussa toteutettu STATX_DIO_READ_ALIGN-lippu, joka määrittää vaaditun kohdistuksen tiedostosta luettaessa.
    • Bcachefs-tiedostojärjestelmässä päivitetty и vakiintunut levyrakenteen muoto. Kaikki muut muutokset muotoon luokitellaan valinnaisiksi ja ne toteutetaan valinnaisten lisäysten muodossa. Tiedostojärjestelmän eheyden tarkistuksen nopeutta on lisätty merkittävästi. Lisäksi Bcachefs on parantanut vain luku -suorituskykyä; Korjatut ongelmat, jotka johtavat muistin käyttöön sen vapauttamisen jälkeen (käyttö vapaan jälkeen); Fsck:n reflink-osoittimien ongelmat on ratkaistu; Korjattu tapahtuman uudelleenkäynnistyksen käsittely.
    • Palannut md-lineaarinen moduuli, joka on suunniteltu yhdistämään lohkolaitteita. Tämä moduuli julistettiin aiemmin vanhentuneeksi ja poistettiin 6.8-ytimestä, mutta kuten kävi ilmi, sille oli kysyntää ja siksi se on nyt palautettu.
    • Tiedostojärjestelmät F2FS ja SQUASHFS on vaihdettu käyttöön lukuisia muistisivuja (sivufoliot).
    • Kuljettajassa null_blk "rotation"-attribuutti on otettu käyttöön, asetettu configfs-asetuksissa ja mahdollistaa työskentelyn simuloimalla pyöriviin levyihin perustuvan laitteen kanssa ytimen toimintojen testauksen yksinkertaistamiseksi.
    • Device mapper -järjestelmässä ja dm-mirror-, dm-io-, dm-table-, dm-linear-, dm-stripe- ja dm-raid1-moduuleissa toteutettu Atomic kirjoitustuki.
  • Muisti- ja järjestelmäpalvelut
    • Valmis ajurin ydinintegraatio ntsync, joka toteuttaa merkkijonolaitteen /dev/ntsync ja joukon ytimessä käytettyjä synkronointiprimitiivejä Windows NT. Tällaisten primitiivien toteuttaminen ytimen tasolla voi parantaa suorituskykyä merkittävästi. Windows-pelit käynnistettiin Winellä. Suorituskyvyn parannuksia saavutetaan poistamalla RPC-kutsujen käyttöön liittyvä lisäkulu käyttäjätilassa. Erillisen kernel-ajurin luominen Linux Tämä selittyy NT-synkronointi-API:n oikean toteutuksen ongelmallisuudella ytimen olemassa olevien primitiivien päälle.
    • Lisätty uusi cgroup-ohjain DMEM laitteiden, kuten GPU:iden, muistialueiden erilliseen kirjanpitoon. DMEM:n avulla voit luoda erillisiä c-ryhmiä eri GPU-tehtäville, jotta ne voivat toimia ilman, että ne vaikuttavat toisiinsa. Uusi ominaisuus ratkaisee GPU-toimintojen pakotetun lopettamisen ongelman, kun käytettävissä oleva muisti on lopussa, huomioimalla heijastuneen GPU-muistin ja CPU-ajurien käyttämän CPU-muistin yksittäisissä c-ryhmissä.
    • Optimointeja on tehty skaalaamaan TLB (Translation Lookaside Buffer) välimuistin tyhjennystoimintoa, jolla nopeuttaa virtuaalisten osoitteiden muuntamista fyysisiksi. Lisätyt optimoinnit koostuvat joidenkin tietorakenteiden päivityksen viivästymisestä kontekstin vaihdon aikana, mikä voi parantaa suorituskykyä läpäistäessä joitain testejä.
    • Lisääntynyt mekanismin suorituskyky MGLRU (Multi-Generational LRU), jota käytetään määrittämään, mitkä muistisivut ovat käytössä ja mitkä voidaan vaihtaa swap-osioon.
    • Jatkuu liikkuvat muutokset haarasta Ruoste-for-Linux, joka liittyy Rustin käyttöön toisena kielenä ohjaimien ja ydinmoduulien kehittämisessä (Rust-tuki ei ole oletusarvoisesti aktiivinen, eikä se johda Rustin sisällyttämiseen ytimen vaadittavana koontiriippuvuutena). On mahdollista käyttää makroa "johtaa (PakotusPointee)", mikä mahdollistaa älykkäiden osoittimien käytön piirreobjektien kanssa. Ytimeen mukana Ruostekääre PCI, alustat, Avaa laiteohjelmisto, merkkilaitteet ja jotkut I/O-toiminnotGreg Kroah-Hartman, joka ylläpitää vakaata ytimen haaraa Linux, luonnehdittu nykyinen tila on "melkein valmis kirjoittamaan oikean ajurin Rustissa".
    • Rakentaessa skriptejä ehdotettu Uusi koodi virheenkorjaussymboliversioiden luomiseen ladattaville moduuleille, joka nyt käyttää DWARF-muotoiltujen virheenkorjaustietueiden tietoja sen sijaan, että jäsentäisi lähdekoodia suoraan. Muutos mahdollistaa Rust-kielellä kirjoitettujen moduulien virheenkorjaussymbolien versioinnin. Vanha toteutus jätetään myös ytimeen, ja generaattori valitaan kokoonpanovaihtoehtojen tasolla.
    • PowerPC-arkkitehtuurille toteutettu tuki laiskalle ennaltaehkäisytilalle (PREEMPT_LAZY, laiska ennaltaehkäisy), joka vastaa täydellistä ennaltaehkäisytilaa reaaliaikaisille tehtäville (RR/FIFO/DEADLINE), mutta viivästyttää tavallisten tehtävien ennaltaehkäisyä (SCHED_NORMAL) rastirajaan asti.
    • Perf suorituskyvyn profilointialijärjestelmään lisätty tuki AMD-prosessorien energiankulutuslaskureille. lisätty kyky työskennellä järjestelmissä, joissa on jopa 2048 CPU-ydintä.
    • Edellyttäen kyky käyttää pid_max sysctl-parametria prosessitunnusten nimiavaruuksien kanssa. Parametri pid_max on tarkoitettu rajoittamaan prosessitunnisteiden (PID) enimmäisarvoa, ja sitä voidaan nyt käyttää rajoittamaan määritetyssä nimiavaruudessa käynnissä olevien prosessien enimmäismäärää. Parametrien käsittely tapahtuu hierarkkisesti, eli sisäkkäisiä nimiavaruuksia koskevat ulkoisten nimiavaruuksien rajoitukset.
    • Käytetään järjestelmäkutsuprosessin käynnistämiseen execveat /proc-tiedostojärjestelmä näyttää nyt käynnissä olevan tiedoston nimen tiedoston kuvaajan numeron sijaan.
    • mountinfo-apuohjelma on lisätty ytimen lähdekoodiin (näytehakemistoon), joka osoittaa statmount()- ja listmount()-järjestelmäkutsujen käytön.
    • BPF-alijärjestelmässä ehdotettu uudet toiminnot bpf_local_irq_save() ja bpf_local_irq_restore(), jotka estävät väliaikaisesti keskeytykset paikallisessa suorittimessa. Toimintoja voidaan käyttää toteuttamaan rakenteita, joiden käsittelyä ei keskeydy keskeytykset.
    • Järjestelmäpuhelussa madvise () kun käytetään MADV_DONTNEED- ja MADV_FREE-lippuja turvattu Vapautettavaan osoitealueeseen liittyvien muistisivutaulukoiden vapauttaminen, koska joissain tilanteissa tyhjät muistisivut voivat viedä melko paljon muistia.
    • OpenRISC-arkkitehtuurissa tuki uudelleenkäynnistettävälle sekvenssimekanismille (rseq, uudelleenkäynnistettävät sekvenssit), suunniteltu suorittamaan nopeasti atomimaisesti operaatioita, jotka puhdistetaan ja yritetään uudelleen, jos toinen säie keskeyttää.
    • Koodi on organisoitu uudelleen toteuttamalla CRC32- ja CRC-T10DIF-algoritmit, jotka eivät enää leikkaa salausalijärjestelmää ja kutsutaan suoraan kirjaston rajapinnasta. Muutoksen ansiosta pystyimme yksinkertaistamaan koodia ja parantamaan sen tehokkuutta.
    • Asynkroniseen tulo/lähtöjärjestelmään io_uring lisätty Käyttöliittymä lisäeheysmetatietojen välittämiseen luku- ja kirjoitustoimintoja suoritettaessa.
  • Virtualisointi ja turvallisuus
    • Järjestelmäpuhelussa execveat lisätty lippu AT_EXECVE_CHECK, sallii suorittaa tarkistus tiedoston suorittamisen sallittavuus käynnistämättä sitä, mutta ottaen huomioon suojauskäytännöt, käyttöoikeudet ja aktiiviset LSM-moduulit. Käytettäviksi yhdessä AT_EXECVE_CHECK:n kanssa ehdotetaan suojausbittilippuja SECBIT_EXEC_RESTRICT_FILE ja SECBIT_EXEC_DENY_INTERACTIVE, joita voidaan käyttää rajoittamaan tiedostojen suorittamista tulkitetuilla ohjelmointikielillä olevilla komentosarjoilla. SECBIT_EXEC_RESTRICT_FILE-lippu kehottaa linkittäjiä ja tulkkeja käyttämään AT_EXECVE_CHECK-vaihtoehtoa tarkistaakseen, onko suoritus oikein, ja lippu SECBIT_EXEC_DENY_INTERACTIVE estää interaktiivisten komentojen käsittelyn. Muutoksen pääideana on kyky soveltaa suojauskäytäntöjä perinteisten suoritettavien tiedostojen lisäksi myös tekstitiedostoihin, joissa on skriptejä, jotka voidaan ladata tulkin käynnistämisen kautta (eli suorituskielto voidaan toteuttaa paitsi "./script.sh"-ajon aikana, vaan myös silloin, kun se suoritetaan muodossa "sh script.sh").
    • x86-järjestelmissä on toteutettu tuki vierasjärjestelmien suojatuille aikalaskureille, mikä ei salli vierasjärjestelmän kellon vaihtamista isäntäympäristöstä. Mahdollisuus toteutetaan mekanismin perusteella AMD SEV (Secure Encrypted Virtualization), jota käytetään virtualisointijärjestelmissä suojaamaan virtuaalikoneita hypervisorin tai isäntäjärjestelmän ylläpitäjän aiheuttamilta häiriöiltä.
    • Pakollisessa kulunvalvontajärjestelmässä SELinux lisätty tukea xperm-säännöt, jonka avulla voit sitoa SE-käytäntöjäLinux tiettyihin ioctl()-kutsuihin tai netlink-viesteihin.
    • Ytimen moduulien digitaalinen allekirjoittaminen oletusarvoisen SHA1:n sijaan mukana SHA512-algoritmi.
    • VirtualBox-vierasohjaimet mukana tuki ARM64-arkkitehtuurille.
    • KVM hypervisorissa jatkui työ Intel TDX (Trusted Domain Extensions) -mekanismin käyttäminen vierasjärjestelmien muistin salaamiseen.
    • virtio_blk:ssä lisätty virheenpalautustilan tuki.
  • Verkkoalijärjestelmä
    • Protokollan täytäntöönpanossa RxRPC ilmestyi kyky käyttää suuria UDP-kehyksiä suorituskyvyn lisäämiseksi.
    • Lisätty algoritmituki TCP:lle RACK-TLP määrittääksesi pakettihäviön.
    • lisättyä uusi sysctl-parametri tcp_tw_reuse_delay, joka toimii yhdessä verkon nimitilan kanssa ja jonka avulla voit määrittää viiveen, joka tulee ennen kuin järjestelmä voi käyttää verkkoportin numeroa uudelleen TCP-socketin sulkemisen jälkeen.
    • lisätty kyky valita tarkkuusajan tarjoaja (PTP) aikaleimojen luomiseksi PHY- ja MAC-tasoilla.
    • IPsecille toteutettu tuki kapseloitujen IP-pakettien yhdistämis- ja pirstoutumismekanismille – IP-TFS/AGGFRAG (IP-liikennevirtojen suojaus/aggregointi ja fragmentointitila suojaushyötykuorman kapseloimiseksi).
    • Verkkopistorasiajärjestelmään lisätty tukea prioriteettitietojen (SO_PRIORITY) lähettäminen ohjaussanomien (cmsg - ohjausviestien) muodossa. Verkkopistorasioihin lisätty SO_RCVPRIORITY-vaihtoehto, joka mahdollistaa socket-prioriteettitietojen lähettämisen recvmsg()-funktiolle.
  • Оборудование
    • lisättyä kuljettaja amdxdna arkkitehtuuripohjaisille NPU (Neural Processing Unit) -kiihdyttimille, jotka on integroitu AMD-suorittimiin XDNA, joka on suunniteltu nopeuttamaan koneoppimiseen liittyviä toimintoja. XDNA-arkkitehtuuriin perustuva NPU on saatavilla 7040- ja 8040-sarjoissa AMD Ryzen -prosessoreissa, AMD Alveo V70 -kiihdyttimissä ja AMD Versal SoC:issa.
    • i915 ajuri lisätty Uusien grafiikkasuorittimien tunnisteet, HDMI-alustusvirheiden käsittelijä on otettu käyttöön, ja GPU-moottoreiden nollauksen luotettavuutta Haswellissa ja vanhemmissa järjestelmissä on parannettu.
    • Jatkui työstää drm-ajuria (Direct Rendering Manager) Xe GPU:lle, joka perustuu Intel Xe -arkkitehtuuriin, jota käytetään Intel Arc -perheen näytönohjaimissa ja integroidussa grafiikassa Tiger Lake -prosessoreista alkaen.
    • Nouveau-ohjain tukee nyt GSP-RM-lokipuskurien siirtämistä debugfs-toiminnon kautta.
    • AMDGPU-ohjain tukee DRM-paniikkimekanismia, joka näyttää eräänlaisen "kuoleman sinisen näytön", kun kaatuu. Valmistelu jatkui tulevien RDNA9000-arkkitehtuuriin perustuvien Radeon RX 4 -sarjan näytönohjainkorttien tukemiseksi. Päivitetty tuki DCN 3.5:lle, GG 9.5:lle, IH 4.4:lle, PSP 13.x:lle, SMU 13.x:lle, VCN 5.x:lle, JPEG 5.x:lle, GC 12.x:lle, DC FAMS:lle, RAS:lle ja ISP:lle.
    • Lisätty tuki Qualcomm SM6150 (QCS615) -alustalle msm (GPU Qualcomm Adreno) DRM-ohjaimeen.
    • Lisätty tuki SoC MediaTek MT8188:lle GPU Mali-G57:llä panfrost DRM -ohjaimeen.
    • Lisätty tuki Broadcom BCM4 SoC:lle (Raspberry Pi 2712) vc5 DRM -ohjaimelle.
    • vfio-ohjaimessa nvgrace-gpu lisätty tukea NVIDIA Grace Blackwell 200 -sirut.
    • Rakenne mukana Intel THC (Touch Host Controller) -ohjainten ohjain, jota käytetään joidenkin kannettavien tietokoneiden kosketusnäyttöjen ja kosketuslevyjen vuorovaikutukseen. Lisätty tuki Wacom-laitteille, joissa on PCI-liitäntä. lisätty tuki QH Electronics -peliohjaimille.
    • lisätty tukea ARM-levyt, SoC:t ja laitteet: Qualcomm Snapdragon 8 Elite (SM8750), Qualcomm Snapdragon AR2 (SAR2130P), Qualcomm IQ6/IQ8, Snapdragon 425 (MSM8917), Samsung Exynos 9810, Blaize BLZP1600, SAMAas7 V65H ES4, Renesas RZ/G3.0E. Lisätty SoC-tuki SpacemiT K1 perustuu RISC-V-arkkitehtuuriin.
    • ALSA-audioalijärjestelmässä MIDI 2.0:lle laajennettu API rawmidi ja sekvensseri. ASRC (Asynchronous Sample Rate Conversion) -tuki on lisätty API:lle pakkaustoimintojen siirtämiseksi äänikortin puolelle.
    • Lisätty tuki Allwinner suinv F1C100s, Awinc AW88083, Realtek ALC5682I-VE, TAS2781, Focusrite Scarlett 4th Gen 16i16, 18i16 ja 18i20 laitteiden äänijärjestelmille. lisätty tuki SteelSeries Arctis 9 langattomille kuulokkeille.

Lähde: linux.org.ru

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster