Lëshimi i kernelit Linux 5.17

Pas dy muajsh zhvillimi, Linus Torvalds prezantoi lëshimin e kernelit Linux 5.17. Ndër ndryshimet më të dukshme: një sistem i ri i menaxhimit të performancës për procesorët AMD, aftësia për të hartuar në mënyrë rekursive ID-të e përdoruesve në sistemet e skedarëve, mbështetje për programet e përpiluara portative BPF, një kalim i gjeneratorit të numrave pseudo të rastësishëm në algoritmin BLAKE2s, një mjet RTLA. për analizën e ekzekutimit në kohë reale, një backend i ri fscache për ruajtjen e sistemeve të skedarëve të rrjetit, aftësia për të bashkangjitur emra operacioneve anonime mmap.

Versioni i ri përfshin 14203 rregullime nga 1995 zhvillues, madhësia e patch-it është 37 MB (ndryshimet prekën 11366 skedarë, u shtuan 506043 rreshta kodi, u fshinë 250954 rreshta). Rreth 44% e të gjitha ndryshimeve të paraqitura në 5.17 lidhen me drejtuesit e pajisjes, afërsisht 16% e ndryshimeve kanë të bëjnë me përditësimin e kodit specifik për arkitekturat e harduerit, 15% janë të lidhura me grupin e rrjetit, 4% kanë të bëjnë me sistemet e skedarëve dhe 4% janë të lidhura me nënsistemet e brendshme të kernelit.

