Linux kernelaren bertsioa 5.19

Bi hilabeteko garapenaren ondoren, Linus Torvaldsek Linux kernel 5.19 oharra aurkeztu zuen. Aldaketa aipagarrienen artean: LoongArch prozesadorearen arkitekturarako euskarria, "BIG TCP" adabakien integrazioa, fscache-n eskariaren araberako modua, a.out formatua onartzeko kodea kentzea, ZSTD firmwarearen konpresiorako erabiltzeko aukera, interfaze bat. memoria erabiltzailearen espaziotik kanporatzea kudeatzea, sasi-ausazko zenbaki-sorgailuaren fidagarritasuna eta errendimendua areagotzea, Intel IFS (Eremuan Eskaneatzea), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Trusted Domain Extensions) eta ARM-entzako laguntza. SME (Scalable Matrix Extension) luzapenak.

Iragarpenean, Linusek esan zuen ziurrenik hurrengo nukleoaren bertsioa 6.0 zenbakia izango dela, 5.x adarrak bertsio-zenbakiko lehen zenbakia aldatzeko nahikoa bertsio pilatu dituelako. Zenbaketa-aldaketa arrazoi estetikoengatik egiten da eta seriean gai ugari pilatzearen ondorioz ondoeza arintzen duen urrats formala da.

Linusek ere aipatu zuen ARM64 arkitekturan oinarritutako Apple ordenagailu eramangarri bat erabili zuela (Apple Silicon) Asahi Linux banaketan oinarritutako Linux ingurune batekin oharra sortzeko. Ez da Linusen lan-estazio nagusia, baina plataforma erabili zuen nukleoaren lanerako egokia den probatzeko eta nukleoaren bertsioak ekoitzi ahal izango zituela ziurtatzeko ordenagailu eramangarri arin batekin bidaiatzen zuen bitartean. Aurretik, duela urte asko, Linusek esperientzia zuen garapenerako Apple ekipoak erabiltzen - behin ppc970 CPUan oinarritutako PC bat eta Macbook Air ordenagailu eramangarri bat erabili zituen.

Bertsio berriak 16401 garatzaileren 2190 konponketa biltzen ditu (azken bertsioan 16206 garatzaileren 2127 konponketa zeuden), adabakiaren tamaina 90 MB da (13847 fitxategi eragin zituzten aldaketak, 1149456 kode lerro gehitu ziren, 349177 kendu ziren). 39an sartutako aldaketa guztien % 5.19 inguru gailu kontrolatzaileei dagozkie, aldaketen % 21 gutxi gorabehera hardware-arkitekturaren berariazko kodea eguneratzeari dagozkio, % 11 sareko pilari dagokio, % 4 fitxategi-sistemei dagokie eta % 3. nukleo barneko azpisistemekin lotuta daude.

