Linux 6.2 kjarnaútgáfa

Eftir tveggja mánaða þróun kynnti Linus Torvalds útgáfu Linux kjarna 6.2. Meðal athyglisverðustu breytinganna: samþykki kóða undir Copyleft-Next leyfinu er leyfð, innleiðing RAID5/6 í Btrfs er bætt, samþætting stuðnings við Rust tungumálið heldur áfram, kostnaður við vernd gegn Rebleed árásum minnkar, hæfni til að stjórna minnisnotkun við endurritun er bætt við, vélbúnaði er bætt við fyrir TCP jafnvægi PLB (Protective Load Balancing), blendingur stjórnflæðisvörn (FineIBT) hefur verið bætt við, BPF hefur nú getu til að skilgreina eigin hluti og gagnaskipulag , rv (Runtime Verification) tólið er innifalið, orkunotkun við útfærslu á RCU læsingum hefur minnkað.

Nýja útgáfan inniheldur 16843 lagfæringar frá 2178 forriturum, plástrastærðin er 62 MB (breytingarnar höfðu áhrif á 14108 skrár, 730195 línum af kóða var bætt við, 409485 línum var eytt). Um 42% allra breytinga sem kynntar eru í 6.2 tengjast tækjum, um það bil 16% breytinga tengjast uppfærslu kóða sem er sértækur fyrir vélbúnaðararkitektúr, 12% tengjast netstafla, 4% tengjast skráarkerfum og 3% tengjast innri kjarna undirkerfum.

