Linux 5.2 -ytimen julkaisu

Kahden kuukauden kehitystyön jälkeen Linus Torvalds toimitettu ytimen julkaisu Linux 5.2. Huomattavimpia muutoksia: Ext4-käyttötila ei välitä kirjainkoosta, erilliset järjestelmäkutsut tiedostojärjestelmän liittämiseksi, GPU Mali 4xx/ 6xx/7xx -ohjaimet, kyky käsitellä sysctl-arvojen muutoksia BPF-ohjelmissa, laitekartoittaja dm-dust moduuli, suojaus MDS-hyökkäyksiltä, ​​tuki Sound Open Firmwarelle DSP:lle, BFQ-suorituskyvyn optimointi, PSI (Pressure Stall Information) -alijärjestelmän tuominen käyttöön Androidissa.

Uusi versio sisältää 15100 1882 korjausta XNUMX XNUMX kehittäjältä,
korjaustiedoston koko - 62 Mt (muutokset vaikuttivat 30889 625094 tiedostoon, 531864 45 koodiriviä lisättiin, 5.2 XNUMX riviä poistettiin). Noin XNUMX % kaikista XNUMX
muutokset liittyvät laiteajureihin, noin 21 % muutoksista on
asenne laitteistoarkkitehtuurikohtaisen koodin päivittämiseen, 12 %
liittyvät verkkopinoon, 3 % tiedostojärjestelmiin ja 3 % sisäisiin
ytimen alijärjestelmät. Kaikista muutoksista 12.4 % valmisteli Intel, 6.3 % Red Hat, 5.4 % Google, 4.0 % AMD, 3.1 % SUSE, 3 % IBM, 2.7 % Huawei, 2.7 % Linaro, 2.2 % ARM , 1.6 % - Oracle.

