Linux kernelaren bertsioa 5.16

Bi hilabeteko garapenaren ondoren, Linus Torvaldsek Linux kernel 5.16 oharra aurkeztu zuen. Aldaketa aipagarrienen artean: futex_waitv sistemaren deia Wine-n Windows-eko jokoen errendimendua hobetzeko, akatsen jarraipena fanotify bidez FSn, folioen kontzeptua memoria kudeatzeko sisteman, AMX prozesadorearen argibideetarako euskarria, memoria gordetzeko gaitasuna. sare-entxufeak, paketeen sailkapenaren euskarria netfilter "irteeran" fasean, DAMON azpisistema erabiliz erabiltzen ez diren memoria-eremuak modu proaktiboan kanporatzeko, gainkargak kudeatzea hobetuz idazketa-eragiketa bolumen handiarekin, disko anitzeko disko gogorren laguntza.

Bertsio berriak 15415 garatzaileren 2105 konponketa biltzen ditu, adabakiaren tamaina 45 MBkoa da (aldaketek 12023 fitxategiri eragin zioten, 685198 kode lerro gehitu ziren, 263867 lerro ezabatu ziren). 44an sartutako aldaketa guztien % 5.16 inguru gailu kontrolatzaileei dagozkie, aldaketen % 16 gutxi gorabehera hardware-arkitekturaren berariazko kodea eguneratzeari dagozkio, % 16 sare-pilari dagokio, % 4 fitxategi-sistemei dagokie eta % 4. nukleo barneko azpisistemekin lotuta daude.

