Linux kernelaren bertsioa 6.1

Bi hilabeteko garapenaren ondoren, Linus Torvaldsek Linux kernelaren 6.1 bertsioa aurkeztu zuen. Aldaketa aipagarrienen artean: Rust lengoaian kontrolatzaileak eta moduluak garatzeko laguntza, erabilitako memoria-orriak zehazteko mekanismoaren modernizazioa, BPF programetarako memoria-kudeatzaile berezi bat, KMSAN memoria arazoak diagnostikatzeko sistema, KCFI (Kernelk Control). -Flow Integrity) babes mekanismoa, Maple egitura zuhaitzaren sarrera.

Bertsio berriak 15115 garatzaileren 2139 konponketa biltzen ditu, adabakiaren tamaina 51 MBkoa da, hau da, 2 eta 6.0 nukleoetako adabakien tamaina baino 5.19 aldiz txikiagoa. Aldaketek 13165 fitxategiri eragin zien, 716247 kode-lerro gehitu ziren eta 304560 lerro ezabatu ziren. 45ean sartutako aldaketa guztien % 6.1 inguru gailu kontrolatzaileei dagozkie, aldaketen % 14 gutxi gorabehera hardware-arkitekturaren berariazko kodea eguneratzeari dagozkio, % 14 sare-pilari dagozkio, % 3 fitxategi-sistemei dagozkie eta % 3. nukleo barneko azpisistemekin lotuta daude.

