Linux 5.12 -ytimen julkaisu

Kahden kuukauden kehitystyön jälkeen Linus Torvalds esitteli Linux-ytimen 5.12:n julkaisun. Merkittävimpiä muutoksia ovat: tuki vyöhyketyille lohkolaitteille Btrfs:ssä, mahdollisuus kartoittaa tiedostojärjestelmän käyttäjätunnuksia, vanhojen ARM-arkkitehtuurien puhdistaminen, "innokas" kirjoitustila NFS:ssä, LOOKUP_CACHED-mekanismi tiedostopolkujen määrittämiseen välimuistista , tuki atomikäskyille BPF:ssä, virheenkorjausjärjestelmä KFENCE muistin kanssa työskentelyn virheiden tunnistamiseen, NAPI-kyselytila, joka toimii erillisessä ytimen säikeessä verkkopinossa, ACRN-hypervisor, mahdollisuus muuttaa ennaltaehkäisevää mallia lennossa tehtävässä ajastin ja tuki LTO-optimoinneille Clangissa luotaessa.

Uusi versio sisältää 14170 (edellisessä versiossa 15480) korjausta 1946 (1991) kehittäjiltä, ​​korjaustiedoston koko on 38 MB (muutokset vaikuttivat 12102 (12090) tiedostoon, 538599 (868025) koodiriviä lisättiin, 333377 (261456) rivit poistettiin). Noin 43 % kaikista 5.12:ssa tehdyistä muutoksista liittyy laiteajureihin, noin 17 % muutoksista liittyy laitteistoarkkitehtuurikohtaiseen koodin päivittämiseen, 12 % liittyy verkkopinoon, 5 % liittyy tiedostojärjestelmiin ja 4 %. liittyvät sisäisiin ytimen alijärjestelmiin.

