Aafter two months of development, Linus Torvalds released the Linux kernel 5.17. Among the most notable changes are: a new performance management system for AMD processors, the ability for recursive mapping of user IDs in file systems, support for portable compiled BPF programs, the translation of the pseudorandom number generator to the BLAKE2s algorithm, the RTLA utility for real-time execution analysis, a new fscache backend for caching network file systems, and the ability to attach names to anonymous mmap operations.
The new version includes 14,203 fixes from 1,995 developers, with the patch size being 37 MB (the changes affected 11,366 files, added 506,043 lines of code, and removed 250,954 lines). About 44% of all changes in 5.17 relate to device drivers, approximately 16% pertain to updates of architecture-specific code, 15% is related to the networking stack, 4% to file systems, and 4% to internal kernel subsystems.
Key innovations in kernel 5.17:
- DiskisĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
- The ability for nested mapping of user IDs for mounted file systems has been implemented. This is used to correlate files of a specific user on a mounted foreign partition with another user in the current system. The added capability allows for recursive mapping over file systems where mapping is already applied.
- The fscache subsystem has been completely rewritten, which is used for organizing caching in the local file system for data transmitted through network file systems. The new implementation significantly simplifies the code and replaces complex scheduling and object state tracking operations with simpler mechanisms. Support for the new fscache is implemented in the CIFS file system.
- In the fanotify FS event tracking subsystem, a new event type FAN_RENAME has been implemented, which allows you to intercept the operation of renaming files or directories all at once (formerly, two separate events FAN_MOVED_FROM and FAN_MOVED_TO were used to handle renames).
- Btrfs failustemmel on optimeeritud logimise ja fsynci toimingud suurte kataloogide jaoks, kasutades ainult indeksivĂ”tmete kopeerimist ja logitavate metaandmete mahtude vĂ€hendamist. Tagatud on toetamine indeksaatamiseks ja otsinguks vaba ruumi kirje suuruse jĂ€rgi, mis on vĂ”imaldanud vĂ€hendada viivitusi ligikaudu 30% ja lĂŒhendada otsimise aega. Antud on vĂ”imalus defragmenteerimise toimingu katkestamiseks. Lisatud on seadmete lisamise vĂ”imalus ilma tasakaalustamise katkestamiseta, st failusĂŒsteemi mountimise ajal valikuga skip_balance.
- Pakutud on uus Ceph failusĂŒsteemi mountimise sĂŒntaks, mis lahendab IP-aadresside seondumisprobleemid. Lisaks IP-aadresse serveri mÀÀramiseks saab nĂŒĂŒd kasutada klastritunnust (FSID): mount -t ceph user@fsid.fs_name=/[subdir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
- Ext4 failusĂŒsteem on ĂŒle viidud uuele mountimise API-le, mis eraldab mountimisvĂ”imaluste analĂŒĂŒsi ja superblooki seadistamise etapid. Peatatud on lazytime ja nolazytime mountimisvĂ”imaluste toetus, mis lisati ajutise muudatusena util-linuxi tĂ”lkimise lihtsustamiseks MS_LAZYTIME lipu kasutamiseks. Lisatud on toetus failusĂŒsteemi etiketide seadmiseks ja lugemiseks (ioctl FS_IOC_GETFSLABEL ja FS_IOC_SETFSLABEL).
- NFSv4 on lisatud toetus failusĂŒsteemidele, kus failide ja kataloogide nimedes ei eristataks tĂ€hti suuruse jĂ€rgi. NFSv4.1+ on lisatud toetus koondatud sessioonide mÀÀramiseks (trunking).
- MĂ€lu ja sĂŒsteemiteenused
- Lisatud on amd-pstate draiver, mis pakub dĂŒnaamilist sageduse juhtimist optimaalse jĂ”udluse saavutamiseks. Draiver toetab Zen 2 pĂ”lvkonna AMD CPU ja APU-d, on koostöös Valve'iga vĂ€lja töötatud ja suunatud energiatarbimise juhtimise efektiivsuse suurendamisele. Kohandatud sageduse muutmiseks kasutatakse CPPC (Collaborative Processor Performance Control) mehhanismi, mis vĂ”imaldab mitte ainult paremini muutuda (ei ole piiratud kolme jĂ”udluse tasemega) ja kiiremini reageerida oleku muutustele kui eelnevalt kasutatud ACPI (CPUFreq) P-state draiveritel.
- eBPF alamsĂŒsteemis on pakutud funktsiooni bpf_loop(), mis pakub alternatiivset meetodit tsĂŒklite korraldamiseks eBPF-programmides, olles kiirem ja lihtsam kontrollimiseks valideerijaga.
- Ytme tasandi on rakendatud CO-RE (Compile Once â Run Everywhere) mehhanism, mis vĂ”imaldab eBPF-programmide koodi koguda vaid ĂŒks kord ja kasutada spetsiaalset universaalset laadijat, mis kohandab laaditava programmi vastavalt praegusele tuumale ja BTF (BPF Type Format) tĂŒĂŒpidele.
- On antud vĂ”imalus mÀÀrata nimesid privaatsetele anonĂŒĂŒmsetele (malloc'i kaudu eraldatud) mĂ€lu aladele, mis vĂ”ib lihtsustada tĂ”rkeotsingu ja mĂ€lu kasutamise optimeerimist rakendustes. Nimesid antakse prctl'i abil koos PR_SET_VMA_ANON_NAME lipuga ja need kuvatakse /proc/pid/maps ja /proc/pid/smaps kujul "[anon:]".
- Ălesande planeerijas on tagatud ajaloogimine ja kuvamine /proc/PID/sched failis ajast, mille protsessid on veetnud sunnitud ooteolekus (forced-idle), mida kasutatakse nĂ€iteks protsessori ĂŒlekuumenemise tĂ”ttu koormuse vĂ€hendamiseks.
- Lisatud on gpio-sim moodul, mis on mÔeldud GPIO kiipide simuleerimiseks testimise teostamiseks.
- KÀsku "perf ftrace" on lisatud alamkÀsk "latency" viivituste teabe histogrammide genereerimiseks.
- Lisatud on RTLA utiliitide komplekt reaalajas töötamise analĂŒĂŒsimiseks. Komplekti kuuluvad sellised utiliidid nagu osnoise (mÀÀrab operatsioonisĂŒsteemi mĂ”ju ĂŒlesande tĂ€itmisele) ja timerlat (muudab ajakavadest tulenevaid viivitusi).
- Integreeritud on teine ââpatchide seeria, mis ellu viib mĂ€lulehtede (page folios) kontseptsiooni, mis meenutab liidetud mĂ€lulehti (compound pages), kuid erineb parema semantika ja arusaadavamate tööreĆŸiimide poolest. Lehtede kasutamine vĂ”imaldab kiirendada mĂ€lu haldamist mĂ”nes tuuma alamkomplektis. Esitatud patchides on lĂ”petatud lehtede vahemĂ€lu ĂŒleminek lehtedele ja lisatud algtoetamine lehtedele failisĂŒsteemis XFS.
- Lisatud on kogumise reĆŸiim "make mod2noconfig", mille korral genereeritakse konfiguratsioon, mis kogub kĂ”ik vĂ€lja lĂŒlitatud alamkomplektid tuuma moodulitena.
- TĂ”stetud on nĂ”uded LLVM/Clang versiooni osas, mida saab tuuma kogumiseks kasutada. NĂŒĂŒd on kogumiseks vajalik vĂ€hemalt LLVM 11 vĂ€ljalase.
- Virtualiseerimine ja turvalisus
- Pakutud on uuendatud RDRAND juhuslike arvu generaatori teostus, mis vastutab seadmete /dev/random ja /dev/urandom töö eest, ning mis on tĂ€helepanuvÀÀrne, kuna on liikunud BLAKE2s hĂ€sitamisfunktsiooni kasutamisele SHA1 asemel entropia segamise operatsioonide jaoks. See muudatus on parandanud juhuslike arvu generaatori turvalisust, eemaldades probleemse SHA1 algoritmi ja vĂ€listades RNG algvÀÀrtustamise vektori ĂŒlekatte. Kuna BLAKE2s algoritm on SHA1-st kiire, on selle rakendamine positiivselt mĂ”jutanud ka jĂ”udlust.
- Lisatud on kaitse protsessorite haavatavuste vastu, mis on pĂ”hjustatud spekulatiivsest kĂ€su tĂ€itmisest pĂ€rast tingimusteta otsest ĂŒleminekut. Probleem tekib pĂ€rast kĂ€skude ennustavast töötlemisest, mis jĂ€rgneb mĂ€lus otsest ĂŒleminekut kĂ€sule (SLS, Straight Line Speculation). Kaitse aktiveerimiseks on vajalik keerata GCC 12 versioon, mis on testimisstaadiumis.
- Lisatud on viidete arvu jĂ€lgimise mehhanism, mille eesmĂ€rgiks on vĂ€hendada viidete arvu vigade arvu, mis viivad mĂ€lu juurde pÀÀsemiseni pĂ€rast selle vabastamist. Hetkel on mehhanism piiratud vĂ”rgu alamsĂŒsteemiga, kuid tulevikus vĂ”ib see olla kohandatud ka teistele tuumadele.
- Teostatud on laiad kontrollid uute kirjed mĂ€lulehe tabelis, mis vĂ”imaldavad tuvastada teatud tĂŒĂŒpi kahjustusi ja peatada sĂŒsteemi, blokeerides rĂŒnnakud varajases etapis.
- Lisatud on vÔimalus tuumamoodulite avamiseks otse tuuma enda poolt, mitte kasutaja ruumiprotsessori poolt, mis lubab LSM-mooduli LoadPin abil tagada, et tuumamoodulid laaditakse mÀlu verifitseeritud salvestusseadmest.
- Tagatud on koostamine lipuga â-Wcast-function-typeâ, mis sisaldab hoiatuste vĂ€ljastamist funktsioonide viidete teisendamise kohta sobimatuks tĂŒĂŒbiks.
- Lisatud on virtuaalne hosti draiver pvUSB Xen hĂŒperviisoris, mis vĂ”imaldab juurdepÀÀsu USB-seadmetele, mis on edastatud kĂŒlalisĂŒsteemidesse (lubab kĂŒlalisĂŒsteemidest fĂŒĂŒsilistele USB-seadmetele, mis on kĂŒlalisĂŒsteemile kinnitatud, pÀÀseda).
- Lisatud moodul, mis vĂ”imaldab Wi-Fi kaudu suhelda IME (Intel Management Engine) alamsĂŒsteemiga, mis on olemas enamikus kaasaegsetes emaplaatides, millel on Intel protsessorid, ja see on realiseeritud eraldi mikropesorina, mis töötab sĂ”ltumatult CPU-st.
- ARM64 arhitektuuri jaoks on toetatud KCSAN (Kernel Concurrency Sanitizer) silumise tööriista, mis on mĂ”eldud koostöönimede dĂŒnaamiliseks tuvastamiseks tuumas.
- 32-bitiste ARM sĂŒsteemide jaoks on lisatud vĂ”imalus kasutada KFENCE mehhanismi, et tuvastada mĂ€lu kasutamise vigu.
- KVM hĂŒperviisoris on lisatud AMX (Advanced Matrix Extensions) juhiste tugi, mis on realiseeritud tulevastes Intel Xeon Scalable serveriprotsessorites.
- VĂ”rgusĂŒsteem
- Lisatud tugi andmeedastus (offloading) vÔrgu seadmetele, mis on seotud liikluse haldamisega.
- Lisatud vÔimalus kasutada MCTP (Management Component Transport Protocol) protokolli jÀrjestikuste liideste kaudu. MCTP-d saab kasutada halduskontrollerite ja seotud seadmete (vÔÔrustajad, perifeersed seadmed jne) vaheliseks suhtlemiseks.
- TCP-steki optimeerimine on lÀbi viidud, nÀiteks on recvmsg-i kutsumise jÔudluse tÔstmiseks rakendatud vahelduvat soklite vÀljajÀtmist.
- CAP_NET_RAW volituste tasemel on lubatud setsockopt funktsiooni kaudu reĆŸiimide SO_PRIORITY ja SO_MARK mÀÀramine.
- IPv4 jaoks on lubatud toor soklite kinnitamine mitte lokaalsetele IP-aadressidele, kasutades IP_FREEBIND ja IP_TRANSPARENT valikuid.
- Lisatud sysctl arp_missed_max, et seadistada vead ARP-monitooringu kontrollimisel, pĂ€rast mida vĂ”rgu liides lĂŒlitatakse vĂ€lja.
- AndmisvÔimalus on eraldi sysctl min_pmtu ja mtu_expires vÀÀrtuste seadmiseks vÔrgu nimede ruumides.
- API ethtool on lisatud vÔimalus seadistada ja mÀÀrata sissetulevate ja vÀljuvate paketide puhvrite suurust.
- Netfilterisse on lisatud toe pakkumine pppoe liikumise filtreerimiseks vÔrgu sillal.
- Ksmbd moodulisse, mis rakendab failisĂŒsteemi serverilt, kasutades SMB3 protokolli, on lisatud vĂ”tmete vahetamise tugi, aktiveeritud on vĂ”rgupord 445 smbdirecti jaoks ja lisatud on toe tugi âsmb2 max creditâ parameetri jaoks.
- Varustus
- DRM (Direct Rendering Manager) allhoosĂŒsteemi ja i915 draiveri sisse on lisatud tugi ekraanidele, mis kuvavad konfidentsiaalset teavet, nĂ€iteks mĂ”ned sĂŒlearvutid on varustatud ekraanidega, millel on sisseehitatud konfidentsiaalsuse vaatamisreĆŸiim, mis raskendab kĂ”rvalvaatajate pealtvaatamist. Lisatud muudatused vĂ”imaldavad ĂŒhendada spetsialiseeritud draivereid sellistele ekraanidele ja hallata vaatamisreĆŸiime tavapĂ€raste KMS-draiverite kaudu omaduste mÀÀramise abil.
- amdgpu draiverisse on lisatud STB (Smart Trace Buffer) tĂ”rkeotsingu tehnoloogia tugi kĂ”ikidele selle toetavatele AMD GPU-dele. STB lihtsustab tĂ”rgete analĂŒĂŒsi ja probleemide leidmist, salvestades eraldi puhverdesse teavet funktsioonide kohta, mida tĂ€ideti enne viimast tĂ”rget.
- i915 draiverisse on lisatud Intel Raptor Lake S pooljuhtide tugi ja vaikimisi on lubatud Intel Alder Lake P pooljuhtide graafikapÀdevuse tugi. Ekraani valgustuse haldamise vÔimalus on antud VESA DPCD-liidese kaudu.
- fbcon/fbdev draiveritesse on tagasiviidud riistvara kiirusuuringu tugi konsoolis.
- Muudatuste integreerimist Apple M1 pooljuhtide toeks on jĂ€tkatud. Simpledrm draiveri kasutamine Apple M1 kiipide sĂŒsteemides on realiseeritud, et kuvada lĂ€bi pildipuhvri, mille pakub pĂŒsivara.
- Lisatud on tugi ARM SoC-dele, seadmetele ja plaatidele nagu Snapdragon 7c, 845 ja 888 (Sony Xperia XZ2 / XZ2C / XZ3, Xperia 1 III / 5 III, Samsung J5, Microsoft Surface Duo 2), Mediatek MT6589 (Fairphone FP1), Mediatek MT8183 (Acer Chromebook 314), Mediatek MT7986a/b (kasutatakse Wi-Fi ruuterites), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI SPEAr320s, NXP i.MX8 ULP8, Aspeed AST2500/AST2600, Engicam i.Core STM32MP1, Allwinner Tanix TX6, Facebook Bletchley BMC, Goramo MultiLink, JOZ Access Point, Y Soft IOTA Crux/Crux+, t6000/t6001 MacBook Pro 14/16.
- ARM Cortex-M55 ja Cortex-M33 protsessorite tugi on lisatud.
- MIPS CPU-dele tuginevate seadmete tugi on lisatud: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
- RISC-V arhitektuuri pÔhine StarFive JH7100 SoC tugi on lisatud.
- Lenovo Yoga Book jaoks on lisatud lenovo-yogabook-wmi draiver, et juhtida klaviatuuri valgustust ja pÀÀseda juurde erinevatele sensoritele.
- Asus X370, X470, B450, B550 ja X399 emaplaatidel AMD Ryzen protsessoritega kasutatavate sensorite tugi on lisatud asus_wmi_sensors draiveriga.
- x86 arhitektuuriga tahvelarvuteid, mis tarnitakse Android platvormiga, toetava draiveri x86-android-tablets tugi on lisatud.
- Lisatud tugi puutetundlikele ekraanidele TrekStor SurfTab duo W1 ja elektroonilisele pliiatsile Chuwi Hi10 Plus ja Pro tahvelarvutites.
- SoC Tegra 20/30 draiveritesse on lisatud toite- ja pingehaldustugi. Vanade 32-bitiste seadmete, nagu ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 ja Pad TF300TG, laadimise vÔimalus on tagatud.
- Lisatud draiverid tööstuslikele arvutitele Siemens.
- Lisatud tugi LCD-paneelidele Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946ABA ja Team Source Display TST043015CMHX.
- Lisatud tugi helisĂŒsteemidele ja koodekitele AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, Intel sĂŒsteemid kasutavad NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS, Texas Instruments TLV320ADC3xxx. Probleemid Tegra194 HD-audios on lahendatud. Lisatud HDA tugi koodekitele CS35L41. Parandatud helisĂŒsteemide toetust Lenovo ja HP sĂŒlearvutitele, samuti Gigabyte emaplaatidele.
Allikas: opennet.ru
