Linux 5.17 -ytimen julkaisu

Kahden kuukauden kehitystyön jälkeen Linus Torvalds esitteli Linux-ytimen 5.17:n julkaisun. Merkittävimpiä muutoksia: uusi suorituskyvyn hallintajärjestelmä AMD-prosessoreille, kyky kartoittaa käyttäjätunnuksia rekursiivisesti tiedostojärjestelmissä, tuki kannettaville käännetyille BPF-ohjelmille, pseudosatunnaislukugeneraattorin siirtyminen BLAKE2s-algoritmiin, RTLA-apuohjelma reaaliaikaista suoritusanalyysiä varten, uusi fscache-taustaosa verkkotiedostojärjestelmien välimuistiin tallentamiseen, mahdollisuus liittää nimiä anonyymeihin mmap-toimintoihin.

Uusi versio sisältää 14203 1995 korjausta 37 11366 kehittäjältä, korjaustiedoston koko on 506043 MB (muutokset vaikuttivat 250954 44 tiedostoon, 5.17 16 koodiriviä lisättiin, 15 4 riviä poistettiin). Noin 4 % kaikista XNUMX:ssä tehdyistä muutoksista liittyy laiteajureihin, noin XNUMX % muutoksista liittyy laitteistoarkkitehtuurikohtaiseen koodin päivittämiseen, XNUMX % liittyy verkkopinoon, XNUMX % liittyy tiedostojärjestelmiin ja XNUMX %. liittyvät sisäisiin ytimen alijärjestelmiin.

