Linuxi 5.3 ydinversioonis

PĂ€rast kahte kuud arendust Linus Torvalds esitles ydinversioon Linux 5.3. Olulisemad muutused: AMD Navi GPU tugi, Zhaoxi protsessorite tugi ja Intel Speed Select energiatarbimise haldustehnoloogia, umwait kĂ€skude kasutamise vĂ”imalus ootamiseks ilma tsĂŒklite kasutamiseta,
asĂŒmmeetriliste CPU-de interaktiivsust suurendav ‘utilization clamping’ reĆŸiim, pidfd_open sĂŒsteemikĂ”ne, IPv4 aadresside kasutamine alavĂ”rgus 0.0.0.0/8, nftables'i riistvaraline kiirusĂ”ttu tugi, HDR-i tugi DRM alamsĂŒsteemis, ACRN hĂŒperviisori integreerimine.

Uues teated uue vĂ€ljalaske puhul tuletas Linus kĂ”igile arendajatele meelde peamist tuuma arendamise pĂ”hireeglit — kasutajaruumi komponentide kĂ€itumise jĂ€rjepidevuse sĂ€ilitamine. Ytseffin muutused tuumas ei tohi mingil viisil rikkuda juba toimivaid rakendusi ja pĂ”hjustada regressioone kasutaja tasemel. Samas vĂ”ib kĂ€itumise rikkumine kujuneda mitte ainult ABI muutuste, vananenud koodi eemaldamise vĂ”i vigade tekkimise kaudu, vaid ka Ă”igesti töötavate kasulikud tĂ€iustuste kaudse mĂ”ju tĂ”ttu. NĂ€iteks jĂ€eti kĂ”rvale kasulik optimeerimine Ext4 koodis, mis vĂ€hendas kettale pöördumiste arvu, keelates inode tabeli etteennustava lugemise vĂ€ikeste sisend-/vĂ€ljundkutsede juures.

Optimeerimine viis selleni, et ketta aktiivsuse vĂ€henemise tĂ”ttu hakkas getrandom() juhuslikkuse generaatori entropia aeglasemalt kogunema ja teatud konfiguratsioonides vĂ”ivad kindlate ringkondade korral laadimise ajal esineda riputused, kuni entropia bassein on tĂ€itunud. Kuna optimeerimine on tĂ”epoolest kasulik, tekkis arendajate seas arutelu, kus pakuti probleemi lahendamist getrandom() blokeeriva tööreĆŸiimi keeldumise kaudu vaikimisi, lisades valikulise lipu entropia ootamise vĂ”imaluseks, kuid sarnane muudatus mĂ”jutab esialgse laadimise ajal genereeritud juhuslike numbrite kvaliteeti.

Uude versiooni on tehtud 15794 parandust 1974 arendajalt,
patchi suurus on 92 MB (muudatused puudutasid 13986 faili, lisatud on 258419 koodiread,
eemaldatud 599137 rida). Umbes 39% kÔikidest esitatud 5.3 puhul
muutustest on seotud seadme draiveritega, umbes 12% muudatusi on
seotud riistvaraarhitektuuri spetsiifilise koodi uuendamisega, 11%
seotud vĂ”rgustiku virnast, 3% — failisĂŒsteemidega ja 3% tuumades alamsĂŒsteemidega.
alamsĂŒsteemidega.