Risitë kryesore në kernel 5.17:

  • Nënsistemi i diskut, I/O dhe sistemet e skedarëve
    • Zbatoi mundësinë e hartës së mbivendosur të ID-ve të përdoruesve të sistemeve të skedarëve të montuar, të përdorura për të krahasuar skedarët e një përdoruesi specifik në një ndarje të huaj të montuar me një përdorues tjetër në sistemin aktual. Funksioni i shtuar ju lejon të përdorni në mënyrë rekursive hartëzimin në krye të sistemeve të skedarëve për të cilat harta është aplikuar tashmë.
    • Nënsistemi fscache, i përdorur për të organizuar caching në sistemin lokal të skedarëve të të dhënave të transferuara përmes sistemeve të skedarëve të rrjetit, është rishkruar plotësisht. Zbatimi i ri dallohet nga një thjeshtësim i konsiderueshëm i kodit dhe zëvendësimi i operacioneve komplekse të gjendjeve të objekteve të planifikimit dhe gjurmimit me mekanizma më të thjeshtë. Mbështetja për fscache-në e re zbatohet në sistemin e skedarëve CIFS.
    • Nënsistemi i gjurmimit të ngjarjeve në fanotify FS zbaton një lloj të ri ngjarjeje, FAN_RENAME, i cili ju lejon të përgjoni menjëherë funksionimin e riemërtimit të skedarëve ose drejtorive (më parë, dy ngjarje të veçanta FAN_MOVED_FROM dhe FAN_MOVED_TO janë përdorur për të përpunuar riemërtimet).
    • Sistemi i skedarëve Btrfs ka optimizuar operacionet e regjistrimit dhe fsync për drejtoritë e mëdha, të zbatuara duke kopjuar vetëm çelësat e indeksit dhe duke zvogëluar sasinë e meta të dhënave të regjistruara. Është ofruar mbështetje për indeksimin dhe kërkimin sipas madhësisë së të dhënave të hapësirës së lirë, gjë që ka reduktuar vonesën me afërsisht 30% dhe ka zvogëluar kohën e kërkimit. Lejohet të ndërpresë operacionet e defragmentimit. Aftësia për të shtuar pajisje gjatë balancimit midis disqeve është e çaktivizuar, d.m.th. kur montoni një sistem skedari me opsionin skip_balance.
    • Është propozuar një sintaksë e re për montimin e sistemit të skedarëve Ceph, duke zgjidhur problemet ekzistuese që lidhen me lidhjen me adresat IP. Përveç adresave IP, tani mund të përdorni identifikuesin e grupit (FSID) për të identifikuar serverin: montoni -t ceph [email mbrojtur]_name=/[nëndir] mnt -o mon_addr=monip1[:port][/monip2[:port]]
    • Sistemi i skedarëve Ext4 është zhvendosur në një API të ri montimi që ndan hapat e analizimit të opsioneve të montimit dhe konfigurimit të superbllokut. Ne kemi hequr mbështetjen për opsionet e montimit lazytime dhe nolazytime, të cilat u shtuan si një ndryshim i përkohshëm për të lehtësuar kalimin e util-linux për të përdorur flamurin MS_LAZYTIME. Mbështetje e shtuar për vendosjen dhe leximin e etiketave në FS (ioctl FS_IOC_GETFSLABEL dhe FS_IOC_SETFSLABEL).
    • NFSv4 shtoi mbështetje për të punuar në sistemet e skedarëve të pandjeshëm ndaj rasteve në emrat e skedarëve dhe dosjeve. NFSv4.1+ shton mbështetje për përcaktimin e seancave të grumbulluara (trunking).
  • Shërbimet e kujtesës dhe sistemit
    • Shtuar drejtues amd-pstate për të siguruar kontroll dinamik të frekuencës për performancë optimale. Shoferi mbështet CPU dhe APU AMD duke filluar nga gjenerata Zen 2, e zhvilluar së bashku me Valve dhe synon të përmirësojë efikasitetin e menaxhimit të energjisë. Për ndryshimet adaptive të frekuencës, përdoret mekanizmi CPPC (Kontrolli i Performancës së Procesorit Bashkëpunues), i cili ju lejon të ndryshoni treguesit më saktë (jo kufizuar në tre nivele të performancës) dhe t'i përgjigjeni më shpejt ndryshimeve të gjendjes sesa gjendja P e përdorur më parë e bazuar në ACPI. drejtuesit (CPUFreq).
    • Nënsistemi eBPF ofron një mbajtës bpf_loop(), i cili ofron një mënyrë alternative për të organizuar sythe në programet eBPF, më të shpejtë dhe më të lehtë për verifikim nga një verifikues.
    • Në nivelin e kernelit, zbatohet mekanizmi CO-RE (Compile Once - Run Everywhere), i cili ju lejon të përpiloni kodin e programeve eBPF vetëm një herë dhe të përdorni një ngarkues të veçantë universal që përshtat programin e ngarkuar me llojet aktuale të kernelit dhe BTF. (Formati i Llojit BPF).
    • Është e mundur të caktohen emra në zonat e memories private anonime (të ndara nëpërmjet malloc), të cilat mund të thjeshtojnë korrigjimin dhe optimizimin e konsumit të memories në aplikacione. Emrat caktohen nëpërmjet prctl me flamurin PR_SET_VMA_ANON_NAME dhe shfaqen në /proc/pid/maps dhe /proc/pid/smaps në formën "[anon: ]".
    • Planifikuesi i detyrave siguron gjurmimin dhe shfaqjen në /proc/PID/sched të kohës së shpenzuar nga proceset në gjendjen e papunë të detyruar, që përdoret, për shembull, për të reduktuar ngarkesën kur procesori mbinxehet.
    • Moduli i shtuar gpio-sim, i krijuar për të simuluar çipat GPIO për testim.
    • Shtoi një nënkomandë "latency" në komandën "perf ftrace" për të gjeneruar histograme me informacion latente.
    • U shtua një grup shërbimesh "RTLA" për të analizuar punën në kohë reale. Ai përfshin shërbime të tilla si osnoise (përcakton ndikimin e sistemit operativ në ekzekutimin e një detyre) dhe timerlat (ndryshon vonesat që lidhen me kohëmatësin).
    • Një seri e dytë arnimesh është integruar me zbatimin e konceptit të fletëve të faqeve, të cilat i ngjajnë faqeve të përbëra, por kanë përmirësuar semantikën dhe një organizim më të qartë të punës. Përdorimi i tomes ju lejon të përshpejtoni menaxhimin e kujtesës në disa nënsisteme kernel. Arnimet e propozuara përfunduan konvertimin e cache të faqeve në përdorimin e tomes dhe shtuan mbështetjen fillestare për tomes në sistemin e skedarëve XFS.
    • U shtua modaliteti i ndërtimit "make mod2noconfig", i cili gjeneron një konfigurim që mbledh të gjitha nënsistemet me aftësi të kufizuara në formën e moduleve të kernelit.
    • Kërkesat për versionin e LLVM/Clang që mund të përdoret për të ndërtuar kernelin janë ngritur. Ndërtimi tani kërkon të paktën lëshimin e LLVM 11.
  • Virtualizimi dhe Siguria
    • Propozohet një zbatim i përditësuar i gjeneratorit të numrave pseudo të rastësishëm RDRAND, përgjegjës për funksionimin e pajisjeve /dev/random dhe /dev/urandom, i dukshëm për kalimin në përdorimin e funksionit hash BLAKE2s në vend të SHA1 për operacionet e përzierjes së entropisë. Ndryshimi përmirësoi sigurinë e gjeneratorit të numrave pseudo të rastësishëm duke eliminuar algoritmin problematik SHA1 dhe duke eliminuar mbishkrimin e vektorit të inicializimit RNG. Meqenëse algoritmi BLAKE2s është superior ndaj SHA1 në performancë, përdorimi i tij gjithashtu pati një efekt pozitiv në performancë.
    • Mbrojtje e shtuar kundër dobësive në procesorë të shkaktuar nga ekzekutimi spekulativ i udhëzimeve pas operacioneve të pakushtëzuara të kërcimit përpara. Problemi ndodh për shkak të përpunimit parandalues ​​të udhëzimeve menjëherë pas udhëzimit të degës në memorie (SLS, Spekulimi i Linjës së Drejtë). Aktivizimi i mbrojtjes kërkon ndërtim me versionin aktualisht testues të GCC 12.
    • U shtua një mekanizëm për gjurmimin e numërimit të referencës (refcount, reference-count), që synon të zvogëlojë numrin e gabimeve në numërimin e referencës që çojnë në akses në memorie pasi të jetë liruar. Mekanizmi aktualisht është i kufizuar në nënsistemin e rrjetit, por në të ardhmen ai mund të përshtatet në pjesë të tjera të kernelit.
    • Janë zbatuar kontrolle të zgjeruara të hyrjeve të reja në tabelën e faqeve të kujtesës së procesit, duke lejuar zbulimin e llojeve të caktuara të dëmtimeve dhe ndalimin e sistemit, duke bllokuar sulmet në një fazë të hershme.
    • U shtua aftësia për të shpaketuar modulet e kernelit drejtpërdrejt nga vetë kerneli dhe jo nga një mbajtës në hapësirën e përdoruesit, gjë që lejon përdorimin e modulit LoadPin LSM për të siguruar që modulet e kernelit të ngarkohen në memorie nga një pajisje ruajtëse e verifikuar.
    • Pajisur me një montim me flamurin "-Wcast-function-type", i cili mundëson paralajmërime në lidhje me transmetimin e treguesve të funksionit në një lloj të papajtueshëm.
    • U shtua drejtuesi virtual i hostit pvUSB për hipervizorin Xen, duke siguruar akses në pajisjet USB të përcjella te sistemet e vizitorëve (lejon sistemet e vizitorëve të aksesojnë pajisjet fizike USB të caktuara për sistemin e ftuar).
    • Është shtuar një modul që ju lejon të ndërveproni nëpërmjet Wi-Fi me nënsistemin IME (Intel Management Engine), i cili vjen në shumicën e pllakave amë moderne me procesorë Intel dhe zbatohet si një mikroprocesor i veçantë që funksionon në mënyrë të pavarur nga CPU.
    • Për arkitekturën ARM64, mbështetja është zbatuar për mjetin e korrigjimit KCSAN (Kernel Concurrency Sanitizer), i krijuar për të zbuluar në mënyrë dinamike kushtet e garës brenda kernelit.
    • Për sistemet ARM 32-bitësh, është shtuar aftësia për të përdorur mekanizmin KFENCE për të zbuluar gabimet gjatë punës me memorie.
    • Hipervizori KVM shton mbështetje për udhëzimet AMX (Advanced Matrix Extensions) të zbatuara në procesorët e ardhshëm të serverëve Intel Xeon Scalable.
  • Nënsistemi i rrjetit
    • Mbështetje e shtuar për shkarkimin e operacioneve që lidhen me menaxhimin e trafikut në anën e pajisjeve të rrjetit.
    • U shtua aftësia për të përdorur MCTP (Management Component Transport Protocol) mbi pajisjet serike. MCTP mund të përdoret për të komunikuar ndërmjet kontrolluesve të menaxhimit dhe pajisjeve të tyre të lidhura (procesorët pritës, pajisjet periferike, etj.).
    • Stacki TCP është optimizuar, për shembull, për të përmirësuar performancën e thirrjeve recvmsg, është zbatuar lëshimi i vonuar i buferave të prizës.
    • Në nivelin e autoritetit CAP_NET_RAW, lejohet vendosja e modaliteteve SO_PRIORITY dhe SO_MARK përmes funksionit setsockopt.
    • Për IPv4, bazat e papërpunuara lejohen të lidhen me adresat IP jo lokale duke përdorur opsionet IP_FREEBIND dhe IP_TRANSPARENT.
    • U shtua sysctl arp_missed_max për të konfiguruar numrin e pragut të dështimeve gjatë kontrollit të monitorit ARP, pas së cilës ndërfaqja e rrjetit vendoset në një gjendje të çaktivizuar.
    • Ofron mundësinë për të konfiguruar vlera të veçanta sysctl min_pmtu dhe mtu_expires për hapësirat e emrave të rrjetit.
    • U shtua aftësia për të vendosur dhe përcaktuar madhësinë e buferave për paketat hyrëse dhe dalëse në API të ethtool.
    • Netfilter ka shtuar mbështetje për filtrimin e trafikut transit pppoe në një urë rrjeti.
    • Moduli ksmbd, i cili implementon një server skedari duke përdorur protokollin SMB3, ka shtuar mbështetje për shkëmbimin e çelësave, ka aktivizuar portin e rrjetit 445 për smbdirect dhe ka shtuar mbështetje për parametrin "smb2 max credit".
  • Оборудование
    • Mbështetja për ekranet për shfaqjen e informacionit konfidencial është shtuar në nënsistemin drm (Direct Renderering Manager) dhe drejtuesin i915, për shembull, disa laptopë janë të pajisur me ekrane me një modalitet shikimi konfidencial të integruar, duke e bërë të vështirë shikimin nga jashtë. . Ndryshimet e shtuara ju lejojnë të lidhni drejtues të specializuar për ekrane të tilla dhe të kontrolloni mënyrat konfidenciale të shfletimit duke vendosur vetitë në drejtuesit e rregullt KMS.
    • Drejtuesi amdgpu përfshin mbështetjen për teknologjinë e korrigjimit STB (Smart Trace Buffer) për të gjitha GPU-të AMD që e mbështesin atë. STB e bën më të lehtë analizimin e dështimeve dhe identifikimin e burimit të problemeve duke ruajtur në një tampon të veçantë informacionin rreth funksioneve të kryera përpara dështimit të fundit.
    • Drejtuesi i915 shton mbështetje për çipat Intel Raptor Lake S dhe mundëson mbështetje për nënsistemin grafik të çipave Intel Alder Lake P si parazgjedhje. Është e mundur të kontrollohet drita e prapme e ekranit nëpërmjet ndërfaqes VESA DPCD.
    • Mbështetja për përshpejtimin e lëvizjes së harduerit në tastierë është kthyer në drejtuesit e fbcon/fbdev.
    • Integrimi i vazhdueshëm i ndryshimeve për të mbështetur çipat Apple M1. Zbatoi aftësinë për të përdorur drejtuesin simpledrm në sistemet me një çip Apple M1 për dalje përmes një bufferi kornizë të ofruar nga firmware.
    • Mbështetje e shtuar për ARM SoС, pajisjet dhe bordet Snapdragon 7c, 845 dhe 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 (përdoret në ruterat Wi-Fi), Broadcom BCM4908 (Netgear RAXE500), Qualcomm SDX65, Samsung Exynos7885, Renesas R-Car S4-8, TI J721s2, TI J320s8, TI SPEX8 , 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.
    • Mbështetje e shtuar për procesorët ARM Cortex-M55 dhe Cortex-M33.
    • Mbështetje e shtuar për pajisjet e bazuara në CPU MIPS: Linksys WRT320N v1, Netgear R6300 v1, Netgear WN2500RP v1/v2.
    • Mbështetje e shtuar për StarFive JH7100 SoC bazuar në arkitekturën RISC-V.
    • U shtua drejtuesi lenovo-yogabook-wmi për të kontrolluar dritën e pasme të tastierës dhe për të aksesuar sensorë të ndryshëm në Librin e Lenovo Yoga.
    • U shtua drejtuesi i asus_wmi_sensors për të aksesuar sensorët e përdorur në motherboard Asus X370, X470, B450, B550 dhe X399 bazuar në procesorët AMD Ryzen.
    • U shtua drejtuesi i tabletave x86-android për kompjuterët tabletë me bazë x86 të dërguar me platformën Android.
    • Mbështetje e shtuar për ekranet me prekje TrekStor SurfTab duo W1 dhe stilolapsin elektronik për tabletët Chuwi Hi10 Plus dhe Pro.
    • Drejtuesit për SoC Tegra 20/30 kanë shtuar mbështetje për menaxhimin e energjisë dhe tensionit. Aktivizon nisjen në pajisjet e vjetra Tegra SoC 32-bit si ASUS Prime TF201, Pad TF701T, Pad TF300T, Infinity TF700T, EeePad TF101 dhe Pad TF300TG.
    • Drejtues të shtuar për kompjuterët industrialë Siemens.
    • Mbështetje e shtuar për Sony Tulip Truly NT35521, Vivax TPC-9150, Innolux G070Y2-T02, BOE BF060Y8M-AJ0, JDI R63452, Novatek NT35950, Wanchanglong W552946 TCPC-043015 dhe panelet e ekipit.
    • Mbështetje e shtuar për sistemet e zërit dhe kodekët AMD Renoir ACP, Asahi Kasei Microdevices AKM4375, sistemet Intel duke përdorur NAU8825/MAX98390, Mediatek MT8915, nVidia Tegra20 S/PDIF, Qualcomm ALC5682I-VS.VS320x3, Texas Problemet me Tegra194 HD-audio janë zgjidhur. U shtua mbështetje HDA për kodekët CS35L41. Mbështetje e përmirësuar për sistemet e zërit për laptopët Lenovo dhe HP, si dhe pllakat amë Gigabyte.

Burimi: opennet.ru

Shto një koment