Linukso-kerna eldono 5.11

Post du monatoj da evoluo, Linus Torvalds prezentis la liberigon de la Linukso-kerno 5.11. Inter la plej rimarkindaj ŝanĝoj: subteno por Intel SGX-enklavoj, nova mekanismo por kapti sistemajn vokojn, virtualan helpan buson, malpermeson kunmeti modulojn sen MODULE_LICENSE(), rapida filtra reĝimo por sistemvokoj en seccomp, ĉesigo de subteno por la ia64-arkitekturo, translokigo de WiMAX-teknologio al la "sceniga" branĉo, la kapablo enkapsuligi SCTP en UDP.

La nova versio inkluzivas 15480 korektojn de 1991 programistoj, la flikgrandeco estas 72 MB (la ŝanĝoj influis 12090 dosierojn, 868025 linioj de kodo estis aldonitaj, 261456 linioj estis forigitaj). Proksimume 46% de ĉiuj ŝanĝoj lanĉitaj en 5.11 rilatas al aparataj ŝoforoj, proksimume 16% de ŝanĝoj rilatas al ĝisdatigo de kodo specifa por hardvararkitekturoj, 13% rilatas al la retstako, 3% rilatas al dosiersistemoj kaj 4% estas rilataj al internaj kernaj subsistemoj.

