Linux 6.0 -ytimen julkaisu

Kahden kuukauden kehitystyön jälkeen Linus Torvalds esitteli Linux 6.0 -ytimen julkaisun. Merkittävä muutos versionumerossa on esteettisistä syistä ja se on muodollinen askel lievittää sarjaan kertyneiden lukuisten ongelmien aiheuttamaa epämukavuutta (Linus vitsaili, että syy haaranumeron vaihtamiseen oli todennäköisemmin sormien loppuminen ja varpaat versionumeroiden laskemiseen). Merkittävimpiä muutoksia ovat: tuki asynkroniselle puskuroidulle kirjoittamiselle XFS:ssä, ublk-lohkoohjain, tehtävän ajastimen optimointi, mekanismi ytimen oikean toiminnan tarkistamiseksi, tuki ARIA-lohkosalaukselle.

Tärkeimmät innovaatiot ytimessä 6.0:

  • Levyalijärjestelmä, I/O ja tiedostojärjestelmät
    • XFS-tiedostojärjestelmä on lisännyt tuen asynkronisille puskuroiduille kirjoituksille io_uring-mekanismilla. Suorituskykytestit, jotka suoritettiin käyttämällä fio-työkaluja (1 säie, 4kB lohkokoko, 600 sekuntia, peräkkäinen kirjoitus), osoittavat, että syöttö/tulostusoperaatiot sekunnissa (IOPS) lisääntyivät 77 209:sta 314 854:een, tiedonsiirtonopeus 9600 MB/s:sta 120 MB/s:iin, ja latenssin pudotus 80ns:sta XNUMXns:iin (XNUMX kertaa).
    • Btrfs-tiedostojärjestelmä toteuttaa toisen version protokollasta "send"-komennolle, joka toteuttaa tuen lisämetatiedoille, tiedon lähettämiselle suurempina lohkoina (yli 64K) ja laajuuksien lähettämisen pakatussa muodossa. Suoralukutoimintojen suorituskyky on kasvanut merkittävästi (jopa 3 kertaa) jopa 256 sektorin samanaikaisen lukemisen ansiosta. Vähentynyt lukituskiista ja nopeuttanut metatietojen tarkistusta vähentämällä varattuja metatietoja viivästetyille elementeille.
    • Uudet ioctl-toiminnot EXT4_IOC_GETFSUUID ja EXT4_IC_SETFSUUID on lisätty ext4-tiedostojärjestelmään superlohkoon tallennetun UUID:n hakemiseksi tai asettamiseksi.
    • F2FS-tiedostojärjestelmä tarjoaa vähän muistia kuluttavan tilan, joka optimoi toiminnan laitteissa, joissa on pieni määrä RAM-muistia, ja mahdollistaa muistin kulutuksen vähentämisen suorituskyvyn heikkenemisen kustannuksella.
    • Lisätty tuki NVMe-aseman todennukselle.
    • NFSv4-palvelin toteuttaa aktiivisten asiakkaiden lukumäärän rajoituksen, joka on asetettu 1024:ksi kelvolliseksi asiakkaaksi jokaista gigatavua RAM-muistia kohden.
    • CIFS-asiakastoteutus on parantanut suorituskykyä monikanavaisessa lähetystilassa.
    • Fanotify FS:n tapahtumaseurantaalijärjestelmään on lisätty uusi lippu FAN_MARK_IGNORE tiettyjen tapahtumien huomioimiseksi.
    • Overlayfs FS:ssä on oikea tuki POSIX-yhteensopiville kulunvalvontaluetteloille, kun se on asennettu FS:n päälle, jossa on käyttäjätunnuskartoitus.
    • Lisätty ublk-lohkoohjain, joka siirtää tietyn logiikan taustaprosessin puolelle käyttäjätilassa ja käyttää io_uring-alijärjestelmää.
  • Muisti- ja järjestelmäpalvelut
    • DAMON (Data Access MONitor) -alijärjestelmään on lisätty uusia ominaisuuksia, jotka mahdollistavat paitsi prosessin pääsyn RAM-muistiin valvomisen käyttäjätilasta, myös vaikuttaa muistin hallintaan. Erityisesti on ehdotettu uutta moduulia "LRU_SORT", joka mahdollistaa LRU (Least Recently Used) -luetteloiden uudelleenryhmittelyn tiettyjen muistisivujen prioriteetin lisäämiseksi.
    • Mahdollisuus luoda uusia muistialueita on toteutettu käyttämällä CXL (Compute Express Link) -väylän ominaisuuksia, joita käytetään järjestämään nopeaa vuorovaikutusta CPU:n ja muistilaitteiden välillä. CXL:n avulla voit yhdistää ulkoisten muistilaitteiden tarjoamia uusia muistialueita ja käyttää niitä lisäfyysisinä osoiteavaruuksina järjestelmän hajasaantimuistin (DDR) tai pysyvän muistin (PMEM) laajentamiseen.
    • Ratkaistu AMD Zen -prosessorien suorituskykyongelmat, jotka aiheutuivat 20 vuotta sitten lisätystä koodista, joka oli lisätty joidenkin piirisarjojen laitteisto-ongelman kiertämiseen (lisättiin WAIT-käsky prosessorin hidastamiseksi, jotta piirisarja ehti siirtyä lepotilaan). Muutos johti heikentyneeseen suorituskykyyn työkuormilla, jotka vaihtelevat usein lepotilan ja varatun tilan välillä. Esimerkiksi, kun kiertotapa oli poistettu käytöstä, keskimääräiset tbench-testin pisteet nousivat 32191 Mt/s:sta 33805 Mt/s:iin.
    • Tehtävien ajoittimesta on poistettu heuristinen koodi, mikä varmistaa prosessien siirtymisen vähiten kuormitettuihin prosessoreihin ottaen huomioon ennustetun energiankulutuksen lisäyksen. Kehittäjät päättelivät, että heuristiikka ei ollut tarpeeksi hyödyllinen ja että se oli helpompi poistaa ja siirtää prosesseja ilman lisäarviointia aina, kun tällainen siirto voisi mahdollisesti johtaa pienempään virrankulutukseen (esimerkiksi kun kohdesuoritin on alhaisemmalla tehotasolla). Heuristiikan poistaminen käytöstä johti virrankulutuksen laskuun intensiivisiä tehtäviä suoritettaessa, esimerkiksi videodekoodaustestissä virrankulutus laski 5.6 %.
    • Tehtävien jakautuminen suoritinytimien kesken suurissa järjestelmissä on optimoitu, mikä on parantanut suorituskykyä tietyntyyppisissä työkuormissa.
    • Asynkroninen io_uring-I/O-liitäntä tarjoaa uuden lipun, IORING_RECV_MULTISHOT, jonka avulla voit käyttää multi-shot-tilaa recv()-järjestelmäkutsulla useiden lukutoimintojen suorittamiseen samasta verkkopistorasiasta kerralla. io_uring tukee myös verkkosiirtoa ilman välipuskurointia (nollakopiointi).
    • Otettiin käyttöön mahdollisuus laittaa uprobeen liitetyt BPF-ohjelmat lepotilaan. BPF lisää myös uuden iteraattorin ksym ytimen symbolitaulukoiden kanssa työskentelemiseen.
    • Sysfs:n vanhentunut "efivars"-liitäntä, joka on tarkoitettu UEFI-käynnistysmuuttujien käyttöön, on poistettu (efivarfs-virtuaalista FS:ää käytetään nyt yleisesti EFI-tietojen käsittelyyn).
    • Perf-apuohjelmassa on uusia raportteja lukitusristiriitojen ja prosessorin ytimen komponenttien suorittamiseen käyttämän ajan analysoimiseksi.
    • Asetus CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 on poistettu, mikä mahdollisti ytimen rakentamisen "-O3"-optimointitilassa. On huomattava, että optimointitilojen kokeita voidaan suorittaa ohittamalla liput kokoonpanon aikana ("make KCFLAGS=-O3"), ja asetuksen lisääminen Kconfigiin vaatii toistettavan suorituskyvyn profiloinnin, mikä osoittaa, että "-O3"-tilassa käytetty silmukan purkaminen antaa etu verrattuna "-O2"-optimointitasoon.
    • Debugfs-rajapinta on lisätty hankkimaan tietoa yksittäisten "muistikutistajien" toiminnasta (käsittelijät, joita kutsutaan, kun muisti ei ole tarpeeksi ja ytimen tietorakenteet pakkausten muistinkulutuksen vähentämiseksi).
    • OpenRISC- ja LoongArch-arkkitehtuureissa PCI-väylän tuki on toteutettu.
    • RISC-V-arkkitehtuurissa "Zicbom"-laajennus on toteutettu hallitsemaan laitteita, joissa on DMA, joka ei ole välimuistin koherentti.
  • Virtualisointi ja turvallisuus
    • RV (Runtime Verification) -varmennusmekanismi on lisätty varmistamaan oikean toiminnan erittäin luotettavissa järjestelmissä, jotka takaavat, ettei vika ole. Varmentaminen suoritetaan ajon aikana liittämällä käsittelijät jäljityspisteisiin, jotka tarkistavat suorituksen todellisen edistymisen koneen ennalta määrättyyn referenssideterministiseen malliin, joka määrittää järjestelmän odotetun toiminnan. Varmentaminen mallilla ajonaikaisesti on asetettu kevyemmäksi ja helpompi toteuttaa menetelmäksi kriittisten järjestelmien suorituksen oikeellisuuden varmentamiseen, joka täydentää klassisia luotettavuuden varmennusmenetelmiä. RV:n etujen joukossa on kyky tarjota tiukka varmennus ilman erillistä koko järjestelmän toteutusta mallinnuskielellä sekä joustava reagointi odottamattomiin tapahtumiin.
    • Integroidut ydinkomponentit enklaavien hallintaan, jotka perustuvat Intel SGX2 (Software Guard eXtensions) -tekniikkaan, jonka avulla sovellukset voivat suorittaa koodia eristetyillä salatuilla muistialueilla, joihin muulla järjestelmällä on rajoitettu pääsy. Intel SGX2 -tekniikkaa tuetaan Intel Ice Lake- ja Gemini Lake -siruissa, ja se eroaa Intel SGX1:stä lisäohjeissa erillisalueiden dynaamiseen muistinhallintaan.
    • x86-arkkitehtuurissa on toteutettu mahdollisuus siirtää siemen pseudosatunnaislukugeneraattorille käynnistyslataimen asetusten kautta.
    • SafeSetID LSM -moduuli pystyy nyt hallitsemaan setgroups()-kutsun kautta tehtyjä muutoksia. SafeSetID:n avulla järjestelmäpalvelut voivat hallita käyttäjiä turvallisesti ilman lisäoikeuksia (CAP_SETUID) ja hankkimatta pääkäyttäjän oikeuksia.
    • Lisätty tuki ARIA-lohkosalaukselle.
    • BPF-pohjainen suojauksenhallintamoduuli mahdollistaa käsittelijöiden liittämisen yksittäisiin prosesseihin ja prosessiryhmiin (cgroups).
    • Mekanismi, jossa on vahtikoiratoteutus, on lisätty vierailevien järjestelmien jumiutumisen havaitsemiseksi vCPU-toiminnan seurantaan.
  • Verkkoalijärjestelmä
    • Käsittelijät SYN-evästeiden luomiseksi ja tarkistamiseksi on lisätty BPF-alijärjestelmään. Lisäksi on lisätty joukko toimintoja (kfunc), joilla pääset käsiksi ja muuttamaan yhteyksien tilaa.
    • Langattomaan pinoon on lisätty tuki MLO (Multi-Link Operation) -mekanismille, joka on määritelty WiFi 7 -spesifikaatiossa ja jonka avulla laitteet voivat samanaikaisesti vastaanottaa ja lähettää dataa eri taajuuskaistoja ja kanavia käyttäen, esimerkiksi muodostaakseen samanaikaisesti useita viestintäkanavia tukiasema asiakaslaitteeseen.
    • Ytimeen sisäänrakennetun TLS-protokollan suorituskykyä on parannettu.
    • Lisätty ytimen komentorivivaihtoehto "hostname=", jotta isäntänimi voidaan asettaa käynnistysprosessin varhaisessa vaiheessa ennen käyttäjätilan komponenttien käynnistämistä.
  • Оборудование
    • I915 (Intel) -ohjain tukee Intel Arc (DG2/Alchemist) A750- ja A770-näytönohjainkortteja. Intel Ponte Vecchio (Xe-HPC) ja Meteor Lake GPU:iden tuen alustavaa käyttöönottoa on ehdotettu. Työ Intel Raptor Lake -alustan tukemiseksi jatkuu.
    • Amdgpu-ohjain tukee edelleen AMD RDNA3 (RX 7000) ja CDNA (Instinct) -alustoja.
    • Nouveau-ohjain on muokannut NVIDIA nv50 GPU -näyttömoottoreiden tukikoodia.
    • Lisätty uusi logicvc DRM -ohjain LogiCVC-näytöille.
    • V3d-ohjain (Broadcom Video Core GPU:lle) tukee Raspberry Pi 4 -kortteja.
    • Lisätty tuki Qualcomm Adreno 619 GPU:lle msm-ohjaimeen.
    • Lisätty tuki ARM Mali Valhall GPU:lle Panfrost-ohjaimeen.
    • Lisätty alustava tuki Qualcomm Snapdragon 8cx Gen3 -prosessoreille, joita käytetään Lenovo ThinkPad X13s -kannettavissa tietokoneissa.
    • Lisätty ääniohjaimet AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake ja Mediatek MT8186 alustoille.
    • Lisätty tuki Intel Habana Gaudi 2 -koneoppimiskiihdyttimille.
    • Lisätty tuki seuraaville: ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3.

Samaan aikaan Latinalaisen Amerikan Free Software Foundation muodosti version täysin ilmaisesta ytimestä 6.0 - Linux-libre 6.0-gnu, joka on poistettu laiteohjelmistoelementeistä ja ohjaimista, jotka sisältävät ei-vapaita komponentteja tai koodin osia, joiden laajuus on valmistajan rajoittama. Uusi julkaisu poistaa käytöstä blob-osien käytön CS35L41 HD-audio-ohjaimessa ja UCSI-ohjaimessa STM32G0-mikro-ohjaimissa. Qualcomm- ja MediaTek-sirujen DTS-tiedostot on puhdistettu. Blobsien poistaminen käytöstä MediaTek MT76 -ohjaimessa on muokattu. Päivitetty blob-puhdistuskoodi AMDGPU-, Adreno-, Tegra VIC-, Netronome NFP- ja Habanalabs Gaudi2-ajureissa ja -alijärjestelmissä. Keskeytti ytimestä poistetun VXGE-ohjaimen puhdistamisen.

Lähde: opennet.ru

Lisää kommentti