Pääasiallinen innovaatioita:

  • Levyalijärjestelmä, I/O ja tiedostojärjestelmät
    • Lisätty Ext4:lle tukea toimivat erottelematta kirjainkokoa tiedostonimistä, mikä aktivoituu vain yksittäisten tyhjien hakemistojen suhteen käyttämällä uutta attribuuttia “+F” (EXT4_CASEFOLD_FL). Kun tämä attribuutti on asetettu hakemistoon, kaikki toiminnot tiedostoilla ja alihakemistoilla sisällä suoritetaan ottamatta huomioon merkkien kirjainkokoa, mukaan lukien kirjainkoko jätetään huomiotta haettaessa ja avattaessa tiedostoja (esimerkiksi tiedostot Test.txt, test.txt ja test.TXT tällaisissa hakemistoissa katsotaan samana). Oletusarvoisesti tiedostojärjestelmä käyttää edelleen kirjainkoolla, lukuun ottamatta hakemistoja, joissa on "chattr +F" -attribuutti.
    • Tiedostonimien UTF-8-merkkien käsittelytoiminnot, joita käytetään merkkijonojen vertailu- ja normalisointioperaatioissa, on yhtenäistetty;
    • XFS lisää infrastruktuurin tiedostojärjestelmän kunnon seurantaan ja uuden ioctl:n terveydentilan kyselyyn. Kokeellinen ominaisuus on otettu käyttöön superblock-laskurien tarkistamiseksi verkossa.
    • Lisätty uusi moduuli laitekartoittaja "dm-dust", jonka avulla voit simuloida huonojen lohkojen esiintymistä tietovälineellä tai virheitä levyltä luettaessa. Moduulin avulla voit yksinkertaistaa sovellusten ja erilaisten tallennusjärjestelmien virheenkorjausta ja testausta mahdollisten vikojen varalta;
    • Suoritettu Merkittäviä suorituskyvyn optimointeja BFQ I/O -ajastimelle. Suuren I/O-kuorman olosuhteissa optimoinnit tehty sallia Lyhennä toimintojen, kuten sovellusten käynnistämisen, aikaa jopa 80 %.
    • Lisätty sarja järjestelmäkutsuja tiedostojärjestelmien liittämistä varten: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() и move_mount(). Näillä järjestelmäkutsuilla voit käsitellä erikseen asennuksen eri vaiheita (käsitellä superblock, saada tietoa tiedostojärjestelmästä, liittää, liittää liitoskohtaan), jotka aiemmin suoritettiin käyttämällä yhteistä mount()-järjestelmäkutsua. Erilliset kutsut antavat mahdollisuuden suorittaa monimutkaisempia liitosskenaarioita ja suorittaa erillisiä toimintoja, kuten superblockin uudelleenmäärityksen, asetusten ottaminen käyttöön, liitoskohdan muuttamisen ja siirtymisen eri nimiavaruuteen. Lisäksi erillisen käsittelyn avulla voit määrittää tarkasti virhekoodien tulostuksen syyt ja asettaa useita lähteitä monikerroksisille tiedostojärjestelmille, kuten peittokuvat;
    • Uusi operaatio IORING_OP_SYNC_FILE_RANGE on lisätty asynkronisen I/O:n io_uring-liittymään, joka suorittaa järjestelmäkutsua vastaavia toimintoja. sync_file_range(), ja toteutti myös mahdollisuuden rekisteröidä eventfd io_uringilla ja vastaanottaa ilmoituksia toimintojen valmistumisesta;
    • CIFS-tiedostojärjestelmää varten on lisätty FIEMAP ioctl, joka tarjoaa tehokkaan laajuuden kartoituksen sekä tuen SEEK_DATA- ja SEEK_HOLE-tileille;
    • FUSE-alijärjestelmässä ehdotettu API tietojen välimuistin hallintaan;
    • Btrfs on optimoinut qgroups-toteutuksen ja parantanut fsync-suoritusnopeutta tiedostoille, joissa on useita kovia linkkejä. Tietojen eheyden tarkistuskoodia on parannettu, mikä nyt ottaa huomioon mahdollisen RAM-muistin tietovaurion ennen tietojen huuhtelua levylle;
    • CEPH lisäsi tuen tilannekuvien vientiin NFS:n kautta;
    • NFSv4-asennuksen toteutusta "pehmeässä" tilassa on parannettu (jos palvelimelle päästään "pehmeässä" tilassa virhe, puhelu palauttaa välittömästi virhekoodin, ja "kovassa" tilassa ohjausta ei anneta ennen kuin FS saatavuus tai aikakatkaisu palautetaan). Uusi julkaisu tarjoaa tarkemman aikakatkaisun käsittelyn, nopeamman kaatumispalautuksen ja uuden "pehmeämmän" asennusvaihtoehdon, jonka avulla voit muuttaa aikakatkaisun sattuessa palautettua virhekoodia (ETIMEDOUT);
    • nfsdcld API, joka on suunniteltu seuraamaan NFS-asiakkaiden tilaa, mahdollistaa NFS-palvelimen seuraamaan asiakkaan tilaa oikein uudelleenkäynnistyksen yhteydessä. Siten nfsdcld-daemon voi nyt toimia nfsdcltrack-käsittelijänä;
    • AFS:lle lisätty tiedostojen tavualueen lukitusten emulointi (Tavualueen lukitus);
  • Virtualisointi ja turvallisuus
    • Ytimestä on tehty työtä sellaisten paikkojen poistamiseksi, jotka mahdollistavat koodin suorittamisen kirjoitettavilta heijastuneilta muistialueilta, mikä mahdollistaa mahdollisten aukkojen estämisen, joita voidaan hyödyntää hyökkäyksen aikana;
    • Uusi ytimen komentoriviparametri "mitigations=" on lisätty, mikä tarjoaa yksinkertaistetun tavan hallita tiettyjen tekniikoiden käyttöönottoa suojatakseen haavoittuvuuksia vastaan, jotka liittyvät käskyjen spekulatiiviseen suorittamiseen CPU:ssa. "Mitigations=off":n hyväksyminen poistaa käytöstä kaikki olemassa olevat menetelmät, ja oletustila "mitigations=auto" mahdollistaa suojauksen, mutta ei vaikuta Hyper Threadingin käyttöön. Mitigations=auto,nosmt-tila poistaa lisäksi Hyper Threadingin käytöstä, jos suojausmenetelmä sitä vaatii.
    • lisätty tuki sähköiselle digitaaliselle allekirjoitukselle standardin GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3) mukaisesti, kehittänyt Vitaly Chikunov Basalt SPO:sta. Lisätty tuki AES128-CCM:lle alkuperäiseen TLS-toteutukseen. Lisätty tuki AEAD-algoritmeille crypto_simd-moduuliin;
    • Kconfigissa lisätty erillinen "ytimen kovetus"-osio, jossa on vaihtoehtoja ytimen suojauksen parantamiseksi. Tällä hetkellä uusi osio sisältää vain asetukset GCC:n tarkistusta parantavien liitännäisten käyttöön ottamiseksi;
    • Ytimen koodi on melkein toimitettu katkeamattomista tapauslauseista kytkimessä (ilman paluuta tai taukoa jokaisen tapauslohkon jälkeen). On vielä korjattava 32 tapausta 2311 tällaisesta kytkimen käytöstä, minkä jälkeen on mahdollista käyttää "-Wimplicit-fallthrough" -tilaa ytimen rakentamisessa;
    • PowerPC-arkkitehtuurissa on otettu käyttöön tuki laitteistomekanismeille, joilla rajoitetaan ei-toivottuja ytimen pääsypolkuja käyttäjätilassa olevaan dataan.
    • Lisätty estokoodi hyökkäyksiä MDS (Microarchitectural Data Sampling) -luokka Intel-suorittimissa. Voit tarkistaa, onko järjestelmä alttiina haavoittuvuuksille SysFS-muuttujan "/sys/devices/system/cpu/vulnerabilities/mds" avulla. saatavissa kaksi suojaustilaa: täysi, joka vaatii päivitetyn mikrokoodin, ja ohitus, joka ei täysin takaa CPU-puskurien tyhjentämistä, kun ohjaus siirretään käyttäjätilaan tai vierasjärjestelmään. Suojaustilojen ohjaamiseksi ytimeen on lisätty parametri "mds=", joka voi ottaa arvot "full", "full,nosmt" (+ poista Hyper-Threads käytöstä) ja "off";
    • x86-64-järjestelmiin on lisätty "pinon vartiointisivun" suojaus IRQ:lle, virheenkorjausmekanismeille ja poikkeuskäsittelijöille, jonka ydin on muistisivujen korvaaminen pinon rajalla, johon pääsy johtaa poikkeus (sivuvika);
    • Lisätty sysctl-asetus vm.unprivileged_userfaultfd, joka ohjaa etuoikeutettujen prosessien kykyä käyttää userfaultfd()-järjestelmäkutsua;
  • Verkkoalijärjestelmä
    • lisätty IPv6-yhdyskäytävän tuki IPv4-reiteille. Voit nyt esimerkiksi määrittää reitityssäännöt, kuten "ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0";
    • ICMPv6:ssa ioctl-kutsut icmp_echo_ignore_anycast ja icmp_echo_ignore_multicast toteutetaan ohittamaan ICMP ECHO anycastille ja
      monilähetysosoitteet. lisätty kyky rajoittaa ICMPv6-pakettien käsittelyn intensiteettiä;

    • BATMAN (Better Approach To Mobile Adhoc Networking) mesh-protokollalle, joka mahdollistaa hajautettujen verkkojen luomisen, joissa jokainen solmu on kytketty naapurisolmujen kautta, lisätty tuki monilähetyksestä unicast-lähetykseen sekä mahdollisuus ohjata sysfs:n kautta;
    • Ethoolissa lisätty uusi Fast Link Down -parametri, jonka avulla voit lyhentää aikaa, joka kuluu tiedon vastaanottamiseen linkin alas-tapahtumasta 1000BaseT:lle (normaaliolosuhteissa viive on jopa 750 ms);
    • ilmestyi tilaisuus Foo-Over-UDP-tunneleiden sitominen tiettyyn osoitteeseen, verkkoliitäntään tai pistorasiaan (aiemmin sidonta tehtiin vain yleisellä maskilla);
    • Langattomassa pinossa turvattu mahdollisuus toteuttaa käsittelijöitä
      OWE (Opportunistic Wireless Encryption) käyttäjätilassa;

    • Netfilterissä tuki inet-osoiteperheelle on lisätty nat-ketjuihin (voit nyt esimerkiksi käyttää yhtä käännössääntöä ipv4:n ja ipv6:n käsittelyyn erottamatta ipv4:n ja ipv6:n sääntöjä);
    • Netlinkissä lisätty hallintoa tiukka kaikkien viestien ja attribuuttien oikeellisuuden tarkastamiseksi, jolloin attribuuttien odotettua kokoa ei saa ylittää ja lisätietojen lisääminen viestien loppuun on kielletty;
  • Muisti- ja järjestelmäpalvelut
    • CLONE_PIDFD-lippu on lisätty clone()-järjestelmäkutsuun. Kun se on määritetty, luodun aliprosessin yhteydessä tunnistettu tiedostokuvaaja "pidfd" palautetaan pääprosessille. Tätä tiedostokuvaajaa voidaan käyttää esimerkiksi signaalien lähettämiseen ilman pelkoa joutumisesta kilpailutilaan (välittömästi signaalin lähettämisen jälkeen kohde-PID voi vapautua prosessin lopettamisen vuoksi ja varata toisen prosessin);
    • Toiseen cgroup-versioon on lisätty pakastinohjaintoiminto, jolla voit lopettaa työskentelyn cgroupissa ja vapauttaa tilapäisesti resursseja (CPU, I/O ja mahdollisesti jopa muisti) muiden tehtävien suorittamiseen. Hallinta tapahtuu cgroup.freeze- ja cgroup.events-ohjaustiedostojen kautta cgroup-puussa. Syöte 1 tiedostossa cgroup.freeze jäädyttää prosessit nykyisessä cgroupissa ja kaikissa aliryhmissä. Koska jäädyttäminen kestää jonkin aikaa, tarjotaan ylimääräinen cgroup.events-tiedosto, jonka kautta saat selville toiminnon valmistumisesta.
    • Turvattu jokaiseen sysf:n solmuun liitettyjen muistimääritteiden vienti, jonka avulla voit määrittää käyttäjätilasta muistipankkien käsittelyn luonteen järjestelmissä, joissa on heterogeeninen muisti;
    • PSI (Pressure Stall Information) -alijärjestelmää on parannettu, jonka avulla voidaan analysoida tietoa erilaisten resurssien (CPU, muisti, I/O) vastaanottamisen odotusajasta tiettyjä tehtäviä tai prosessijoukkoja varten cgroupissa. PSI:n avulla käyttäjätilan käsittelijät voivat arvioida tarkemmin järjestelmän kuormituksen ja hidastuskuvioiden tason verrattuna keskimääräiseen kuormitukseen. Uusi versio tarjoaa tuen herkkyyskynnysten asettamiseen ja mahdollisuuden käyttää poll()-kutsua saadakseen ilmoituksen, että asetetut kynnykset on laukaissut tietyn ajan. Tämän ominaisuuden avulla Android voi tarkkailla muistin puutetta varhaisessa vaiheessa, tunnistaa ongelmien syyn ja lopettaa merkityksettömät sovellukset aiheuttamatta käyttäjälle havaittavia ongelmia. Stressitestauksessa PSI-pohjaiset muistinkulutuksen seurantatyökalut osoittivat 10 kertaa vähemmän vääriä positiivisia tuloksia verrattuna vmpressure-tilastoihin;
    • BPF-ohjelmien tarkistuskoodi on optimoitu, mikä tekee tarkistuksesta jopa 20 kertaa nopeampaa suurissa ohjelmissa. Optimointi mahdollisti BPF-ohjelmien koon rajan nostamisen 4096:sta miljoonaan käskyyn;
    • BPF-ohjelmille myönnetty mahdollisuus käyttää globaaleja tietoja, joiden avulla voit määrittää globaaleja muuttujia ja vakioita ohjelmissa;
    • lisättyä API, jonka avulla voit hallita muutoksia sysctl-parametreihin BPF-ohjelmista;
    • MIPS32-arkkitehtuuria varten on otettu käyttöön JIT-kääntäjä eBPF-virtuaalikoneelle;
    • 32-bittiseen PowerPC-arkkitehtuuriin on lisätty tuki KASan-virheenkorjaustyökalulle (Kernel address sanitizer), joka auttaa tunnistamaan virheet muistia käytettäessä;
    • x86-64-järjestelmissä rajoitus tilavedosten sijoittamiselle ytimen kaatumisen (crash-dump) aikana yli 896 Mt:n muistialueille on poistettu;
    • s390-arkkitehtuurissa on toteutettu tuki ytimen osoiteavaruuden satunnaistukselle (KASLR) ja mahdollisuus tarkistaa digitaaliset allekirjoitukset, kun ydin ladataan kexec_file_load():n kautta;
    • PA-RISC-arkkitehtuurille lisätty tuki ytimen debuggerille (KGDB), hyppymerkit ja kprobes;
  • Оборудование
    • Mukana kuljettaja Lima Mali 400/450 GPU:lle, jota käytetään monissa vanhemmissa ARM-arkkitehtuuriin perustuvissa siruissa. Uudempiin Mali GPU:ihin on lisätty Panfrost-ohjain, joka tukee Midgardin (Mali-T6xx, Mali-T7xx, Mali-T8xx) ja Bifrostin (Mali G3x, G5x, G7x) mikroarkkitehtuureihin perustuvia siruja;
    • Lisätty tuki avointa laiteohjelmistoa käyttäville äänilaitteille Ääni avoin laiteohjelmisto (SOF). Huolimatta avoimien ohjainten saatavuudesta, äänisirujen laiteohjelmistokoodi pysyi edelleen suljettuna ja toimitettiin binäärimuodossa. Intel kehitti Sound Open Firmware -projektin luodakseen avoimen laiteohjelmiston äänenkäsittelyyn liittyville DSP-siruille (myös Google liittyi myöhemmin kehittämiseen). Tällä hetkellä projekti on jo valmistellut laiteohjelmiston löytämistä Intel Baytrail-, CherryTrail-, Broadwell-, ApolloLaken, GeminiLaken, CannonLaken ja IceLake-alustojen äänisiruille;
    • Intel DRM -ohjain (i915) lisää tuen siruille
      Elkhartlake (Gen11). Lisätty PCI-tunnukset Comet Lake (Gen9) -siruille. Icelake-sirujen tuki on vakiintunut, johon on myös lisätty PCI-laitetunnisteita.
      Kytketty päälle
      asynkroninen vaihtotila kahden videomuistin puskurin välillä (asynkroninen käännös) suoritettaessa kirjoitustoimintoja mmion kautta, mikä paransi merkittävästi joidenkin 3D-sovellusten suorituskykyä (esimerkiksi 3DMark Ice Storm -testin suorituskyky kasvoi 300-400 %). Lisätty tekninen tuki HDCP2.2 (High-bandwidth Digital Content Protection) HDMI:n kautta lähetettyjen videosignaalien salaamiseen;

    • Vega20 GPU:n amdgpu-ohjain lisätty tuki RAS:lle (Reliability, Availability, Serviceability) ja kokeellinen tuki SMU 11 -alijärjestelmälle, joka korvasi Powerplay-tekniikan. GPU Vega12:lle lisätty BACO-tilan tuki (Bus Active, Chip Off). Lisätty alustava tuki XGMI:lle, nopealle väylälle (PCIe 4.0) GPU-yhteyttä varten. Lisätty puuttuvat tunnisteet Polaris10 GPU:hun perustuville korteille amdkfd-ohjaimeen;
    • Nouveau-ohjain on lisännyt tuen NVIDIA Turing 117 -piirisarjaan (TU117, käytetty GeForce GTX 1650:ssä) perustuville korteille. SISÄÄN
      kconfig lisätty asetus poistaa käytöstä vanhentuneet toiminnot, joita ei enää käytetä nykyisissä libdrm-julkaisuissa;

    • DRM-sovellusliittymään ja amdgpu-ohjaimeen on lisätty tuki "aikajanan" synkronointiobjekteille, joten voit tehdä ilman klassista estoa.
    • VirtualBox-virtuaaligrafiikkasuorittimen vboxvideo-ohjain on siirretty lavastushaaralta päärakenteeseen;
    • Lisätty nopeusohjain GFX SoC ASPEED-sirulle;
    • Lisätty tuki ARM SoC:lle ja Intel Agilexille (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, ,Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi) ) -levyt RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST Micro (stm32mp157a, stm32mp157c), NXP (
      Eckelmann ci4x10 (i.MX6DL),

      i.MX8MM EVK (i.MX8MM),

      ZII i.MX7 RPU2 (i.MX7),

      ZII SPB4 (VF610),

      Zii Ultra (i.MX8M),

      TQ TQMa7S (i.MX7Solo),

      TQ TQMa7D (i.MX7Dual),

      Kobo Aura (i.MX50),

      Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).

Samaan aikaan Latinalaisen Amerikan Free Software Foundation muodostettu
вариант täysin ilmainen kernel 5.2 - Linux-vapaa 5.2-gnu, puhdistettu laiteohjelmistosta ja ajurielementeistä, jotka sisältävät ei-vapaita komponentteja tai koodiosia, joiden laajuutta valmistaja rajoittaa. Uusi julkaisu sisältää tiedostojen lataamisen
Ääni Avaa laiteohjelmisto. Blobsien lataaminen ohjaimiin on poistettu käytöstä
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp ja ucsi_ccg. Blob-puhdistuskoodi ixp4xx-, imx-sdma-, amdgpu-, nouveau- ja goya-ajureissa ja -alijärjestelmissä sekä mikrokoodidokumentaatiossa on päivitetty. Lopetettu r8822be-ohjaimen läikkymien puhdistaminen sen poistamisen vuoksi.

Lähde: opennet.ru

Lisää kommentti