Linux kernela 5.14

Linux kernela 5.14

Bi hilabeteko garapenaren ondoren, Linus Torvalds aurkeztu nukleoa askatzea Linux 5.14. Aldaketa aipagarrienen artean: quotactl_fd() eta memfd_secret() sistema-dei berriak, ide eta raw driver-ak kentzea, cgroup-erako I/O lehentasunezko kontrolatzaile berria, SCHED_CORE atazak antolatzeko modua, egiaztatutako BPF programa-kargagailuak sortzeko azpiegitura.

Bertsio berriak 15883 garatzaileren 2002 konponketa biltzen ditu, adabakiaren tamaina 69 MBkoa da (aldaketek 12580 fitxategiri eragin diete, 861501 kode-lerro gehitu ziren, 321654 lerro ezabatu ziren). 47an sartutako aldaketa guztien % 5.14 inguru gailu kontrolatzaileei dagozkie, aldaketen % 14 gutxi gorabehera hardware-arkitekturaren berariazko kodea eguneratzeari dagozkio, % 13 sare-pilari dagokio, % 3 fitxategi-sistemei dagokie eta % 3. nukleo barneko azpisistemekin lotuta daude.

Nagusia berrikuntzak:

  • Disko azpisistema, sarrera/irteera eta fitxategi sistemak:
    • cgroup-erako ezarrita I/O lehentasunezko kontrolatzaile berria - rq-qos, cgroup bakoitzeko kideek sortutako gailuak blokeatzeko eskaeren prozesatzeko lehentasuna kontrola dezakeena. Lehentasun kontroladorearen euskarria gehitu da mq-deadline I/O programatzaileari;
    • ext4 fitxategi sisteman ezarrita ioctl komando berria EXT4_IOC_CHECKPOINT, erregistrotik eta lotutako bufferetatik diskora behartzen dituen transakzio guztiak, eta erregistroak biltegiratzeko erabiltzen duen eremua gainidazten du. Aldaketa fitxategi-sistemetatik informazio-ihesak saihesteko ekimen baten baitan prestatu zen;
    • Btrfs-en sartu Errendimenduaren optimizazioak: fsync exekuzioan zehar atributu hedatuen alferrikako erregistroa ezabatuz, atributu hedatuak dituzten eragiketa intentsiboen errendimendua % 17 arte handitu da. Gainera, hedadurak eragiten ez duten mozketa-eragiketak egitean, sinkronizazio osoa desgaituta dago, eta horrek eragiketa-denbora % 12 murriztu du. Sysfs-i ezarpen bat gehitu da I/O banda zabalera mugatzeko FS egiaztatzean. Ioctl deiak gehitu dira gailuaren tamaina aldatzeko eta ezabatzeko eragiketak bertan behera uzteko;
    • XFSn berritu Buffer cache bat ezartzea, batch moduan memoria-orrien esleipenera transferitzen dena. Cachearen eraginkortasuna hobetu;
    • F2FS-k irakurtzeko soilik moduan lan egiteko aukera bat gehitu zuen eta bloke konprimitutako cache modua (compress_cache) ezarri zuen ausazko irakurketa-errendimendua hobetzeko. mmap() eragiketa erabiliz memoriara mapatutako fitxategiak konprimitzeko laguntza ezarri da. Fitxategien konpresioa maskararen bidez selektiboki desgaitzeko, nocompress muntatzeko aukera berri bat proposatu da;
    • exFAT kontrolatzailean lana egin da kamera digital batzuen biltegiratzearekin bateragarritasuna hobetzeko;
    • gehitutako sistema-deia quotactl_fd(), kuotak kudeatzeko aukera ematen duena ez gailu-fitxategi berezi baten bidez, baizik eta kuota aplikatzen zaion fitxategi-sistemari lotutako fitxategi-deskribatzailea zehaztuz;
    • IDE interfazea duten bloke-gailuen kontrolatzaile zaharrak kendu dira nukleotik; aspalditik libata azpisistemak ordezkatu ditu. Gailu zaharrentzako euskarria osorik mantendu da, aldaketak kontrolatzaile zaharrak erabiltzeko gaitasunari soilik dagozkio, unitateak /dev/hd* deitzen zirenean eta ez /dev/sd*;
    • "Gordina" kontrolatzailea nukleotik kendu da, eta, beraz, blokeatu gabeko gailuetarako sarbidea eskaintzen du /dev/raw interfazearen bidez. Funtzionalitate hau O_DIRECT bandera erabiliz aplikazioetan inplementatuta dago;
  • memoria eta sistema zerbitzuak:
    • planifikazio-modu berri bat inplementatu da ataza-programatzailean SCHED_CORE, PUZaren nukleo berean zein prozesu elkarrekin exekutatu daitezkeen kontrolatzeko aukera ematen duena. Prozesu bakoitzari cookie-identifikatzaile bat eslei dakioke, prozesuen arteko konfiantza-esparrua definitzen duena (adibidez, erabiltzaile edo edukiontzi berekoa izatea). Kodearen exekuzioa antolatzean, programatzaileak ziurta dezake CPU-nukleo bat jabe berarekin lotutako prozesuen artean soilik partekatzen dela, eta hori Spectreren eraso batzuk blokeatzeko erabil daiteke, zeregin fidagarriak eta fidagarriak ez diren SMT (Hyper Threading) hari berean exekutatzen saihestuz. ;
    • cgroup mekanismorako, kill operaziorako euskarria ezarri da, eta horri esker, taldearekin lotutako prozesu guztiak aldi berean hil ditzakezu (SIGKILL bidali) cgroup.kill fitxategi birtualean β€œ1” idatziz;
    • Memorian lerrokatu gabeko datuak atzitzean gertatzen diren zatitutako blokeoen detekzioari erantzuteko gaitasunak (Β«split locksΒ») erantzuteko gaitasunak zabaldu dira, instrukzio atomiko bat exekutatzen denean datuek CPUko cache-lerro bi zeharkatzen dituztelako. Blokeo horrek errendimenduaren beherakada nabarmena dakar, beraz, aurretik blokeoa eragin zuen aplikazioa indarrez amaitzea posible zen. Bertsio berriak nukleoaren komando-lerroko parametroa gehitzen du "split_lock_detect=ratelimit:N", eta horrek sistema osorako blokeo-eragiketen tasa segundoko muga bat definitzeko aukera ematen du, zatitutako blokeo baten iturri bihurtu den edozein prozesu gainditu ondoren. amaitu beharrean 20 ms gelditzera behartuta egotea;
    • cgroup bandwidth controller CFS (CFS bandwidth controller), zeinak prozesadore-denbora zenbat esleitu daitekeen zehazten duen cgroup bakoitzari, ekintza-iraupen jakin batek mugatutako mugak definitzeko gaitasuna du, eta horrek latentziari sentikorrak diren kargak hobeto erregulatzen ditu. Adibidez, cpu.cfs_quota_us 50000-n eta cpu.cfs_period_us 100000-n ezarriz gero, prozesu-talde bati 100 ms behin 50ms CPU denbora galtzea ahalbidetuko zaio;
    • gehitu BPF programa-kargatzaileak sortzeko hasierako azpiegitura, eta horrek gako digital fidagarri batekin sinatutako BPF programak soilik deskargatzeko aukera emango du;
    • FUTEX_LOCK_PI2 futex eragiketa berri bat gehitu du, denbora-muga kalkulatzeko tenporizadore monotonikoa erabiltzen duena, sistemak lo moduan emandako denbora kontuan hartzen duena;
    • RISC-V arkitekturarako, memoria-orri handietarako laguntza (Transparent Huge-Pages) eta erabiltzeko gaitasuna. KFENCE memoriarekin lan egitean akatsak identifikatzea;
    • madvise() sistema-deian, prozesuen memoriaren kudeaketa optimizatzeko bitartekoa eskaintzen duena, gehitu MADV_POPULATE_READ eta MADV_POPULATE_WRITE banderak irakurtzeko edo idazteko eragiketetarako mapatutako memoria-orri guztietan "orriaren akatsa" sortzeko, benetako irakurketa edo idazketa bat egin gabe (prefault). Banderen erabilera programaren exekuzioan atzerapenak murrizteko baliagarria izan daiteke, esleitu gabeko orri guztien "orriaren akatsa" kudeatzailearen exekuzio proaktiboari esker, aldi berean, haietarako benetako sarbidearen zain egon gabe;
    • proba unitateko sistema batean kunit gehitu QEMU ingurunean probak egiteko laguntza;
    • aztarnatzaile berriek gehitu dute: "osnoise" etenaldiak kudeatzeak eragindako aplikazio atzerapenen jarraipena egiteko, eta " timerlat " tenporizadorearen seinale batetik esnatzean atzerapenei buruzko informazio zehatza bistaratzeko;
  • birtualizazioa eta segurtasuna:
    • gehitu du sistema deia memfd_secret(), helbide-espazio isolatu batean memoria pribatuko eremu bat sortzeko aukera ematen duena, jabearen prozesuak soilik ikusgai, beste prozesuetan islatzen ez dena eta nukleorako zuzenean eskuragarri ez dagoena;
    • seccomp sistema-deien iragazketa-sisteman, blokeo-kudeatzaileak erabiltzaileen espaziora mugitzean, posible da eragiketa atomiko bat erabiltzea zeregin isolatu baterako fitxategi deskribatzailea sortzeko eta sistema-dei bat prozesatzen denean itzultzeko. Proposatutako eragiketak ebazten du arazoa Seinale bat iristen denean kudeatzailea etenarekin erabiltzailearen espazioan;
    • gehitu du mekanismo berria erabiltzailearen ID izen-espazioan baliabideen mugak kudeatzeko, rlimit kontagailu indibidualak "erabiltzaile-izen-espazioan" erabiltzaile batekin lotzen dituena. Aldaketak baliabide arrunten kontagailuen erabileraren arazoa konpontzen du erabiltzaile batek prozesuak edukiontzi ezberdinetan exekutatzen dituenean;
    • ARM64 sistemetarako KVM hipervisoreak sistema gonbidatuetan MTE (MemTag, Memory Tagging Extension) luzapena erabiltzeko gaitasuna gehitu du, eta horri esker, etiketak memoria esleitzeko eragiketa bakoitzari lotu eta erakusleen erabilera zuzena egiaztatzea antolatzea ahalbidetzen du, ustiapena blokeatzeko. Lehendik askatuta dauden memoria-blokeetan sartzeak eragindako ahuleziak, buffer-ak gainezka egiten ditu, hasieratu aurretik sartzeak eta egungo testuingurutik kanpo erabiltzeak;
    • ARM64 plataformak eskaintzen duen erakuslearen autentifikazioa bereizita konfigura daiteke orain nukleorako eta erabiltzailearen espaziorako. Teknologiari esker, ARM64 instrukzio espezializatuak erabil ditzakezu itzulera helbideak egiaztatzeko erakuslearen beraren goiko bitetan gordeta dauden sinadura digitalak erabiliz;
    • Erabiltzaile moduan Linux-en gehitu PCI bus birtual bat duten PCI gailuetarako kontrolatzaileak erabiltzeko laguntza, PCI-over-virtio kontrolatzaileak inplementatuta;
    • x86 sistemetarako, virtio-iommu parabirtualizatutako gailurako euskarria gehitu da, IOMMU eskaerak bidaltzeko aukera ematen duena, hala nola ATTACH, DETACH, MAP eta UNMAP, virtio garraioaren gainean memoria orrien taulak emulatu gabe;
    • Intel PUZentzat, Skylake familiatik Coffee Lakeraino, Intel TSX (Transactional Synchronization Extensions) erabiltzea desgaituta dago lehenespenez, hari anitzeko aplikazioen errendimendua hobetzeko tresnak eskaintzen dituztenak, beharrezkoak ez diren sinkronizazio eragiketak dinamikoki ezabatuz. Luzapenak desgaituta daude erasoak izateko aukera dela eta Zombieload, eragiketa asinkronoa eteteko mekanismoaren (TAA, TSX Asynchronous Abort) funtzionamenduan gertatzen den hirugarrenen kanalen bidezko informazio-ihesak manipulatzea;
  • sare azpisistema:
    • MPTCPren (MultiPath TCP) muinean integratzea jarraitua, TCP protokoloaren luzapena, TCP konexio baten funtzionamendua antolatzeko, paketeak aldi berean bidaltzeko hainbat ibilbidetan zehar IP helbide ezberdinekin lotutako sare-interfaze ezberdinen bidez. Ale berrian gehitu du IPv4 eta IPv6rako zure trafiko-hashing-politikak ezartzeko mekanismoa (bide anitzeko hash-politika), erabiltzailearen espaziotik aukera ematen duena paketeetako zein eremu erabiliko diren, kapsulatutakoak barne, bidearen aukeraketa zehazten duen hash-a kalkulatzeko. paketerako;
    • socket euskarria gehitu da garraio birtualean SOCK_SEQPACKET (datagramen transmisio ordenatua eta fidagarria);
    • SO_REUSEPORT socket mekanismoaren gaitasunak zabaldu dira, eta horri esker, hainbat entzuteko socket portu batera konekta daitezke aldi berean, sarrerako eskaerak SO_REUSEPORT bidez konektatutako socket guztietan aldi berean banatzen dituzten konexioak jasotzeko, hari anitzeko zerbitzari aplikazioen sorrera errazten duena. . Bertsio berrian gehitu Kontrola beste socket batera transferitzeko bitartekoak, hasiera batean hautatutako socketaren eskaera prozesatzen denean huts egiten bada (zerbitzuak berrabiaraztean banakako konexioen galeraren arazoa konpontzen du);
  • ekipamendua:
    • amdgpu kontrolatzailean ezarrita "Beige Goby" (Navi 6000) eta "Yellow Carp" izeneko AMD Radeon RX 24 GPU serie berrientzako laguntza, baita Aldebaran GPU (gfx90a) eta Van Gogh APUrako laguntza hobetua ere. Hainbat eDP panelekin aldi berean lan egiteko gaitasuna gehitu da. APU Renoirrentzat, bideo-memorian (TMZ, Trusted Memory Zone) buffer enkriptatutakoekin lan egiteko laguntza ezarri da. Beroan deskonektatzeko txartel grafikoetarako laguntza gehitu da. Radeon RX 6000 (Navi 2x) GPUetarako eta AMD GPU zaharretarako, ASPM (Active State Power Management) energia aurrezteko mekanismoaren euskarria gaituta dago lehenespenez, lehen Navi 1x, Vega eta Polaris GPUetarako soilik gaituta zegoena;
    • AMD txipetarako, memoria birtual partekaturako (SVM, partekatutako memoria birtuala) euskarria gehitu da HMM (Heterogeneous memory management) azpisisteman oinarrituta, zeinak memoria kudeatzeko unitate propioak dituzten gailuak erabiltzeko aukera ematen baitu (MMU, memoria kudeatzeko unitatea), memoria nagusia sar daitekeena. HMM erabiliz barne, GPUaren eta CPUren artean helbide-espazio partekatu bat antola dezakezu, eta bertan GPUak prozesuaren memoria nagusia atzi dezake;
    • hasierako laguntza teknologikoa gehitu du AMD Smart Shift, PUZaren eta GPUaren energia-kontsumoaren parametroak dinamikoki aldatzen dituena chipset bat eta AMD txartel grafikoa duten ordenagailu eramangarrietan errendimendua areagotzeko jokoetan, bideo edizioan eta 3D errendatzean;
    • Intel bideo-txartelen i915 kontrolatzailean barne Intel Alderlake P txipetarako laguntza;
    • drm/hyperv kontrolatzailea gehitu da Hyper-V egokitzaile grafiko birtualerako;
    • gehitu du Irteerako UEFI firmwareak edo BIOSak emandako EFI-GOP edo VESA framebuffer-a erabiltzen duen simpledrm kontrolatzaile grafikoa. Gidariaren helburu nagusia irteera grafikoaren gaitasunak eskaintzea da abioaren hasierako faseetan, DRM kontrolatzaile osoa erabili aurretik. Gidaria aldi baterako irtenbide gisa ere erabil daiteke oraindik jatorrizko DRM kontrolatzailerik ez duten ekipoetarako;
    • gehitu bat-bateko ordenagailu-laguntza Raspberry Pi 400;
    • Dell-wmi-privacy kontrolatzailea gehitu da Dell ordenagailu eramangarrietan sartzen diren kamera eta mikrofonoaren hardware-etengailuak onartzeko;
    • Lenovo ordenagailu eramangarrietarako gehitu du WMI interfazea BIOS parametroak aldatzeko sysfs /sys/class/firmware-attributes/ bidez;
    • zabaldu USB4 interfazea duten gailuetarako laguntza;
    • gehitu AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 eta Texas Instruments TAS2505 soinu-txartel eta kodeketarako laguntza. Audio-laguntza hobetua HP eta ASUS ordenagailu eramangarrietan. Gehituta adabakiak USB interfazea duten gailuetan audioa erreproduzitzen hasi aurretik atzerapenak murrizteko.

Iturria - opennet.ru.

Iturria: linux.org.ru