Peamised uuendused:

  • MĂ€lu ja sĂŒsteemiteenused
    • Funktsionaalsuse ‘pidfd’ jĂ€tkuv arendamine, mis aitab kĂ€sitleda PID-i taaskasutamise olukordi (pidfd on seotud konkreetse protsessiga ja ei muutu, samas kui PID vĂ”ib olla seotud teise protsessiga pĂ€rast praeguse protsessi lĂ”petamist, millega see PID on seotud). Varem oli tuuma juba lisatud
      sĂŒsteemikutse pidfd_send_signal() ja lipp CLONE_PIDFD kutses clone(), mis vĂ”imaldab saada pidfd kasutamiseks idfd_send_signal(). CLONE_PIDFD lipuga clone() vĂ€ljakutset kasutades tekkisid probleemid teenuse haldurite vĂ”i protsesside sundlĂ”petamise sĂŒsteemiga, kui Androidi platvormil oli mĂ€lu nappus. Sel juhul kĂ€ivitamiseks kasutatakse kutsungeid fork() vĂ”i clone() ilma CLONE_PIDFD-ta.

      Tuumas 5.3 on esitatud sĂŒsteemikutse pidfd_open(), mis vĂ”imaldab saada kontrollitavat pidfd suvaliseks olemasolevaks protsessiks, mida ei ole loodud kutsungi clone() koos CLONE_PIDFD lipuga. Samuti on lisatud pidfd pollimise tugi poll() ja epoll() kaudu, mis vĂ”imaldab protsessihalduritel jĂ€lgida suvaliste protsesside lĂ”petamist, kartmata race conditioni, kui PID mÀÀratakse uuele protsessile. Protsessi lĂ”petamisest teavitamise mehhanism, mis on seotud pidfd-iga, on sarnane teavitamisega oma alamprotsessi lĂ”petamisest;

    • ĂŒlesande ajakava lisatud koormuse kinnitamise mehhanismi tugi (Utilization clamping), mis vĂ”imaldab jÀÀda minimaalsetesse vĂ”i maksimaalsetesse sageduste vahemikesse, sĂ”ltuvalt aktiivsetest CPU ĂŒlesannetest. Esitatud mehhanism kiirendab ĂŒlesandeid, mis mĂ”jutavad otseselt kasutajakogemuse kvaliteeti, kĂ€ivitades need ĂŒlesanded vĂ€hemalt ‘taotletud’ sageduse alumises piiris. Madal-prioriteetseid ĂŒlesandeid, mis ei mĂ”juta kasutajate tööd, kĂ€ivituvad ‘lubatud’ sageduse ĂŒlemise piiri kasutamisega. Piirid mÀÀratakse atribuutide sched_uclamp_util_min ja sched_uclamp_util_max kaudu sĂŒsteemikutses sched_setattr().
    • Energiatarbimise juhtimise tehnoloogia tugi on lisatud Intel Speed Select, mis on kĂ€ttesaadav mĂ”nedes serverites, kus on Intel Xeoni protsessorid. Antud tehnoloogia vĂ”imaldab seadistada jĂ”udluse ja lĂ€bilaskevĂ”ime seadistusi erinevate CPU tuumade jaoks, mis vĂ”imaldab prioriseerida jĂ”udlust teatud tuumadel, ohverdades samas jĂ”udlust teistel tuumadel;
    • kasutaja ruumis töötavatele protsessidele pakutud vĂ”imalust oodata lĂŒhikest aega tsĂŒklite kasutamata, kasutades umwait kĂ€sku. Antud kĂ€sk, koos umonitor ja tpause kĂ€skudega, pakutakse vĂ€lja peagi turule tulevates Intel 'Tremont' kiipides ja vĂ”imaldab realiseerida energiatĂ”husat ooteaega, mĂ”jutamata teiste lĂ”imede jĂ”udlust Hyper Threadingu kasutamisel;
    • RISC-V arhitektuuri jaoks on lisatud toe suurtel mĂ€lu lehtedel (huge pages);
    • kprobes jĂ€lgimise mehhanismile on lisatud vĂ”imalus dereferentseerida tuumapointereid kasutaja ruumi, mida vĂ”ib kasutada nĂ€iteks sĂŒsteemi kutsete kaudu edastatavate struktuuride sisu hindamiseks. Samuti on lisatud vĂ”imalus installida kontrolle laadimisetapis.
    • konfiguratsioonifaili on lisatud PREEMPT_RT valik reaalajalise tööreĆŸiimi jaoks. Reaalaja reĆŸiimi toetav kood pole veel tuumale lisatud, kuid selle valiku olemasolu on hea mĂ€rk, et pikaajaline seiklus integreerimise Realtime-Preempt patĆĄide osas lĂ€heneb lĂ”pule;
    • on lisatud sĂŒsteemikutses clone3() realiseerimine laiendatud variandi clone() liidesest, mis vĂ”imaldab mÀÀrata suurema hulga lippe;
    • on lisatud bpf_send_signal() kĂ€itaja, mis vĂ”imaldab BPF-programmidel saata signaale mis tahes protsessidele;
    • KVM hĂŒpervĂ”tjas perf sĂŒndmuste jaoks on lisatud uus sĂŒndmuste filtreerimise mehhanism, mis vĂ”imaldab administraatoril mÀÀrata sĂŒndmuste tĂŒĂŒbid, mis on lubatud vĂ”i mitte lubatud kĂŒlastaja sĂŒsteemis jĂ€lgimiseks;
    • eBPF rakenduste valideerimise mehhanismile on lisatud vĂ”imalus töötleda programme, kus on tsĂŒklid, kui tsĂŒkli tĂ€itmine on piiratud ja ei saa viia maksimaalsete kĂ€skude arvu ĂŒletamiseni;
  • DiskisĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
    • XFS-failisĂŒsteemi jaoks on rakendatud mitmeotstarbelise inode'i lĂ€bimise vĂ”imalus (nt kvotide kontrollimisel). Uued ioctl BULKSTAT ja INUMBERS pakuvad juurdepÀÀsu viienda versiooni failisĂŒsteemi formaatide uutele omadustele, nagu inode'i loomise aeg ja BULKSTAT ja INUMBERS parameetrite mÀÀramine igale AG (Allocation Groups) rĂŒhmale;
    • Ext4-s lisatud tugi kaustadesse (sidumata plokkide).
      Tagatud on "i" (immutabilise) lipu töötlemine avatud failide jaoks (kirjutamise keeld, kui lipp oli seadistatud, kui fail oli juba avatud);
    • Btrfs-is on tagatud crc32c kiire rakendamine kĂ”ikidel arhitektuuridel;
    • CIFS-is on smbdirect'i toe koodist eemaldatud katseversiooni mĂ€rgis. SMB3-s on lisatud krĂŒptograafiliste algoritmide kasutamise vĂ”imalus GCM-reĆŸiimis. Uus mountimisvĂ”imalus on lisatud reĆŸiimi parameetrite vĂ€ljavĂ”tmiseks ACE (Access Control Entry) kirjetest. open() kutse jĂ”udlust on optimeeritud;
    • F2FS-is on lisatud vĂ”imalus piirata prĂŒgikoristaja tööd reĆŸiimis checkpoint=disable. Lisatud ioctl plokkide vahemike kustutamiseks F2FS-st, mis vĂ”imaldab osa suuruse dĂŒnaamilist kohandamist. F2FS-is on lisatud vahetusfaili paigutamise vĂ”imalus otse sisendi/vĂ€ljundi toetamisega. KĂ”igile kasutajatele on lisatud faili lukustamise ja nende failide plokkide mÀÀramine;
    • AsĂŒnkroonse I/O liidese io_uring jaoks on lisatud asĂŒnkroonse sendmsg() ja recvmsg() operatsioonide tugi;
    • UBIFS-failisĂŒsteemi on lisatud zstd-algoritmi abil kokkusurumise tugi ja allkirjastatud failisĂŒsteemide piltide valideerimise vĂ”imalus;
    • Ceph failisĂŒsteemis on lisatud SELinuxi turvategemiste tugi failidele;
    • NFSv4-s on rakendatud uus mountimisvĂ”imalus "nconnect=", mis mÀÀrab serveriga loodud ĂŒhenduste arvu. Selle ĂŒhenduste vahel jagatakse liiklus koormuse tasakaalustamise abil. Samuti loob NFSv4 server nĂŒĂŒd katalooge /proc/fs/nfsd/clients, mis sisaldavad teavet praeguste klientide kohta, sealhulgas avatud failide kohta;
  • Virtualiseerimine ja turvalisus
    • Tuuma koosseisu on lisatud hĂŒperviisor sisseehitatud seadmete jaoks ACRN, mis on kirjutatud reaalajas ĂŒlesannete tĂ€itmise ja kriitiliselt oluliste sĂŒsteemide kasutusvalmiduse jaoks. ACRN tagab minimaalsed kulud, garanteerib madala latentsuse ja adekvaatse reageerimisvĂ”ime suhtlemisel riistvaraga. Toetatakse CPU, sisendi/vĂ€ljundi, vĂ”rgusĂŒsteemide, graafika ja heli virtualiseerimist. ACRN-i saab kasutada mitmete isoleeritud virtuaalmasinate kĂ€itamiseks elektroonilistes juhtseadmetes, instrumentide paneelides, automaatsete teabesĂŒsteemides, tarbijate IoT-seadmetes ja muudes sisse ehitatud seadmetes;
    • Kasutaja reĆŸiimis Linux on lisatud on ‘ajaskĂ€igu’ reĆŸiim, mis vĂ”imaldab ajalugu aeglustada vĂ”i kiirendada virtuaalses UML keskkonnas, et lihtsustada ajaga seotud koodi tĂ”rkeotsingut. Lisaks on lisatud parameeter
      time-travel-start, mis vĂ”imaldab sĂŒsteemi kellade kĂ€ivitamist mÀÀratud hetkest epoch-vormingus;
    • Uued kĂ€skluse valikud tuumale ‘init_on_alloc’ ja ‘init_on_free’ on lisatud; nende aktiveerimisel lĂ€htestatakse eraldatud ja vabastatud mĂ€lupiirkonnad (tĂ€idetakse nullidega malloc-i ja free puhul), mis suurendab turvalisust, aga toob kaasa lisakulu initsialiseerimise eest;
    • Lisatud uus draiver virtio-iommu , millel on poolvirtualiseeritud seadme teostus, mis vĂ”imaldab saata IOMMU-pĂ€ringuid, nagu ATTACH, DETACH, MAP ja UNMAP, virtio transpordi peal ilma mĂ€lu lehtede tabelite emuleerimiseta;
    • Lisatud uus draiver virtio-pmem, mis vĂ”imaldab ligipÀÀsu salvestusseadmetele, mis on peegeldatud fĂŒĂŒsilisse aadressiruumi, nagu NVDIMM;
    • Tehtud on vĂ”imalus kinnitada krĂŒptograafilisi vĂ”tmeid kasutaja- vĂ”i vĂ”rgu nimedesse (vĂ”tmed pole valitud nimede piiridest vĂ€ljaspool kĂ€tte saadavad) ja kaitsta vĂ”tmeid ACL-iga;
    • KrĂŒptograafilisse alamsĂŒsteemi lisatud on lisatud vĂ€ga kiire mittekrĂŒptograafilise rĂ€si algoritmi tugi xxhash, mille kiirus sĂ”ltub mĂ€lutootlikkusest;
  • VĂ”rgusĂŒsteem
    • IPv4 aadresside töötlemine aadressivahemikus 0.0.0.0/8 on tagatud, mida varem ei olnud vĂ”imalik kasutada. Selle alamvĂ”rgu sissetoomine lubab jaotab veel 16 miljonit IPv4 aadressi;
    • Netfilteris nftables lisatud on lisatud tugi paketifiltrite riistvaralise kiirendamise mehhanismidele, rakendades draiverites Flow Block APIVerkkosovittimille voidaan luoda kokonaisia sÀÀntötaulukoita kaikilla ketjuilla. Aktivointi suoritetaan liittĂ€mĂ€llĂ€ NFT_TABLE_F_HW -lippu taulukkoon. Tuetaan yksinkertaisia metadatatasoja 3 ja 4, hyvĂ€ksymistoimenpiteitĂ€/hylkÀÀmisiĂ€, IP- ja verkkoporttiyhteensopivuuksia lĂ€hettĂ€jĂ€lle/vastaanottajalle ja protokollatyypille;
    • Lisatud Integroitu yhteyksien seurannan tuki verkkosiltaan, joka ei vaadi emuloivaa br_netfilter-kerrosta;
    • nf_tables lisatud SYNPROXY-moduulin tuki, joka toistaa samanlaista toimintaa iptablesista, on myös toteutettu mahdollisuus tarkistaa sÀÀnnöissĂ€ erikseen IPv4-otsikon tiettyjĂ€ vaihtoehtoja;
    • Mahdollisuus liittÀÀ BPF-ohjelmia system call -kutsuihin setsockopt() ja getsockopt(), mikĂ€ esimerkiksi mahdollistaa omien pÀÀsykĂ€sittimien liittĂ€misen nĂ€ihin kutsuihin. LisĂ€ksi on lisĂ€tty uusi kytkentĂ€piste (hook), jonka avulla voidaan kutsua BPF-ohjelmaa kerran jokaisessa RTT- (round-trip-time, ping) intervallissa;
    • IPv4:lle ja IPv6:lle on lisatud uusi reititystietojen sĂ€ilytymekanismi nexthop, joka on suunnattu reititystaulukoiden skaalautuvuuden parantamiseen. Suoritetut testit ovat osoittaneet, ettĂ€ uuden jĂ€rjestelmĂ€n avulla 743 000 reittiĂ€ ladattiin ytimeen vain 4,3 sekunnissa;
    • Bluetoothille rakendatud toiminnallisuus, joka on tarpeen LE ping -tuelle;
  • Varustus
    • Lisatud tuki x86-yhteensopiville prosessoreille Zhaoxin, jotka on kehitetty VIA Technologiesin ja Shanghai'n kaupungin viranomaisten yhteisen projektin tuloksena. ZX-sarjan CPU:t perustuvat x86-64 Isaiah -arkkitehtuuriin, joka jatkaa teknologioiden kehittĂ€mistĂ€ VIA Centaur;
    • suorituskykymoduuliin DRM (Direct Rendering Manager) sekĂ€ amdgpu- ja i915-grafiikkajĂ€rjestelmiin on lisĂ€tty HDR (korkea dynaaminen alue) metadatan tulkinnan, kĂ€sittelyn ja lĂ€hetyksen tuki HDMI-portin kautta, jolloin HDR-paneelit ja nĂ€ytöt, jotka pystyvĂ€t nĂ€yttĂ€mÀÀn lisĂ€valonalueita, voidaan kĂ€yttÀÀ;
    • amdgpu-ohjaimeen on lisĂ€tty alkututkimus AMD NAVI (RX5700) GPU:lle, joka sisĂ€ltÀÀ perustason ohjaimen, koodin nĂ€yttöjen kanssa vuorovaikutukseen (DCN2), GFX- ja laskentatuen (GFX10),
      SDMA 5 (System DMA0), virtalÀhteen hallintavÀlineet ja multimedia-koodaus-/dekoodausvÀlineet (VCN2). amdgpu:ssa on myös parannettu Vega12- ja Vega20-GPU-pohjaisten korttien tukea, joille on lisÀtty lisÀmahdollisuuksia muistin ja energianhallintaan;
    • Amdkfd-drivers (diskreetsete GPU-de jaoks, nagu Fiji, Tonga, Polaris) on lisatud tugi VegaM GPU-dele.
    • Intel GPU-de DRM-drivers Icelake kiipide jaoks rakendatud uus mitme segmentide gamma-korrekteerimise reĆŸiim. Lisatud tugi DisplayPorti kaudu edastamiseks YCbCr4:2:0 formaadis. Uued tarkvaraversioonid on saadaval. GuC SKL, BXT, KBL, GLK ja ICL jaoks. Tehtud vĂ”imalikuks ekraani toite vĂ€ljalĂŒlitamine asĂŒnkroonses reĆŸiimis. Lisatud toetatud renderdamise konteksti salvestamine ja taastamine Ironlake (gen5) ja gen4 (Broadwater - Cantiga) kiipide jaoks, mis vĂ”imaldab kasutajaruumi konteksti taastada GPU olek, kui liikuda ĂŒhe paketiprotsessi teise juurde.
    • Nouveau draiveris on kindlaks tehtud NVIDIA Turing TU116 kiip.
    • DRM/KMS-drivers ARM Komeda (Mali D71) ekraani töötlemise kiirendite jaoks on laiendatud, lisatud on skaleerimise, kihtide jagamise/ĂŒhendamise, pööramise, viivitatud salvestamise, AFBC, SMMU ja vĂ€rvikoodi formatide Y0L2, P010, YUV420_8/10BIT tugi.
    • MSM-draiveris on lisatud tugi Qualcommi A540 GPU Adreno seeriale, samuti MSM8998 DSI-kontrolleri tugi Snapdragon 835 jaoks.
    • Lisatud draiverid Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS LCD-paneelide jaoks.
      Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 ja VXT VL050-8048NT-C01.
    • Lisatud draiver dekodeerimiskiirenduse kasutamiseks
      videote jaoks, mis on saadaval Amlogic Meson SoC-is.
    • v3d draiveris (Broadcom Video Core V GPU jaoks, mida kasutatakse Raspberry Pi-s) on saadaval toetamine arvutusĆĄaderite haldamine.
    • Lisatud draiver SPI klaviatuuride ja puuteplaatide jaoks, mida kasutatakse kaasaegsetes Apple MacBook ja MacBook Pro mudelites.
    • Lisatud tĂ€iendav kaitse ioctl-kĂ”nede jaoks, mis on seotud floppy-draiveriga, ja draiver ise on mĂ€rgitud kui hoolduseta
      („orphaned“), mis tĂ€hendab, et selle testimine lĂ”petatakse. Draiver on seni sĂ€ilitatud kernelis, kuid selle korrektsust ei garanteerita. Draiverit peetakse vananenuks, kuna selle testimiseks on raske leida töökindlat riistvara - kĂ”ik soovitud vĂ€lishoidjad kasutavad tavaliselt USB-liidest.
    • Lisatud cpufreq-draiver Raspberry Pi plaatide jaoks, mis vĂ”imaldab dĂŒnaamiliselt hallata protsessori sageduse muutmist.
    • Lisatud toetus uutele ARM SoC Mediatek mt8183 (4x Cortex-A73 + 4x Cortex-A53), TI J721E (2x Cortex-A72 + 3x Cortex-R5F + 3 DSP + MMA) ja Amlogic G12B (4x Cortex-A73 + 2x Cortex-A53), samuti plaatidele:
      • Purism Librem5,
      • Aspeed BMC,
      • Microsoft Olympus BMC,
      • Kontron SMARC,
      • Novtech Meerkat96 (i.MX7),
      • ST Micro Avenger96,
      • Google Cheza (Qualcomm SDM845),
      • Qualcomm Dragonboard 845c (Qualcomm SDM845),
      • Hugsun X99 TV Box (Rockchip RK3399),
      • Khadas Edge/Edge-V/Captain (Rockchip RK3399),
      • HiHope RZ/G2M,
      • NXP LS1021A-TSN.

Samas Latiino-Ameerika Vaba Tarkvara Fond kujundas
variant tĂ€ielikult vaba kernel 5.3 — Linux-libre 5.3-gnu, puhastatud komponentidest ja draividest, mis sisaldavad mitte-vabad komponente vĂ”i koodilĂ”ike, mille kasutusala on tootja poolt piiratud. Uues vĂ€ljaandes on keelatud qcom draiverites, hdcp drm, allegro-dvt ja meson-vdec blobide laadimine.
Auuendatud blobide puhastamise kood draiverites ja sĂŒsteemides amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, helidraiver skylake'i jaoks ning samuti mikrokoodi dokumentatsioonis.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster