Pēc divu mēnešu izstrādes Linuss Torvalds izlaida kodolu. Linux 6.2. Starp ievērojamākajām izmaiņām: tagad ir atļauta Copyleft-Next koda licences pieņemšana, uzlabota RAID5/6 ieviešana Btrfs, Rust valodas atbalsts ir vēl vairāk integrēts, samazinātas Retbleed uzbrukumu aizsardzības izmaksas, pievienota iespēja regulēt atmiņas patēriņu atrakstīšanas laikā, TCP ir pievienots PLB (aizsargājošas slodzes līdzsvarošanas) mehānisms, pievienots hibrīda izpildes plūsmas aizsardzības mehānisms (FineIBT), BPF tagad ļauj definēt pielāgotus objektus un datu struktūras, ir iekļauta rv (izpildes laika verifikācijas) utilīta un samazināts enerģijas patēriņš RCU bloķēšanas ieviešanā.
Jaunajā versijā ir iekļauti 16843 2178 labojumi no 62 14108 izstrādātājiem, ielāpa izmērs ir 730195 MB (izmaiņas skāra 409485 42 failus, tika pievienotas 6.2 16 koda rindas, 12 4 rindiņas tika izdzēstas). Aptuveni 3% no visām izmaiņām, kas ieviestas XNUMX versijā, ir saistītas ar ierīču draiveriem, aptuveni XNUMX% izmaiņu ir saistītas ar aparatūras arhitektūrām raksturīgā koda atjaunināšanu, XNUMX% ir saistītas ar tīkla steku, XNUMX% ir saistītas ar failu sistēmām un XNUMX% ir saistīti ar iekšējām kodola apakšsistēmām.
Galvenie jauninājumi kodolā 6.2:
- Atmiņas un sistēmas pakalpojumi
- Kodola kodā ir atļauts iekļaut izmaiņas, kas nodrošinātas saskaņā ar Copyleft-Next 0.3.1 licenci. Copyleft-Next licenci izveidoja viens no GPLv3 autoriem, un tā ir pilnībā saderīga ar GPLv2 licenci, kā to apstiprina SUSE un Red Hat juristi. Salīdzinot ar GPLv2, Copyleft-Next licence ir daudz kompaktāka un vieglāk uztverama (ir noņemta ievada daļa un novecojušo kompromisu pieminēšana), definē laika posmu un procedūru pārkāpumu novēršanai, kā arī automātiski noņem copyleft prasības novecojušai programmatūrai, kas. ir vairāk nekā 15 gadus vecs.
Copyleft-Next satur arī patentētu tehnoloģiju piešķiršanas klauzulu, kas atšķirībā no GPLv2 padara šo licenci saderīgu ar Apache 2.0 licenci. Lai nodrošinātu pilnīgu saderību ar GPLv2, Copyleft-Next skaidri norāda, ka saskaņā ar GPL licenci papildus oriģinālajai Copyleft-Next licencei var nodrošināt atvasinātu darbu.
- Struktūra ietver utilītu “rv”, kas nodrošina saskarni mijiedarbībai no lietotāja telpas ar RV (Runtime Verification) apakšsistēmas apstrādātājiem, kas paredzēti, lai pārbaudītu pareizu darbību ļoti uzticamās sistēmās, kas garantē kļūmju neesamību. Verifikācija tiek veikta izpildes laikā, pievienojot apdarinātājus izsekošanas punktiem, kas pārbauda faktisko izpildes gaitu, salīdzinot ar iepriekš noteiktu iekārtas atsauces deterministisko modeli, kas definē paredzamo sistēmas darbību.
- zRAM ierīce, kas ļauj mijmaiņas nodalījumu saglabāt atmiņā saspiestā veidā (atmiņā tiek izveidota blokierīce, uz kuru tiek veikta mijmaiņa ar saspiešanu), ievieš iespēju pārsaiņot lapas, izmantojot alternatīvu algoritmu, lai sasniegtu augstāku līmeni. no saspiešanas. Galvenā ideja ir nodrošināt izvēli starp vairākiem algoritmiem (lzo, lzo-rle, lz4, lz4hc, zstd), piedāvājot savus kompromisus starp saspiešanas/dekompresijas ātrumu un saspiešanas līmeni vai optimālu īpašās situācijās (piemēram, lielu saspiešanai). atmiņas lapas).
- Pievienots "iommufd" API I/O atmiņas pārvaldības sistēmas pārvaldīšanai - IOMMU (I/O Memory-Management Unit) no lietotāja vietas. Jaunā API ļauj pārvaldīt I/O atmiņas lapu tabulas, izmantojot failu deskriptorus.
- BPF nodrošina iespēju izveidot tipus, definēt savus objektus, izveidot savu objektu hierarhiju un elastīgi izveidot savas datu struktūras, piemēram, saistītos sarakstus. BPF programmām, kas pāriet miega režīmā (BPF_F_SLEEPABLE), ir pievienots atbalsts bpf_rcu_read_{,un}lock() bloķēšanai. Ieviests atbalsts uzdevumu_struct objektu saglabāšanai. Pievienots kartes tips BPF_MAP_TYPE_CGRP_STORAGE, nodrošinot cgroups lokālo krātuvi.
- RCU (lasīšanas-kopēšanas-atjaunināšanas) bloķēšanas mehānismam ir ieviests papildu "slinks" atzvanīšanas mehānisms, kas apstrādā vairākus atzvanīšanas mehānismus pakešrežīmā, pamatojoties uz taimeri. Šī optimizācija samazina ierīces enerģijas patēriņu par 5–10 %. Android un ChromeOS, atliekot RCU pieprasījumus dīkstāves vai zemas sistēmas slodzes periodos.
- Pievienots sysctl split_lock_mitigate, lai kontrolētu, kā sistēma reaģē, kad tā atklāj sadalītus bloķējumus, kas rodas, piekļūstot nesaskaņotiem datiem atmiņā, jo dati šķērso divas CPU kešatmiņas līnijas, izpildot atomu instrukciju. Šādi aizsprostojumi izraisa ievērojamu veiktspējas samazināšanos. Iestatot split_lock_mitigate uz 0, tiek parādīts tikai brīdinājums, ka pastāv problēma, savukārt split_lock_mitigate iestatīšana uz 1 izraisa arī procesu, kas izraisīja bloķēšanas palēnināšanos, lai saglabātu pārējās sistēmas veiktspēju.
- PowerPC arhitektūrai ir ierosināta jauna qspinlock ieviešana, kas demonstrē augstāku veiktspēju un atrisina dažas bloķēšanas problēmas, kas rodas izņēmuma gadījumos.
- MSI (Message-Signaled Interrupts) pārtraukumu apstrādes kods ir pārstrādāts, novēršot uzkrātās arhitektūras problēmas un pievienojot atbalstu atsevišķu apstrādātāju saistīšanai ar dažādām ierīcēm.
- Sistēmām, kuru pamatā ir LoongArch instrukciju kopas arhitektūra, ko izmanto Loongson 3 5000 procesoros un ievieš jauno RISC ISA, līdzīgi kā MIPS un RISC-V, ir ieviests atbalsts ftrace, steka aizsardzībai, miega un gaidstāves režīmiem.
- Ir nodrošināta iespēja piešķirt nosaukumus koplietojamās anonīmās atmiņas apgabaliem (iepriekš nosaukumus varēja piešķirt tikai privātai anonīmajai atmiņai, kas piešķirta konkrētam procesam).
- Pievienots jauns kodola komandrindas parametrs “trace_trigger”, kas paredzēts, lai aktivizētu izsekošanas aktivizētāju, ko izmanto, lai saistītu nosacījumu komandas, kas tiek izsauktas, kad tiek aktivizēta vadības pārbaude (piemēram, trace_trigger=”sched_switch.stacktrace, ja prev_state == 2″).
- Binutils pakotnes versijai ir paaugstinātas prasības. Kodola izveidei tagad ir nepieciešams vismaz binutils 2.25.
- Izsaucot exec(), ir pievienota iespēja ievietot procesu laika nosaukumtelpā, kurā laiks atšķiras no sistēmas laika.
- Migrācija no Rust-for- atzara ir sākusies.Linux Papildu funkcionalitāte, kas saistīta ar Rust izmantošanu kā otro valodu draiveru un kodola moduļu izstrādei. Rust atbalsts pēc noklusējuma ir atspējots un neietver Rust kā obligātu kodola veidošanas atkarību. Iepriekšējā laidienā piedāvātā pamatfunkcionalitāte ir paplašināta ar atbalstu zema līmeņa kodam, piemēram, Vec tipam un makrokomandām pr_debug!(), pr_cont!() un pr_alert!(), kā arī procedurālajai makrokomandai "#[vtable]", kas vienkāršo darbu ar funkciju rādītāju tabulām. Nākamajās laidienos ir paredzēts pievienot augsta līmeņa Rust apvalkus kodola apakšsistēmām, kas ļaus izveidot pilnvērtīgus draiverus Rust valodā.
- Kodolā izmantotais tips "char" tagad visām arhitektūrām pēc noklusējuma tiek pasludināts par neparakstītu.
- Par novecojušu ir pasludināts plākšņu atmiņas sadales mehānisms - SLOB (slab allocator), kas bija paredzēts sistēmām ar nelielu atmiņas apjomu. SLOB vietā normālos apstākļos ieteicams izmantot SLUB vai SLAB. Sistēmām ar nelielu atmiņas apjomu ieteicams izmantot SLUB režīmā SLUB_TINY.
- Kodola kodā ir atļauts iekļaut izmaiņas, kas nodrošinātas saskaņā ar Copyleft-Next 0.3.1 licenci. Copyleft-Next licenci izveidoja viens no GPLv3 autoriem, un tā ir pilnībā saderīga ar GPLv2 licenci, kā to apstiprina SUSE un Red Hat juristi. Salīdzinot ar GPLv2, Copyleft-Next licence ir daudz kompaktāka un vieglāk uztverama (ir noņemta ievada daļa un novecojušo kompromisu pieminēšana), definē laika posmu un procedūru pārkāpumu novēršanai, kā arī automātiski noņem copyleft prasības novecojušai programmatūrai, kas. ir vairāk nekā 15 gadus vecs.
- Diska apakšsistēma, I/O un failu sistēmas
- Ir veikti Btrfs uzlabojumi, kuru mērķis ir novērst “rakstīšanas cauruma” problēmu RAID 5/6 implementācijās (mēģinājums atjaunot RAID, ja rakstīšanas laikā notiek avārija un nav iespējams saprast, kurā blokā, kurā RAID ierīcē tika ierakstīts pareizi, kas var novest pie bloka iznīcināšanas, kas atbilst parakstītajiem blokiem). Turklāt tagad SSD diski pēc noklusējuma automātiski iespējo asinhrono atmešanas darbību, kad iespējams, ļaujot uzlabot veiktspēju, pateicoties efektīvai atmešanas darbību grupēšanai rindās un rindas apstrādē ar fona procesoru. Uzlabota sūtīšanas un lseek darbību veiktspēja, kā arī FIEMAP ioctl.
- Ir paplašinātas iespējas pārvaldīt atlikto rakstīšanu (atrakstīšana, mainīto datu saglabāšana fonā) blokierīcēm. Dažās situācijās, piemēram, izmantojot tīkla bloku ierīces vai USB diskus, slinka rakstīšana var izraisīt lielu RAM patēriņu. Lai kontrolētu slinkās rakstīšanas uzvedību un saglabātu lapas kešatmiņas lielumu noteiktās robežās, sistēmā sysfs (/sys/class/bdi/) ir ieviesti jauni parametri strict_limit, min_bytes, max_bytes, min_ratio_fine un max_ratio_fine.
- F2FS failu sistēma īsteno atomu aizstāšanas ioctl darbību, kas ļauj ierakstīt datus failā vienas atomu darbības ietvaros. F2FS pievieno arī bloka apjoma kešatmiņu, lai palīdzētu identificēt aktīvi izmantotos datus vai datus, kuriem ilgu laiku nav piekļūts.
- Ext4 FS tiek atzīmēti tikai kļūdu labojumi.
- Ntfs3 failu sistēma piedāvā vairākas jaunas pieslēgšanas opcijas: "nocase", lai kontrolētu failu un direktoriju nosaukumos esošo rakstzīmju reģistrjutību; windows_name, lai novērstu tādu failu nosaukumu izveidi, kas satur operētājsistēmai nederīgas rakstzīmes. Windows; hide_dot_files, lai kontrolētu slēptā faila atzīmes piešķiršanu failiem, kas sākas ar punktu.
- Squashfs failu sistēma ievieš pievienošanas opciju “threads=”, kas ļauj definēt pavedienu skaitu, lai paralēli veiktu dekompresijas darbības. Squashfs arī ieviesa iespēju kartēt uzstādīto failu sistēmu lietotāju ID, ko izmanto, lai saskaņotu konkrēta lietotāja failus uzstādītā svešā nodalījumā ar citu lietotāju pašreizējā sistēmā.
- POSIX piekļuves kontroles sarakstu (POSIX ACL) ieviešana ir pārstrādāta. Jaunā ieviešana novērš arhitektūras problēmas, vienkāršo kodu bāzes apkopi un ievieš drošākus datu tipus.
- Apakšsistēma fscrypt, kas tiek izmantota caurspīdīgai failu un direktoriju šifrēšanai, ir pievienojusi atbalstu SM4 šifrēšanas algoritmam (Ķīnas standarts GB/T 32907-2016).
- Ir nodrošināta iespēja izveidot kodolu bez NFSv2 atbalsta (nākotnē viņi plāno pilnībā pārtraukt NFSv2 atbalstu).
- Ir mainīta NVMe ierīču piekļuves tiesību pārbaudes organizācija. Nodrošina iespēju lasīt un rakstīt NVMe ierīcē, ja rakstīšanas procesam ir piekļuve ierīces īpašajam failam (iepriekš procesam bija jābūt CAP_SYS_ADMIN atļaujai).
- Noņemts CD/DVD pakotnes draiveris, kas tika novecojis 2016. gadā.
- Virtualizācija un drošība
- Intel un AMD centrālajos procesoros ir ieviesta jauna aizsardzības metode pret Retbleed ievainojamību, izmantojot zvana dziļuma izsekošanu, kas nemazina darbu tik ļoti kā līdz šim esošā aizsardzība pret Retbleed. Lai iespējotu jauno režīmu, ir piedāvāts kodola komandrindas parametrs “retbleed=stuff”.
- Pievienots hibrīds FineIBT instrukciju plūsmas aizsardzības mehānisms, kas apvieno aparatūras Intel IBT (Indirect Branch Tracking) instrukciju izmantošanu un programmatūras aizsardzību kCFI (kodola vadības plūsmas integritāte), lai bloķētu parastās izpildes secības (kontroles plūsmas) pārkāpumus lietošanas rezultātā. izmantošana, kas maina norādes, kas saglabātas funkciju atmiņā. FineIBT pieļauj izpildi ar netiešu lēcienu tikai tad, ja notiek lēciens uz ENDBR instrukciju, kas atrodas funkcijas pašā sākumā. Turklāt pēc analoģijas ar kCFI mehānismu tiek pārbaudītas jaucējzīmes, lai garantētu rādītāju nemainīgumu.
- Pievienoti ierobežojumi, lai bloķētu uzbrukumus, kas manipulē ar "oops" stāvokļu ģenerēšanu, pēc kuriem tiek pabeigti problemātiskie uzdevumi un stāvoklis tiek atjaunots, neapturot sistēmu. Ar ļoti lielu izsaukumu skaitu uz stāvokli "Oops" notiek atsauces skaitītāja pārpilde (refcount), kas ļauj izmantot ievainojamības, ko izraisa NULL rādītāja novirzīšana. Lai aizsargātu pret šādiem uzbrukumiem, kodolam ir pievienots ierobežojums maksimālajam “oops” trigeru skaitam, pēc kura pārsniegšanas kodols sāks pāreju uz “panikas” stāvokli, kam sekos atsāknēšana, kas neļaus sasniegt atkārtojumu skaits, kas nepieciešams, lai pārpildītu pārskaitījumu. Pēc noklusējuma ierobežojums ir iestatīts uz 10 tūkstošiem “oops”, bet, ja vēlaties, to var mainīt, izmantojot parametru oops_limit.
- Pievienots konfigurācijas parametrs LEGACY_TIOCSTI un sysctl legacy_tiocsti, lai atspējotu iespēju ievietot datus terminālī, izmantojot ioctl TIOCSTI, jo šo funkcionalitāti var izmantot, lai termināļa ievades buferī aizstātu patvaļīgas rakstzīmes un simulētu lietotāja ievadi.
- Tiek piedāvāts jauns iekšējās struktūras veids encoded_page, kurā rādītāja apakšējie biti tiek izmantoti, lai saglabātu papildu informāciju, kas tiek izmantota, lai aizsargātu pret nejaušu rādītāja novirzīšanu (ja atsaukšana patiešām ir nepieciešama, vispirms ir jānotīra šie papildu biti) .
- ARM64 platformā sāknēšanas stadijā ir iespējams iespējot vai atspējot Shadow Stack mehānisma programmatūras ieviešanu, kas tiek izmantota, lai aizsargātu pret atgriešanas adreses pārrakstīšanu no funkcijas, ja stekā notiek bufera pārpilde ( Aizsardzības būtība ir saglabāt atgriešanas adresi atsevišķā “ēnu” stekā pēc kontroles pārsūtīšanas uz funkciju un dotās adreses izgūšanu pirms iziešanas no funkcijas). Atbalsts Shadow Stack aparatūras un programmatūras ieviešanai vienā kodola komplektā ļauj izmantot vienu kodolu dažādās ARM sistēmās neatkarīgi no to atbalsta norādījumiem rādītāja autentifikācijai. Programmatūras ieviešanas iekļaušana tiek veikta, ielādes laikā kodā aizstājot nepieciešamās instrukcijas.
- Pievienots atbalsts asinhronā izejas paziņojumu mehānisma izmantošanai Intel procesoros, kas ļauj atklāt vienpakāpes uzbrukumus SGX anklāvos izpildītam kodam.
- Tiek piedāvāts darbību kopums, kas ļauj hipervizoram atbalstīt pieprasījumus no Intel TDX (Trusted Domain Extensions) viesu sistēmām.
- Kodola veidošanas iestatījumi RANDOM_TRUST_BOOTLOADER un RANDOM_TRUST_CPU ir noņemti par labu attiecīgajām komandrindas opcijām random.trust_bootloader un random.trust_cpu.
- Landlock mehānisms, kas ļauj ierobežot procesu grupas mijiedarbību ar ārējo vidi, ir pievienojis atbalstu karogam LANDLOCK_ACCESS_FS_TRUNCATE, kas ļauj kontrolēt failu saīsināšanas darbību izpildi.
- Tīkla apakšsistēma
- IPv6 ir pievienots atbalsts PLB (Protective Load Balancing) — slodzes līdzsvarošanas mehānisms starp tīkla saitēm, kura mērķis ir samazināt pārslodzes punktus datu centra slēdžos. Mainot IPv6 plūsmas etiķeti, PLB nejauši maina pakešu ceļus, lai līdzsvarotu slēdžu portu slodzi. Lai samazinātu pakešu pārkārtošanu, šī darbība tiek veikta pēc dīkstāves periodiem, kad vien iespējams. PLB izmantošana Google datu centros ir samazinājusi slodzes nelīdzsvarotību slēdžu portos vidēji par 60%, pakešu zudumu samazinājusi par 33% un latentumu par 20%.
- Pievienots draiveris MediaTek ierīcēm, kas atbalsta Wi-Fi 7 (802.11be).
- Pievienots atbalsts 800 gigabitu saitēm.
- Pievienota iespēja pārdēvēt tīkla saskarnes lidojuma laikā, nepārtraucot darbu.
- Pieminējums par IP adresi, uz kuru tika saņemta pakete, ir pievienota žurnāla ziņojumiem par SYN plūdiem.
- Attiecībā uz UDP ir ieviesta iespēja izmantot atsevišķas hash tabulas dažādām tīkla nosaukumvietām.
- Tīkla tiltiem ir ieviests MAB (MAC Authentication Bypass) autentifikācijas metodes atbalsts.
- CAN protokolam (CAN_RAW) ir ieviests SO_MARK ligzdas režīma atbalsts, lai pievienotu uz fwmark balstītus trafika filtrus.
- ipset ievieš jaunu bitmaskas parametru, kas ļauj iestatīt masku, pamatojoties uz patvaļīgiem bitiem IP adresē (piemēram, "ipset create set1 hash:ip bitmask 255.128.255.0").
- Pievienots atbalsts iekšējo galveņu apstrādei tunelētu pakešu iekšienē nf_tables.
- Оборудование
- “Paātrinājuma” apakšsistēma ir pievienota, ieviešot skaitļošanas paātrinātāju sistēmu, ko var piegādāt vai nu atsevišķu ASIC, vai IP bloku veidā SoC un GPU iekšpusē. Šie paātrinātāji galvenokārt ir paredzēti, lai paātrinātu mašīnmācīšanās problēmu risināšanu.
- Amdgpu draiveris ietver atbalstu GC, PSP, SMU un NBIO IP komponentiem. ARM64 sistēmām ir ieviests DCN (Display Core Next) atbalsts. Aizsargāta ekrāna izvades ieviešana ir pārvietota no DCN10 izmantošanas uz DCN21, un tagad to var izmantot, savienojot vairākus ekrānus.
- I915 (Intel) draiveris ir stabilizējis atbalstu diskrētām Intel Arc (DG2/Alchemist) videokartēm.
- Nouveau draiveris atbalsta NVIDIA GA102 (RTX 30) GPU, kuru pamatā ir Ampere arhitektūra. nva3 (GT215) kartēm ir pievienota iespēja kontrolēt fona apgaismojumu.
- Pievienots atbalsts bezvadu adapteriem, kuru pamatā ir Realtek 8852BE, Realtek 8821CU, 8822BU, 8822CU, 8723DU (USB) un MediaTek MT7996 mikroshēmas, Broadcom BCM4377/4378/4387 Bluetooth saskarnes, kā arī Ethernet.
- Pievienots ASoC (ALSA System on Chip) atbalsts iebūvētajām skaņas mikroshēmām HP Stream 8, Advantech MICA-071, Dell SKU 0C11, Intel ALC5682I-VD, Xiaomi Redmi Book Pro 14 2022, i.MX93, Armada 38x, RK3588. Pievienots Focusrite Saffire Pro 40 audio interfeisa atbalsts. Pievienots Realtek RT1318 audio kodeks.
- Pievienots atbalsts Sony viedtālruņiem un planšetdatoriem (Xperia 10 IV, 5 IV, X un X compact, OnePlus One, 3, 3T un Nord N100, Xiaomi Poco F1 un Mi6, Huawei Watch, Google Pixel 3a, Samsung Galaxy Tab 4 10.1.
- Pievienots atbalsts ARM SoC un Apple T6000 (M1 Pro), T6001 (M1 Max), T6002 (M1 Ultra), Qualcomm MSM8996 Pro (Snapdragon 821), SM6115 (Snapdragon 662), SM4250 (Snapdragon 460), SM6375 (Snapdragon 695), SM670dragon670. plates , SDM8976 (Snapdragon 652), MSM8956 (Snapdragon 650), MSM3326 (Snapdragon 351), RK310 Odroid-Go/rg8, Zyxel NSAXNUMXS, InnoComm i.MXXNUMXMM, Odroid Go Ultra.
Tajā pašā laikā Latīņamerikas Brīvās programmatūras fonds izveidoja pilnīgi bezmaksas kodola 6.2 versiju - Linux-libre 6.2-gnu, attīrīta no programmaparatūras un draivera elementiem, kas satur nebrīvas komponentes vai koda sadaļas ar ierobežotu darbības jomu. Šajā laidienā ir iekļauta jaunu blobu tīrīšana nouveau draiverī. Blobu ielāde ir atspējota mt7622, mt7996 wifi un bcm4377 Bluetooth draiveros. Blobu nosaukumi dts failos Aarch64 arhitektūrai ir iztīrīti. Blobu tīrīšanas kods dažādos draiveros un apakšsistēmās ir atjaunināts. S5k4ecgx draivera tīrīšana ir pārtraukta, jo tas ir noņemts no kodola.
Avots: opennet.ru
