Linux 5.2 branduolio leidimas

Po dviejų mėnesių kūrimo Linusas Torvaldsas pristatė branduolio išleidimas Linux 5.2. Tarp labiausiai pastebimų pakeitimų: Ext4 veikimo režimas neskiria didžiųjų ir mažųjų raidžių, atskiri sistemos iškvietimai failų sistemai montuoti, GPU Mali 4xx/ 6xx/7xx tvarkyklės, galimybė tvarkyti sysctl reikšmių pokyčius BPF programose, įrenginio žemėlapių sudarytojas. modulis dm-dust, apsauga nuo atakų MDS, garso atviros programinės įrangos palaikymas DSP, BFQ našumo optimizavimas, PSI (Pressure Stall Information) posistemio panaudojimas Android sistemoje.

Naujoje versijoje yra 15100 1882 pataisymai iš XNUMX XNUMX kūrėjų,
pataisos dydis - 62 MB (pakeitimai palietė 30889 failus, pridėta 625094 kodo eilutės, ištrinta 531864 eilutės). Apie 45% visų pateiktų 5.2
pakeitimai yra susiję su įrenginių tvarkyklėmis, maždaug 21% pakeitimų turi
požiūris į aparatinės įrangos architektūroms būdingo kodo atnaujinimą, 12 proc.
susiję su tinklo kaminu, 3% su failų sistemomis ir 3% su vidine
branduolio posistemes. 12.4 % visų pakeitimų paruošė 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.