Tärkeimmät innovaatiot:

  • Levyalijärjestelmä, I/O ja tiedostojärjestelmät
    • Mahdollisuus yhdistää käyttäjätunnuksia liitetyille tiedostojärjestelmille on otettu käyttöön (voit yhdistää yhden käyttäjän tiedostoja liitetyssä vieraassa osiossa toisen käyttäjän kanssa nykyisessä järjestelmässä). Mapping on tuettu FAT-, ext4- ja XFS-tiedostojärjestelmille. Ehdotettu toiminnallisuus helpottaa tiedostojen jakamista eri käyttäjien välillä ja eri tietokoneilla, mukaan lukien kartoitusta käytetään systemd-homed kannettavan kotihakemiston mekanismissa, jolloin käyttäjät voivat siirtää kotihakemistonsa ulkoiseen mediaan ja käyttää niitä eri tietokoneilla, kartoittaminen käyttäjätunnukset, jotka eivät täsmää. Toinen hyödyllinen sovellus on järjestää jaetun pääsyn tarjoaminen tiedostoihin ulkoisesta isännästä muuttamatta tiedostojärjestelmän omistajien tietoja.
    • LOOKUP_CACHED korjaustiedostot on otettu ytimeen, jolloin toiminnot voivat määrittää tiedostopolun käyttäjätilasta ilman estoa, vain välimuistissa olevien tietojen perusteella. LOOKUP_CACHED-tila aktivoidaan openat2()-kutsussa ohittamalla RESOLVE_CACHED-lipun, jossa tiedot toimitetaan vain välimuistista, ja jos polun määritys edellyttää pääsyä asemaan, palautetaan EAGAIN-virhe.
    • Btrfs-tiedostojärjestelmä on lisännyt alustavan tuen vyöhykkeisiin lohkotuille laitteille (kiintolevyillä olevat laitteet tai NVMe SSD:t, joiden tallennustila on jaettu vyöhykkeisiin, jotka muodostavat lohko- tai sektoriryhmiä, joihin vain peräkkäinen tietojen lisääminen on sallittua, koko lohkoryhmän päivittäminen). Vain luku -tilassa tuki lohkoille, joissa on metadataa ja sivua (alisivua) pienempiä tietoja.
    • F2FS-tiedostojärjestelmään on lisätty mahdollisuus valita algoritmi ja pakkaustaso. Lisätty tuki korkean tason pakkaukselle LZ4-algoritmille. Otettiin käyttöön checkpoint_merge-asennusvaihtoehto.
    • Uusi ioctl-komento FS_IOC_READ_VERITY_METADATA on otettu käyttöön metatietojen lukemiseksi fs-verityllä suojatuista tiedostoista.
    • NFS-asiakas toteuttaa "innokkaan" kirjoitustilan (writes=eager), kun se on käytössä, tiedostoon kirjoitustoiminnot siirretään välittömästi palvelimelle sivuvälimuistin ohittamiseen. Tämän tilan avulla voit vähentää muistin kulutusta, tarjoaa välittömän tiedon vastaanottamisen tiedostojärjestelmän vapaan tilan loppumisesta ja joissakin tilanteissa mahdollistaa paremman suorituskyvyn.
    • CIFS:ään (SMB) on lisätty uusia asennusvaihtoehtoja: acregmax hallitsee tiedostojen välimuistia ja acdirmax ohjaa hakemiston metatietojen välimuistia.
    • XFS:ssä on otettu käyttöön monisäikeinen kiintiöiden tarkistustila, fsync-suoritusta on nopeutettu ja growfs-koodi on valmisteltu toteuttamaan tiedostojärjestelmän koon pienentämistoiminto.
  • Muisti- ja järjestelmäpalvelut
    • Lisätty DTMP (Dynamic Thermal Power Management) -alijärjestelmä, jonka avulla voit dynaamisesti säätää eri laitteiden virrankulutusta asetettujen yleisten lämpötilarajojen perusteella.
    • Mahdollisuus rakentaa ydin Clang-kääntäjällä ja optimoinnit linkitysvaiheessa (LTO, Link Time Optimization) on otettu käyttöön. LTO-optimoinnit eroavat ottamalla huomioon kaikkien rakennusprosessiin osallistuvien tiedostojen tilan, kun taas perinteiset optimointitilat optimoivat jokaisen tiedoston erikseen eivätkä ota huomioon muissa tiedostoissa määritettyjä funktioiden kutsumisen ehtoja. Esimerkiksi LTO:lla on mahdollista inline käyttöönottoa muiden tiedostojen funktioille, käyttämätöntä koodia ei sisällytetä suoritettavaan tiedostoon, tyyppitarkistus ja yleinen optimointi suoritetaan projektitasolla kokonaisuutena. LTO-tuki on tällä hetkellä rajoitettu x86- ja ARM64-arkkitehtuureihin.
    • On mahdollista valita ennaltaehkäisytilat (PREEMPT) tehtävien ajoittimessa käynnistysvaiheessa (preempt=none/voluntary/full) tai debugfs-työskentelyn aikana (/debug/sched_debug), jos PREEMPT_DYNAMIC-asetus määritettiin ydintä rakennettaessa. Aikaisemmin ekstruusiotila voitiin asettaa vain kokoonpanoparametrien tasolla. Muutos antaa jakeluille mahdollisuuden toimittaa ytimiä PREEMPT-tilan ollessa käytössä, mikä tarjoaa minimaalisen viiveen pöytäkoneille pienen läpimenorajoituksen kustannuksella, ja tarvittaessa palaa PREEMPT_VOLUNTARY-tilaan (työpöytätietokoneiden välimuoto) tai PREEMPT_NONE-tilaan (tarjoaa maksimaalisen suorituskyvyn palvelimille). .
    • Tuki atomioperaatioille BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG ja BPF_CMPXCHG on lisätty BPF-alijärjestelmään.
    • BPF-ohjelmille annetaan mahdollisuus käyttää pinon tietoja käyttämällä osoittimia, joissa on muuttuvat siirtymät. Jos esimerkiksi aiemmin pystyit käyttämään vain vakioelementtiindeksiä pinon taulukon käyttämiseen, nyt voit käyttää muuttuvaa taulukkoa. BPF-varmentaja suorittaa kulunvalvonnan vain olemassa olevien rajojen sisällä. Tämä ominaisuus on saatavilla vain etuoikeutetuille ohjelmille, koska on olemassa huoli koodin suorittamisen spekulatiivisten haavoittuvuuksien hyödyntämisestä.
    • Lisätty mahdollisuus liittää BPF-ohjelmia paljaisiin jäljityspisteisiin, jotka eivät liity käyttäjätilassa näkyviin jäljitystapahtumiin (tällaisten jäljityspisteiden ABI-säilytystä ei taata).
    • Tuki CXL 2.0 (Compute Express Link) -väylälle on otettu käyttöön, jota käytetään nopean vuorovaikutuksen järjestämiseen CPU:n ja muistilaitteiden välillä (voit käyttää ulkoisia muistilaitteita osana RAM-muistia tai pysyvää muistia, ikään kuin tämä muisti oli kytketty CPU:n tavallisen muistiohjaimen kautta).
    • Lisätty nvmem-ohjain tietojen hakemiseen laiteohjelmiston varaamista muistialueista, jotka eivät ole suoraan Linuxin käytettävissä (esimerkiksi EEPROM-muisti, joka on fyysisesti vain laiteohjelmiston käytettävissä, tai tiedot, jotka ovat käytettävissä vain varhaisessa käynnistysvaiheessa).
    • Tuki "oprofile"-profilointijärjestelmälle, jota ei käytetty laajalti, on poistettu, ja se on korvattu nykyaikaisemmalla perf-mekanismilla.
    • Asynkroninen I/O-liitäntä io_uring tarjoaa integraation c-ryhmiin, jotka ohjaavat muistin käyttöä.
    • RISC-V-arkkitehtuuri tukee NUMA-järjestelmiä sekä kprobes- ja uprobes-mekanismeja.
    • Lisätty mahdollisuus käyttää kcmp()-järjestelmäkutsua riippumatta prosessin tilavedosten toimivuudesta (tarkistuspiste/palautus).
    • EXPORT_UNUSED_SYMBOL()- ja EXPORT_SYMBOL_GPL_FUTURE()-makrot, joita ei ole käytetty käytännössä moneen vuoteen, on poistettu.
  • Virtualisointi ja turvallisuus
    • Lisätty KFence (Kernel Electric Fence) -suojausmekanismi, joka havaitsee virheet muistin kanssa työskenneltäessä, kuten puskurin ylivuoto ja pääsy muistin vapauttamisen jälkeen. Toisin kuin KASAN-virheenkorjausmekanismi, KFence-alijärjestelmälle on ominaista korkea toimintanopeus ja alhainen lisärasi, jonka avulla voit havaita muistivirheet, jotka näkyvät vain toimivissa järjestelmissä tai pitkäaikaisen käytön aikana.
    • Lisätty tuki ACRN-hypervisorille, joka on kirjoitettu silmällä pitäen valmiutta reaaliaikaisiin tehtäviin ja soveltuvuutta käytettäväksi kriittisissä järjestelmissä. ACRN tarjoaa minimaalisen lisärasituksen, takaa alhaisen latenssin ja riittävän vasteen vuorovaikutuksessa laitteiden kanssa. Tukee suoritinresurssien virtualisointia, I/O:ta, verkkoalijärjestelmää, grafiikkaa ja äänitoimintoja. ACRN:llä voidaan ajaa useita eristettyjä virtuaalikoneita elektronisissa ohjausyksiköissä, kojetauluissa, autojen tietojärjestelmissä, kuluttajien IoT-laitteissa ja muussa sulautetussa tekniikassa. ACRN tukee kahden tyyppisiä vierasjärjestelmiä - etuoikeutettuja palvelu-VM:itä, joita käytetään järjestelmäresurssien hallintaan (prosessori, muisti, I/O jne.), ja mukautettuja User VM:itä, jotka voivat käyttää Linux-, Android- ja Windows-jakeluja.
    • IMA (Integrity Measurement Architecture) -alijärjestelmässä, joka ylläpitää hash-tietokantaa tiedostojen ja niihin liittyvien metatietojen eheyden tarkistamiseksi, on nyt mahdollista tarkistaa itse ytimen tietojen eheys esimerkiksi SELinux-sääntöjen muutosten seuraamiseksi. .
    • KVM-hypervisoriin on lisätty mahdollisuus siepata Xen-hyperpuhelut ja välittää ne käyttäjätilassa toimivaan emulaattoriin.
    • Lisätty mahdollisuus käyttää Linuxia Hyper-V-hypervisorin juuriympäristönä. Pääympäristössä on suora pääsy laitteistoon, ja sitä käytetään vierailevien järjestelmien ajamiseen (analogisesti kuin Dom0 Xenissä). Tähän asti Hyper-V (Microsoft Hypervisor) tuki Linuxia vain vierasympäristöissä, mutta itse hypervisoria ohjattiin Windows-pohjaisesta ympäristöstä.
    • Lisätty tuki eMMC-korttien sisäiselle salaukselle, jonka avulla voit käyttää asemaohjaimeen sisäänrakennettuja salausmekanismeja, jotka salaavat ja purkaa I/O-salauksen läpinäkyvästi.
    • Tuki RIPE-MD 128/256/320- ja Tiger 128/160/192 -tiivisteille, joita ei käytetä ytimessä, sekä Salsa20-streamin salaus, joka korvattiin ChaCha20-algoritmilla, on poistettu krypto-alijärjestelmä. Blake2-algoritmi on päivitetty toteuttamaan blake2s.
  • Verkkoalijärjestelmä
    • Lisätty mahdollisuus siirtää verkkolaitteiden NAPI-kyselykäsittelijä erilliseen ytimen säikeeseen, mikä mahdollistaa paremman suorituskyvyn tietyntyyppisissä työkuormissa. Aikaisemmin kyselyt suoritettiin softirq:n yhteydessä, eikä tehtävän ajoitus kattanut sitä, mikä vaikeutti hienorakeisten optimointien suorittamista parhaan suorituskyvyn saavuttamiseksi. Suorittaminen erillisessä ytimen säikeessä mahdollistaa kyselykäsittelijän havainnoinnin käyttäjätilasta, liitettynä yksittäisiin CPU-ytimiin ja huomioimisen tehtävien vaihtamisen ajoituksessa. Uuden tilan käyttöön ottamiseksi sysf:ssä ehdotetaan parametria /sys/class/net//threaded.
    • Integrointi MPTCP:n (MultiPath TCP) ytimeen, TCP-protokollan laajennus TCP-yhteyden toiminnan järjestämiseen ja pakettien toimittamiseen samanaikaisesti useita reittejä pitkin eri verkkoliitäntöjen kautta, jotka liittyvät eri IP-osoitteisiin. Uusi julkaisu lisää mahdollisuuden asettaa prioriteetti tietyille säikeille, mikä mahdollistaa esimerkiksi sellaisten varasäikeiden työn järjestämisen, jotka käynnistyvät vain, jos ensisijaisessa säikeessä on ongelmia.
    • IGMPv3 lisää tuen EHT-mekanismille (Explicit Host Tracking).
    • Netfilterin pakettisuodatusmoottori tarjoaa mahdollisuuden omistaa tiettyjä taulukoita yksinomaisen hallinnan saamiseksi (esimerkiksi taustapalomuuriprosessi voi ottaa tietyt taulukot omistukseensa, estäen ketään muita häiritsemästä niitä).
  • Оборудование
    • Puhdistimme vanhentuneet ja huoltamattomat ARM-alustat. Koodi efm32-, picoxcell-, prima2-, tango-, u300-, zx- ja c6x-alustoille sekä niihin liittyville ajureille on poistettu.
    • Amdgpu-ohjain tarjoaa mahdollisuuden ylikellottaa (OverDrive) -kortteja, jotka perustuvat Sienna Cichlid -grafiikkasuorittimeen (Navi 22, Radeon RX 6xxx). Lisätty tuki FP16 pikselimuodolle DCE:lle (näytönohjainmoottorille) 8.–11. sukupolvesta. GPU Navy Flounderin (Navi 21) ja APU Van Goghin GPU:n nollausmahdollisuus on otettu käyttöön.
    • Intel-näytönohjainkorttien i915-ohjain ottaa käyttöön i915.mitigations-parametrin eristys- ja suojausmekanismien poistamiseksi käytöstä suorituskyvyn parantamiseksi. Tiger Lakesta alkaviin pelimerkkeihin sisältyy tuki VRR (Variable Rate Refresh) -mekanismille, jonka avulla voit muuttaa näytön virkistystaajuutta mukautuvasti varmistaaksesi tasaisuuden ja aukkojen puuttumisen pelien aikana. Mukana on Intel Clear Color -teknologian tuki värien tarkkuuden parantamiseksi. Lisätty tuki DP-HDMI 2.1:lle. eDP-paneelien taustavalon ohjausmahdollisuus on otettu käyttöön. Gen9-grafiikkasuorittimissa, joissa on LSPCON-tuki (Level Shifter and Protocol Converter), HDR-tuki on käytössä.
    • Nouveau-ohjain lisää alustavan tuen NVIDIA-grafiikkasuorittimille, jotka perustuvat GA100 (Ampere) -arkkitehtuuriin.
    • MSM-ohjain lisää tuen Adreno 508-, 509- ja 512-grafiikkasuorittimille, joita käytetään SDM (Snapdragon) 630-, 636- ja 660-siruissa.
    • Lisätty tuki Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s ja Pioneer DJM-750 äänikorteille. Lisätty tuki Intel Alder Lake PCH-P -äänijärjestelmälle. Tuki ohjelmistosimulaatiolle ääniliittimen kytkemiseksi ja irrottamiseksi on toteutettu virheenkorjauskäsittelijöille käyttäjätilassa.
    • Lisätty tuki Nintendo 64 -pelikonsoleille, jotka valmistettiin vuosina 1996–2003 (aiemmat yritykset portoida Linuxia Nintendo 64:ään ei saatu päätökseen, ja ne luokiteltiin Vaporwareksi). Motiivi uuden portin luomiselle vanhentuneelle alustalle, jota ei ole julkaistu lähes kahteenkymmeneen vuoteen, on halu stimuloida emulaattorien kehitystä ja yksinkertaistaa pelien siirtämistä.
    • Lisätty ajuri Sony PlayStation 5 DualSense -peliohjaimelle.
    • Lisätty tuki ARM-levyille, laitteille ja alustoille: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M Nano, NanoPi M4.
    • Lisätty tuki Purism Librem5 Evergreen-, Xperia Z3+/Z4/Z5-, ASUS Zenfone 2 Laser-, BQ Aquaris X5-, OnePlus6-, OnePlus6T- ja Samsung GT-I9070 -älypuhelimille.
    • Lisätty bcm-vk-ajuri Broadcom VK -kiihdytyskortille (esimerkiksi Valkyrie- ja Viper PCIe -kortit), jota voidaan käyttää äänen, videon ja kuvankäsittelytoimintojen sekä salaukseen liittyvien toimintojen siirtämiseen erilliseen laitteeseen.
    • Lisätty tuki Lenovo IdeaPad -alustalle, joka pystyy ohjaamaan jatkuvaa latausta ja näppäimistön taustavaloa. Mukana on myös tuki ThinkPad-alustan ACPI-profiilille, joka pystyy ohjaamaan virrankulutustiloja. Lisätty ohjain Lenovo ThinkPad X1 Tablet Gen 2 HID-alijärjestelmään.
    • Lisätty ov5647-ohjain, joka tukee kameramoduulia Raspberry Pi:lle.
    • Lisätty tuki RISC-V SoC FU740- ja HiFive Unleashed -korteille. Uusi ohjain Kendryte K210 -sirulle on myös lisätty.

Lähde: opennet.ru

Lisää kommentti