Kahden kuukauden kehitystyön jälkeen Linus Torvalds ytimen julkaisu Merkittävimpiä muutoksia ovat: kirjainkokoa huomioimaton Ext4-käyttötila, erilliset järjestelmäkutsut tiedostojärjestelmän liittämiseen, ajurit Mali 4xx/6xx/7xx -näytönohjaimille, kyky käsitellä sysctl-arvojen muutoksia BPF-ohjelmissa, dm-dust device-mapper -moduuli, suojaus MDS-hyökkäyksiä vastaan, tuki Sound Open Firmwarelle DSP:lle, BFQ-suorituskyvyn optimointi, PSI (Pressure Stall Information) -alijärjestelmän saattaminen käytettävyystasolle Android.
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.
:
- Levyalijärjestelmä, I/O ja tiedostojärjestelmät
- Lisätty Ext4:lle 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 "", 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;
- Merkittäviä suorituskyvyn optimointeja BFQ I/O -ajastimelle. Suuren I/O-kuorman olosuhteissa optimoinnit tehty Lyhennä toimintojen, kuten sovellusten käynnistämisen, aikaa jopa 80 %.
- Lisätty sarja järjestelmäkutsuja tiedostojärjestelmien liittämistä varten: , , , , и . 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. , 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ä 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 tiedostojen tavualueen lukitusten emulointi ();
- 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.
- tuki sähköiselle digitaaliselle allekirjoitukselle standardin GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3) mukaisesti, Vitaly Chikunov Basalt SPO:sta. Lisätty tuki AES128-CCM:lle alkuperäiseen TLS-toteutukseen. Lisätty tuki AEAD-algoritmeille crypto_simd-moduuliin;
- Kconfigissa 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 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 MDS (Microarchitectural Data Sampling) -luokka Intel-suorittimissa. Voit tarkistaa, onko järjestelmä alttiina haavoittuvuuksille SysFS-muuttujan "/sys/devices/system/cpu/vulnerabilities/mds" avulla. 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ä
- 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. 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, tuki monilähetyksestä unicast-lähetykseen sekä mahdollisuus ohjata sysfs:n kautta;
- Ethoolissa 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 Foo-Over-UDP-tunneleiden sitominen tiettyyn osoitteeseen, verkkoliitäntään tai pistorasiaan (aiemmin sidonta tehtiin vain yleisellä maskilla);
- Langattomassa pinossa 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ä 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.
- 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;
- Pressure Stall Information (PSI) -alijärjestelmää on parannettu. Sen avulla voidaan analysoida tietoja eri resurssien (CPU, muisti, I/O) odotusajasta tiettyjen tehtävien tai prosessijoukkojen osalta cgroupissa. PSI:n avulla käyttäjätilan käsittelijät voivat arvioida järjestelmän kuormitustason ja hidastumisen luonteen tarkemmin verrattuna Load Average -ominaisuuteen. Uusi versio tukee herkkyyskynnysten mukauttamista ja mahdollistaa poll()-funktion käytön ilmoitusten vastaanottamiseen, kun asetetut kynnysarvot aktivoituvat tietyn ajanjakson sisällä. Tämä ominaisuus mahdollistaa toimintojen järjestämisen. Android Seuraa muistin kuormitusta varhaisessa vaiheessa, tunnista ongelmien lähde ja sulje merkityksettömät sovellukset ennen kuin ne tulevat käyttäjän havaittaviksi. Stressitestauksessa PSI-pohjaiset muistinvalvontatyökalut osoittivat 10 kertaa vähemmän vääriä positiivisia tuloksia kuin vmpressure-tilastot.
- 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 mahdollisuus käyttää globaaleja tietoja, joiden avulla voit määrittää globaaleja muuttujia ja vakioita ohjelmissa;
- lisättyä , 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 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 (). 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.
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 (High-bandwidth Digital Content Protection) HDMI:n kautta lähetettyjen videosignaalien salaamiseen; - Vega20 GPU:n amdgpu-ohjain tuki RAS:lle (Reliability, Availability, Serviceability) ja kokeellinen tuki SMU 11 -alijärjestelmälle, joka korvasi Powerplay-tekniikan. GPU Vega12:lle 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 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
вариант - , 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