Berrikuntza nagusiak 5.19 nukleoan:

  • Disko azpisistema, I/O eta fitxategi sistemak
    • EROFS (Enhanced Read-Only File System) fitxategi-sistema, irakurtzeko soilik diren partizioetan erabiltzeko pentsatua, fscache azpisistema erabiltzeko bihurtu da, eta horrek datuen cachea eskaintzen du. Aldaketak nabarmen hobetu du EROFSn oinarritutako irudi batetik edukiontzi ugari abiarazten diren sistemen errendimendua.
    • Eskaeraren araberako irakurketa modu bat gehitu da fscache azpisisteman, EROFS optimizatzeko erabiltzen dena. Modu berriak tokiko sisteman kokatutako FS irudietatik irakurtzeko cachea antolatzeko aukera ematen du. Hasieran erabilgarri dagoen eragiketa-moduaren aldean, zeina sareko fitxategi-sistemen bidez transferitutako datuen fitxategi-sistema lokalean gordetzeko bideratzen dena, "eskariaren arabera" moduak datuak berreskuratzeko eta cachean idazteko funtzioak beste batean delegatzen ditu. atzeko planoko prozesua erabiltzailearen espazioan exekutatzen ari da.
    • XFS-k i-nodo batean milaka milioi atributu hedatu gordetzeko gaitasuna eskaintzen du. Fitxategi baten gehienezko hedadura-kopurua 4 milioitik 247ra igo da. Modu bat inplementatu da fitxategi hedatutako hainbat atributu aldi berean atomikoki eguneratzeko.
    • Btrfs fitxategi-sistemak blokeoekin lana optimizatu du, eta horrek errendimendua gutxi gorabehera % 7 handitu du nowait moduan zuzenean idaztean. NOCOW moduan (kopia-idazketarik gabe) eragiketen errendimendua % 3 handitzen da gutxi gorabehera. "Send" komandoa exekutatzean orrialdeko cachearen karga murriztu da. Azpi-orrialdeen gutxieneko tamaina 64K-tik 4Kra murriztu da (kernel-orriak baino txikiagoak diren azpiorrialdeak erabil daitezke). Erradix zuhaitz bat erabiltzetik XArrays algoritmora trantsizio bat egin da.
    • NFS zerbitzariari modu bat gehitu zaio eskaerak erantzuteari utzi dion bezero batek ezarritako blokeo-egoeraren kontserbazioa zabaltzeko. Modu berriak blokeoen garbiketa egun bat arte atzeratzeko aukera ematen du, beste bezero batek lehiakideen blokeoa eskatzen ez badu. Modu arruntean, blokeoa garbitzen da bezeroak erantzutea utzi eta 90 segundora.
    • Fanotify FS-ko gertaeren jarraipenaren azpisistemak FAN_MARK_EVICTABLE bandera inplementatzen du, eta horrekin desgaitu dezakezu helburuko i-nodoak ainguratzea cachean, adibidez, azpiadarrak alde batera uzteko, haien zatiak cachean ainguratu gabe.
    • FAT32 fitxategi-sistemako kontrolatzaileak statx sistema-deiaren bidez fitxategiak sortzeko uneari buruzko informazioa lortzeko laguntza gehitu du stat(ren) bertsio eraginkor eta funtzionalagoa ezarriz, fitxategiari buruzko informazio hedatua itzultzen duena.
    • Optimizazio esanguratsuak egin dira exFAT kontrolatzaileari 'dirsync' modua aktibatuta dagoenean sektore-talde bat aldibereko garbiketa ahalbidetzeko, sektorez sektoreko garbiketa sekuentziala egin beharrean. Optimizazioaren ondoren bloke-eskaeren kopurua murriztuz, SD txartelean direktorio ugari sortzeko errendimendua % 73-85 baino gehiago handitu da, kluster tamainaren arabera.
    • Nukleoak ntfs3 kontrolatzailearen lehen eguneraketa zuzentzailea dakar. Joan den urrian ntfs3 5.15 nukleoan sartu zenetik, kontrolatzailea ez da eguneratu eta garatzaileekiko komunikazioa galdu egin da, baina garatzaileek aldaketak argitaratzen hasi dira. Proposatutako adabakiek memoria ihesak eta hutsegiteen ondoriozko akatsak ezabatu zituzten, xfstests exekuzioarekin arazoak konpondu zituzten, erabili gabeko kodea garbitu eta akatsak konpondu zituzten.
    • OverlayFS-rako, muntatutako fitxategi-sistemen erabiltzaile IDak mapatzeko gaitasuna inplementatu da, muntatutako atzerriko partizio batean erabiltzaile jakin baten fitxategiak uneko sistemako beste erabiltzaile batekin lotzeko erabiltzen dena.
  • Memoria eta sistema zerbitzuak
    • Loongson 3 5000 prozesadoreetan erabiltzen den LoongArch instrukzio-multzoaren arkitekturarako hasierako euskarria gehitu da, RISC ISA berria inplementatzen duena, MIPS eta RISC-V-en antzekoa. LoongArch arkitektura hiru estilotan dago eskuragarri: 32 biteko txikitua (LA32R), 32 biteko arrunta (LA32S) eta 64 bitekoa (LA64).
    • Kodea kendu da a.out fitxategi exekutagarriaren formatua onartzeko, 5.1 bertsioan zaharkituta zegoena. A.out formatua aspalditik zaharkituta dago Linux sistemetan, eta a.out fitxategiak sortzea ez dute onartzen tresna modernoek Linux konfigurazio lehenetsietan. a.out fitxategien kargatzailea guztiz inplementa daiteke erabiltzailearen espazioan.
    • X86-ren abiarazte-aukeretarako laguntza eten egin da: nosp, nosmap, nosmep, noexec eta noclflush).
    • PUZaren h8300 arkitektura zaharkituaren (Renesas H8/300) euskarria, aspalditik laguntzarik gabe geratu zena, eten egin da.
    • 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. Horrelako blokeoek errendimenduaren beherakada nabarmena dakar. Lehen, lehenespenez, kernelak blokeoa eragin duen prozesuari buruzko informazioarekin abisua emango balu, orain prozesu problematikoa are gehiago motelduko da sistemaren gainerako errendimendua mantentzeko.
    • Intel prozesadoreetan inplementatutako IFS (In-Field Scan) mekanismorako euskarria gehitu da, zeinak maila baxuko PUZaren diagnostiko probak exekutatzeko aukera ematen baitu, tresna estandarrek detektatzen ez dituzten arazoak identifikatu ditzaketen erroreak zuzentzeko kodeetan (ECC) edo parekotasun-bitetan oinarrituta. . Egindako probak deskarga daitekeen firmware moduan daude, mikrokodeen eguneratzeen antzera diseinatuta. Proben emaitzak sysfs bidez eskuragarri daude.
    • Bootconfig fitxategi bat nukleoan txertatzeko gaitasuna gehitu da, komando-lerroko aukerez gain, nukleoaren parametroak ezarpen fitxategi baten bidez zehazteko. Kapsulatzea 'CONFIG_BOOT_CONFIG_EMBED_FILE=Β»/PATH/TO/BOOTCONFIG/FILEΒ»' muntaketa aukeraren bidez egiten da. Aurretik, bootconfig initrd irudiari erantsita zehazten zen. Nukleoan integratzeak bootconfig initrdrik gabeko konfigurazioetan erabiltzeko aukera ematen du.
    • Zstandard algoritmoa erabiliz firmware konprimitua deskargatzeko gaitasuna ezarri da. /sys/class/firmware/* kontrol-fitxategien multzo bat gehitu da sysfs-i, erabiltzailearen espaziotik firmware kargatzen hasteko.
    • Io_uring I/O interfaze asinkronoak bandera berri bat eskaintzen du, IORING_RECVSEND_POLL_FIRST, eta, ezarrita dagoenean, sareko eragiketa bat bidaliko du lehenik galdeketa erabiliz prozesatzeko, eta horrek baliabideak aurreztu ditzake eragiketa nolabaiteko atzerapenarekin prozesatzea onargarria den egoeretan. io_uring-ek socket() sistema-deirako laguntza ere gehitu zuen, marka berriak proposatu zituen fitxategi-deskribatzaileen kudeaketa errazteko, "multi-shot" modu bat gehitu zuen accept() deian hainbat konexio onartzeko eta NVMe birbidaltzeko eragiketak gehitu zituen. komandoak zuzenean gailura.
    • Xtensa arkitekturak KCSAN (Kernel Concurrency Sanitizer) arazketa tresnarako laguntza eskaintzen du, nukleoaren barruan lasterketa-baldintzak dinamikoki detektatzeko diseinatua. Lo egiteko modua eta koprozesadoreetarako laguntza ere gehitu da.
    • m68k arkitekturarako (Motorola 68000), Android Goldfish emulatzailean oinarritutako makina birtual bat (plataforma-simulatzailea) ezarri da.
    • AArch64 arkitekturarako, Armv9-A SME (Scalable Matrix Extension) luzapenetarako euskarria ezarri da.
    • eBPF azpisistemak mapa-egituretan idatzitako erakusleak gordetzeko aukera ematen du, eta erakusle dinamikoetarako laguntza gehitzen du.
    • Memoria berreskuratzeko mekanismo proaktibo berri bat proposatzen da, memoria.reclaim fitxategia erabiliz erabiltzaile-espazioaren kontrola onartzen duena. Zehaztutako fitxategian zenbaki bat idazten cgroup-arekin lotutako multzotik dagokien byte-kopurua kanporatzen saiatuko da.
    • Memoriaren erabileraren zehaztasuna hobetu da zswap mekanismoa erabiliz truke-partizioan datuak konprimitzean.
    • RISC-V arkitekturarako, 32 biteko exekutagarriak 64 biteko sistemetan exekutatzeko euskarria eskaintzen da, memoria orrietara atributu murriztaileak lotzeko modu bat gehitzen da (adibidez, cachea desgaitzeko) eta kexec_file_load() funtzioa inplementatzen da. .
    • 32 biteko Armv4T eta Armv5 sistemetarako euskarria ezartzea ARM sistema ezberdinetarako egokiak diren plataforma anitzeko nukleoen eraikuntza unibertsaletan erabiltzeko egokituta dago.
  • Birtualizazioa eta segurtasuna
    • EFI azpisistemak informazio sekretua sistema gonbidatuetara konfidentzialki transferitzeko gaitasuna ezartzen du sistema ostalariari jakinarazi gabe. Datuak securityfs-eko security/coco direktorioaren bidez ematen dira.
    • Blokeo babes moduak, root erabiltzaileak nukleorako sarbidea mugatzen duena eta UEFI Secure Boot saihesteko bideak blokeatzen dituena, nukleoaren arazketa manipulatuz babesa saihestu ahal izateko hutsune bat ezabatu du.
    • Sasi-ausazko zenbaki-sorgailuaren fidagarritasuna eta errendimendua hobetzera zuzendutako adabakiak daude barne.
    • Clang 15 erabiliz eraikitzean, nukleoaren egiturak aleatorizatzeko mekanismoaren euskarria ezartzen da.
    • Landlock mekanismoak, prozesu talde batek kanpoko ingurunearekin duen elkarrekintza mugatzeko aukera ematen duena, fitxategien izena aldatzeko eragiketen exekuzioa kontrolatzeko aukera ematen duten arauetarako laguntza eskaintzen du.
    • IMA (Integrity Measurement Architecture) azpisistema, sinadura digitalak eta hashak erabiliz sistema eragileen osagaien osotasuna egiaztatzeko diseinatua, fitxategiak egiaztatzeko fs-verity modulua erabiltzera aldatu da.
    • EBPF azpisistemarako pribilegiorik gabeko sarbidea desgaitzean ekintzen logika aldatu egin da - aurretik bpf() sistema-deiarekin lotutako komando guztiak desgaituta zeuden, eta 5.19 bertsiotik hasita, objektuak sortzea ez dakarten komandoetarako sarbidea uzten da. . Portaera honek prozesu pribilegiatua behar du BPF programa bat kargatzeko, baina gero pribilegiorik gabeko prozesuek programarekin elkarreragin dezakete.
    • AMD SEV-SNP (Secure Nested Paging) luzapenerako euskarria gehitu da, habiaraturiko memoria-orrialdeen taulekin lan segurua eskaintzen duena eta AMD EPYC prozesadoreetan "undeSERVed" eta "SEVerity" erasoetatik babesten duena, AMD SEV (Secure Encrypted Virtualization) saihestea ahalbidetzen duena. ) babes-mekanismoa.
    • Intel TDX (Trusted Domain Extensions) mekanismorako laguntza gehitu da, makina birtualen enkriptatutako memorian sartzeko hirugarrenen saiakerak blokeatzeko aukera ematen duena.
    • Bloke gailuak emulatzeko erabiltzen den virtio-blk kontrolatzaileak I/O-rako euskarria gehitu du galdeketak erabiliz, eta horrek, proben arabera, latentzia %10 inguru murriztu du.
  • Sarearen azpisistema
    • Paketeak BIG TCP adabaki batzuk biltzen ditu, TCP pakete baten gehienezko pakete-tamaina 4GBra handitzeko aukera ematen dutenak, abiadura handiko barneko datu-zentro sareen funtzionamendua optimizatzeko. 16 biteko goiburuko eremuaren tamaina duen paketeen tamaina antzeko handitzea lortzen da "jumbo" paketeen ezarpenaren bidez, zeinen IP goiburuko tamaina 0-n ezarrita dagoen eta benetako tamaina 32 biteko bereizi batean transmititzen da. eremua aparteko goiburu erantsi batean. Errendimendu-probetan, paketearen tamaina 185 KB-n ezarriz gero, % 50 handitu zen errendimendua eta datu-transferentziaren latentzia nabarmen murriztu zen.
    • Paketeak uzteko arrazoiak (arrazoi-kodeak) jarraitzeko tresnak sareko pilan integratzeko lanean jarraitu zen. Arrazoi-kodea paketearekin lotutako memoria askatzen denean bidaltzen da eta, besteak beste, goiburuko akatsen ondorioz paketeak baztertzea, rp_filter spoofing-a hautematea, checksum baliogabea, memoria gabezia, IPSec XFRM arauak abiarazita, TCP sekuentzia-zenbaki baliogabea, etab.
    • MPTCP (MultiPath TCP) konexioak atzera erortzeko laguntza gehitu da TCP arrunta erabiltzeko, MPTCP funtzio jakin batzuk erabili ezin diren egoeretan. MPTCP TCP protokoloaren luzapena da, TCP konexio baten funtzionamendua antolatzeko, paketeak aldi berean bidaltzeko hainbat ibilbidetan zehar IP helbide ezberdinekin lotutako sare-interfaze ezberdinen bidez. API gehitu da MPTCP korronteak erabiltzailearen espaziotik kontrolatzeko.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Amdgpu kontrolatzailearekin erlazionatutako 420k kode-lerro baino gehiago gehitu dira, eta horietatik 400k lerro inguru AMD GPU kontrolatzailean ASIC erregistroko datuetarako automatikoki sortutako goiburuko fitxategiak dira, eta beste 22.5k lerro AMD SoC21-rako euskarriaren hasierako ezarpena ematen dute. AMD GPU kontrolatzailearen tamaina osoak 4 milioi kode-lerro gainditu zituen. SoC21ez gain, AMD kontrolatzaileak SMU 13.x (Sistema Kudeatzeko Unitatea) euskarria dakar, USB-C eta GPUVMrako euskarria eguneratua eta RDNA3 (RX 7000) eta CDNA (AMD Instinct) hurrengo belaunaldiei laguntzeko prest dago. plataformak.
    • i915 kontrolatzaileak (Intel) energiaren kudeaketari lotutako gaitasunak zabaldu ditu. Ordenagailu eramangarrietan erabilitako Intel DG2 (Arc Alchemist) GPUentzako identifikatzaileak gehitu ziren, Intel Raptor Lake-P (RPL-P) plataformarako hasierako euskarria eman zuten, Arctic Sound-M txartel grafikoei buruzko informazioa gehitu zuten, konputazio-motorretarako ABI inplementatu zuten, gailuetarako gehitu zen. DG2 txartelak Tile4 formatuan onartzen dira; Haswell mikroarkitekturan oinarritutako sistemetan, DisplayPort HDR euskarria ezartzen da.
    • Nouveau kontrolatzailea drm_gem_plane_helper_prepare_fb kudeatzailea erabiltzera pasatu da; memoria estatikoko esleipena aplikatu zaie egitura eta aldagai batzuei. NVIDIAk Nouveau-n kernel moduluen erabilerari dagokionez, orain arteko lana akatsak identifikatzea eta kentzea da. Etorkizunean, argitaratutako firmwarea gidariaren errendimendua hobetzeko erabiltzea aurreikusten da.
    • M1 txipan oinarritutako Apple ordenagailuetan erabiltzen den NVMe kontrolagailurako kontrolatzailea gehitu da.

Aldi berean, Latin American Free Software Foundation-ek 5.19 guztiz doako nukleoaren bertsio bat osatu zuen - Linux-libre 5.19-gnu, askeak ez diren osagaiak edo kode-atalak dituzten firmwareko elementuak eta kontrolatzaileak garbitu zituena, zeinaren esparrua baita. fabrikatzaileak mugatuta. Bertsio berriak pureLiFi X/XL/XC eta TI AMx3 Wkup-M3 IPC-ren kontrolatzaileak garbitzen ditu. Blob garbiketa-kode eguneratua Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Peripheral Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, pu3-imgu kontrolatzaile eta azpisistemetan. Qualcomm AArch64 devicetree fitxategiak prozesatzea inplementatu da. Sound Open Firmware osagaien izen-eskema berrirako laguntza gehitu da. Kutxazainen Ambassador gidaria garbitzeari utzi zion, nukleotik kendu zena. HDCP eta Mellanox Core-n blob garbiketaren kudeaketa kconfig etiketa bereiztera eraman da.

Iturria: opennet.ru

Gehitu iruzkin berria