Linux 5.11 kernel release

Pagkatapos ng dalawang buwan ng pag-unlad, ipinakita ni Linus Torvalds ang paglabas ng Linux kernel 5.11. Kabilang sa mga pinaka-kapansin-pansing pagbabago: suporta para sa Intel SGX enclaves, isang bagong mekanismo para sa pagharang sa mga tawag sa system, isang virtual na auxiliary bus, isang pagbabawal sa pag-assemble ng mga module na walang MODULE_LICENSE(), isang mabilis na filtering mode para sa mga tawag sa system sa seccomp, pagwawakas ng suporta para sa arkitektura ng ia64, paglipat ng teknolohiya ng WiMAX sa sangay na "staging", ang kakayahang i-encapsulate ang SCTP sa UDP.

Ang bagong bersyon ay may kasamang 15480 na pag-aayos mula sa 1991 developer, ang laki ng patch ay 72 MB (ang mga pagbabago ay nakaapekto sa 12090 na file, 868025 na linya ng code ang idinagdag, 261456 na linya ang tinanggal). Humigit-kumulang 46% ng lahat ng mga pagbabagong ipinakilala sa 5.11 ay nauugnay sa mga driver ng device, humigit-kumulang 16% ng mga pagbabago ay nauugnay sa pag-update ng code na partikular sa mga arkitektura ng hardware, 13% ay nauugnay sa network stack, 3% ay nauugnay sa mga file system, at 4% ay nauugnay sa panloob na mga subsystem ng kernel.