Helstu nýjungar í kjarna 6.2:

  • Minni og kerfisþjónusta
    • Það er leyfilegt að setja inn í kjarnakóðann og breytingar sem fylgja með Copyleft-Next 0.3.1 leyfinu. Copyleft-Next leyfið var búið til af einum af höfundum GPLv3 og er fullkomlega samhæft við GPLv2 leyfið, eins og lögfræðingar frá SUSE og Red Hat hafa staðfest. Samanborið við GPLv2 er Copyleft-Next leyfið mun fyrirferðarmeira og auðveldara að skilja (kynningarhlutinn og umtal um gamaldags málamiðlanir hafa verið fjarlægðar), skilgreinir tímaramma og verklag til að útrýma brotum og fjarlægir sjálfkrafa kröfur um copyleft fyrir gamaldags hugbúnað sem er eldri en 15 ára.

      Copyleft-Next inniheldur einnig sérstakt tæknistyrkjaákvæði, sem, ólíkt GPLv2, gerir þetta leyfi samhæft við Apache 2.0 leyfið. Til að tryggja fullan eindrægni við GPLv2, segir Copyleft-Next beinlínis að afleitt verk megi veita undir GPL leyfinu til viðbótar við upprunalega Copyleft-Next leyfið.

    • Uppbyggingin inniheldur „rv“ tólið, sem veitir viðmót fyrir samskipti frá notendarými við meðhöndlun RV (Runtime Verification) undirkerfisins, hannað til að athuga rétta virkni á mjög áreiðanlegum kerfum sem tryggja að bilanir séu ekki til staðar. Staðfesting er framkvæmd á keyrslutíma með því að tengja meðhöndlara við rakningarpunkta sem athuga raunverulega framvindu framkvæmdar á móti fyrirfram ákveðnu tilvísunardeterministic líkani vélarinnar sem skilgreinir væntanlega hegðun kerfisins.
    • zRAM tækið, sem gerir kleift að geyma skiptinguna í minni í þjöppuðu formi (blokkarbúnaður er búinn til í minni sem skipt er yfir með samþjöppun), útfærir getu til að endurpakka síðum með því að nota annað reiknirit til að ná hærra stigi af þjöppun. Meginhugmyndin er að bjóða upp á val á milli nokkurra reiknirita (lzo, lzo-rle, lz4, lz4hc, zstd), bjóða upp á eigin málamiðlanir á milli þjöppunar/þjöppunarhraða og þjöppunarstigs, eða ákjósanlegur í sérstökum aðstæðum (til dæmis til að þjappa stórum minnissíður).
    • Bætti við "iommufd" API til að stjórna I/O minnisstjórnunarkerfinu - IOMMU (I/O Memory-Management Unit) frá notendarými. Nýja API gerir það mögulegt að stjórna I/O minnissíðutöflum með því að nota skráarlýsingar.
    • BPF veitir möguleika á að búa til tegundir, skilgreina eigin hluti, byggja upp þitt eigið stigveldi af hlutum og búa til sveigjanlegan eigin gagnaskipulag, svo sem tengda lista. Fyrir BPF forrit sem fara í svefnstillingu (BPF_F_SLEEPABLE) hefur stuðningi við bpf_rcu_read_{,un}lock() læsingar verið bætt við. Innleiddur stuðningur við að vista task_struct hluti. Bætt við kortategund BPF_MAP_TYPE_CGRP_STORAGE, sem veitir staðbundna geymslu fyrir cgroups.
    • Fyrir RCU (Read-copy-update) blokkunarkerfi er valfrjálst kerfi „lata“ svarhringinga innleitt, þar sem nokkur svarhringingar eru unnin í einu með tímamæli í lotuham. Notkun fyrirhugaðrar hagræðingar gerir okkur kleift að draga úr orkunotkun á Android og ChromeOS tækjum um 5-10% með því að fresta RCU beiðnum á aðgerðalausum tíma eða lítið álag á kerfið.
    • Bætt við sysctl split_lock_mitigate til að stjórna því hvernig kerfið bregst við þegar það skynjar skiptan læsingu sem eiga sér stað þegar aðgangur er að ójöfnuðum gögnum í minni vegna þess að gögnin fara yfir tvær CPU skyndiminni línur þegar framkvæmt er atómfyrirmæli. Slíkar hindranir leiða til verulegrar lækkunar á frammistöðu. Að stilla split_lock_mitigate á 0 gefur aðeins viðvörun um að það sé vandamál, á meðan að stilla split_lock_mitigate á 1 veldur einnig ferlinu sem olli því að hægt var á læsingunni til að viðhalda afköstum fyrir restina af kerfinu.
    • Ný útfærsla á qspinlock hefur verið lögð til fyrir PowerPC arkitektúrinn, sem sýnir meiri afköst og leysir nokkur læsingarvandamál sem koma upp í undantekningartilvikum.
    • MSI (Message-Signaled Interrupts) truflunarkóði hefur verið endurunninn, útrýmt uppsöfnuðum byggingarvandamálum og bætt við stuðningi við að binda einstaka meðhöndlunaraðila við mismunandi tæki.
    • Fyrir kerfi sem byggjast á LoongArch leiðbeiningasetta arkitektúrnum sem notuð eru í Loongson 3 5000 örgjörvunum og innleiða nýja RISC ISA, svipað og MIPS og RISC-V, er stuðningur við strace, staflavörn, svefn- og biðham innleidd.
    • Möguleikinn á að úthluta nöfnum á svæði í sameiginlegu nafnlausu minni hefur verið veitt (áður var aðeins hægt að úthluta nöfnum á nafnlaus einkaminni sem úthlutað var tilteknu ferli).
    • Bætti við nýrri skipanalínubreytu kjarna „trace_trigger“, sem er hönnuð til að virkja rekjakveikju sem notuð er til að binda skilyrtar skipanir sem kallaðar eru þegar stjórnathugun er ræst (til dæmis trace_trigger=”sched_switch.stacktrace ef prev_state == 2″).
    • Kröfur fyrir útgáfu binutils pakkans hafa verið auknar. Að byggja kjarnann þarf nú að minnsta kosti binutils 2.25.
    • Þegar kallað er á exec() hefur verið bætt við möguleikanum á að setja ferli í tímanafnarými, þar sem tíminn er frábrugðinn kerfistímanum.
    • Við höfum byrjað að flytja viðbótarvirkni úr Rust-for-Linux útibúinu sem tengist notkun Rust tungumálsins sem annað tungumál til að þróa rekla og kjarnaeiningar. Ryðstuðningur er sjálfgefið óvirkur og leiðir ekki til þess að Ryð sé innifalið sem nauðsynleg kjarnabygging. Grunnvirkni sem boðið var upp á í síðustu útgáfu er stækkuð til að styðja við lágstigskóða, svo sem Vec gerð og fjölva pr_debug!(), pr_cont!() og pr_alert!(), sem og málsmeðferðarfjölva „#[vtable ]“, sem einfaldar vinnu með benditöflum á föllum. Gert er ráð fyrir að bæta við ryðbindingum á háu stigi yfir kjarna undirkerfi, sem gerir kleift að búa til fullgilda rekla í Rust, er búist við í framtíðarútgáfum.
    • „Char“ tegundin sem notuð er í kjarnanum er nú sjálfgefið lýst óundirrituð fyrir alla arkitektúra.
    • Úthlutunarbúnaður plötuminni - SLOB (helluúthlutunarbúnaður), sem var hannaður fyrir kerfi með lítið magn af minni, hefur verið lýst úrelt. Í stað SLOB, við venjulegar aðstæður er mælt með því að nota SLUB eða SLAB. Fyrir kerfi með lítið minni er mælt með því að nota SLUB í SLUB_TINY ham.
  • Diska undirkerfi, I/O og skráarkerfi
    • Endurbætur hafa verið gerðar á Btrfs sem miða að því að laga „skrifgat“ vandamálið í RAID 5/6 útfærslum (tilraun til að endurheimta RAID ef hrun á sér stað við ritun og það er ómögulegt að skilja hvaða blokk á hvaða RAID tæki var skrifað rétt, sem getur leitt til eyðileggingar blokka, sem samsvarar undirskrifuðum blokkum). Að auki virkja SSD-diskar nú sjálfkrafa ósamstillta brottkastsaðgerð þegar mögulegt er, sem gerir kleift að bæta afköst vegna skilvirkrar flokkunar fargaðgerða í biðraðir og vinnslu á biðröðinni af bakgrunnsörgjörva. Bætt afköst sendingar- og lseek-aðgerða, sem og FIEMAP ioctl.
    • Möguleikarnir til að stjórna frestað skrifum (tilbakaskrift, vistun í bakgrunni á breyttum gögnum) fyrir blokkartæki hefur verið aukin. Í sumum tilfellum, eins og þegar þú notar netblokkunartæki eða USB-drif, getur letiskrif leitt til mikillar vinnsluminni. Til að stjórna hegðun letilegra skrifa og halda stærð síðu skyndiminni innan ákveðinna marka hafa nýjar breytur strict_limit, min_bytes, max_bytes, min_ratio_fine og max_ratio_fine verið kynntar í sysfs (/sys/class/bdi/).
    • F2FS skráarkerfið útfærir atomic replace ioctl aðgerð, sem gerir þér kleift að skrifa gögn í skrá innan einni atomic aðgerð. F2FS bætir einnig við blokkum skyndiminni til að hjálpa til við að bera kennsl á virk notuð gögn eða gögn sem ekki hefur verið opnað fyrir í langan tíma.
    • Í ext4 skráarkerfinu eru aðeins villuleiðréttingar teknar fram.
    • ntfs3 skráarkerfið býður upp á nokkra nýja uppsetningarvalkosti: „nocase“ til að stjórna hástöfum í skráar- og möppuheitum; windows_name til að banna að búa til skráarnöfn sem innihalda stafi sem eru ekki gild fyrir Windows; hide_dot_files til að stjórna úthlutun falins skráarmerkis fyrir skrár sem byrja á punkti.
    • Squashfs skráarkerfið útfærir „threads=“ festingarvalkost, sem gerir þér kleift að skilgreina fjölda þráða til að samsíða afþjöppunaraðgerðum. Squashfs kynnti einnig möguleikann á að kortleggja notendaauðkenni uppsettra skráakerfa, notuð til að passa við skrár tiltekins notanda á uppsettri erlendri skiptingu við annan notanda á núverandi kerfi.
    • Innleiðing á POSIX aðgangsstýringarlistum (POSIX ACL) hefur verið endurunnin. Nýja útfærslan útilokar byggingarfræðileg vandamál, einfaldar viðhald kóðagrunns og kynnir öruggari gagnategundir.
    • fscrypt undirkerfið, sem er notað fyrir gagnsæja dulkóðun á skrám og möppum, hefur bætt við stuðningi við SM4 dulkóðunaralgrímið (kínverskur staðall GB/T 32907-2016).
    • Möguleikinn á að byggja kjarnann án NFSv2 stuðning hefur verið veittur (í framtíðinni ætla þeir að hætta alveg að styðja NFSv2).
    • Skipulag eftirlits með aðgangsrétti að NVMe tækjum hefur verið breytt. Veitir möguleika á að lesa og skrifa í NVMe tæki ef ritferlið hefur aðgang að sérstöku skrá tækisins (áður þurfti ferlið að hafa CAP_SYS_ADMIN leyfið).
    • Fjarlægði CD/DVD pakkann, sem var úreltur árið 2016.
  • Sýndarvæðing og öryggi
    • Ný aðferð til að vernda gegn Retbleed varnarleysinu hefur verið innleidd í Intel og AMD örgjörva, með því að nota símtalsdýptarmælingu, sem hægir ekki á vinnu eins mikið og núverandi vörn gegn Retbleed. Til að virkja nýja haminn hefur kjarnaskipanalínufæribreytan „retbleed=stuff“ verið lögð til.
    • Bætt við blendingi FineIBT leiðbeiningarflæðisvörn sem sameinar notkun Intel IBT (Indirect Branch Tracking) vélbúnaðarleiðbeiningar og kCFI (kernel Control Flow Integrity) hugbúnaðarvörn til að hindra stjórnflæðisbrot sem stafa af notkun á hetjudáðum sem breyta ábendingum sem geymdar eru í minni á aðgerðir. FineIBT leyfir framkvæmd með óbeinu stökki aðeins ef um er að ræða stökk í ENDBR leiðbeininguna, sem er sett í byrjun aðgerðarinnar. Að auki, á hliðstæðan hátt við kCFI vélbúnaðinn, er kjötkássa síðan athugað til að tryggja óbreytanleika ábendinga.
    • Bætt við takmörkunum til að loka fyrir árásir sem vinna með myndun „úps“ ríkja, eftir það er vandamálum lokið og ástandið er endurheimt án þess að stöðva kerfið. Með mjög miklum fjölda símtala í „úps“ ástandið kemur yfirflæði viðmiðunarteljarans (endurtalning), sem gerir kleift að nýta veikleika af völdum NULL frávísana bendils. Til að verjast slíkum árásum hefur takmörkun verið bætt við kjarnann fyrir hámarksfjölda „úps“ kveikja, eftir að farið er yfir það mun kjarninn hefja umskipti yfir í „læti“ ástandið og síðan endurræsa, sem gerir ekki kleift að ná fram fjölda endurtekningar sem þarf til að flæða yfir endurtalninguna. Sjálfgefið er að takmörkin eru sett á 10 þúsund „úps“ en ef þess er óskað er hægt að breyta því í gegnum oops_limit færibreytuna.
    • Bætt við stillingarbreytu LEGACY_TIOCSTI og sysctl legacy_tiocsti til að slökkva á getu til að setja gögn inn í flugstöðina með því að nota ioctl TIOCSTI, þar sem þessa virkni er hægt að nota til að skipta út handahófskenndum stöfum í inntaksbuffi flugstöðvarinnar og líkja eftir inntaki notanda.
    • Ný tegund innri uppbyggingar, encoded_page, er lögð til, þar sem neðri bitar bendillsins eru notaðir til að geyma viðbótarupplýsingar sem notaðar eru til að verjast því að bendilinn fari fyrir slysni (ef frávísun er í raun nauðsynleg, verður að hreinsa þessa viðbótarbita fyrst) .
    • Á ARM64 pallinum, á ræsingarstigi, er hægt að virkja eða slökkva á hugbúnaðarútfærslu Shadow Stack vélbúnaðarins, sem er notaður til að verjast því að skrifa yfir aftur heimilisfangið frá falli ef biðminni flæðir á staflanum ( kjarninn í vörninni er að vista heimilisfangið í sérstökum „skugga“ stafla eftir að stjórn hefur verið flutt yfir í aðgerðina og sótt heimilisfangið áður en aðgerðinni er hætt). Stuðningur við vélbúnaðar- og hugbúnaðarútfærslur á Shadow Stack í einni kjarnasamsetningu gerir þér kleift að nota einn kjarna á mismunandi ARM kerfum, óháð stuðningi þeirra við leiðbeiningar um auðkenningu bendils. Innleiðing hugbúnaðarútfærslu fer fram með því að skipta út nauðsynlegum leiðbeiningum í kóðanum við hleðslu.
    • Bætti við stuðningi við að nota ósamstillta útgöngutilkynningarkerfi á Intel örgjörvum, sem gerir kleift að greina eins skrefa árás á kóða sem keyrður er í SGX enclaves.
    • Lagt er til aðgerðir sem gera yfirsýnaranum kleift að styðja beiðnir frá Intel TDX (Trusted Domain Extensions) gestakerfum.
    • Kjarnasmíðastillingarnar RANDOM_TRUST_BOOTLOADER og RANDOM_TRUST_CPU hafa verið fjarlægðar, í þágu samsvarandi skipanalínuvalkosta random.trust_bootloader og random.trust_cpu.
    • Landlock vélbúnaðurinn, sem gerir þér kleift að takmarka samskipti hóps ferla við ytra umhverfi, hefur bætt við stuðningi við LANDLOCK_ACCESS_FS_TRUNCATE fána, sem gerir það mögulegt að stjórna framkvæmd skráarstytingaraðgerða.
  • Net undirkerfi
    • Fyrir IPv6 hefur stuðningi við PLB (Protective Load Balancing) verið bætt við, hleðslujafnvægi milli nettengla sem miðar að því að draga úr ofhleðslupunktum á gagnaverum. Með því að breyta IPv6 flæðismerkinu breytir PLB pakkaleiðum af handahófi til að jafna álag á skiptitengi. Til að draga úr endurröðun pakka er þessi aðgerð framkvæmd eftir aðgerðalausar tímabil þegar mögulegt er. Notkun PLB í gagnaverum Google hefur dregið úr hleðsluójafnvægi á skiptahöfnum um 60% að meðaltali, dregið úr pakkatapinu um 33% og dregið úr leynd um 20%.
    • Bætt við reklum fyrir MediaTek tæki sem styðja Wi-Fi 7 (802.11be).
    • Bætti við stuðningi fyrir 800 gígabita tengla.
    • Bætti við möguleikanum á að endurnefna netviðmót á flugu, án þess að hætta að vinna.
    • Tilkynning um IP töluna sem pakkinn barst til hefur verið bætt við logskilaboðin um SYN flóð.
    • Fyrir UDP hefur möguleikinn á að nota aðskildar kjötkássatöflur fyrir mismunandi nafnasvæði netkerfisins verið útfærð.
    • Fyrir netbrýr hefur stuðningur við MAB (MAC Authentication Bypass) auðkenningaraðferð verið innleidd.
    • Fyrir CAN samskiptaregluna (CAN_RAW) hefur stuðningur við SO_MARK falshaminn verið útfærður til að tengja við fwmark byggðar umferðarsíur.
    • ipset útfærir nýja bitamaska ​​færibreytu sem gerir þér kleift að stilla grímu sem byggir á handahófskenndum bitum í IP tölunni (til dæmis "ipset create set1 hash:ip bitmask 255.128.255.0").
    • Bætti við stuðningi við vinnslu innri hausa inni í gönguðum pökkum í nf_tables.
  • Оборудование
    • „Accel“ undirkerfinu hefur verið bætt við með innleiðingu ramma fyrir tölvuhraðla, sem hægt er að útvega annað hvort í formi einstakra ASICs eða í formi IP blokka inni í SoC og GPU. Þessir hröðlar miða aðallega að því að flýta fyrir lausn vélrænnar vandamála.
    • Amdgpu bílstjórinn inniheldur stuðning fyrir GC, PSP, SMU og NBIO IP íhluti. Fyrir ARM64 kerfi er stuðningur við DCN (Display Core Next) innleiddur. Útfærsla verndar skjáúttaks hefur verið færð úr því að nota DCN10 í DCN21 og er nú hægt að nota það þegar margir skjáir eru tengdir.
    • i915 (Intel) bílstjórinn hefur stöðugan stuðning fyrir stakur Intel Arc (DG2/Alchemist) skjákort.
    • Nouveau bílstjórinn styður NVIDIA GA102 (RTX 30) GPU sem byggir á Ampere arkitektúrnum. Fyrir nva3 (GT215) kort hefur möguleikinn til að stjórna baklýsingu verið bætt við.
    • Bætti við stuðningi fyrir þráðlausa millistykki byggð á Realtek 8852BE, Realtek 8821CU, 8822BU, 8822CU, 8723DU (USB) og MediaTek MT7996 flísum, Broadcom BCM4377/4378/4387 Bluetooth tengi, auk Motorcomm GE8521.
    • Bætt við ASoC (ALSA System on Chip) stuðning fyrir innbyggða hljóðflögur HP Stream 8, Advantech MICA-071, Dell SKU 0C11, Intel ALC5682I-VD, Xiaomi Redmi Book Pro 14 2022, i.MX93, Armada 38x, RK3588. Bætt við stuðningi fyrir hljóðviðmót Focusrite Saffire Pro 40. Realtek RT1318 hljóðmerkjamáli bætt við.
    • Bætt við stuðningi fyrir Sony snjallsíma og spjaldtölvur (Xperia 10 IV, 5 IV, X og X compact, OnePlus One, 3, 3T og Nord N100, Xiaomi Poco F1 og Mi6, Huawei Watch, Google Pixel 3a, Samsung Galaxy Tab 4 10.1.
    • Bætti við stuðningi við ARM SoC og Apple T6000 (M1 Pro), T6001 (M1 Max), T6002 (M1 Ultra), Qualcomm MSM8996 Pro (Snapdragon 821), SM6115 (Snapdragon 662), SM4250 (Snapdragon 460) (Snapdragon 6375), 695 borð , SDM670 (Snapdragon 670), MSM8976 (Snapdragon 652), MSM8956 (Snapdragon 650), RK3326 Odroid-Go/rg351, Zyxel NSA310S, InnoComm i.MX8MM, Odroid Go Ultra.

Á sama tíma myndaði Latin American Free Software Foundation útgáfu af algjörlega ókeypis 6.2 kjarnanum - Linux-libre 6.2-gnu, hreinsaður af hlutum fastbúnaðar og rekla sem innihalda ófrjálsa íhluti eða kóðahluta, umfang þeirra er takmarkað. af framleiðanda. Nýja útgáfan hreinsar upp nýjar hnökrar í nouveau drivernum. Blob hleðsla er óvirk í mt7622, ​​​​mt7996 wifi og bcm4377 bluetooth rekla. Hreinsaði upp blob nöfn í dts skrám fyrir Aarch64 arkitektúrinn. Uppfærður blob-hreinsunarkóði í ýmsum reklum og undirkerfum. Hætti að þrífa s5k4ecgx driverinn, þar sem hann var fjarlægður úr kjarnanum.

Heimild: opennet.ru

Bæta við athugasemd