Berrikuntza nagusiak 5.16 nukleoan:

  • Disko azpisistema, I/O eta fitxategi sistemak
    • Fanotify mekanismoari tresnak gehitu zaizkio fitxategi-sistemaren egoera kontrolatzeko eta akatsen agerraldiaren jarraipena egiteko. Erroreei buruzko informazioa gertaera mota berri bat erabiliz transmititzen da: FAN_FS_ERROR, erabiltzaileen espazioan exekutatzen diren monitorizazio sistemetan atzeman daitekeena administratzaileari berehala informatzeko edo berreskuratze prozesuak abiarazteko. Errore sorta bat gertatzen denean, fanotify-k ziurtatzen du lehen errore-mezua arazo-kontagailu orokor batekin batera bidaltzen dela, hutsegitearen arrazoiaren ondorengo azterketa errazteko. Erroreen jarraipena egiteko laguntza Ext4 fitxategi-sistemarako soilik inplementatzen da.
    • Idazketa-pilaketaren kudeaketa hobetua, idazketa-eragiketen bolumenak unitatearen errendimendua gainditzen duenean eta sistema prozesu baten idazketa-eskaerak blokeatzera behartuta dagoenean, dagoeneko bidalitako eskaerak osatu arte. Bertsio berrian, gainkargak eta zereginak blokeatzeari buruzko informazioa lortzeko erabiltzen den nukleo-mekanismoa guztiz birmoldatu da, inplementazio zaharrean arazoak izan baitziren idazketa gainkarga prozesatzea eta memoria-orriak trukean lekualdatzearekin lotzeko. atala sisteman memoria nahikorik ez dagoenean.
    • Btrfs-ek gailuen zonifikazioaren teknologiarako (Zoned Namespace) euskarria ezartzen du, disko gogorretan edo NVMe SSDetan erabiltzen den biltegiratze espazioa zonaldeetan banatzeko, bloke edo sektore multzoak osatzen dituztenak, eta horietan datuen gehiketa sekuentziala bakarrik onartzen da, talde osoa eguneratuz. blokeak. Horrez gain, optimizazio txikiak egin ziren inodoen erregistroan, eta horrek dbench probaren errendimendua % 3 handitu zuen eta latentzia % 11 murriztu zuen. Direktorioa erregistratzeko mekanismoa birdiseinatu da, zeinean zuhaitzean bilaketa eta blokeo eragiketa kopurua murriztu da eraginkortasuna areagotzeko. Batch moduan btree egituran elementuak txertatzea bizkortu egin da (elementuak masiboki sartzeko denbora %4 murriztu da, eta ezabatzea %12). Orrialde partzialak idaztean konpresioa erabiltzeko laguntza mugatua gehitu da, baita azpiorriak desfragmentatzeko gaitasuna ere. Prestaketak egin dira "bidali" komandoaren protokoloaren bigarren bertsiorako laguntza gaitzeko.
    • XFS fitxategi-sistemak memoria-kontsumoa murrizten du maiz erabiltzen diren elementuetarako lauza-cache bereiziak erabiliz eta datu-egitura batzuk murriztuz.
    • Ext4 fitxategi-sisteman, akatsen konponketak eta Inode taularen hasierako alferraren parametroen kalkulu zehatzagoa bakarrik adierazten dira.
    • Optimizazioak bloke gailuen mailan ezarri dira eragiketak CPU nukleoekin lotzeko eraginkortasuna nabarmen handitzeko.
    • Disko gogorren hasierako euskarria gehitu da disko independente anitzekin (multieraktorea), plater magnetikoaren eremu ezberdinetan hainbat sektoretan aldi berean sartzea posible eginez.
    • CDROM_TIMED_MEDIA_CHANGE CDROM_TIMED_MEDIA_CHANGE ioctl komando berri bat gehitu da disko optikoko unitate batean multimedia-aldaketa gertaerak detektatzeko.
    • EROFS (Enhanced Read-Only File System) fitxategi-sistemak biltegiratze gailu anitzetan lan egiteko gaitasuna gehitu du. Gailu desberdinak 32 biteko blokeko helbide-espazio bakarrean mapa daitezke. LZMA algoritmoa erabiliz konpresiorako laguntza ere gehitu da.
    • F2FS fitxategi-sistemara muntatzeko aukerak gehitu dira biltegian jartzen direnean fitxategien zatiketa kontrolatzeko (adibidez, biltegiratze zatikatuarekin lan egiteko optimizazioak arazteko).
    • CEPH-k direktorio asinkronoak sortzea eta ezabatzea ahalbidetzen du lehenespenez (erabili '-o wsync' marka muntatzean lehengo portaerara itzultzeko). Kanpoko objektuen kopia-eragiketen jarraipena egiten duten neurgailuen mantentze-lanak gehitu dira.
    • Tcpnodelay muntaketa-parametro bat gehitu da CIFS-ra, sareko socketerako tcp_sock_set_nodelay modua ezartzen duena, ilarak TCP pila bete arte itxarotea desgaitzen duena. Habiaraturiko DFS esteketarako (Distributed File System) laguntza gehitu da berriro muntatzean.
    • Batch moduan blokeo gailu batean eskaerak osatzeko laguntza gehitu da. Aldaketaren probak Optane unitateetatik ausazko irakurketa eragiketen intentsitatea handitu zela ikusi zuen 6.1-tik 6.6 milioi IOPS-ra CPU nukleo bakarrean.
  • Memoria eta sistema zerbitzuak
    • Futex_waitv sistema-dei berri bat gehitu da, hainbat futexeren egoera aldi berean kontrolatzeko aukera ematen duena sistema-dei bakarra erabiliz. Ezaugarri honek Windows-en eskuragarri dagoen WaitForMultipleObjects funtzionaltasuna gogorarazten du, eta futex_waitv bidez emulatzea erabilgarria izan daiteke Wine edo Proton-en exekutatzen diren Windows jokoen errendimendua hobetzeko. Horrez gain, futexeen aldibereko itxarotea ere erabil daiteke Linux-erako jokoen jatorrizko konposizioen errendimendua optimizatzeko.
    • Orri-folioen kontzeptua inplementatu da, zeinaren erabilerak kernel-azpisistema batzuetan memoria-kudeaketa bizkortuko du lan-karga arruntetan. Gaur egun, nukleoko memoria kudeatzeko azpisistema nagusia eta orrialde-cachearen ezarpena folioetara transferitu dira dagoeneko, eta etorkizunean fitxategi-sistemak transferitzea aurreikusten da. Etorkizunean, nukleoan orrialde anitzeko folioetarako euskarria gehitzea ere aurreikusi da.

      Tomek orrialde konposatuen antza dute, baina semantika hobetua eta lanaren antolaketa argiagoa dute. Sistemaren memoria kudeatzeko, erabilgarri dagoen RAM memoria-orrietan banatzen da, eta horien tamaina arkitekturaren arabera aldatzen da, baina x86 sistemetan kilobytetan neurtzen da (normalean 4096 byte). Sistema modernoek hamarnaka gigabyte RAM dituzte, eta horrek memoriaren kudeaketa konplexuagoa egiten du, memoria orri ugari prozesatu beharra dagoelako. Orrialde kopurua murrizteko, nukleoak aurretik inplementatu zuen orrialde konposatuen kontzeptua, memoria-orri fisiko bat baino gehiagoko egiturarekin. Baina bateratutako memoria-orriak manipulatzeko APIak asko utzi zuen nahi eta gainkostu gehigarriak ekarri zituen.

    • Zereginen programatzaileari kudeatzaile bat gehitu zaio CPUko cachearen clustering-a kontuan hartzen duena. Zenbait prozesadoretan, adibidez, Kunpeng 920 (ARM) eta Intel Jacobsville (x86), CPU nukleo kopuru jakin batek, normalean 4, L3 edo L2 cachea konbina dezake. Topologia horiek kontuan hartzeak zereginak PUZaren nukleoen artean banatzeko eraginkortasuna nabarmen hobetu dezake zereginen programatzailean, zeren eta PUZaren kluster berean zereginak mugitzeak memoriarako sarbidea handitzea eta cachearen gatazka murriztea ahalbidetzen du.
    • Datozen Intel Xeon Scalable zerbitzari-prozesadoreetan inplementatutako AMX (Advanced Matrix Extensions) argibideetarako laguntza gehitu da, Sapphire Rapids izenekoa. AMX-k TMM "TILE" erregistro konfiguragarri berriak eta erregistro horietako datuak manipulatzeko jarraibide berriak eskaintzen ditu, hala nola TMUL (Tile matrix MULtiply) matrizeen biderketarako.
    • Azken bertsioan gehitutako DAMON (Data Access MONitor) azpisisteman oinarritutako hainbat funtzio berri inplementatu dira, RAM-ko datuetarako sarbidea kontrolatzeko aukera ematen baitu erabiltzaileen espazioan exekutatzen den prozesuarekin lotuta. Esaterako, azpisistemak prozesuak bere funtzionamendu osoan zehar zein memoria-eremu atzitu zuen eta zein memoria-eremu geratu ziren erreklamatu gabe aztertzea ahalbidetzen du.
      • DAMON_RECLAIM atzitu ez diren memoria-eremuak identifikatzeko eta kanporatzeko. Mekanismoa memoria-orriak modu proaktiboan kanporatzeko erabil daiteke memoria librea agortzen ari denean.
      • DAMOS (Data Access Monitoring-based Operation Schemes) (Data Access Monitoring-based Operation Schemes) zehaztutako madvise() eragiketak aplikatzeko, hala nola, doako memoria gehigarria askatzea, memoriarako sarbide-maiztasun jakin bat finkatuta duten memoria-eremuak prozesatzeko. DAMOS parametroak debugfs bidez konfiguratzen dira.
      • Memoriaren helbide fisikoaren espazioa monitorizatzeko gaitasuna (lehen helbide birtualak soilik kontrolatu zitezkeen).
    • Zstd konpresio-algoritmoaren ezarpena 1.4.10 bertsiora eguneratu da, eta horrek nabarmen hobetu du konpresioa erabiltzen duten nukleoaren azpisistemen errendimendua (adibidez, nukleoaren irudi bat deskonprimitzea % 35 bizkortu da, konprimitutako datuak deskonprimitzearen errendimendua). Btrfs eta SquashFS-n % 15 handitu da, eta ZRAM-en - % 30. Nukleoak hasieran zstd-en inplementazio bereizia erabili zuen, 1.3.1 bertsioan oinarrituta, duela hiru urte baino gehiago kaleratu zena eta ez zuen optimizazio garrantzitsu asko barne hartzen. Uneko bertsiora pasatzeaz gain, gehitutako adabakiak zstd upstream adarrarekin sinkronizatzea ere errazten du, zstd biltegi nagusitik zuzenean nukleoan sartzeko kodea sortzeko aukera emanez. Etorkizunean, nukleoko zstd kodea eguneratzea aurreikusten da zstd liburutegiaren bertsio berriak kaleratzen diren heinean.
    • Hobekuntzaren zati handi bat eBPF azpisisteman egin da. Nukleoaren moduluaren funtzioak BPF programetatik deitzeko gaitasuna gehitu da. bpf_trace_vprintk() funtzioa inplementatu da, bpf_trace_printk() ez bezala, hiru argumentu baino gehiago aldi berean ateratzeko aukera ematen duena. Datuak biltegiratzeko egitura (BPF mapa) loraldi-iragazki berri bat gehitu da, eta, horri esker, izen bereko datu-egitura probabilista erabili dezakezu multzoan elementu baten presentzia zehazteko. BTF_KIND_TAG atributu berri bat gehitu da, BPF programetan etiketak funtzio-parametroekin lotzeko erabil daitekeena, adibidez, erabiltzaile-programetan akatsak hautematea errazteko. Libbpf-en, zure .rodata.*/.data.* atalak sortzea posible da, uprobe eta kprobe traza gertaeren euskarria ezarri da eta API bat gehitu da BTF mota guztiak objektu batetik bestera kopiatzeko. AF_XDP euskarria libbpf-tik libxdp liburutegi batera eraman da. MIPS arkitekturarako, JIT konpiladore bat ezarri da BPF makina birtualerako.
    • ARM64 arkitekturarako, tenporizadorerako ARMv8.6 luzapenetarako euskarria inplementatu da, sistema-erregistroen irudikapena autosinkronizatzeko aukera ematen dutenak barne, ISB instrukzioak erabili gabe.
    • PA-RISC arkitekturarako, memoriarekin lan egitean akatsak detektatzeko KFENCE mekanismoa erabiltzeko gaitasuna ezarri da, eta KCSAN lasterketa-baldintzen detektagailurako laguntza gehitu da.
    • Tracefs-en sarbide-eskubideak konfiguratu daitezke erabiltzaile eta talde indibidualen mailan; adibidez, orain talde jakin bateko kideei soilik baimendu diezaiekezu trazatzeko tresnetarako sarbidea.
  • Birtualizazioa eta segurtasuna
    • io_uring eta device-mapper azpisistemek auditoria-gertaerak sortzeko laguntza ezartzen dute. io_uring-ek LSM moduluen bidez sarbidea kontrolatzeko gaitasuna eskaintzen du. Openat2() sistema-deia ikuskatzeko gaitasuna gehitu da.
    • Nukleoaren kodea guztiz librea da switch-en etengabeko maiuskulak (kasu bloke bakoitzaren ondoren itzulerarik edo etenaldirik gabe). Nukleoa eraikitzean, orain "-Wimplicit-fallthrough" modua erabili ahal izango da.
    • Memcpy() funtzioa exekutatzean mugak estutzeko aldaketak barne.
    • io_uring I/O interfaze asinkronoak SELinux eta Smack moduluek definitutako segurtasun politikak I/O eragiketetan aplikatzeko gaitasuna ezartzen du.
    • IMA (Integrity Measurement Architecture) azpisistemak, kanpoko zerbitzu bati nukleoaren azpisistemen egoera egiaztatzeko aukera ematen diona, haien benetakotasuna ziurtatzeko, fitxategia zein talde-identifikatzailea (GID) edo erabiltzaileak duen talde-identifikatzailean oinarritutako arauak aplikatzeko gaitasuna ezartzen du. fitxategira sartzea dagokio.
    • Lehenespenez desgaituta zeuden seccomp() hariak Spectreren erasoetatik babesteko mekanismo aurreratu batzuk, beharrezkoak ez zirenak eta segurtasuna nabarmen hobetu ez zutenak, baina errendimenduari eragin negatiboa izan. Retpoline babesaren erabilera berrikusi da.
    • Kriptoloop mekanismoaren ezarpena kendu da, 2004an dm-crypt-ek ordezkatu zuena eta, behar izanez gero, algoritmo berberak onartzen ditu.
    • Lehenespenez, eBPF azpisistemarako pribilegiorik gabeko sarbidea debekatuta dago. Aldaketa BPF programak alboko kanaleko erasoen aurkako babesa saihesteko erabiltzea saihesteko egin zen. Beharrezkoa izanez gero, administratzaileak pribilegiorik gabeko erabiltzaileek eBPF erabiltzeko gaitasuna berrezarri dezake.
    • ACRN hipervisoreak, denbora errealeko zereginetarako eta misio kritikoko sistemetan erabiltzeko diseinatuta, gailu birtualak sortzeko/ezabatzeko eta MMIO gailuak birbidaltzeko laguntza gehitu du.
    • KPP (Key-agreement Protocol Primitives) definizioetarako laguntza gehitu da kriptografia-motorra, kriptosistemetarako kontrolatzaileak garatzeko logika sinplifikatuz.
    • Hyper-V hipervisoreak orain makina birtualaren isolamendu modua onartzen du, memoriaren edukia enkriptatzea dakarrena.
    • KVM hipervisoreak RISC-V arkitekturarako laguntza gehitu du. Ostalari ingurunean AMD SEV eta SEV-ES luzapenak erabiliz exekutatzen diren makina birtualak migratzeko gaitasuna ezarri da. AMD SEV (Secure Encrypted Virtualization) erabiliz enkriptatutako sistema gonbidatuen zuzeneko migraziorako APIa gehitu da.
    • PowerPC arkitekturarako, STRICT_KERNEL_RWX modua gaituta dago lehenespenez, eta horrek aldi berean idazteko eta exekutatzeko erabilgarri dauden memoria-orrien erabilera blokeatzen du.
    • 32 biteko x86 sistemetan, memoria hotplug-aren euskarria eten egin da, urte bat baino gehiago egon ez dena funtzionatzen.
    • liblockdep liburutegia nukleotik kendu da eta orain nukleotik bereizita mantenduko da.
  • Sarearen azpisistema
    • Socketetarako, SO_RESERVE_MEM aukera berri bat inplementatu da, zeinaren bidez memoria kopuru jakin bat gorde dezakezu socket baterako, beti egongo dena socketerako erabilgarri egongo dena eta ez den kenduko. Aukera hau erabiltzeak errendimendu handiagoa lortzeko aukera ematen du sareko pilako memoria-esleipena eta berreskuratzeko eragiketak murriztuz, batez ere sisteman memoria gutxiko baldintzak gertatzen direnean.
    • Multicast Tunneling automatikoa (RFC 7450) protokoloaren euskarria gehitu da, Multicast onartzen duten sareetatik multicast trafikoa bidaltzea ahalbidetzen duen sareetako hartzaileei. Protokoloak UDP paketeetan kapsulatzearen bidez funtzionatzen du.
    • IOAM (In situ Operations, Administration, and Maintenance) datuen kapsulatzea hobetu da garraio-paketeetan.
    • Transceptor-eko energia-kontsumo moduak kontrolatzeko gaitasuna gehitu zaio ethtool netlink APIari.
    • netfilter azpisistemak paketeak irteera mailan sailkatzeko gaitasuna ezartzen du, hau da. gidariak nukleoko sare pilatik pakete bat jasotzen duen fasean. nftables-en, dagozkien iragazkien euskarria 1.0.1 bertsioan agertu zen. Netfilter-ek garraioaren goiburuaren atzetik datozen UDP eta TCP (barneko goiburua / karga erabilgarria) barne goiburuak eta datuak konparatzeko eta aldatzeko gaitasuna gehitu du.
    • Arp_evict_nocarrier eta ndisc_evict_nocarrier sysctl parametro berriak gehitu dira, ezarrita dagoenean, ARP cachea eta ndisc (neighbor discovery) taula garbituko dira konexio hutsegite bat gertatuz gero (NOCARRIER).
    • Latentzia baxua, galera baxua eta errendimendu eskalagarria (L4S) moduak fq_codel (Atzerapen kontrolatua) sareko ilarak kudeatzeko mekanismoan gehitu dira.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Amdgpu kontrolatzaileak DP 2.0 zehaztapenerako (DisplayPort 2.0) eta DisplayPort tunelerako hasierako laguntza eskaintzen du USB4 bidez. Cyan Skillfish APUetarako (GPU Navi 1x hornituta) pantaila kontrolagailuetarako laguntza gehitu da. Yellow Carp APUetarako (Ryzen 6000 "Rembrandt" prozesadore mugikorretarako) euskarria zabaldu da.
    • i915 kontrolatzaileak Intel Alderlake S txipentzako euskarria egonkortzen du eta Intel PXP (Protected Xe Path) teknologiarako euskarria ezartzen du, zeinak hardwarez babestutako saio grafiko bat antolatzeko aukera ematen baitu Intel Xe txipdun sistemetan.
    • Nouveau kontrolatzailean lan egin da akatsak konpontzeko eta kodearen estiloa hobetzeko.
    • x86-rekin bateragarriak diren Vortex CPUetarako (Vortex86MX) euskarria gehitu da. Linux-ek antzeko prozesadoreetan egin du lan aurretik, baina zehaztutako CPUen identifikazio esplizitua behar zen Spectre/Meltdown erasoen aurkako babesa desgaitzeko, zehaztutako txipetarako aplikagarriak ez direnak.
    • Surface Pro 86 eta Surface Laptop Studiorako x8 plataformetarako hasierako laguntza gehitu da.
    • AMD Yellow Carp-en, Van Gogh APUetan erabiltzen diren soinu-txipak onartzeko kontrolatzailea gehitu da, soinu-sistema eta kodeketarako laguntza ere gehitu da Cirrus CS35L41, Maxim MAX98520/MAX98360A, Mediatek MT8195, Nuvoton NAU8821, NVIDIA Tegra210, NXP i.MX8ULP, Qualcomtekm AudioReach, Qualcomtekm AudioReach, Qualcomtekm AudioReach ALC5682I-VS, RT5682S, RT9120, Rockchip RV1126 eta RK3568.
    • ishtp_eclite kontrolatzailea gehitu da Intel PSE (Programmable Service Engine) kapsulatutako kontrolagailuetara sartzeko ISHTP (Integratd Sensor Hub Transport Protocol) erabiliz, hala nola bateria, tenperatura eta UCSI (USB Type-C Connector System Software) erlazionatutako informazio-interfazea.
    • Switch Pro eta Joy-Cons onartzen dituen Nintendo Switch joko kontrolagailuentzako kontrolatzailea gehitu da. Wacom Intuos BT tabletetarako (CTL-4100WL/CTL-6100WL) eta Apple 2021 Magic Keyboard-entzako laguntza gehitu da. Sony PlayStation DualSense kontrolagailuentzako laguntza hobetua. Xiaomi Mi saguaren alboko botoien laguntza gehitu da.
    • RT89 kontrolatzailea gehitu da Realtek 802.11ax haririk gabeko txipetarako laguntzarekin, baita Asix AX88796C-SPI Ethernet egokigailuetarako eta Realtek RTL8365MB-VC etengailuetarako kontrolatzaileak ere.
    • PCI eta PASemi i1c kontrolatzaileak gehitu dira Apple M2 txipentzat.
    • ARM SoΠ‘, gailu eta plaketarako laguntza gehitu da Raspberry Pi Compute Module 4, Fairphone 4, Snapdragon 690, LG G Watch R, Sony Xperia 10 III, Samsung Galaxy S4 Mini Value Edition, Xiaomi MSM8996 (Mi 5, Mi Note 2, Mi 5s). , Mi Mix, Mi 5s Plus eta Xiaomi Mi 5), Sony Yoshino (Sony Xperia XZ1 eta Sony Xperia XZ Premium), F(x)tec Pro1 QX1000, Microchip LAN966, CalAmp LMU5000, Exegin Q5xR5, sama7g5, Samsung ExynosAutov9, Rockchip RK3566 , RK3399 ROCK Pi 4A+, RK3399 ROCK Pi 4B+, Firefly ROC-RK3328-PC, Firefly ROC-RK3399-PC-PLUS, ASUS Chromebook Tablet CT100, Pine64 Quartz64-A, Netgear, GSP110, Netgear GSP7040, GSP32 Ren esas R2A8M* , Xilinx Kria, Radxa Zero, JetHub D779/H1, Netronix E1K70.

Iturria: opennet.ru

Gehitu iruzkin berria