Linux kernelaren bertsioa 5.14

Bi hilabeteko garapenaren ondoren, Linus Torvaldsek Linux kernel 5.14 oharra aurkeztu zuen. 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 eguneratzearekin lotuta dago, % 13 sareko pilari dagokio, % 3 fitxategi-sistemei dagokie eta % 3. nukleo barneko azpisistemekin lotuta daude.

Berrikuntza nagusiak:

  • Disko azpisistema, I/O eta fitxategi sistemak
    • I/O lehentasunezko kontrolatzaile berri bat ezarri da cgroups-entzat, rq-qos, zeinak cgroup bakoitzeko kideek sortutako gailuak blokeatzeko eskaerak prozesatzeko lehentasuna kontrolatu dezakeena. Lehentasunezko kontroladorearen euskarria gehitu da mq-deadline I/O programatzaileari.
    • Ext4 fitxategi-sistemak ioctl komando berri bat inplementatzen du, EXT4_IOC_CHECKPOINT, aldizkariaren zain dauden transakzio guztiak eta haiei lotutako buffer-ak diskora garbitzera behartzen dituena, eta aldizkariak biltegiratzeko erabiltzen duen eremua gainidazten du. Aldaketa fitxategi-sistemetatik informazio-ihesak saihesteko ekimen baten baitan prestatu zen.
    • Errendimenduaren optimizazioak egin dira Btrfs-i: fsync exekuzioan zehar atributu hedatuen alferrikako erregistroa ezabatuz, atributu hedatuekin 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.
    • XFS-n, buffer-en cachearen ezarpena birdiseinatu da, memoria-orriak batch moduan esleitzera aldatu da. Cachearen eraginkortasuna hobetu da.
    • F2FS-k irakurtzeko soilik moduan funtzionatzeko aukera gehitzen du eta bloke konprimitutako cache modua (compress_cache) ezartzen du ausazko irakurketa-errendimendua hobetzeko. mmap() eragiketa erabiliz memoriara mapatutako fitxategiak konprimitzeko laguntza ezarri da. Maskara batean oinarritutako fitxategi-konpresioa selektiboki desgaitzeko, nocompress muntatzeko aukera berri bat proposatu da.
    • ExFAT kontrolatzailean lana egin da kamera digital batzuen biltegiratze batzuekin bateragarritasuna hobetzeko.
    • Quotactl_fd() sistema-deia gehitu da, eta horrek kuotak kudeatzeko aukera ematen dizu ez gailu-fitxategi berezi baten bidez, baizik eta kuota aplikatzen zaion fitxategi-sistemari lotutako fitxategi-deskribatzaile bat zehaztuz.
    • IDE interfazea duten bloke-gailuen kontrolatzaile zaharrak nukleotik kendu dira; aspalditik libata azpisistemak ordezkatu ditu.
    • "Gordina" kontrolatzailea nukleotik kendu da, eta, beraz, blokeatu gabeko sarbidea eskaintzen du /dev/raw interfazearen bidez. Funtzionalitate hau O_DIRECT bandera erabiltzen duten aplikazioetan inplementatuta dago.
  • Memoria eta sistema zerbitzuak
    • Ataza-antolatzaileak programazio-modu berri bat ezartzen du, SCHED_CORE, zein prozesu elkarrekin exekutatu daitezkeen PUZaren nukleo berean 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, fidagarriak eta fidagarriak ez diren zereginak SMT (Hyper Threading) hari berean exekutatu ez daitezen. .
    • cgroup-erako, 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, izan ere, instrukzio atomiko bat exekutatzen denean, datuek PUZaren cache-lerro bi zeharkatzen dituzte. 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 egongo da.
    • cgroup bandwidth controller CFS (CFS bandwidth controller), zeinak prozesadore-denbora zenbat esleitu daitekeen cgroup bakoitzari zehazten duena, denbora mugatuko mugak definitzeko gaitasuna ezartzen du, eta horrek latentziari sentikorrak diren lan-kargak hobeto erregulatzeko aukera ematen du. Adibidez, cpu.cfs_quota_us 50000-n eta cpu.cfs_period_us 100000-n ezarriz gero, prozesu-talde batek 100 ms behin 50 ms-ko CPU denbora galtzea ahalbidetuko du.
    • BPF programa-kargatzaileak sortzeko hasierako azpiegitura gehitu da, eta horrek gako digital fidagarri batekin sinatutako BPF programak soilik kargatzeko aukera emango du.
    • FUTEX_LOCK_PI2 futex eragiketa berri bat gehitu da, sistemak lo moduan igarotako denbora kontuan hartzen duen denbora-muga kalkulatzeko tenporizadore monotonikoa erabiltzen duena.
    • RISC-V arkitekturarako, memoria-orri handietarako (Transparent Huge-Pages) euskarria eta memoriarekin lan egitean erroreak detektatzeko KFENCE mekanismoa erabiltzeko gaitasuna ezartzen dira.
    • Madvise() sistema-deiak, prozesu baten memoria-kudeaketa optimizatzeko bitartekoak eskaintzen dituenak, MADV_POPULATE_READ eta MADV_POPULATE_WRITE banderak gehitu ditu "orriaren akatsa" sortzeko, irakurtzeko edo idazteko eragiketetarako mapatutako memoria-orri guztietan, benetako irakurketa edo idazketarik egin gabe. (lehenetsia). Banderen erabilera programaren exekuzioan atzerapenak murrizteko baliagarria izan daiteke, esleitu gabeko orrialde guztien "orriaren akatsa" kudeatzailearen exekuzio proaktiboa dela eta, haietara benetako sarbidearen zain egon gabe.
    • Kunit unitate-proba sistemak QEMU ingurunean probak egiteko laguntza gehitu du.
    • Aztarnatzaile berriak gehitu dira: "osnoise" etenaldiak kudeatzeak eragindako aplikazio-atzerapenak jarraitzeko eta "timerlat" tenporizadorearen seinale batetik esnatzean atzerapenei buruzko informazio zehatza bistaratzeko.
  • Birtualizazioa eta segurtasuna
    • Memfd_secret() sistema-deia gehitu da helbide-espazio isolatu batean memoria pribatuko eremu bat sortzeko, jabearen prozesuak soilik ikusgai, beste prozesuetan islatu gabe eta nukleorako zuzenean eskuragarri ez dena.
    • Seccomp sistema-deien iragazketa-sisteman, blokeo-kudeatzaileak erabiltzaile-espaziora eramatean, posible da eragiketa atomiko bakarra erabiltzea zeregin isolatu baterako fitxategi-deskribatzailea sortzeko eta sistema-dei bat prozesatzen denean itzultzeko. Proposatutako eragiketak seinale bat iristen denean kudeatzaile bat erabiltzailearen espazioan eteteko arazoa konpontzen du.
    • Erabiltzaile ID izen-espazioan baliabide-mugak kudeatzeko mekanismo berri bat gehitu da, rlimit-eko 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 ahultasunak, buffer gainezka, hasieratu aurretik sartzeak eta egungo testuingurutik kanpo erabiltzeak.
    • ARM64 plataformaren Pointer Authentication instalazioak orain bereizita konfigura daitezke nukleorako eta erabiltzailearen espaziorako. Teknologiari esker, ARM64 instrukzio espezializatuak erabil ditzakezu itzulera helbideak egiaztatzeko, erakuslearen goiko bitetan gordeta dauden sinadura digitalak erabiliz.
    • Erabiltzaile moduko Linux-ek PCI gailuetarako kontrolatzaileak erabiltzeko laguntza gehitu du PCI bus birtual batekin, PCI-over-virtio kontrolatzaileak inplementatuta.
    • X86 sistemetarako, virtio-iommu parabirtualizatutako gailurako euskarria gehitu da, ATTACH, DETACH, MAP eta UNMAP bezalako IOMMU eskaerak virtio garraioaren bidez bidaltzeko aukera emanez, 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, TAA (TSX Asynchronous Abort) mekanismoaren funtzionamenduan gertatzen diren hirugarrenen kanalen bidez informazio-ihesak manipulatzen dituzten Zombieload-en erasoen aukeragatik.
  • Sarearen azpisistema
    • MPTCP (MultiPath TCP) muinean integratzea, TCP protokoloaren luzapena, TCP konexio baten funtzionamendua antolatzeko, paketeak aldi berean bidaltzeko hainbat ibilbidetan zehar IP helbide ezberdinekin lotutako sare-interfaze ezberdinen bidez. Bertsio berriak zure trafiko-hashing-politikak ezartzeko mekanismo bat gehitzen du IPv4 eta IPv6rako (bide anitzeko hash-politika), erabiltzaileen espaziotik zehaztu ahal izateko paketeetako zein eremu, kapsulatutakoak barne, erabiliko diren hash-a kalkulatzeko orduan. paketearen bidea aukeratzea.
    • SOCK_SEQPACKET socketetarako euskarria (datagramen transmisio ordenatua eta fidagarria) gehitu da virtio garraio birtualean.
    • 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-aplikazioak sortzea errazten duena. . Bertsio berriak kontrola beste socket batera transferitzeko tresnak gehitzen ditu hasiera batean hautatutako socketaren eskaera prozesatzen denean hutsegiteen kasuan (zerbitzuak berrabiarazteko banakako konexioen galeraren arazoa konpontzen du).
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Amdgpu kontrolatzaileak AMD Radeon RX 6000 GPU serie berrientzako laguntza eskaintzen du, "Beige Goby" (Navi 24) eta "Yellow Carp" izenarekin, baita Aldebaran GPUrako (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) 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 (MMU, memoria kudeatzeko unitatea) erabiltzeko aukera ematen baitu. memoria nagusia sar daitekeena. Bereziki, HMM erabiliz, GPU eta CPUren artean helbide-espazio partekatu bat antola dezakezu, eta bertan GPUak prozesuaren memoria nagusia atzi dezake.
    • Hasierako euskarria gehitu da AMD Smart Shift teknologiarako, zeinak dinamikoki aldatzen dituen CPU eta GPUaren potentzia ezarpenak AMD chipset eta txartel grafikodun ordenagailu eramangarrietan, jokoetarako, bideo edizioetarako eta 3D errendatzeetarako errendimendua areagotzeko.
    • Intel txartel grafikoetarako i915 kontrolatzaileak Intel Alderlake P txipetarako euskarria du.
    • Hyper-V egokitzaile grafiko birtualerako drm/hyperv kontrolatzailea gehitu da.
    • Raspberry Pi 400 ordenagailu guztietarako laguntza gehitu da.
    • Dell-wmi-privacy kontrolatzailea gehitu da Dell ordenagailu eramangarrietan sartzen diren hardware kamera eta mikrofono etengailuak onartzeko.
    • Lenovo ordenagailu eramangarrietarako, WMI interfaze bat gehitu da BIOS ezarpenak aldatzeko sysfs /sys/class/firmware-attributes/ bidez.
    • USB4 interfazea duten gailuetarako laguntza hedatua.
    • 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 gehitu da. Audio-laguntza hobetua HP eta ASUS ordenagailu eramangarrietan. Adabakiak gehitu dira USB gailuetan audioa erreproduzitzen hasi aurretik atzerapenak murrizteko.

Iturria: opennet.ru

Gehitu iruzkin berria