Ĉefaj novigoj:

  • Diska Subsistemo, I/O kaj Dosiersistemoj
    • Pluraj muntaj opcioj estis aldonitaj al Btrfs por uzo dum restarigo de datumoj de difektita dosiersistemo: "rescue=ignorebadroots" por muntado, malgraŭ damaĝo al iuj radikaj arboj (amplekso, uuid, datumoj reloc, aparato, csum, libera spaco), " rescue=ignoredatacsums” por malŝalti kontrolon de kontrolo de datumoj kaj "rescue=all" por samtempe ebligi la reĝimojn 'ignorebadroots', 'ignoredatacsums' kaj 'nologreplay'. La munta opcio "inode_cache", kiu antaŭe estis malrekomendita, estis nuligita. La kodo estis preta por efektivigi subtenon por blokoj kun metadatenoj kaj datumoj pli malgrandaj ol paĝgrandeco (PAGE_SIZE), same kiel subtenon por zonita spaca asignoreĝimo. Nebufferitaj (Rekta IO) petoj estis movitaj al la iomap-infrastrukturo. La agado de kelkaj operacioj estis optimumigita; en iuj kazoj, la akcelo povas atingi dekojn de procentoj.
    • XFS efektivigas la "needsrepair" flagon, kiu signalas la bezonon de riparo. Kiam ĉi tiu flago estas agordita, la dosiersistemo ne povas esti muntita ĝis la flago estas rekomencigita per la xfs_repair ilo.
    • Ext4 nur ofertas cimojn kaj optimumojn, kaj ankaŭ kodpurigon.
    • Reeksporto de dosiersistemoj muntitaj super NFS estas permesita (t.e. sekcio muntita per NFS nun povas esti eksportita per NFS kaj uzata kiel meza kaŝmemoro).
    • La sistema alvoko close_range(), kiu permesas al procezo fermi tutan gamon da malfermitaj dosierpriskribiloj samtempe, aldonis CLOSE_RANGE_CLOEXEC-opcion por fermi priskribilojn en fermo-sur-ejeca reĝimo.
    • La dosiersistemo F2FS aldonas novajn ioctl() alvokojn por permesi uzantspacan kontrolon pri kiuj dosieroj estas stokitaj en kunpremita formo. Aldonita "compress_mode=" munta opcio por elekti ĉu meti la kunpremadtraktilon ĉe la kernflanko aŭ en uzantspaco.
    • Provizite la kapablo munti Overlayfs per senprivilegiaj procezoj uzante apartan uzantnomspacon. Por kontroli konformecon al la sekureca modelefektivigo, plena koda revizio estis farita. Overlayfs ankaŭ aldonas la kapablon funkcii uzante kopiojn de dosiersistemaj bildoj laŭvole malŝaltante UUID-kontroladon.
    • La Ceph-dosiersistemo aldonis subtenon por la msgr2.1 protokolo, kiu permesas la uzon de la AES-GCM-algoritmo dum transdonado de datumoj en ĉifrita formo.
    • La dm-multipath modulo efektivigas la kapablon enkalkuli CPU-afinecon ("IO-afineco") dum elektado de la itinero por I/O-petoj.
  • Memoraj kaj sistemaj servoj
    • Nova sistemvoka interkapta mekanismo estis aldonita, bazita sur prctl(), kiu ebligas al vi generi esceptojn de uzantspaco kiam vi aliras specifan sistemvokon kaj kopii ĝian ekzekuton. Ĉi tiu funkcio estas postulata en Wine kaj Proton por kopii Vindozajn sistemvokojn, kio estas necesa por certigi kongruon kun ludoj kaj programoj, kiuj rekte plenumas sistemajn vokojn preterpasante la Vindozan API (ekzemple, por protekti kontraŭ neaŭtorizita uzo).
    • La userfaultfd() sistemvoko, dizajnita por pritrakti paĝfaŭltojn (aliro al neasignitaj memorpaĝoj) en uzantspaco, nun havas la kapablon malŝalti escepttraktadon kiu okazas ĉe la kernnivelo por malfaciligi ekspluati certajn vundeblecojn.
    • La BPF-subsistemo aldonis subtenon por task-loka stokado, kiu disponigas datenligadon al specifa BPF-prizorganto.
    • La kontado de memorkonsumo de BPF-programoj estis tute restrukturita - cgroup-regilo estis proponita anstataŭ memlock rlimit por administri memoruzon en BPF-objektoj.
    • La mekanismo BTF (BPF Type Format), kiu disponigas tipkontrolajn informojn en BPF-pseŭdokodo, disponigas subtenon por kernmoduloj.
    • Aldonita subteno por shutdown(), renameat2() kaj unlinkat() sistemvokoj al la io_uring nesinkrona I/O-interfaco. Kiam oni vokas io_uring_enter(), la kapablo specifi tempo-tempon estis aldonita (vi povas kontroli subtenon por la argumento por specifi tempotempon uzante la flagon IORING_FEAT_EXT_ARG).
    • La arkitekturo ia64 uzata en procesoroj Intel Itanium estis movita al la orfa kategorio, kio signifas, ke testado ĉesis. Hewlett Packard Enterprise ĉesis akcepti mendojn por novaj Itanium-ekipaĵoj, kaj Intel faris tion pasintjare.
    • Subteno por sistemoj bazitaj sur la MicroBlaze-arkitekturo kiuj ne inkludas memoradministran unuon (MMU) estis nuligita. Tiaj sistemoj ne estis vidataj en la ĉiutaga vivo delonge.
    • Por la MIPS-arkitekturo, subteno por koda priraportado-testado estis aldonita uzante la gcov-servaĵon.
    • Aldonita subteno por la virtuala helpa buso por interfacado kun multfunkciaj aparatoj, kiuj kombinas funkciojn, kiuj postulas malsamajn ŝoforojn (ekzemple, retajn kartojn kun Ethernet kaj RDMA-subteno). La buso povas esti uzita por asigni primaran kaj sekundaran ŝoforon al aparato, en situacioj kie la uzo de la MFD (Multi-Function Devices) subsistemo estas problema.
    • Por la RISC-V-arkitekturo, subteno estis aldonita por la CMA (Contiguous Memory Allocator) memorasignosistemo, kiu estas optimumigita por asignado de grandaj apudaj memorareoj uzantaj memorpaĝajn movadteknikojn. Por RISC-V, iloj ankaŭ estas efektivigitaj por limigi aliron al /dev/mem kaj enkalkuli interrompan pretigtempon.
    • Por 32-bitaj ARM-sistemoj, subteno estis aldonita por la senarariga ilo KASan (Kernel address sanitizer), kiu helpas identigi erarojn kiam oni laboras kun memoro. Por 64-bita ARM, la KASan-efektivigo estis konvertita por uzi MTE-etikedojn (MemTag).
    • Aldonita epoll_pwait2() sistemvoko por permesi tempodaŭrojn kun nanosekunda precizeco (epoll_wait-voko manipulas milisekundojn).
    • La konstrusistemo nun montras eraron kiam oni provas konstrui ŝarĝeblajn kernmodulojn en kiuj la kodlicenco ne estas difinita per la makroo MODULE_LICENSE(). Ekde nun, uzi la makroon EXPORT_SYMBOL() por senmovaj funkcioj ankaŭ kaŭzos konstruan eraron.
    • Aldonita subteno por mapado de GEM-objektoj de memoro uzita por I/O, kiu ebligis akceli laboron kun la frambuffer sur kelkaj arkitekturoj.
    • Kconfig forigis subtenon por Qt4 (dum konservante subtenon por Qt5, GTK kaj Ncurses).
  • Virtualigo kaj Sekureco
    • Subteno por rapida respondreĝimo estis aldonita al la sistemvoko seccomp(), kiu ebligas vin tre rapide determini ĉu certa sistemvoko estas permesita aŭ malpermesita surbaze de la konstanta aga bitmapo alkroĉita al la procezo, kiu ne postulas ruladon. BPF-traktanto.
    • Integritaj kernaj komponantoj por krei kaj administri enklavojn bazitajn sur teknologio Intel SGX (Software Guard eXtensions), kiu permesas al aplikoj ekzekuti kodon en izolitaj ĉifritaj areoj de memoro, al kiuj la resto de la sistemo havas limigitan aliron.
    • Kadre de iniciato por limigi aliron de uzantspaco al la MSR (modelo-specifa registro), skribante al la registro MSR_IA32_ENERGY_PERF_BIAS, kiu ebligas ŝanĝi la reĝimon pri energi-efikeco de procesoro ("normala", "efikeco", "ŝparo de potenco"). , estas malpermesita.
    • La kapablo malebligi la migradon de altprioritataj taskoj inter CPUoj estis movita de la branĉo kernel-rt por realtempaj sistemoj.
    • Por ARM64-sistemoj, la kapablo uzi MTE-etikedojn (MemTag, Memory Tagging Extension) por signal-traktilaj memoradresoj estis aldonita. La uzo de MTE estas ebligita specifante la opcion SA_EXPOSE_TAGBITS en sigaction() kaj ebligas al vi kontroli la ĝustan uzon de montriloj por bloki la ekspluaton de vundeblecoj kaŭzitaj de aliro jam liberigitaj memorblokoj, bufrosuperfluoj, aliroj antaŭ inicialigo, kaj uzo ekster la aktuala kunteksto.
    • Aldonis la parametron "DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING", kiu ebligas al la subsistemo dm-verity kontroli hashsignatojn de atestiloj metitaj en la malĉefa ŝlosilringo. Praktike, la aranĝo permesas kontroli ne nur atestojn enkonstruitajn en la kernon, sed ankaŭ atestojn ŝargitajn dum operacio, kio ebligas ĝisdatigi atestojn sen ĝisdatigi la tutan kernon.
    • Uzantreĝimo Linukso aldonis subtenon por suspenda al neaktiva reĝimo, kiu permesas vin frostigi la medion kaj uzi la SIGUSR1-signalon por vekiĝi el dormreĝimo.
    • La virtio-mem-mekanismo, kiu permesas vin varm-konekti kaj malkonekti memoron al virtualaj maŝinoj, aldonis subtenon por Big Block Mode (BBM), kiu ebligas translokigi aŭ preni memoron en blokoj pli grandaj ol la grandeco de la kernmemoro. bloko, kiu estas necesa por optimumigi VFIO en QEMU.
    • Subteno por la ĉifro CHACHA20-POLY1305 estis aldonita al la kerna efektivigo de TLS.
  • Reta subsistemo
    • Por 802.1Q (VLAN), estis efektivigita mekanismo de administrado de fiasko de konekto (CFM, Connectivity Fault Management), kiu permesas vin identigi, kontroli kaj izoli misfunkciadojn en retoj kun virtualaj pontoj (Virtual Bridged Networks). Ekzemple, CFM povas esti uzata por izoli problemojn en retoj enhavantaj plurajn sendependajn organizojn, kies dungitoj nur havas aliron al sia propra ekipaĵo.
    • Aldonita subteno por enkapsuligi SCTP-protokolpakojn en UDP-pakojn (RFC 6951), kiu ebligas uzi SCTP en retoj kun pli malnovaj adrestradukiloj kiuj ne rekte subtenas SCTP, kaj ankaŭ efektivigi SCTP en sistemoj kiuj ne disponigas rektan aliron al la IP. tavolo.
    • La efektivigo de WiMAX-teknologio estis proponita al enscenigo kaj estas planita por forigo en la estonteco se ekzistas neniuj uzantoj kiuj postulas WiMAX. WiMAX ne plu estas uzata en publikaj retoj, kaj en la kerno la nura pelilo per kiu WiMAX povas esti uzata estas la malmoderna Intel 2400m ŝoforo. WiMAX-subteno estis nuligita en la retkonfiguratoro NetworkManager en 2015. Nuntempe, WiMax estas preskaŭ tute anstataŭigita per teknologioj kiel LTE, HSPA+ kaj Wi-Fi 802.11n.
    • Laboro estis farita por optimumigi la agadon de prilaborado de envenanta TCP-trafiko en zerokopia reĝimo, t.e. sen plia kopiado al novaj bufroj. Por mezgranda trafiko, kovranta dekojn aŭ kelkcent kilobajtojn da datumoj, uzi zerocopy anstataŭ recvmsg() estas rimarkeble pli efika. Ekzemple, la efektivigitaj ŝanĝoj ebligis pliigi la efikecon de prilaborado de RPC-stila trafiko kun 32 KB-mesaĝoj kiam oni uzas zerocopy je 60-70%.
    • Aldonitaj novaj ioctl() alvokoj por krei retajn pontojn enhavantajn plurajn PPP-ligojn. La proponita kapablo permesas al kadroj moviĝi de unu kanalo al alia, ekzemple de PPPoE al PPPoL2TP-sesio.
    • Integriĝo en la kernon de MPTCP (MultiPath TCP), etendaĵo de la TCP-protokolo por organizi la operacion de TCP-ligo kun livero de pakaĵoj samtempe laŭ pluraj itineroj tra malsamaj retaj interfacoj asociitaj kun malsamaj IP-adresoj. La nova eldono enkondukas subtenon por la opcio ADD_ADDR por reklami disponeblajn IP-adresojn, al kiuj oni povas konektiĝi aldonante novajn fluojn al ekzistanta MPTCP-konekto.
    • Aldonita la kapablo agordi agojn kiam la konekta balota buĝeto estas superita (okupata balotado). La antaŭe disponebla SO_BUSY_POLL-reĝimo signifis ŝanĝi al softirq kiam la buĝeto estis elĉerpita. Por aplikaĵoj kiuj bezonas daŭre uzi balotadon, nova opcio SO_PREFER_BUSY_POLL estas proponita.
    • IPv6 efektivigas subtenon por SRv6 End.DT4 kaj End.DT6-reĝimoj, uzataj por krei pluruzantajn IPv4 L3 VPN-ojn kaj VRF (Virtuala vojigo kaj plusendado) aparatoj.
    • Netfilter unuigis la efektivigon de aro-esprimoj, kio ebligis specifi multoblajn esprimojn por ĉiu elemento de aro-listoj.
    • APIoj estis aldonitaj al la sendrata stako 802.11 por agordi SAR-potenclimojn, same kiel AE PWE kaj HE MCS-parametrojn. Subteno por la 6GHz (Ultra Alta Bando) gamo estis aldonita al la Intel iwlwifi-ŝoforo. La ŝoforo Qualcomm Ath11k aldonis subtenon por FILS (Fast Initial Link Setup, normigita kiel IEEE 802.11ai) teknologio, kiu ebligas vin forigi vagantajn prokrastojn dum migrado de unu alirpunkto al alia.
  • Ekipaĵo
    • La amdgpu-ŝoforo disponigas subtenon por AMD "Green Sardine" APU (Ryzen 5000) kaj "Dimgrey Cavefish" GPU (Navi 2), same kiel komencan subtenon por AMD Van Gogh APU kun Zen 2-kerno kaj RDNA 2 GPU (Navi 2). Aldonita subteno por novaj Renoir APU-identigiloj (surbaze de Zen 2 CPU kaj Vega GPU).
    • La i915-ŝoforo por Intel-vidkartoj subtenas IS (Entjera skalo) teknologion kun la efektivigo de filtrilo por pliigi la skalon konsiderante la staton de najbaraj pikseloj (Nearest-najbara interpolado) por determini la koloron de mankantaj pikseloj. Subteno por diskretaj Intel DG1-kartoj estis vastigita. Subteno por "Big Joiner" teknologio estis efektivigita, kiu ĉeestis ekde Ice Lake / Gen11-blatoj kaj permesas la uzon de unu transkodilo por prilabori du riveretojn, ekzemple, por eligo al 8K ekrano per unu DisplayPort. Aldonita reĝimo por nesinkrone ŝanĝi inter du bufroj en videomemoro (sensinkroniga flip).
    • La nouveau-ŝoforo aldonis komencan subtenon por NVIDIA GPU-oj bazitaj sur la Ampere-mikroarkitekturo (GA100, GeForce RTX 30xx), ĝis nun limigita al iloj por kontroli videoreĝimojn.
    • Aldonita subteno por la 3WIRE-protokolo uzata en LCD-paneloj. Aldonita subteno por novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 kaj ABT Y030XX067A 3.0 paneloj. Aparte, ni povas noti la subtenon por la panelo de saĝtelefonoj OnePlus 6 kaj 6T, kiu ebligis organizi la ŝarĝon de nemodifita kerno sur aparatoj.
    • Aldonita subteno por la unua diskreta USB4 gastiga regilo de Intel, Maple Ridge.
    • Aldonita subteno por Allwinner H6 I2S, Analog Devices ADAU1372, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI kaj XCVR, Realtek RT715 kaj Qualcomm SM8250 sonkodekoj.
    • Aldonita subteno por ARM-tabuloj, aparatoj kaj platformoj: Galaxy Note 10.1, Microsoft Lumia 950 XL, NanoPi R1, FriendlyArm ZeroPi, Elimo Initium SBC, Broadcom BCM4908, Mediatek MT8192/MT6779/MT8167, MStar Infinity2M, 730 NPCM, Armada 382, Armada Mikrotik bazita sur Marvell Prestera 98DX3236, serviloj kun Nuvoton NPCM750 BMC, Kontron i.MX8M Mini, Espressobin Ultra, "Trogdor" Chromebook, Kobol Helios64, Engicam PX30.Core.
    • Enkonstruita subteno por la ludkonzolo Ouya bazita sur NVIDIA Tegra 3.

Samtempe, Latin American Free Software Foundation formis version de la tute senpaga kerno 5.11 - Linux-libre 5.11-gnu, forigita de elementoj de firmware kaj ŝoforoj enhavantaj neliberajn komponantojn aŭ kodsekciojn, kies amplekso estas limigita. de la fabrikanto. La nova eldono purigas ŝoforojn por qat_4xxx (kripto), lt9611uxcm (dsi/hdmi-ponto), ccs/smia++ (sensilo), ath11k_pci, nxp sona transceiver kaj mhi pci-regilo. Ĝisdatigita blob-purigadkodo en ŝoforoj kaj subsistemoj amdgpu, btqca, btrtl, btusb, i915 csr. Malŝaltitaj novaj blobs en m3 rproc, idt82p33 ptp-horloĝo kaj qualcomm arm64.

fonto: opennet.ru

Aldoni komenton