pagrindinis naujoves:

  • Disko posistemis, I/O ir failų sistemos
    • Pridėta Ext4 parama dirbti neskiriant simbolių didžiųjų ir mažųjų raidžių failų pavadinimuose, kuris aktyvuojamas tik atskirų tuščių katalogų atžvilgiu naudojant naują atributą „+F“ (EXT4_CASEFOLD_FL). Nustačius šį atributą kataloge, visos operacijos su viduje esančiais failais ir pakatalogiais bus atliekamos neatsižvelgiant į simbolių didžiąsias ir mažąsias raides, įskaitant didžiąsias ir mažąsias raides, ieškant ir atidarant failus (pavyzdžiui, failai Test.txt, test.txt ir test.TXT tokiuose kataloguose bus laikomi tuo pačiu). Pagal numatytuosius nustatymus failų sistemoje ir toliau skiriamos didžiosios ir mažosios raidės, išskyrus katalogus su atributu „chattr +F“;
    • Suvienodintos UTF-8 simbolių apdorojimo failų pavadinimuose funkcijos, kurios naudojamos atliekant eilučių palyginimo ir normalizavimo operacijas;
    • XFS prideda failų sistemos būklės stebėjimo infrastruktūrą ir naują ioctl sveikatos būklės užklausai. Buvo įdiegta eksperimentinė funkcija, skirta patikrinti superblokų skaitiklius internete.
    • Pridėtas naujas modulio įrenginio atvaizdavimo priemonė "dm-dulkės“, kuri leidžia imituoti blogų blokų atsiradimą laikmenoje arba klaidas skaitant iš disko. Modulis leidžia supaprastinti programų ir įvairių saugojimo sistemų derinimą ir testavimą esant galimiems gedimams;
    • Atliko Reikšmingi BFQ I/O planuotojo našumo optimizavimai. Didelės I/O apkrovos sąlygomis atlikti optimizavimai leisti Sutrumpinkite operacijų, pvz., programų paleidimo, laiką iki 80%.
    • Pridėta keletas sistemos iškvietimų, skirtų failų sistemoms montuoti: fsopen(), open_tree(), fspick (), fsmount (), fsconfig () и move_mount(). Šie sistemos iškvietimai leidžia atskirai apdoroti skirtingus montavimo etapus (apdoroti superbloką, gauti informaciją apie failų sistemą, prijungti, prijungti prie prijungimo taško), kurie anksčiau buvo atliekami naudojant bendrąjį mount() sistemos iškvietimą. Atskiri skambučiai suteikia galimybę atlikti sudėtingesnius prijungimo scenarijus ir atlikti atskiras operacijas, pvz., perkonfigūruoti superbloką, įgalinti parinktis, pakeisti prijungimo tašką ir perkelti į kitą vardų erdvę. Be to, atskiras apdorojimas leidžia tiksliai nustatyti klaidų kodų išvesties priežastis ir nustatyti kelis šaltinius daugiasluoksnėms failų sistemoms, pvz., perdangas;
    • Prie asinchroninio I/O io_uring sąsajos pridėta nauja operacija IORING_OP_SYNC_FILE_RANGE, kuri atlieka veiksmus, lygiaverčius sistemos iškvietimui sync_file_range(), taip pat įdiegta galimybė registruoti eventfd su io_uring ir gauti pranešimus apie operacijų užbaigimą;
    • CIFS failų sistemai buvo pridėtas FIEMAP ioctl, užtikrinantis efektyvų masto atvaizdavimą, taip pat SEEK_DATA ir SEEK_HOLE režimų palaikymą;
    • FUSE posistemyje pasiūlė API duomenų kaupimui talpykloje valdyti;
    • „Btrfs“ optimizavo „qgroups“ diegimą ir pagerino „fsync“ vykdymo greitį failams su keliomis kietosiomis nuorodomis. Patobulintas duomenų vientisumo tikrinimo kodas, kuriame dabar atsižvelgiama į galimą informacijos sugadinimą RAM prieš išleidžiant duomenis į diską;
    • CEPH pridėjo palaikymą momentinių nuotraukų eksportavimui per NFS;
    • Patobulintas NFSv4 montavimas „minkštuoju“ režimu (jei įvyksta klaida prisijungiant prie serverio „soft“ režimu, iškvietimas nedelsiant grąžina klaidos kodą, o „kietajame“ režime valdymas nesuteikiamas iki FS pasiekiamumas arba skirtasis laikas atkuriamas). Naujasis leidimas suteikia tikslesnį skirtojo laiko valdymą, greitesnį strigčių atkūrimą ir naują "minkštesnio" montavimo parinktį, leidžiančią pakeisti klaidos kodą (ETIMEDOUT), grąžintą pasibaigus laikui;
    • nfsdcld API, sukurta sekti NFS klientų būseną, leidžia NFS serveriui teisingai sekti kliento būseną paleidus iš naujo. Taigi nfsdcld demonas dabar gali veikti kaip nfsdcltrack tvarkytojas;
    • Dėl AFS pridėta baitų diapazono užraktų emuliacija failuose (Baitų diapazono užrakinimas);
  • Virtualizacija ir saugumas
    • Buvo atliktas darbas siekiant pašalinti branduolio vietas, kurios leidžia vykdyti kodą iš įrašomų atspindėtų atminties sričių, o tai leidžia blokuoti galimas skyles, kurios gali būti išnaudotos atakos metu;
    • Pridėtas naujas branduolio komandinės eilutės parametras "mitigations=", suteikiantis supaprastintą būdą valdyti tam tikrų apsaugos nuo pažeidžiamumų, susijusių su procesoriaus instrukcijų vykdymu, įgalinimą. Perdavus „mitigations=off“, visi esami metodai išjungiami, o numatytasis režimas „mitigations=auto“ įjungia apsaugą, bet neturi įtakos „Hyper Threading“ naudojimui. Režimas „mitigations=auto,nosmt“ papildomai išjungia „Hyper Threading“, jei to reikalauja apsaugos metodas.
    • Pridėta elektroninio skaitmeninio parašo palaikymas pagal GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), išvystyta Vitalijus Čikunovas iš Basalt SPO. Pridėtas AES128-CCM palaikymas prie vietinio TLS diegimo. Pridėtas AEAD algoritmų palaikymas prie crypto_simd modulio;
    • Kconfig pridėta atskira "branduolio grūdinimo" skiltis su galimybėmis pagerinti branduolio apsaugą. Šiuo metu naujoje skiltyje yra tik GCC patikrinimą gerinančių įskiepių įjungimo nustatymai;
    • Branduolio kodas beveik pristatyta iš nepertraukiamų didžiųjų raidžių teiginių jungiklyje (be grįžimo arba pertraukos po kiekvieno atvejo bloko). Belieka ištaisyti 32 iš 2311 tokio jungiklio naudojimo atvejų, po kurių bus galima naudoti „-Wimplicit-fallthrough“ režimą kuriant branduolį;
    • PowerPC architektūrai įdiegtas aparatinės įrangos mechanizmų palaikymas, apribojantis nepageidaujamus branduolio prieigos kelius prie duomenų vartotojo erdvėje;
    • Pridėtas blokavimo kodas išpuolių MDS (Microarchitectural Data Sampling) klasė Intel procesoriuose. Galite patikrinti, ar sistema yra pažeidžiama dėl pažeidžiamumų, naudodami SysFS kintamąjį „/sys/devices/system/cpu/vulnerabilities/mds“. Yra du apsaugos režimai: pilnas, kuriam reikia atnaujinti mikrokodą, ir apėjimo, kuris visiškai negarantuoja CPU buferių išvalymo, kai valdymas perkeliamas į vartotojo erdvę arba svečių sistemą. Norint valdyti apsaugos režimus, prie branduolio buvo pridėtas parametras „mds=“, kuris gali įgauti reikšmes „full“, „full,nosmt“ (+ išjungti „Hyper-Threads“) ir „off“;
    • X86-64 sistemose buvo pridėta IRQ, derinimo mechanizmų ir išimčių tvarkyklių apsauga nuo „stack guard-page“, kurios esmė yra atminties puslapių pakeitimas prie dėklo sienos, prie kurios prisijungus generuojamas išimtis (puslapis-gedimas);
    • Pridėtas sysctl parametras vm.unprivileged_userfaultfd, kuris kontroliuoja neprivilegijuotų procesų galimybę naudoti userfaultfd() sistemos iškvietimą;
  • Tinklo posistemis
    • Pridėta IPv6 šliuzo palaikymas IPv4 maršrutams. Pavyzdžiui, dabar galite nurodyti maršruto parinkimo taisykles, pvz., „ip ro add 172.16.1.0/24 per inet6 2001:db8::1 dev eth0“;
    • Naudojant ICMPv6, ioctl iškvietimai icmp_echo_ignore_anycast ir icmp_echo_ignore_multicast yra įgyvendinami, kad būtų nepaisoma ICMP ECHO naudojant anycast ir
      multicast adresai. Pridėta galimybė apriboti ICMPv6 paketų apdorojimo intensyvumą;

    • BATMAN (geresnis požiūris į mobilųjį adhoc tinklą) tinklo protokolą, kuris leidžia kurti decentralizuotus tinklus, kuriuose kiekvienas mazgas yra prijungtas per gretimus mazgus, pridėta transliavimo iš multicast į unicast palaikymas, taip pat galimybė valdyti per sysf;
    • Ethool pridėta naujas Fast Link Down parametras, leidžiantis sutrumpinti laiką, per kurį gaunama informacija apie susiejimo nutraukimo įvykį 1000BaseT (įprastomis sąlygomis vėlavimas yra iki 750 ms);
    • Pasirodė galimybė Foo-Over-UDP tunelių susiejimas su konkrečiu adresu, tinklo sąsaja ar lizdu (anksčiau susiejimas buvo atliktas tik naudojant bendrą kaukę);
    • Belaidžiame tinkle jeigu tvarkyklių diegimo galimybė
      OWE (Opportunistic Wireless Encryption) vartotojo erdvėje;

    • Netfilter inet adresų šeimos palaikymas buvo įtrauktas į nat grandines (pavyzdžiui, dabar galite naudoti vieną vertimo taisyklę, kad apdorotumėte ipv4 ir ipv6, neatskirdami ipv4 ir ipv6 taisyklių);
    • Interneto nuorodoje pridėta režimas griežta griežtam visų pranešimų ir atributų teisingumo patikrinimui, kuriame neleidžiama viršyti numatomo atributų dydžio ir draudžiama pridėti papildomų duomenų pranešimų pabaigoje;
  • Atminties ir sistemos paslaugos
    • CLONE_PIDFD vėliavėlė buvo pridėta prie klono () sistemos iškvietimo, kai nurodyta, failo deskriptorius „pidfd“, identifikuotas su sukurtu antriniu procesu, grąžinamas pirminiam procesui. Pavyzdžiui, šis failo aprašas gali būti naudojamas siunčiant signalus, nebijant patekti į lenktynių būseną (iš karto po signalo išsiuntimo tikslinis PID gali būti atlaisvintas dėl proceso nutraukimo ir užimtas kito proceso);
    • Antrajai cgroup versijai buvo pridėta šaldiklio valdiklio funkcija, su kuria galite sustabdyti darbą cgroup ir laikinai atlaisvinti tam tikrų išteklių (CPU, I/O ir galbūt net atminties) kitoms užduotims atlikti. Valdymas atliekamas naudojant cgroup.freeze ir cgroup.events valdymo failus cgroup medyje. 1 įrašas cgroup.freeze sustabdo procesus dabartinėje cgroup ir visose antrinėse grupėse. Kadangi užšaldymas užtrunka, pateikiamas papildomas failas cgroup.events, per kurį galite sužinoti apie operacijos užbaigimą;
    • Apsaugota prie kiekvieno sysf mazgo prijungtų atminties atributų eksportas, leidžiantis iš vartotojo erdvės nustatyti atminties bankų apdorojimo pobūdį sistemose su nevienalyte atmintimi;
    • Patobulintas PSI (Pressure Stall Information) posistemis, leidžiantis analizuoti informaciją apie laukimo laiką gavus įvairius išteklius (CPU, atmintį, I/O) tam tikroms užduotims ar procesų rinkiniams cgroup. Naudodami PSI, naudotojų erdvės tvarkytojai gali tiksliau įvertinti sistemos apkrovos lygį ir sulėtėjimo modelius, palyginti su vidutiniu apkrovimu. Naujoji versija palaiko jautrumo slenksčių nustatymą ir galimybę naudoti apklausos () iškvietimą, kad gautų pranešimą, kad nustatytos slenkstinės vertės buvo suaktyvintos tam tikrą laiką. Ši funkcija leidžia Android stebėti atminties trūkumą ankstyvoje stadijoje, nustatyti problemų šaltinį ir nutraukti nesvarbias programas nesukeliant vartotojui pastebimų problemų. Atliekant testavimą nepalankiausiomis sąlygomis, PSI pagrįsti atminties suvartojimo stebėjimo įrankiai parodė 10 kartų mažiau klaidingų teigiamų rezultatų, palyginti su vmpressure statistika;
    • BPF programų tikrinimo kodas optimizuotas, todėl didelėms programoms galima patikrinti iki 20 kartų greičiau. Optimizavimas leido padidinti BPF programų dydžio limitą nuo 4096 iki milijono instrukcijų;
    • BPF programoms suteikta galimybė pasiekti pasaulinius duomenis, leidžiančius programose apibrėžti globalius kintamuosius ir konstantas;
    • Pridėta API, kuri leidžia valdyti sysctl parametrų pakeitimus iš BPF programų;
    • MIPS32 architektūrai įdiegtas eBPF virtualios mašinos JIT kompiliatorius;
    • 32 bitų PowerPC architektūrai pridėtas derinimo įrankio KASan (Kernel address sanitizer) palaikymas, kuris padeda nustatyti klaidas dirbant su atmintimi;
    • x86-64 sistemose apribojimas dėti būsenos iškeltus branduolio gedimo metu (crash-dump) atminties srityse, viršijančiose 896 MB, buvo pašalintas;
    • s390 architektūrai įdiegtas branduolio adresų erdvės atsitiktinės atrankos (KASLR) palaikymas ir galimybė patikrinti skaitmeninius parašus įkeliant branduolį per kexec_file_load();
    • PA-RISC architektūrai, papildomas branduolio derintuvo (KGDB), peršokimo žymių ir kprobes palaikymas;
  • įranga
    • Vairuotojas įtrauktas Lima skirtas Mali 400/450 GPU, naudojamas daugelyje senesnių lustų, pagrįstų ARM architektūra. Naujesniuose Malio GPU buvo pridėta Panfrost tvarkyklė, palaikanti lustus, pagrįstus Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) ir Bifrost (Mali G3x, G5x, G7x) mikroarchitektūromis;
    • Pridėtas palaikymas garso įrenginiams naudojant atvirą programinę-aparatinę įrangą Garsas Atidarykite programinę aparatinę įrangą (SOF). Nepaisant atvirų tvarkyklių, garso lustų programinės aparatinės įrangos kodas vis tiek liko uždarytas ir buvo pateiktas dvejetaine forma. „Sound Open Firmware“ projektą sukūrė „Intel“, siekdama sukurti atvirą programinę-aparatinę įrangą DSP lustams, susijusiems su garso apdorojimu (vėliau prie kūrimo prisijungė ir „Google“). Šiuo metu projektas jau paruošė Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake ir IceLake platformų garso lustų programinės įrangos atradimą;
    • „Intel“ DRM tvarkyklė (i915) prideda lustų palaikymą
      Elkhartleikas (11 gen.). Pridėta Comet Lake (Gen9) lustų PCI ID. Stabilizuotas „Icelake“ lustų palaikymas, kuriam taip pat buvo pridėti papildomi PCI įrenginio identifikatoriai.
      Įjungtas
      asinchroninio perjungimo tarp dviejų buferių vaizdo atmintyje režimas (async flip) atliekant rašymo operacijas per mmio, kuris žymiai padidino kai kurių 3D programų našumą (pavyzdžiui, 3DMark Ice Storm testo našumas padidėjo 300-400%). Pridėtas technologijų palaikymas HDCP2.2 (High-bandwidth Digital Content Protection), skirta vaizdo signalams, perduodamiems per HDMI, šifruoti;

    • Vega20 GPU amdgpu tvarkyklė pridėta palaikymas RAS (Reliability, Availability, Serviceability) ir eksperimentinis palaikymas SMU 11 posistemiui, kuris pakeitė Powerplay technologiją. GPU Vega12 pridėta BACO režimo palaikymas (Bus Active, Chip Off). Pridėtas pradinis XGMI, didelės spartos magistralės (PCIe 4.0), skirtos GPU sujungimui, palaikymas. Į amdkfd tvarkyklę įtraukti trūkstami kortelių, pagrįstų Polaris10 GPU, identifikatoriai;
    • „Nouveau“ tvarkyklė pridėjo palaikymą plokštėms, pagrįstoms NVIDIA Turing 117 mikroschemų rinkiniu (TU117, naudojamas GeForce GTX 1650). IN
      kconfig pridėta nustatymas išjungti pasenusias funkcijas, kurios nebenaudojamos dabartiniuose libdrm leidimuose;

    • „Laiko juostos“ sinchronizavimo objektų palaikymas buvo pridėtas prie DRM API ir amdgpu tvarkyklės, todėl galite apsieiti be klasikinio blokavimo.
    • VirtualBox virtualiojo GPU „vboxvideo“ tvarkyklė buvo perkelta iš sustojimo šakos į pagrindinę struktūrą;
    • Pridėta spartos tvarkyklė GFX SoC ASPEED lustui;
    • Pridėtas ARM SoC ir Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, ,Beelink GS2 (H6), Orange Pi 3 (H6), Rockchip (Orange Pi) palaikymas. ) plokštės 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).

Tuo pačiu metu Lotynų Amerikos laisvosios programinės įrangos fondas susiformavo
pasirinkimas visiškai nemokamas branduolys 5.2 - „Linux“ nemokama 5.2 gnu versija, išvalyta nuo programinės aparatinės įrangos ir tvarkyklės elementų, kuriuose yra nelaisvų komponentų arba kodo skyrių, kurių apimtį riboja gamintojas. Naujas leidimas apima failų įkėlimą
Garsas Atidarykite programinę-aparatinę įrangą. Blobų įkėlimas tvarkyklėse išjungtas
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp ir ucsi_ccg. Atnaujintas blob valymo kodas ixp4xx, imx-sdma, amdgpu, nouveau ir goya tvarkyklėse ir posistemėse, taip pat mikrokodo dokumentacijoje. Nustojo valyti dėmės r8822be tvarkyklėje dėl jos pašalinimo.

Šaltinis: opennet.ru

Добавить комментарий