Tärkeimmät innovaatiot ytimessä 5.17:

  • Levyalijärjestelmä, I/O ja tiedostojärjestelmät
    • Otettu käyttöön asennettujen tiedostojärjestelmien käyttäjätunnusten sisäkkäisen kartoituksen mahdollisuus, jota käytetään vertaamaan tietyn käyttäjän tiedostoja asennetussa vieraassa osiossa toisen käyttäjän kanssa nykyisessä järjestelmässä. Lisätty ominaisuus mahdollistaa kartoituksen käytön rekursiivisesti tiedostojärjestelmien päällä, joissa kartoitus on jo käytössä.
    • Fscache-alijärjestelmä, jota käytetään verkkotiedostojärjestelmien kautta siirrettyjen tietojen välimuistin järjestämiseen paikallisessa tiedostojärjestelmässä, on kirjoitettu kokonaan uudelleen. Uudelle toteutukselle on tunnusomaista koodin merkittävä yksinkertaistaminen ja monimutkaisten kohteiden tilojen suunnittelu- ja seurantatoimintojen korvaaminen yksinkertaisemmilla mekanismeilla. Tuki uudelle fscachelle on toteutettu CIFS-tiedostojärjestelmässä.
    • Fanotify FS:n tapahtumaseurantaalijärjestelmä toteuttaa uuden tapahtumatyypin FAN_RENAME, jonka avulla voit välittömästi siepata tiedostojen tai hakemistojen uudelleennimeämisen (aiemmin uudelleennimeämisen käsittelyyn käytettiin kahta erillistä tapahtumaa FAN_MOVED_FROM ja FAN_MOVED_TO).
    • Btrfs-tiedostojärjestelmä on optimoinut loki- ja fsync-toiminnot suuria hakemistoja varten, mikä on toteutettu kopioimalla vain indeksiavaimet ja vähentämällä lokiin kirjattujen metatietojen määrää. Tuki vapaan tilan tietueiden indeksoinnille ja hakuun on tarjottu, mikä on vähentänyt viivettä noin 30 % ja lyhentänyt hakuaikaa. Saa keskeyttää eheytystoiminnot. Mahdollisuus lisätä laitteita asemien välisen tasapainotuksen yhteydessä on poistettu käytöstä, ts. kun liität tiedostojärjestelmän skip_balance-vaihtoehdolla.
    • Ceph-tiedostojärjestelmän asentamiseen on ehdotettu uutta syntaksia, joka ratkaisee olemassa olevat IP-osoitteisiin sitoutumiseen liittyvät ongelmat. IP-osoitteiden lisäksi voit nyt käyttää klusterin tunnistetta (FSID) palvelimen tunnistamiseen: mount -t ceph [sähköposti suojattu]_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Ext4-tiedostojärjestelmä on siirtynyt uuteen asennussovellusliittymään, joka erottaa liitosvaihtoehtojen jäsennys- ja superblock-määritysvaiheet. Olemme lopettaneet tuen lazytime- ja nolazytime-liitosvaihtoehdoille, jotka lisättiin väliaikaisena muutoksena helpottamaan util-linuxin siirtymistä MS_LAZYTIME-lipun käyttöön. Lisätty tuki tarrojen asettamiseen ja lukemiseen FS:ssä (ioctl FS_IOC_GETFSLABEL ja FS_IOC_SETFSLABEL).
    • NFSv4 lisäsi tuen työskentelyyn tiedostojärjestelmissä, joissa kirjainkokoa ei erotella tiedostojen ja hakemistojen nimissä. NFSv4.1+ lisää tuen koottujen istuntojen (runko) määrittelyyn.
  • Muisti- ja järjestelmäpalvelut
    • Lisätty amd-pstate-ohjain, joka tarjoaa dynaamisen taajuuden ohjauksen optimaalista suorituskykyä varten. Ohjain tukee AMD-suorittimia ja APU:ita alkaen Zen 2 -sukupolvesta, joka on kehitetty yhdessä Valven kanssa ja jonka tavoitteena on parantaa energianhallinnan tehokkuutta. Mukautuvaan taajuuden muutoksiin käytetään CPPC-mekanismia (Collaborative Processor Performance Control), jonka avulla voit muuttaa indikaattoreita tarkemmin (ei rajoitettu kolmeen suorituskykytasoon) ja reagoida nopeammin tilanmuutoksiin kuin aiemmin käytetty ACPI-pohjainen P-tila. ajurit (CPUFreq).
    • eBPF-alijärjestelmä tarjoaa bpf_loop()-käsittelijän, joka tarjoaa vaihtoehtoisen tavan järjestää silmukoita eBPF-ohjelmissa nopeammin ja helpommin todentajan suorittamaa varmentamista varten.
    • Ydintasolla on toteutettu CO-RE (Compile Once - Run Everywhere) -mekanismi, jonka avulla voit kääntää eBPF-ohjelmien koodin vain kerran ja käyttää erityistä yleistä latausohjelmaa, joka mukauttaa ladatun ohjelman nykyisiin ydin- ja BTF-tyyppeihin. (BPF-tyyppinen muoto).
    • Yksityisen anonyymin (mallocin kautta allokoidun) muistin alueille on mahdollista antaa nimiä, mikä voi yksinkertaistaa virheenkorjausta ja muistinkulutuksen optimointia sovelluksissa. Nimet määritetään prctl:n kautta PR_SET_VMA_ANON_NAME-lipulla, ja ne näkyvät /proc/pid/maps- ja /proc/pid/smaps-muodossa muodossa "[anon: ]".
    • Tehtävien ajoitus seuraa ja näyttää tiedostossa /proc/PID/sched prosessien pakko-idle-tilassa käyttämän ajan, jota käytetään esimerkiksi vähentämään kuormitusta prosessorin ylikuumeneessa.
    • Lisätty gpio-sim-moduuli, joka on suunniteltu simuloimaan GPIO-siruja testausta varten.
    • Lisätty "latency"-alikomento "perf ftrace" -komentoon luodakseen histogrammeja latenssitiedoilla.
    • Lisätty joukko "RTLA"-apuohjelmia työn reaaliaikaiseen analysointiin. Se sisältää apuohjelmia, kuten osnoise (määrittää käyttöjärjestelmän vaikutuksen tehtävän suorittamiseen) ja timerlat (muuttaa ajastimeen liittyviä viiveitä).
    • Sivufolioiden konseptin toteutukseen on integroitu toinen sarja korjaustiedostoja, jotka muistuttavat yhdistelmäsivuja, mutta joissa on parannettu semantiikka ja selkeämpi työn organisointi. Tomesin avulla voit nopeuttaa muistinhallintaa joissakin ytimen alijärjestelmissä. Ehdotetut korjaustiedostot saattoivat päätökseen sivun välimuistin muuntamisen tomes-käyttöön ja lisäsivät alustavan tuen tomeille XFS-tiedostojärjestelmään.
    • Lisätty "make mod2noconfig" -koontitila, joka luo kokoonpanon, joka kerää kaikki käytöstä poistetut alijärjestelmät ydinmoduulien muodossa.
    • Vaatimuksia LLVM/Clang-versiolle, jota voidaan käyttää ytimen rakentamiseen, on nostettu. Build vaatii nyt vähintään LLVM 11 -julkaisun.
  • Virtualisointi ja turvallisuus
    • Pseudosatunnaislukugeneraattorin RDRAND päivitetty toteutus, joka vastaa /dev/random- ja /dev/urandom-laitteiden toiminnasta, on huomionarvoinen siirtymisestä BLAKE2:n hash-funktion käyttöön SHA1:n sijaan entropiasekoitusoperaatioissa. Muutos paransi näennäissatunnaislukugeneraattorin turvallisuutta poistamalla ongelmallisen SHA1-algoritmin ja eliminoimalla RNG-alustusvektorin päällekirjoituksen. Koska BLAKE2s-algoritmi on suorituskyvyltään parempi kuin SHA1, sen käytöllä oli myös positiivinen vaikutus suorituskykyyn.
    • Lisätty suoja prosessorien haavoittuvuuksia vastaan, jotka johtuvat käskyjen spekulatiivisesta suorittamisesta ehdottomien eteenpäin hyppytoimintojen jälkeen. Ongelma johtuu käskyjen ennakoivasta käsittelystä välittömästi muistissa olevan haarakäskyn jälkeen (SLS, Straight Line Speculation). Suojauksen ottaminen käyttöön edellyttää rakentamista tällä hetkellä testattavan GCC 12:n kanssa.
    • Lisätty viitelaskennan seurantamekanismi (uudelleenlaskenta, viitelaskenta), jonka tarkoituksena on vähentää viitelaskennassa esiintyvien virheiden määrää, jotka johtavat muistiin pääsyyn sen vapauttamisen jälkeen. Mekanismi on tällä hetkellä rajoitettu verkkoalijärjestelmään, mutta tulevaisuudessa sitä voidaan mukauttaa muihin ytimen osiin.
    • Prosessimuistisivutaulukon uusien merkintöjen laajennetut tarkistukset mahdollistavat tietyntyyppisten vaurioiden havaitsemisen ja järjestelmän pysäyttämisen, mikä estää hyökkäykset varhaisessa vaiheessa.
    • Lisätty mahdollisuus purkaa ydinmoduulit suoraan itse ytimen toimesta, ei käyttäjätilassa olevan käsittelijän toimesta, mikä mahdollistaa LoadPin LSM -moduulin käytön sen varmistamiseksi, että ydinmoduulit ladataan muistiin vahvistetusta tallennuslaitteesta.
    • Mukana kokoonpano "-Wcast-function-type"-lipulla, joka mahdollistaa varoitukset funktioosoittimien lähettämisestä yhteensopimattomaan tyyppiin.
    • Lisätty virtuaalinen isäntäohjain pvUSB Xen-hypervisorille, joka tarjoaa pääsyn vierasjärjestelmiin välitettyihin USB-laitteisiin (antaa vierasjärjestelmien pääsyn vierasjärjestelmälle määritettyihin fyysisiin USB-laitteisiin).
    • Lisätty moduuli, jonka avulla voit olla vuorovaikutuksessa Wi-Fin kautta IME (Intel Management Engine) -alijärjestelmän kanssa, joka tulee useimmissa nykyaikaisissa Intel-prosessoreilla varustetuissa emolevyissä ja on toteutettu erillisenä mikroprosessorina, joka toimii CPU:sta riippumatta.
    • ARM64-arkkitehtuurille on otettu käyttöön tuki KCSAN (Kernel Concurrency Sanitizer) -virheenkorjaustyökalulle, joka on suunniteltu havaitsemaan dynaamisesti kilpailuolosuhteet ytimessä.
    • 32-bittisiin ARM-järjestelmiin on lisätty mahdollisuus käyttää KFENCE-mekanismia virheiden havaitsemiseen muistia käytettäessä.
    • KVM-hypervisor lisää tuen AMX (Advanced Matrix Extensions) -käskyille, jotka on toteutettu tulevissa Intel Xeon Scalable -palvelinprosessoreissa.
  • Verkkoalijärjestelmä
    • Lisätty tuki liikenteenhallintaan liittyvien toimintojen purkamiseen verkkolaitteiden puolelle.
    • Lisätty mahdollisuus käyttää MCTP:tä (Management Component Transport Protocol) sarjalaitteiden yli. MCTP:tä voidaan käyttää kommunikointiin hallintaohjainten ja niihin liittyvien laitteiden (isäntäprosessorit, oheislaitteet jne.) välillä.
    • TCP-pinoa on optimoitu esimerkiksi recvmsg-puheluiden suorituskyvyn parantamiseksi, socket-puskurien viivästetty vapautuminen on toteutettu.
    • CAP_NET_RAW-valtuutustasolla SO_PRIORITY- ja SO_MARK-tilojen asettaminen setsockopt-toiminnolla on sallittua.
    • IPv4:ssä raaka-socketit voidaan sitoa muihin kuin paikallisiin IP-osoitteisiin käyttämällä IP_FREEBIND- ja IP_TRANSPARENT-asetuksia.
    • Lisätty sysctl arp_missed_max määrittämään virheiden kynnysmäärä ARP-monitorin tarkistuksen aikana, minkä jälkeen verkkoliitäntä asetetaan pois käytöstä.
    • Tarjosi mahdollisuuden määrittää erilliset sysctl min_pmtu ja mtu_expires -arvot verkon nimiavaruille.
    • Lisätty mahdollisuus asettaa ja määrittää puskureiden koko saapuville ja lähteville paketeille ethtool API:lle.
    • Netfilter on lisännyt tuen transit pppoe -liikenteen suodattamiseen verkkosillassa.
    • Ksmbd-moduuli, joka toteuttaa SMB3-protokollaa käyttävän tiedostopalvelimen, on lisännyt tuen avainten vaihtoon, ottanut käyttöön verkkoportin 445 smbdirectille ja lisännyt tuen "smb2 max credit" -parametrille.
  • Оборудование
    • Drm (Direct Rendering Manager) -alijärjestelmään ja i915-ajuriin on lisätty tuki luottamuksellisten tietojen näyttämiseen tarkoitetuille näytöille, esimerkiksi joissakin kannettavissa tietokoneissa on näytöt, joissa on sisäänrakennettu luottamuksellinen katselutila, mikä vaikeuttaa katselemista ulkopuolelta. . Lisättyjen muutosten avulla voit yhdistää erikoistuneita ohjaimia tällaisia ​​näyttöjä varten ja hallita luottamuksellisia selaustiloja asettamalla ominaisuuksia tavallisissa KMS-ajureissa.
    • Amdgpu-ohjain sisältää tuen STB (Smart Trace Buffer) -virheenkorjausteknologialle kaikille sitä tukeville AMD GPU:ille. STB helpottaa vikojen analysointia ja ongelmien syyn tunnistamista tallentamalla erityiseen puskuriin tiedot ennen viimeistä vikaa suoritetuista toiminnoista.
    • I915-ajuri lisää tuen Intel Raptor Lake S -siruille ja mahdollistaa oletuksena tuen Intel Alder Lake P -sirujen grafiikkaalijärjestelmälle. Näytön taustavaloa on mahdollista ohjata VESA DPCD -liitännän kautta.
    • Tuki laitteiston vierityksen kiihdytykseen konsolissa on palautettu fbcon/fbdev-ajureissa.
    • Jatkuva muutosten integrointi tukemaan Apple M1 -siruja. Otettu käyttöön kyky käyttää simpledrm-ohjainta järjestelmissä, joissa on Apple M1 -siru, jotta laiteohjelmiston tarjoaman kehyspuskurin kautta voidaan tulostaa.
    • Lisätty tuki ARM SoС:lle, laitteille ja korteille Snapdragon 7c, 845 ja 888 (Sony Xperia XZ2 / XZ2C / XZ3, Xperia 1 III / 5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek (MT8183) Acer Chromebook 314), Mediatek MT7986a/b (käytetään Wi-Fi-reitittimissä), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEArXP320i, NMX8 ULP8. , Aspeed AST2500/AST2600, Engicam i.Core STM32MP1, Allwinner Tanix TX6, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t6000/t6001 MacBook Pro 14/16.
    • Lisätty tuki ARM Cortex-M55- ja Cortex-M33-prosessoreille.
    • Lisätty tuki CPU MIPS:iin perustuville laitteille: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Lisätty tuki StarFive JH7100 SoC:lle, joka perustuu RISC-V-arkkitehtuuriin.
    • Lisätty lenovo-yogabook-wmi-ohjain ohjaamaan näppäimistön taustavaloa ja käyttämään Lenovo Yoga Bookin eri antureita.
    • Lisätty asus_wmi_sensors-ajuri, jolla pääset käyttämään AMD Ryzen -prosessoreihin perustuvissa Asus X370-, X470-, B450-, B550- ja X399-emolevyissä käytettyjä antureita.
    • Lisätty x86-android-tablet-ohjain x86-pohjaisille taulutietokoneille, jotka toimitetaan Android-alustan mukana.
    • Lisätty tuki TrekStor SurfTab duo W1 -kosketusnäytöille ja elektroninen kynä Chuwi Hi10 Plus- ja Pro -tableteille.
    • SoC Tegra 20/30:n ajurit ovat lisänneet virran- ja jännitteenhallinnan tuen. Mahdollistaa käynnistyksen vanhemmissa 32-bittisissä Tegra SoC -laitteissa, kuten ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 ja Pad TF300TG.
    • Lisätty ajurit Siemensin teollisuustietokoneisiin.
    • Lisätty tuki Sony Tulip Truly NT35521:lle, Vivax TPC-9150:lle, Innolux G070Y2-T02:lle, BOE BF060Y8M-AJ0:lle, JDI R63452:lle, Novatek NT35950:lle, Wanchanglong W552946ABA:lle ja Team Sourcen LCD-näytöille043015STXNUMX TCMXNUMXXXNUMX TCMXNUMX.
    • Lisätty tuki äänijärjestelmille ja koodekkeille AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel-järjestelmät NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320x3ADC. Tegra194 HD-audion ongelmat on ratkaistu. Lisätty HDA-tuki CS35L41-koodekeille. Parannettu tuki äänijärjestelmille Lenovon ja HP:n kannettaville tietokoneille sekä Gigabyte-emolevyille.

Lähde: opennet.ru

Lisää kommentti