Linux 5.11 kodola laidiens

Pēc divu mēneÅ”u izstrādes Linuss Torvalds iepazÄ«stināja ar Linux kodola 5.11 izlaiÅ”anu. Starp visievērojamākajām izmaiņām: atbalsts Intel SGX anklāviem, jauns sistēmas zvanu pārtverÅ”anas mehānisms, virtuālā palÄ«gkopne, aizliegums montēt moduļus bez MODULE_LICENSE(), ātrā filtrÄ“Å”anas režīms sistēmas izsaukumiem seccomp, atbalsta pārtraukÅ”ana ia64 arhitektÅ«ra, WiMAX tehnoloÄ£ijas pārneÅ”ana uz ā€œinscenÄ“Å”anasā€ atzaru, iespēja iekapsulēt SCTP UDP.

Jaunajā versijā ir iekļauti 15480 1991 labojumi no 72 12090 izstrādātāja, ielāpa izmērs ir 868025 MB (izmaiņas skāra 261456 46 failus, tika pievienotas 5.11 16 koda rindas, dzēstas 13 3 rindiņas). Aptuveni 4% no visām XNUMX ieviestajām izmaiņām 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:

  • Diska apakÅ”sistēma, I/O un failu sistēmas
    • Btrfs ir pievienotas vairākas montāžas opcijas izmantoÅ”anai, atjaunojot datus no bojātas failu sistēmas: ā€œrescue=ignorebadrootsā€ montāžai, neskatoties uz dažu sakņu koku bojājumiem (apmērs, uuid, datu pārvietoÅ”ana, ierÄ«ce, csum, brÄ«va vieta), ā€œ Rescue=ignoredatacsumsā€, lai atspējotu datu kontrolsummu pārbaudi, un ā€œrescue=allā€, lai vienlaikus iespējotu režīmus ā€œignorebadrootsā€, ā€œignoredatacsumsā€ un ā€œnologreplayā€. Montāžas opcija "inode_cache", kas iepriekÅ” bija novecojusi, ir pārtraukta. Kods ir sagatavots, lai ieviestu atbalstu blokiem ar metadatiem un datiem, kas ir mazāki par lapas izmēru (PAGE_SIZE), kā arÄ« zonētas telpas pieŔķirÅ”anas režīma atbalstu. Nebuferētie (tieŔā IO) pieprasÄ«jumi ir pārvietoti uz iomap infrastruktÅ«ru. Vairāku darbÄ«bu veiktspēja ir optimizēta, dažos gadÄ«jumos paātrinājums var sasniegt vairākus desmitus procentu.
    • XFS ievieÅ” karogu "needsrepair", kas norāda uz remonta nepiecieÅ”amÄ«bu. Kad Å”is karodziņŔ ir iestatÄ«ts, failu sistēmu nevar uzstādÄ«t, kamēr utilÄ«ta xfs_repair nav atiestatÄ«jusi karogu.
    • Ext4 piedāvā tikai kļūdu labojumus un optimizāciju, kā arÄ« koda tÄ«rÄ«Å”anu.
    • Ir atļauta failu sistēmu atkārtota eksportÄ“Å”ana, kas montētas, izmantojot NFS (t.i., nodalÄ«jumu, kas uzstādÄ«ts, izmantojot NFS, tagad var eksportēt, izmantojot NFS, un izmantot kā starpposma keÅ”atmiņu).
    • Sistēmas izsaukums close_range(), kas ļauj procesam vienlaikus aizvērt visu atvērto failu deskriptoru diapazonu, ir pievienojis opciju CLOSE_RANGE_CLOEXEC, lai aizvērtu deskriptorus aizvērÅ”anas-izpildÄ«Å”anas režīmā.
    • F2FS failu sistēma pievieno jaunus ioctl() izsaukumus, lai ļautu lietotājam kontrolēt, kuri faili tiek glabāti saspiestā formā. Pievienota "compress_mode=" mount opcija, lai izvēlētos, vai ievietot saspieÅ”anas apstrādātāju kodola pusē vai lietotāja telpā.
    • NodroÅ”ina iespēju montēt pārklājumus ar nepievilcÄ«giem procesiem, izmantojot atseviŔķu lietotāja vārdu telpu. Lai pārbaudÄ«tu atbilstÄ«bu droŔības modeļa ievieÅ”anai, tika veikts pilns koda audits. Overlayfs arÄ« pievieno iespēju darboties, izmantojot failu sistēmas attēlu kopijas, pēc izvēles atspējojot UUID pārbaudi.
    • Ceph failu sistēma ir pievienojusi atbalstu protokolam msgr2.1, kas ļauj izmantot AES-GCM algoritmu, pārsÅ«tot datus Å”ifrētā veidā.
    • Dm-multipath modulis ievieÅ” iespēju, izvēloties I/O pieprasÄ«jumu marÅ”rutu, ņemt vērā CPU afinitāti (ā€œIO afinitāteā€).
  • Atmiņas un sistēmas pakalpojumi
    • Ir pievienots jauns sistēmas zvanu pārtverÅ”anas mehānisms, kura pamatā ir prctl(), kas ļauj Ä£enerēt izņēmumus no lietotāja vietas, piekļūstot konkrētam sistēmas izsaukumam, un atdarināt tā izpildi. Å Ä« funkcionalitāte programmās Wine un Proton ir nepiecieÅ”ama, lai emulētu Windows sistēmas izsaukumus, kas ir nepiecieÅ”ami, lai nodroÅ”inātu saderÄ«bu ar spēlēm un programmām, kas tieÅ”i veic sistēmas izsaukumus, apejot Windows API (piemēram, lai aizsargātu pret nesankcionētu lietoÅ”anu).
    • Sistēmas izsaukumam userfaultfd(), kas paredzēts, lai apstrādātu lapas kļūdas (piekļuvi nepieŔķirtām atmiņas lapām) lietotāja telpā, tagad ir iespēja atspējot izņēmumu apstrādi, kas notiek kodola lÄ«menÄ«, lai apgrÅ«tinātu noteiktu ievainojamÄ«bu izmantoÅ”anu.
    • BPF apakÅ”sistēmai ir pievienots atbalsts vietējai uzdevumu krātuvei, kas nodroÅ”ina datu saistÄ«Å”anu ar konkrētu BPF apstrādātāju.
    • BPF programmu atmiņas patēriņa uzskaite ir pilnÄ«bā pārveidota - memlock rlimit vietā ir piedāvāts cgroup kontrolleris, lai pārvaldÄ«tu atmiņas izmantoÅ”anu BPF objektos.
    • BTF (BPF tipa formāta) mehānisms, kas nodroÅ”ina tipa pārbaudes informāciju BPF pseidokodā, nodroÅ”ina atbalstu kodola moduļiem.
    • Pievienots atbalsts shutdown(), renameat2() un unlinkat() sistēmas izsaukumiem io_uring asinhronajam I/O interfeisam. Izsaucot io_uring_enter(), ir pievienota iespēja norādÄ«t taimautu (varat pārbaudÄ«t argumenta atbalstu, lai norādÄ«tu taimautu, izmantojot karogu IORING_FEAT_EXT_ARG).
    • Intel Itanium procesoros izmantotā ia64 arhitektÅ«ra ir pārvietota uz bāreņu kategoriju, kas nozÄ«mē, ka testÄ“Å”ana ir pārtraukta. Hewlett Packard Enterprise pārtrauca pieņemt pasÅ«tÄ«jumus jaunam Itanium aprÄ«kojumam, un Intel to izdarÄ«ja pagājuÅ”ajā gadā.
    • Ir pārtraukts atbalsts sistēmām, kuru pamatā ir MicroBlaze arhitektÅ«ra un kurās nav iekļauta atmiņas pārvaldÄ«bas vienÄ«ba (MMU). Tādas sistēmas jau sen nav redzētas ikdienā.
    • MIPS arhitektÅ«rai ir pievienots atbalsts koda pārklājuma pārbaudei, izmantojot utilÄ«tu gcov.
    • Pievienots atbalsts virtuālajai papildu kopnei saskarnei ar daudzfunkcionālām ierÄ«cēm, kas apvieno funkcionalitāti, kurai nepiecieÅ”ami dažādi draiveri (piemēram, tÄ«kla kartes ar Ethernet un RDMA atbalstu). Kopni var izmantot, lai ierÄ«cei pieŔķirtu primāro un sekundāro draiveri situācijās, kad MFD (Multi-Function Devices) apakÅ”sistēmas lietoÅ”ana ir problemātiska.
    • RISC-V arhitektÅ«rai ir pievienots atbalsts CMA (Contiguous Memory Allocator) atmiņas pieŔķirÅ”anas sistēmai, kas ir optimizēta lielu blakus esoÅ”o atmiņas apgabalu pieŔķirÅ”anai, izmantojot atmiņas lapu pārvietoÅ”anas metodes. AttiecÄ«bā uz RISC-V ir ieviesti arÄ« rÄ«ki, lai ierobežotu piekļuvi /dev/mem un ņemtu vērā pārtraukumu apstrādes laiku.
    • 32 bitu ARM sistēmām ir pievienots atbalsts KASan (Kernel address sanitizer) atkļūdoÅ”anas rÄ«kam, kas palÄ«dz identificēt kļūdas, strādājot ar atmiņu. 64 bitu ARM KASan ievieÅ”ana ir pārveidota, lai izmantotu MTE tagus (MemTag).
    • Pievienots epoll_pwait2() sistēmas izsaukums, lai atļautu taimautus ar nanosekunžu precizitāti (epoll_wait izsaukums manipulē ar milisekundēm).
    • BÅ«vÄ“Å”anas sistēma tagad parāda kļūdu, mēģinot izveidot ielādējamus kodola moduļus, kuros koda licence nav definēta, izmantojot makro MODULE_LICENSE(). Turpmāk makro EXPORT_SYMBOL() izmantoÅ”ana statiskām funkcijām izraisÄ«s arÄ« veidoÅ”anas kļūdu.
    • Pievienots atbalsts GEM objektu kartÄ“Å”anai no atmiņas, ko izmanto I/O, kas dažās arhitektÅ«rās ļāva paātrināt darbu ar kadru buferi.
    • Kconfig ir atcēlis atbalstu Qt4 (saglabājot atbalstu Qt5, GTK un Ncurses).
  • Virtualizācija un droŔība
    • Seccomp() sistēmas izsaukumam ir pievienots ātrās atbildes režīma atbalsts, kas ļauj ļoti ātri noteikt, vai konkrēts sistēmas izsaukums ir atļauts vai aizliegts, pamatojoties uz procesam pievienoto konstantas darbÄ«bas bitkarti, kas neprasa palaist. BPF apstrādātājs.
    • Integrēti kodola komponenti anklāvu izveidei un pārvaldÄ«bai, pamatojoties uz Intel SGX (Software Guard eXtensions) tehnoloÄ£iju, kas ļauj lietojumprogrammām izpildÄ«t kodu izolētos Å”ifrētos atmiņas apgabalos, kuriem pārējai sistēmai ir ierobežota piekļuve.
    • Kā daļu no iniciatÄ«vas ierobežot piekļuvi no lietotāja vietas MSR (modeļa specifiskajam reÄ£istram), rakstot uz MSR_IA32_ENERGY_PERF_BIAS reÄ£istru, kas ļauj mainÄ«t procesora energoefektivitātes režīmu (ā€œnormālsā€, ā€œveiktspējaā€, ā€œenerÄ£ijas taupÄ«Å”anaā€). , ir aizliegts.
    • Iespēja atspējot augstas prioritātes uzdevumu migrāciju starp CPU ir pārvietota no kodola-rt filiāles reāllaika sistēmām.
    • ARM64 sistēmām ir pievienota iespēja izmantot MTE tagus (MemTag, Memory Tagging Extension) signālu apstrādātāja atmiņas adresēm. MTE lietoÅ”ana ir iespējota, norādot opciju SA_EXPOSE_TAGBITS sigaction() un ļauj pārbaudÄ«t, vai pareizi tiek izmantotas norādes, lai bloķētu ievainojamÄ«bu izmantoÅ”anu, ko izraisa piekļuve jau atbrÄ«votajiem atmiņas blokiem, bufera pārpilde, piekļuve pirms inicializācijas un izmantoÅ”ana ārpus paÅ”reizējo kontekstu.
    • Pievienots parametrs "DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING", kas ļauj dm-verity apakÅ”sistēmai pārbaudÄ«t sekundārajā atslēgu piekariņā ievietoto sertifikātu jaukÅ”anas parakstus. Praksē iestatÄ«Å”ana ļauj pārbaudÄ«t ne tikai kodolā iebÅ«vētos, bet arÄ« darbÄ«bas laikā ielādētos sertifikātus, kas ļauj atjaunināt sertifikātus, neatjauninot visu kodolu.
    • Lietotāja režīms Linux ir pievienojis atbalstu apturÄ“Å”anas un dÄ«kstāves režīmam, kas ļauj iesaldēt vidi un izmantot SIGUSR1 signālu, lai pamostos no miega režīma.
    • Virto-mem mehānisms, kas ļauj ātri pievienot un atvienot atmiņu virtuālajām maŔīnām, ir pievienojis atbalstu Big Block Mode (BBM), kas ļauj pārsÅ«tÄ«t vai aizņemt atmiņu blokos, kas ir lielāki par kodola atmiņas lielumu. bloks, kas nepiecieÅ”ams, lai optimizētu VFIO QEMU.
    • TLS kodola ievieÅ”anai ir pievienots atbalsts CHACHA20-POLY1305 Å”ifram.
  • TÄ«kla apakÅ”sistēma
    • 802.1Q (VLAN) ir ieviests savienojuma kļūdu pārvaldÄ«bas mehānisms (CFM, Connectivity Fault Management), kas ļauj identificēt, pārbaudÄ«t un izolēt kļūmes tÄ«klos ar virtuālajiem tiltiem (Virtual Bridged Networks). Piemēram, CFM var izmantot, lai izolētu problēmas tÄ«klos, kas aptver vairākas neatkarÄ«gas organizācijas, kuru darbiniekiem ir piekļuve tikai viņu paÅ”u aprÄ«kojumam.
    • Pievienots atbalsts SCTP protokola pakeÅ”u iekapsulÄ“Å”anai UDP paketēs (RFC 6951), kas ļauj izmantot SCTP tÄ«klos ar vecākiem adreÅ”u tulkotājiem, kas tieÅ”i neatbalsta SCTP, kā arÄ« ieviest SCTP sistēmās, kas nenodroÅ”ina tieÅ”u piekļuvi IP. slānis.
    • WiMAX tehnoloÄ£ijas ievieÅ”ana ir pārcelta uz iestudÄ“Å”anu, un ir paredzēts, ka nākotnē tā tiks noņemta, ja nebÅ«s lietotāju, kam bÅ«tu nepiecieÅ”ams WiMAX. WiMAX vairs netiek izmantots publiskajos tÄ«klos, un kodolā vienÄ«gais draiveris, ar kuru var izmantot WiMAX, ir novecojuÅ”ais Intel 2400m draiveris. WiMAX atbalsts tika pārtraukts NetworkManager tÄ«kla konfiguratorā 2015. gadā. PaÅ”laik WiMax ir gandrÄ«z pilnÄ«bā aizstāts ar tādām tehnoloÄ£ijām kā LTE, HSPA+ un Wi-Fi 802.11n.
    • Ir veikts darbs, lai optimizētu ienākoŔās TCP trafika apstrādes veiktspēju nulles kopijas režīmā, t.i. bez papildu kopÄ“Å”anas uz jauniem buferiem. Vidēja lieluma trafikam, kas aptver desmitiem vai vairākus simtus kilobaitu datu, zerocopy izmantoÅ”ana recvmsg() vietā ir ievērojami efektÄ«vāka. Piemēram, ieviestās izmaiņas ļāva palielināt RPC stila trafika apstrādes efektivitāti ar 32 KB ziņojumiem, izmantojot nulles kopiju, par 60-70%.
    • Pievienoti jauni ioctl() izsaukumi, lai izveidotu tÄ«kla tiltus, kas aptver vairākas PPP saites. Piedāvātā iespēja ļauj kadriem pārvietoties no viena kanāla uz citu, piemēram, no PPPoE uz PPPoL2TP sesiju.
    • Integrācija MPTCP (MultiPath TCP) kodolā, TCP protokola paplaÅ”inājums TCP savienojuma darbÄ«bas organizÄ“Å”anai ar pakeÅ”u piegādi vienlaicÄ«gi pa vairākiem marÅ”rutiem caur dažādām tÄ«kla saskarnēm, kas saistÄ«tas ar dažādām IP adresēm. Jaunajā laidienā tiek ieviests atbalsts opcijai ADD_ADDR, lai reklamētu pieejamās IP adreses, ar kurām var izveidot savienojumu, pievienojot jaunas plÅ«smas esoÅ”am MPTCP savienojumam.
    • Pievienota iespēja konfigurēt darbÄ«bas, kad tiek pārsniegts savienojuma aptaujas budžets (aizņemta aptauja). IepriekÅ” pieejamais SO_BUSY_POLL režīms nozÄ«mēja pārslēgÅ”anos uz softirq, kad budžets bija iztērēts. Lietojumprogrammām, kurām jāturpina izmantot aptaujas, tiek piedāvāta jauna opcija SO_PREFER_BUSY_POLL.
    • IPv6 ievieÅ” atbalstu SRv6 End.DT4 un End.DT6 režīmiem, ko izmanto, lai izveidotu vairāku lietotāju IPv4 L3 VPN un VRF (virtuālās marÅ”rutÄ“Å”anas un pārsÅ«tÄ«Å”anas) ierÄ«ces.
    • Netfilter apvienoja kopas izteiksmju ievieÅ”anu, kas ļāva norādÄ«t vairākas izteiksmes katram kopu sarakstu elementam.
    • 802.11 bezvadu stekam ir pievienotas API, lai konfigurētu SAR jaudas ierobežojumus, kā arÄ« AE PWE un HE MCS parametrus. Intel iwlwifi draiveris ir pievienojis atbalstu 6 GHz (Ultra High Band) diapazonam. Qualcomm Ath11k draiveris ir pievienojis FILS (ātrās sākotnējās saites iestatÄ«Å”anas, standartizētas kā IEEE 802.11ai) tehnoloÄ£iju, kas ļauj atbrÄ«voties no viesabonÄ“Å”anas aizkaves migrācijas laikā no viena piekļuves punkta uz citu.
  • ŠžŠ±Š¾Ń€ŃƒŠ“Š¾Š²Š°Š½ŠøŠµ
    • Amdgpu draiveris nodroÅ”ina atbalstu AMD "Green Sardine" APU (Ryzen 5000) un "Dimgrey Cavefish" GPU (Navi 2), kā arÄ« sākotnējo atbalstu AMD Van Gogh APU ar Zen 2 kodolu un RDNA 2 GPU (Navi 2). Pievienots atbalsts jauniem Renoir APU identifikatoriem (pamatojoties uz Zen 2 CPU un Vega GPU).
    • Intel videokartes i915 draiveris atbalsta IS (Integer scaling) tehnoloÄ£iju, ievieÅ”ot filtru mēroga palielināŔanai, ņemot vērā blakus esoÅ”o pikseļu stāvokli (tuvākā kaimiņa interpolācija), lai noteiktu trÅ«kstoÅ”o pikseļu krāsu. Ir paplaÅ”ināts atbalsts diskrētajām Intel DG1 kartēm. Ir ieviests atbalsts ā€œBig Joinerā€ tehnoloÄ£ijai, kas pastāv kopÅ” Ice Lake / Gen11 mikroshēmām un ļauj izmantot vienu pārkodētāju divu straumju apstrādei, piemēram, izvadÄ«Å”anai uz 8K ekrānu, izmantojot vienu DisplayPort. Pievienots režīms asinhronai pārslēgÅ”anai starp diviem buferiem video atmiņā (async flip).
    • Jaunais draiveris ir pievienojis sākotnējo atbalstu NVIDIA GPU, kuru pamatā ir Ampere mikroarhitektÅ«ra (GA100, GeForce RTX 30xx), kas lÄ«dz Å”im aprobežojas ar video režīmu kontroles rÄ«kiem.
    • Pievienots atbalsts 3WIRE protokolam, ko izmanto LCD paneļos. Pievienots atbalsts paneļiem novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 un ABT Y030XX067A 3.0. AtseviŔķi mēs varam atzÄ«mēt OnePlus 6 un 6T viedtālruņu paneļa atbalstu, kas ļāva organizēt nemodificēta kodola ielādi ierÄ«cēs.
    • Pievienots atbalsts Intel pirmajam diskrētam USB4 resursdatora kontrollerim Maple Ridge.
    • Pievienots atbalsts Allwinner H6 I2S, Analog Devices ADAU1372, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI un XCVR, Realtek RT715 un Qualcomm SM8250 audio kodekiem.
    • Pievienots atbalsts ARM platēm, ierÄ«cēm un platformām: Galaxy Note 10.1, Microsoft Lumia 950 XL, NanoPi R1, FriendlyArm ZeroPi, Elimo Initium SBC, Broadcom BCM4908, Mediatek MT8192/MT6779/MT8167, MStar Infinityā€‹, Marvel 2, Nu730 Arvotonda. ā€‹Mikrotik, pamatojoties uz Marvell Prestera 382DX98, serveri ar Nuvoton NPCM3236 BMC, Kontron i.MX750M Mini, Espressobin Ultra, ā€œTrogdorā€ Chromebook datoru, Kobol Helios8, Engicam PX64.Core.
    • IebÅ«vēts atbalsts Ouya spēļu konsolei, kuras pamatā ir NVIDIA Tegra 3.

Tajā paŔā laikā Latīņamerikas BrÄ«vās programmatÅ«ras fonds izveidoja pilnÄ«gi bezmaksas 5.11 kodola versiju - Linux-libre 5.11-gnu, kas ir atbrÄ«vota no programmaparatÅ«ras elementiem un draiveriem, kas satur nebrÄ«vas sastāvdaļas vai koda sadaļas, kuru darbÄ«bas joma ir ierobežota. ko ražotājs. Jaunais laidiens attÄ«ra draiverus qat_4xxx (crypto), lt9611uxcm (dsi/hdmi tilts), ccs/smia++ (sensoram), ath11k_pci, nxp audio raiduztvērējam un mhi pci kontrollerim. Atjaunināts blobu tÄ«rÄ«Å”anas kods draiveros un apakÅ”sistēmās amdgpu, btqca, btrtl, btusb, i915 csr. Atspējoti jauni blobi m3 rproc, idt82p33 ptp pulkstenÄ« un qualcomm arm64.

Avots: opennet.ru

Pievieno komentāru