Berrikuntza nagusiak 6.1 nukleoan:

  • Memoria eta sistema zerbitzuak
    • Rust bigarren hizkuntza gisa erabiltzeko gaitasuna gehitu da kontrolatzaileak eta nukleoaren moduluak garatzeko. Rust onartzen duen arrazoi nagusia gailu kontrolatzaile seguruak eta kalitate handikoak idaztea erraztea da, memoriarekin lan egitean erroreak egiteko aukera murriztuz. Rust-en euskarria lehenespenez desgaituta dago eta ez du eragiten Rust kernelaren eraikuntzaren menpekotasun gisa sartzea. Nukleoak orain arte adabakien gutxieneko bertsioa hartu du, 40 mila kode-lerrotik 13ra murriztu dena eta beharrezko gutxienekoa baino ez du eskaintzen, Rust hizkuntzan idatzitako nukleo-modulu sinple bat eraikitzeko nahikoa. Etorkizunean, lehendik dagoen funtzionaltasuna pixkanaka handitzea aurreikusten da, Rust-for-Linux adarretik beste aldaketa batzuk transferituz. Aldi berean, proposatutako azpiegitura erabiltzeko proiektuak garatzen ari dira NVMe diskoetarako kontrolatzaileak garatzeko, 9p sareko protokoloa eta Apple M1 GPU Rust hizkuntzan.
    • EFI duten AArch64, RISC-V eta LoongArch arkitekturan oinarritutako sistemetarako, nukleoaren irudi konprimituak zuzenean kargatzeko gaitasuna ezarri da. Nukleoaren irudiak kargatzeko, exekutatzeko eta deskargatzeko kudeatzaileak gehitu dira, EFI zboot-etik zuzenean deituta. EFI protokoloen datu-basetik protokoloak instalatzeko eta ezabatzeko kudeatzaileak ere gehitu dira. Lehen, abiarazte-kargatzaile batek egiten zuen desepaketatzea, baina orain kudeatzaile batek egin dezake nukleoan bertan - nukleoaren irudia EFI aplikazio gisa eratzen da.
    • Konposizioak adabakien zati bat barne hartzen du maila anitzeko memoria kudeatzeko eredu baten ezarpenarekin, errendimendu-ezaugarri desberdinak dituzten memoria-bankuak bereizteko aukera ematen duena. Adibidez, gehien erabiltzen diren orriak memoria azkarrenean gorde daitezke, eta gutxien erabiltzen diren orriak, berriz, nahiko motelean. Kernel-ek 6.1-ek memoria motelean erabiltzen diren orrialdeak non dauden zehazteko mekanismo bat aurkezten du, memoria azkarrera sustatu ahal izateko, eta memoria-mailen eta haien errendimendu erlatiboaren kontzeptu orokorra ere sartzen du.
    • MGLRU (Multi-Generational LRU) mekanismoa barne hartzen du, bi ilaretan oinarritutako LRU zaharra (Erabilitako azkenaldian) inplementazio zaharra ordezkatzen duena etapa anitzeko egitura batekin, hobeto zehazten duena zein memoria-orri diren benetan erabiltzen eta zeinetara eraman daitezkeen. trukatzeko partizioa.
    • Oracleko ingeniariek proposatutako "astigar zuhaitza" datu-egiturarako euskarria gehitu da, "zuhaitz gorri-beltza" egituraren ordezko eraginkorragoa dena. Maple Tree barrutiaren indexazioa onartzen duen B zuhaitzaren aldaera da eta prozesadore modernoen cachea modu eraginkorrean erabiltzeko diseinatuta dago. Memoria kudeatzeko azpisistema batzuk dagoeneko transferitu dira astigar zuhaitzera, eta horrek eragin positiboa izan du haien errendimenduan. Etorkizunean, astigarrak barrutiaren blokeoa ezartzeko erabil daiteke.
    • Crash_kexec() deiaren bidez larrialdi-itxialdi bat abiarazteko bereziki diseinatutako BPF programa "suntsitzaileak" sortzeko gaitasuna gehitu da BPF azpisistemara. Halako BPF programak beharrezkoak izan daitezke arazketa-helburuetarako, une jakin batean kraskadura-iraulketa bat sortzen hasteko. BPF programa bat kargatzean suntsitzaile-eragiketak atzitzeko, BPF_F_DESTRUCTIVE bandera zehaztu behar duzu, sysctl kernel.destructive_bpf_enabled aktibatu eta CAP_SYS_BOOT eskubideak izan.
    • BPF programetarako, posible da cgroup elementuak zenbatzea, baita hari edo zeregin zehatz baten baliabideak (fitxategiak, vma, prozesuak, etab.) zenbatzea ere. Erabiltzaileen eraztun-bufferak sortzeko mapa mota berri bat ezarri da.
    • Memoria esleitzeko dei berezi bat gehitu da BPF programetan (memoria esleitzailea), eta horrek memoria esleipen seguruagoa eskaintzen du BPF testuinguruan kmalloc() estandarrak baino.
    • Aldaketen lehen zatia integratuta dago, HID (Human Interface Device) interfazea duten sarrera-gailuetarako kontrolatzaileak sortzeko aukera eskainiz, BPF programen moduan inplementatuta.
    • Nukleoak guztiz kendu du kodea a.out fitxategi exekutagarriaren formatua onartzeko, 5.1 bertsioan zaharkituta zegoen eta 5.18 eta 5.19 bertsioetatik arkitektura nagusietarako desgaituta zegoen. 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.
    • Loongson 3 5000 prozesadoreetan erabilitako eta RISC ISA berria inplementatzen duten LoongArch instrukzio-multzoaren arkitekturan oinarritutako sistemetarako, MIPS eta RISC-V-en antzera, errendimendua neurtzeko gertaeretarako (perf gertaerak), kexec, kdump eta BPF JIT konpilaziorako laguntza ezartzen da. .
    • Io_uring I/O interfaze asinkronoak modu berri bat eskaintzen du, IORING_SETUP_DEFER_TASKRUN, eta, horri esker, eraztun-buffer-arekin lotutako lana aldi baterako atzeratzea ahalbidetzen du, aplikazio-eskaera bat egin arte, eta hori loteka lan egiteko eta prebentzioaren ondoriozko latentzia arazoak saihesteko erabil daiteke. okerreko denbora.
    • Erabiltzaile-espazioko prozesuei memoria-orri arrunten sorta bat memoria-orri handien multzo batean (Transparent Huge-Pages) bihurtzeko gaitasuna ematen zaie.
    • /dev/userfaultfd gailuaren inplementazioa gehitu da, userfaultfd() sistema-deiaren funtzionalitaterako sarbidea ahalbidetzen duena FSko sarbide-eskubideak erabiliz. Userfaultfd funtzionalitateari esker, esleitu gabeko memoria-orrietara (orrien akatsak) erabiltzaile-espazioan sartzeko kudeatzaileak sor ditzakezu.
    • GNU Make utilitatearen bertsioaren eskakizunak handitu egin dira - orain gutxienez 3.82 bertsioa behar da nukleoa eraikitzeko.
  • Disko azpisistema, I/O eta fitxategi sistemak
    • Btrfs fitxategi sisteman errendimendu-optimizazio garrantzitsuak egin dira; besteak beste, FIEMAP ioctl deiaren errendimendua handitu egin da. Buffer asinkronoen idazketarako laguntza gehitu da io_uring erabiltzen duten aplikazioetarako. Fs-verity-rekin babestutako fitxategientzako euskarria gehitu da "bidali" eragiketari.
    • Ext4 fitxategi-sistemak errendimendu-optimizazioak gehitu ditu aldizkariaren mantentze-lanarekin eta irakurtzeko soilik funtzionamenduarekin lotuta.
    • EROFS (Enhanced Read-Only File System) fitxategi-sistemak, irakurtzeko moduan eskuragarri dauden partizioetan erabiltzeko diseinatua, fitxategi-sistema desberdinetan bikoiztutako datuak partekatzeko gaitasuna ezartzen du.
    • Statx() sistema-deia gehitu da fitxategi bati zuzeneko I/O aplikatu daitekeen ala ez informazioa bistaratzeko.
    • O_TMPFILE bandera duten behin-behineko fitxategiak sortzeko laguntza gehitu da FUSE (Filesystems in User Space) azpisisteman.
  • Birtualizazioa eta segurtasuna
    • CFI (Control Flow Integrity) babes-mekanismoaren ezarpena ordezkatu da, funtzio baten zeharkako dei bakoitzaren aurretik egiaztapenak gehituz, exekuzio-agindu normala (kontrol-fluxua) urratzera ekar dezaketen portaera zehaztugabe batzuk detektatzeko. memorian gordetako funtzioetara erakusleak aldatzen dituzten ustiapenen erabileraren emaitza. LLVM proiektuko CFIren inplementazio estandarra Clang-en erabileran oinarritutako aukera batekin ordezkatu da, baina bereziki egokitua maila baxuko azpisistemak eta sistema eragileen nukleoak babesteko. LLVMn, Clang 16 bertsioan inplementazio berri bat eskainiko da eta "-fsanitize=kcfi" aukerarekin gaituko da. Inplementazio berriaren funtsezko aldea ez dagoela lotura-denboraren optimizazioekin (LTO) eta ez duela funtzio-erakusleak salto-taulan estekekin ordezkatzea dakar.
    • LSM moduluetarako (Linux Security Module), izen-espazioak sortzeko eragiketak atzematen dituzten kudeatzaileak sortzea posible da.
    • BPF programetan PKCS#7 sinadura digitalak egiaztatzeko tresnak eskaintzen dira.
    • Blokeorik gabeko moduan irekitzeko gaitasuna (O_NONBLOCK), 5.6 kernelean nahi gabe kendu zena, /dev/random-era itzuli da.
    • x86 arkitektura duten sistemetan, aldi berean exekuzioa eta idazketa ahalbidetzen duten kernel azpisistemek memoria-orrien maparen kasuan abisua gehitu da. Etorkizunean, memoria-mapaketa hori guztiz debekatzeko aukera aztertzen ari da.
    • KMSAN (Kernel Memory Sanitizer) arazketa-mekanismoa gehitu da nukleoan hasi gabeko memoria-erabilera detektatzeko, baita erabiltzailearen espazioaren eta gailuen arteko hasierarik gabeko memoria-ihesak ere.
    • Hobekuntzak egin dira getausazko deian erabiltzen den CRNG sasi-ausazko zenbaki-sorgailuan. Aldaketak Jason A. Donenfeld-ek prestatu zituen, VPN WireGuard-en egileak, eta sasi-ausazko zenbaki osoen erauzketaren segurtasuna hobetzea dute helburu.
  • Sarearen azpisistema
    • TCP pilak aukera ematen du (lehenespenez desgaituta) socket hash taulak bereizita erabiltzeko izen-espazio bakoitzerako, eta horrek errendimendua hobetzen du izen-espazio kopuru handia duten sistemetan.
    • Kodea kendu da ondarezko DECnet protokoloa onartzeko. Erabiltzaile-espazioko API zirriborroak lekuan uzten dira DECnet erabiltzen duten aplikazioak konpilatzeko, baina aplikazio hauek ezin izango dira sarera konektatu.
    • Netlink protokoloa dokumentatuta dago.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Amdgpu kontrolatzaileak DSC (Display Stream Compression) birbidaltzeko euskarria gehitu du datu galerarik gabeko konpresiorako, bereizmen oso altuak onartzen dituzten pantailekin informazioa trukatzean. Lanak AMD RDNA3 (RX 7000) eta CDNA (Instinct) plataformetarako laguntza eskaintzen jarraitzen du. DCN 3.2, SMU 13.x, NBIO 7.7, GC 11.x, PSP 13.x, SDMA 6.x eta GMC 11.x IP osagaietarako laguntza gehitu da. Amdkfd kontrolatzaileak (Polaris bezalako AMD GPU diskretuetarako) GFX 11.0.3rako laguntza eskaintzen du.
    • i915 (Intel) kontrolatzaileak Meteor Lake GPUrako euskarria dakar. Meteor Lake eta GPU berriek DP 2.0 (DisplayPort) interfazea onartzen dute. Alder Lake S mikroarkitekturan oinarritutako bideo-txartelen identifikatzaileak gehitu dira.
    • Apple Silicon, Intel SkyLake eta Intel KabyLake prozesadoreetan inplementatutako audio azpisistemetarako laguntza gehitu da. CS35L41 HDA audio kontrolatzaileak lo modua onartzen du. Apple Silicon, AMD Rembrant DSP, AMD Pink Sardine ACP 6.2, Everest ES8326, Intel Sky Lake eta Kaby Lake, Mediatek MT8186, NXP i.MX8ULP DSP, Qualcomm SC8280XP, SM8250, ASoC (ALSA System on Chip) euskarria gehitu da. SM8450 eta Texas Instruments SRC4392
    • LCD paneletarako euskarria gehitu da Samsung LTL101AL01, B120XAN01.0, R140NWF5 RH, Densitron DMT028VGHMCMI-1A TFT, AUO B133UAN02.1, IVO M133NW4J-R3, Innolux N120ACA-WH1, BOK116ACO-WH01.6, AUO B116UAN21. N116, INX N2BCA- EA116, INX N1BCN-EA0800, Multi-Inno Teknologia MI9FT-XNUMX.
    • Baikal-T1 SoC-n erabiltzen diren AHCI SATA kontrolagailuentzako euskarria gehitu da.
    • Bluetooth txipetarako laguntza gehitu da MediaTek MT7921, Intel Magnetor (CNVi, Konektibitate Integratua), Realtek RTL8852C, RTW8852AE eta RTL8761BUV (Edimax BT-8500).
    • Qualcomm haririk gabeko moduluen ath11k kontrolatzaileak 160 MHz-ko tartean eskaneatzeko espektrorako laguntza gehitu du, hari anitzeko NAPI inplementatu du eta Qualcomm WCN6750 Wi-Fi txipetarako laguntza hobetu du.
    • PinePhone teklatuaren kontrolatzaileak gehitu dira, InterTouch ukipen-paneletarako (ThinkPad P1 G3), X-Box Adaptive Controller, PhoenixRC Flight Controller, VRC-2 Car Controller, DualSense Edge Controller, IBM Operation Panel, XBOX One Elite urruneko kontrolagailuak, tabletak XP-PEN Deco Pro S eta Intuos Pro Small (PTH-460).
    • Aspeed HACE (Hash eta Crypto Engine) azeleragailu kriptografikoentzako kontrolatzailea gehitu da.
    • Thunderbolt/USB4 Intel Meteor Lake kontrolagailu integratuen laguntza gehitu da.
    • Sony Xperia 1 IV, Samsung Galaxy E5, E7 eta Grand Max, Pine64 Pinephone Pro telefonoetarako laguntza gehitu da.
    • ARM SoC eta plaketarako euskarria gehitu da: AMD DaytonaX, Mediatek MT8186, Rockchips RK3399 eta RK3566, TI AM62A, NXP i.MX8DXL, Renesas R-Car H3Ne-1.7G, Qualcomm IPQ8064-v2.0, IPQ8062, IPQ8065, IPQ8 BL i.MX8195MM OSM-S, MT4 (Acer Tomato), Radxa ROCK 4C+, NanoPi R1S Enterprise Edition, JetHome JetHub DXNUMXp. SoC Samsung, Mediatek, Renesas, Tegra, Qualcomm, Broadcom eta NXP-entzako kontrolatzaileak eguneratuak.

Aldi berean, Latin American Free Software Foundation-ek guztiz doako 6.1 nukleoaren bertsio bat osatu zuen - Linux-libre 6.1-gnu, askeak ez diren osagaiak edo kode-atalak dituzten firmwareko elementuak eta kontrolatzaileak garbitu zituena, zeinaren esparrua baita. fabrikatzaileak mugatuta. Bertsio berriak rtw8852b kontrolatzaile berria eta DTS fitxategiak garbitzen ditu Qualcomm eta MediaTek SoC ezberdinetarako AArch64 arkitekturan oinarritutako prozesadoreekin. Amdgpu, i915, brcmfmac, r8188eu, rtw8852c, Intel ACPI kontrolatzaile eta azpisistemetan blob garbiketa-kode eguneratua. Tm6000 telebista txartelak, cpia2 v4l, sp8870, av7110 kontrolatzaile zaharkituen garbiketa zuzendu da.

Iturria: opennet.ru

Gehitu iruzkin berria