Mga pangunahing inobasyon:

  • Disk subsystem, I/O at mga file system
    • Maraming mga opsyon sa pag-mount ang idinagdag sa Btrfs para magamit kapag nagpapanumbalik ng data mula sa isang nasirang file system: “rescue=ignorebadroots” para sa pag-mount, sa kabila ng pinsala sa ilang mga root tree (lawak, uuid, data reloc, device, csum, free space), “ rescue=ignoredatacsums” upang i-disable ang checksum checking para sa data at ang "rescue=all" upang sabay na paganahin ang 'ignorebadroots', 'ignoredatacsums' at 'nologreplay' mode. Ang "inode_cache" na opsyon sa pag-mount, na dati nang hindi na ginagamit, ay hindi na ipinagpatuloy. Ang code ay inihanda upang ipatupad ang suporta para sa mga bloke na may metadata at data na mas maliit kaysa sa laki ng pahina (PAGE_SIZE), pati na rin ang suporta para sa zoned space allocation mode. Ang mga hindi na-buffer (Direct IO) na kahilingan ay inilipat sa iomap infrastructure. Ang pagganap ng ilang mga operasyon ay na-optimize; sa ilang mga kaso, ang acceleration ay maaaring umabot sa sampu-sampung porsyento.
    • Ipinapatupad ng XFS ang flag na "needsrepair", na nagpapahiwatig ng pangangailangan para sa pagkumpuni. Kapag nakatakda ang flag na ito, hindi mai-mount ang file system hanggang ang flag ay na-reset ng xfs_repair utility.
    • Nag-aalok lang ang Ext4 ng mga pag-aayos at pag-optimize ng bug, pati na rin ang paglilinis ng code.
    • Ang muling pag-export ng mga file system na naka-mount sa NFS ay pinapayagan (ibig sabihin, ang isang partition na naka-mount sa pamamagitan ng NFS ay maaari na ngayong i-export sa pamamagitan ng NFS at gamitin bilang isang intermediate cache).
    • Ang close_range() system call, na nagpapahintulot sa isang proseso na isara ang isang buong hanay ng mga open file descriptor nang sabay-sabay, ay nagdagdag ng CLOSE_RANGE_CLOEXEC na opsyon upang isara ang mga descriptor sa close-on-exec mode.
    • Nagdaragdag ang F2FS file system ng mga bagong ioctl() na tawag upang payagan ang kontrol ng user-space sa kung aling mga file ang nakaimbak sa naka-compress na form. Idinagdag ang "compress_mode=" mount option para piliin kung ilalagay ang compression handler sa kernel side o sa user space.
    • Ibinigay ang kakayahang mag-mount ng mga Overlay sa pamamagitan ng mga hindi karapat-dapat na proseso gamit ang isang hiwalay na namespace ng user. Upang i-verify ang pagsunod sa pagpapatupad ng modelo ng seguridad, isang buong code audit ang isinagawa. Ang mga overlayf ay nagdaragdag din ng kakayahang tumakbo gamit ang mga kopya ng mga imahe ng file system sa pamamagitan ng opsyonal na hindi pagpapagana ng UUID checking.
    • Ang Ceph file system ay nagdagdag ng suporta para sa msgr2.1 protocol, na nagbibigay-daan sa paggamit ng AES-GCM algorithm kapag nagpapadala ng data sa naka-encrypt na anyo.
    • Ang dm-multipath module ay nagpapatupad ng kakayahang isaalang-alang ang CPU affinity (“IO affinity”) kapag pumipili ng ruta para sa mga kahilingan sa I/O.
  • Mga serbisyo ng memorya at system
    • May idinagdag na bagong system call interception mechanism, batay sa prctl(), na nagbibigay-daan sa iyong bumuo ng mga exception mula sa user space kapag nag-a-access sa isang partikular na system call at tularan ang pagpapatupad nito. Ang functionality na ito ay kinakailangan sa Wine at Proton upang tularan ang mga Windows system call, na kinakailangan upang matiyak ang pagiging tugma sa mga laro at program na direktang nagsasagawa ng mga system call na lumalampas sa Windows API (halimbawa, upang maprotektahan laban sa hindi awtorisadong paggamit).
    • Ang userfaultfd() system call, na idinisenyo upang pangasiwaan ang mga page fault (pag-access sa mga hindi inilalaang memory page) sa espasyo ng user, ay mayroon na ngayong kakayahan na huwag paganahin ang exception handling na nangyayari sa kernel level upang gawing mas mahirap na pagsamantalahan ang ilang partikular na kahinaan.
    • Ang BPF subsystem ay nagdagdag ng suporta para sa task-local storage, na nagbibigay ng data binding sa isang partikular na BPF handler.
    • Ang accounting ng pagkonsumo ng memorya ng mga programa ng BPF ay ganap na muling idinisenyo - isang cgroup controller ang iminungkahi sa halip na memlock rlimit upang pamahalaan ang paggamit ng memorya sa mga bagay na BPF.
    • Ang mekanismo ng BTF (BPF Type Format), na nagbibigay ng impormasyon sa pagsuri ng uri sa BPF pseudocode, ay nagbibigay ng suporta para sa mga kernel module.
    • Nagdagdag ng suporta para sa shutdown(), renameat2() at unlinkat() system calls sa io_uring asynchronous na I/O interface. Kapag tumatawag sa io_uring_enter(), ang kakayahang tumukoy ng timeout ay idinagdag (maaari mong suriin ang suporta para sa argumento upang tumukoy ng timeout gamit ang IORING_FEAT_EXT_ARG na bandila).
    • Ang arkitektura ng ia64 na ginamit sa mga processor ng Intel Itanium ay inilipat sa kategoryang naulila, na nangangahulugang tumigil na ang pagsubok. Huminto ang Hewlett Packard Enterprise sa pagtanggap ng mga order para sa mga bagong kagamitang Itanium, at ginawa ito ng Intel noong nakaraang taon.
    • Ang suporta para sa mga system na batay sa arkitektura ng MicroBlaze na walang kasamang memory management unit (MMU) ay hindi na ipinagpatuloy. Ang ganitong mga sistema ay hindi nakikita sa pang-araw-araw na buhay sa mahabang panahon.
    • Para sa arkitektura ng MIPS, idinagdag ang suporta para sa pagsubok sa saklaw ng code gamit ang gcov utility.
    • Nagdagdag ng suporta para sa virtual auxiliary bus para sa interfacing sa mga multifunction device na pinagsasama ang functionality na nangangailangan ng iba't ibang driver (halimbawa, mga network card na may suporta sa Ethernet at RDMA). Maaaring gamitin ang bus upang magtalaga ng pangunahin at pangalawang driver sa isang device, sa mga sitwasyon kung saan may problema ang paggamit ng subsystem ng MFD (Multi-Function Devices).
    • Para sa arkitektura ng RISC-V, idinagdag ang suporta para sa sistema ng paglalaan ng memorya ng CMA (Contiguous Memory Allocator), na na-optimize para sa paglalaan ng malalaking magkadikit na lugar ng memorya gamit ang mga diskarte sa paggalaw ng pahina ng memorya. Para sa RISC-V, ipinapatupad din ang mga tool upang limitahan ang pag-access sa /dev/mem at isaalang-alang ang oras ng interrupt processing.
    • Para sa 32-bit ARM system, idinagdag ang suporta para sa KASan (Kernel address sanitizer) na tool sa pag-debug, na tumutulong sa pagtukoy ng mga error kapag nagtatrabaho gamit ang memorya. Para sa 64-bit na ARM, ang pagpapatupad ng KASan ay na-convert upang gumamit ng mga MTE tag (MemTag).
    • Nagdagdag ng epoll_pwait2() system call upang payagan ang mga timeout na may katumpakan ng nanosecond (ang epoll_wait call ay nagmamanipula ng mga millisecond).
    • Nagpapakita na ngayon ng error ang build system kapag sinusubukang bumuo ng mga mai-load na kernel module kung saan hindi tinukoy ang lisensya ng code gamit ang MODULE_LICENSE() macro. Mula ngayon, ang paggamit ng EXPORT_SYMBOL() macro para sa mga static na function ay magdudulot din ng error sa build.
    • Nagdagdag ng suporta para sa pagmamapa ng mga bagay na GEM mula sa memorya na ginamit para sa I/O, na naging posible upang mapabilis ang trabaho kasama ang framebuffer sa ilang mga arkitektura.
    • Ibinaba ng Kconfig ang suporta para sa Qt4 (habang pinapanatili ang suporta para sa Qt5, GTK at Ncurses).
  • Virtualization at Seguridad
    • Ang suporta para sa isang quick response mode ay idinagdag sa seccomp() system call, na nagbibigay-daan sa iyong mabilis na matukoy kung ang isang partikular na system call ay pinapayagan o ipinagbabawal batay sa constant-action bitmap na naka-attach sa proseso, na hindi nangangailangan ng pagpapatakbo. isang BPF handler.
    • Pinagsama-samang mga bahagi ng kernel para sa paglikha at pamamahala ng mga enclave batay sa teknolohiya ng Intel SGX (Software Guard eXtensions), na nagpapahintulot sa mga application na magsagawa ng code sa mga nakahiwalay na naka-encrypt na bahagi ng memorya, kung saan ang natitirang bahagi ng system ay may limitadong pag-access.
    • Bilang bahagi ng isang inisyatiba upang limitahan ang pag-access mula sa espasyo ng user sa MSR (model-specific register), pagsulat sa MSR_IA32_ENERGY_PERF_BIAS register, na nagbibigay-daan sa iyong baguhin ang processor energy efficiency mode (“normal”, “performance”, “powersave”) , ay ipinagbabawal.
    • Ang kakayahang hindi paganahin ang paglipat ng mga gawaing may mataas na priyoridad sa pagitan ng mga CPU ay inilipat mula sa sangay ng kernel-rt para sa mga real-time na system.
    • Para sa mga system ng ARM64, idinagdag ang kakayahang gumamit ng mga MTE tag (MemTag, Memory Tagging Extension) para sa mga address ng memory handler ng signal. Ang paggamit ng MTE ay pinagana sa pamamagitan ng pagtukoy sa SA_EXPOSE_TAGBITS na opsyon sa sigaction() at nagbibigay-daan sa iyong suriin ang wastong paggamit ng mga pointer upang harangan ang pagsasamantala sa mga kahinaan na dulot ng pag-access sa mga nabakanteng bloke ng memorya, buffer overflow, pag-access bago ang pagsisimula, at paggamit sa labas ng kasalukuyang konteksto.
    • Idinagdag ang parameter na "DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING," na nagbibigay-daan sa dm-verity subsystem na suriin ang mga hash signature ng mga certificate na inilagay sa pangalawang keyring. Sa pagsasagawa, pinapayagan ka ng pag-setup na i-verify hindi lamang ang mga sertipiko na binuo sa kernel, kundi pati na rin ang mga sertipiko na na-load sa panahon ng operasyon, na ginagawang posible na i-update ang mga sertipiko nang hindi ina-update ang buong kernel.
    • Ang user-mode na Linux ay nagdagdag ng suporta para sa suspend-to-idle mode, na nagbibigay-daan sa iyong i-freeze ang kapaligiran at gamitin ang SIGUSR1 signal para magising mula sa sleep mode.
    • Ang mekanismo ng virtio-mem, na nagpapahintulot sa iyo na i-hot-plug at idiskonekta ang memorya sa mga virtual machine, ay nagdagdag ng suporta para sa Big Block Mode (BBM), na ginagawang posible na ilipat o kumuha ng memorya sa mga bloke na mas malaki kaysa sa laki ng memorya ng kernel block, na kinakailangan upang ma-optimize ang VFIO sa QEMU.
    • Ang suporta para sa CHACHA20-POLY1305 cipher ay idinagdag sa kernel na pagpapatupad ng TLS.
  • Subsystem ng network
    • Para sa 802.1Q (VLAN), isang mekanismo ng pamamahala ng pagkabigo ng koneksyon (CFM, Connectivity Fault Management) ay ipinatupad, na nagbibigay-daan sa iyong tukuyin, i-verify at ihiwalay ang mga pagkabigo sa mga network na may mga virtual na tulay (Virtual Bridged Networks). Halimbawa, maaaring gamitin ang CFM upang ihiwalay ang mga problema sa mga network na sumasaklaw sa maraming independiyenteng organisasyon na ang mga empleyado ay may access lamang sa kanilang sariling kagamitan.
    • Idinagdag ang suporta para sa pag-encapsulate ng mga SCTP protocol packet sa mga UDP packet (RFC 6951), na nagbibigay-daan sa iyong gamitin ang SCTP sa mga network na may mas lumang mga tagasalin ng address na hindi direktang sumusuporta sa SCTP, pati na rin ang pagpapatupad ng SCTP sa mga system na hindi nagbibigay ng direktang access sa IP. layer.
    • Ang pagpapatupad ng teknolohiya ng WiMAX ay inilipat sa pagtatanghal at nakatakdang alisin sa hinaharap kung walang mga gumagamit na nangangailangan ng WiMAX. Hindi na ginagamit ang WiMAX sa mga pampublikong network, at sa kernel ang tanging driver na magagamit ng WiMAX ay ang lumang Intel 2400m driver. Ang suporta sa WiMAX ay hindi na ipinagpatuloy sa NetworkManager network configurator noong 2015. Sa kasalukuyan, ang WiMax ay halos ganap na napapalitan ng mga teknolohiya tulad ng LTE, HSPA+ at Wi-Fi 802.11n.
    • Ang trabaho ay ginawa upang i-optimize ang pagganap ng pagpoproseso ng papasok na trapiko ng TCP sa zerocopy mode, i.e. nang walang karagdagang pagkopya sa mga bagong buffer. Para sa medium-sized na trapiko, na sumasaklaw sa sampu o ilang daang kilobytes ng data, ang paggamit ng zerocopy sa halip na recvmsg() ay kapansin-pansing mas epektibo. Halimbawa, ginawang posible ng mga ipinatupad na pagbabago na mapataas ang kahusayan ng pagpoproseso ng istilong RPC na trapiko na may 32 KB na mga mensahe kapag gumagamit ng zerocopy ng 60-70%.
    • Nagdagdag ng mga bagong ioctl() na tawag upang lumikha ng mga tulay ng network na sumasaklaw sa maraming link ng PPP. Ang iminungkahing kakayahan ay nagpapahintulot sa mga frame na lumipat mula sa isang channel patungo sa isa pa, halimbawa mula sa isang PPPoE patungo sa isang PPPoL2TP session.
    • Pagsasama sa core ng MPTCP (MultiPath TCP), isang extension ng TCP protocol para sa pag-aayos ng operasyon ng isang koneksyon sa TCP sa paghahatid ng mga packet nang sabay-sabay sa ilang mga ruta sa pamamagitan ng iba't ibang mga interface ng network na nauugnay sa iba't ibang mga IP address. Ang bagong release ay nagpapakilala ng suporta para sa opsyong ADD_ADDR upang mag-advertise ng mga available na IP address na maaaring ikonekta kapag nagdaragdag ng mga bagong daloy sa isang kasalukuyang koneksyon sa MPTCP.
    • Idinagdag ang kakayahang mag-configure ng mga aksyon kapag lumampas ang badyet sa pagboto ng koneksyon (busy-polling). Ang dating available na SO_BUSY_POLL mode ay nangangahulugang lumipat sa softirq kapag naubos na ang badyet. Para sa mga application na kailangang patuloy na gumamit ng botohan, isang bagong opsyon na SO_PREFER_BUSY_POLL ang iminungkahi.
    • Ang IPv6 ay nagpapatupad ng suporta para sa SRv6 End.DT4 at End.DT6 na mga mode, na ginagamit para gumawa ng mga multi-user na IPv4 L3 VPN at VRF (Virtual routing and forwarding) na mga device.
    • Pinag-isa ng Netfilter ang pagpapatupad ng mga set na expression, na naging posible upang tukuyin ang maramihang mga expression para sa bawat elemento ng mga set list.
    • Ang mga API ay idinagdag sa 802.11 wireless stack upang i-configure ang mga limitasyon ng kapangyarihan ng SAR, pati na rin ang mga parameter ng AE PWE at HE MCS. Ang driver ng Intel iwlwifi ay nagdagdag ng suporta para sa hanay ng 6GHz (Ultra High Band). Ang Qualcomm Ath11k driver ay nagdagdag ng suporta para sa FILS (Fast Initial Link Setup, standardized as IEEE 802.11ai) na teknolohiya, na nagbibigay-daan sa iyong alisin ang mga pagkaantala sa roaming sa panahon ng paglipat mula sa isang access point patungo sa isa pa.
  • Оборудование
    • Ang amdgpu driver ay nagbibigay ng suporta para sa AMD "Green Sardine" APU (Ryzen 5000) at "Dimgrey Cavefish" GPU (Navi 2), pati na rin ang paunang suporta para sa AMD Van Gogh APU na may Zen 2 core at RDNA 2 GPU (Navi 2). Nagdagdag ng suporta para sa mga bagong Renoir APU identifier (batay sa Zen 2 CPU at Vega GPU).
    • Ang driver ng i915 para sa mga Intel video card ay sumusuporta sa teknolohiyang IS (Integer scaling) na may pagpapatupad ng isang filter para sa pagtaas ng sukat na isinasaalang-alang ang estado ng mga kalapit na pixel (Nearest-nearest-neghbor interpolation) upang matukoy ang kulay ng mga nawawalang pixel. Ang suporta para sa mga discrete Intel DG1 card ay pinalawak. Ang suporta para sa teknolohiyang "Big Joiner" ay ipinatupad, na naroroon mula noong Ice Lake / Gen11 chips at nagbibigay-daan sa paggamit ng isang transcoder na magproseso ng dalawang stream, halimbawa, para sa output sa isang 8K na screen sa pamamagitan ng isang DisplayPort. Nagdagdag ng mode para sa asynchronous na paglipat sa pagitan ng dalawang buffer sa memorya ng video (async flip).
    • Ang nouveau driver ay nagdagdag ng paunang suporta para sa mga NVIDIA GPU batay sa Ampere microarchitecture (GA100, GeForce RTX 30xx), hanggang ngayon ay limitado sa mga tool para sa pagkontrol ng mga video mode.
    • Nagdagdag ng suporta para sa 3WIRE protocol na ginagamit sa mga panel ng LCD. Nagdagdag ng suporta para sa mga panel ng novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 at ABT Y030XX067A 3.0. Hiwalay, maaari naming tandaan ang suporta para sa panel ng OnePlus 6 at 6T na mga smartphone, na naging posible upang ayusin ang paglo-load ng isang hindi binagong kernel sa mga device.
    • Nagdagdag ng suporta para sa unang discrete USB4 host controller ng Intel, ang Maple Ridge.
    • Nagdagdag ng suporta para sa Allwinner H6 I2S, Analog Devices ADAU1372, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI at XCVR, Realtek RT715 at Qualcomm SM8250 audio codec.
    • Nagdagdag ng suporta para sa mga ARM board, device at platform: Galaxy Note 10.1, Microsoft Lumia 950 XL, NanoPi R1, FriendlyArm ZeroPi, Elimo Initium SBC, Broadcom BCM4908, Mediatek MT8192/MT6779/MT8167, MStar Infinity2M, Nuvoton, NPCM730 ​​Mikrotik batay sa Marvell Prestera 382DX98, mga server na may Nuvoton NPCM3236 BMC, Kontron i.MX750M Mini, Espressobin Ultra, “Trogdor” Chromebook, Kobol Helios8, Engicam PX64.Core.
    • Built-in na suporta para sa Ouya gaming console batay sa NVIDIA Tegra 3.

Kasabay nito, ang Latin American Free Software Foundation ay bumuo ng isang bersyon ng ganap na libreng 5.11 kernel - Linux-libre 5.11-gnu, na-clear sa mga elemento ng firmware at mga driver na naglalaman ng mga di-libreng bahagi o mga seksyon ng code, ang saklaw nito ay limitado. ng tagagawa. Nililinis ng bagong release ang mga driver para sa qat_4xxx (crypto), lt9611uxcm (dsi/hdmi bridge), ccs/smia++ (sensor), ath11k_pci, nxp audio transceiver at mhi pci controller. Na-update na blob cleaning code sa mga driver at subsystem amdgpu, btqca, btrtl, btusb, i915 csr. Na-disable ang mga bagong blobs sa m3 rproc, idt82p33 ptp clock at qualcomm arm64.

Pinagmulan: opennet.ru

Magdagdag ng komento