PÄc divu mÄneÅ”u izstrÄdes Linuss Torvalds iepazÄ«stinÄja ar Linux kodola 5.14 izlaiÅ”anu. Starp ievÄrojamÄkajÄm izmaiÅÄm: jauni quotactl_fd() un memfd_secret() sistÄmas izsaukumi, ide un raw draiveru noÅemÅ”ana, jauns I/O prioritÄtes kontrolleris cgroup, SCHED_CORE uzdevumu plÄnoÅ”anas režīms, infrastruktÅ«ra verificÄtu BPF programmu ielÄdÄtÄju izveidei.
JaunajÄ versijÄ ir iekļauti 15883 2002 labojumi no 69 izstrÄdÄtÄjiem, ielÄpa izmÄrs ir 12580 MB (izmaiÅas skÄra 861501 321654 failus, tika pievienota 47 5.14 koda rindiÅa, dzÄstas 14 13 rindiÅas). Aptuveni 3% no visÄm izmaiÅÄm, kas ieviestas 3 versijÄ, ir saistÄ«tas ar ierÄ«Äu draiveriem, aptuveni XNUMX% no izmaiÅÄm 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
- CgrupÄm ir ieviests jauns I/O prioritÄÅ”u kontrolieris, rq-qos, kas var kontrolÄt katras cgrupas dalÄ«bnieku Ä£enerÄto ierÄ«Äu bloÄ·ÄÅ”anas pieprasÄ«jumu apstrÄdes prioritÄti. Mq-deadline I/O plÄnotÄjam ir pievienots jauns prioritÄtes kontrollera atbalsts.
- Ext4 failu sistÄma ievieÅ” jaunu ioctl komandu EXT4_IOC_CHECKPOINT, kas liek visiem neapstiprinÄtajiem darÄ«jumiem no žurnÄla un ar tiem saistÄ«tajiem buferiem izskalot diskÄ, kÄ arÄ« pÄrraksta apgabalu, ko žurnÄls izmanto krÄtuvÄ. IzmaiÅas tika sagatavotas kÄ daļa no iniciatÄ«vas, lai novÄrstu informÄcijas noplÅ«di no failu sistÄmÄm.
- Btrfs ir veiktas veiktspÄjas optimizÄcijas: novÄrÅ”ot nevajadzÄ«gu paplaÅ”inÄto atribÅ«tu reÄ£istrÄÅ”anu fsync izpildes laikÄ, intensÄ«vu darbÄ«bu veiktspÄja ar paplaÅ”inÄtiem atribÅ«tiem ir palielinÄjusies lÄ«dz pat 17%. TurklÄt, veicot apgrieÅ”anas darbÄ«bas, kas neietekmÄ apmÄrus, tiek atspÄjota pilna sinhronizÄcija, kas samazinÄja darbÄ«bas laiku par 12%. Sysf ir pievienots iestatÄ«jums, lai ierobežotu I/O joslas platumu, pÄrbaudot FS. Pievienoti ioctl zvani, lai atceltu ierÄ«ces izmÄru maiÅas un dzÄÅ”anas darbÄ«bas.
- XFS ir pÄrveidota bufera keÅ”atmiÅas ievieÅ”ana, kas ir pÄrslÄgta uz atmiÅas lapu pieŔķirÅ”anu pakeÅ”u režīmÄ. Uzlabota keÅ”atmiÅas efektivitÄte.
- F2FS pievieno opciju darbam tikai lasÄ«Å”anas režīmÄ un ievieÅ” saspiestu bloku keÅ”atmiÅas režīmu (compress_cache), lai uzlabotu nejauÅ”as lasÄ«Å”anas veiktspÄju. Ir ieviests atbalsts atmiÅÄ saglabÄto failu saspieÅ”anai, izmantojot operÄciju mmap(). Lai selektÄ«vi atspÄjotu failu saspieÅ”anu, pamatojoties uz masku, ir piedÄvÄta jauna montÄžas opcija nocompress.
- Ir veikts darbs exFAT draiverÄ«, lai uzlabotu saderÄ«bu ar dažÄm digitÄlo kameru krÄtuvÄm.
- Pievienots quotactl_fd() sistÄmas izsaukums, kas ļauj pÄrvaldÄ«t kvotas nevis izmantojot Ä«paÅ”u ierÄ«ces failu, bet gan norÄdot faila deskriptoru, kas saistÄ«ts ar failu sistÄmu, kurai kvota tiek piemÄrota.
- Vecie draiveri blokierÄ«cÄm ar IDE interfeisu ir izÅemti no kodola, tos jau sen ir aizstÄjusi libata apakÅ”sistÄma.
- "Raw" draiveris ir noÅemts no kodola, nodroÅ”inot nebuferÄtu piekļuvi bloÄ·ÄtajÄm ierÄ«cÄm, izmantojot /dev/raw saskarni. Å Ä« funkcionalitÄte jau sen ir ieviesta lietojumprogrammÄs, kas izmanto karogu O_DIRECT.
- AtmiÅas un sistÄmas pakalpojumi
- Uzdevumu plÄnotÄjs ievieÅ” jaunu plÄnoÅ”anas režīmu SCHED_CORE, kas ļauj kontrolÄt, kurus procesus var izpildÄ«t kopÄ vienÄ CPU kodolÄ. Katram procesam var pieŔķirt sÄ«kdatÅu identifikatoru, kas nosaka uzticÄ«bas apjomu starp procesiem (piemÄram, piederÄ«bu vienam lietotÄjam vai konteineram). OrganizÄjot koda izpildi, plÄnotÄjs var nodroÅ”inÄt, ka viens CPU kodols tiek koplietots tikai starp procesiem, kas saistÄ«ti ar vienu un to paÅ”u Ä«paÅ”nieku, ko var izmantot, lai bloÄ·Ätu dažus Spectre uzbrukumus, neļaujot uzticamiem un neuzticamiem uzdevumiem darboties tajÄ paÅ”Ä SMT (Hyper Threading) pavedienÄ. .
- AttiecÄ«bÄ uz cgroup ir ieviests kill darbÄ«bas atbalsts, kas ļauj uzreiz nogalinÄt visus ar grupu saistÄ«tos procesus (nosÅ«tÄ«t SIGKILL), virtuÄlajÄ failÄ cgroup.kill ierakstot ā1ā.
- PaplaÅ”inÄtas iespÄjas, kas saistÄ«tas ar reaÄ£ÄÅ”anu uz dalÄ«tu slÄdzeÅu (āsadalÄ«tu slÄdzeÅuā) noteikÅ”anu, kas rodas, piekļūstot nesaskaÅotiem datiem atmiÅÄ, jo, izpildot atomu instrukciju, dati ŔķÄrso divas CPU keÅ”atmiÅas lÄ«nijas. Å Äda bloÄ·ÄÅ”ana izraisa ievÄrojamu veiktspÄjas kritumu, tÄpÄc iepriekÅ” bija iespÄjams piespiedu kÄrtÄ pÄrtraukt lietojumprogrammu, kas izraisÄ«ja bloÄ·ÄÅ”anu. JaunajÄ laidienÄ ir pievienots kodola komandrindas parametrs āsplit_lock_detect=ratelimit:Nā, kas ļauj definÄt sistÄmas mÄroga ierobežojumu bloÄ·ÄÅ”anas operÄciju Ätrumam sekundÄ, pÄc kura pÄrsniegÅ”anas jebkurÅ” process, kas kļuvis par dalÄ«tÄs bloÄ·ÄÅ”anas avotu. bÅ«s spiesti apstÄties uz 20 ms, nevis pÄrtraukt.
- Cgroup joslas platuma kontrolieris CFS (CFS joslas platuma kontrolieris), kas nosaka, cik daudz procesora laika var atvÄlÄt katrai cgrupai, ievieÅ” iespÄju definÄt laika ierobežojumus, kas ļauj labÄk regulÄt latentuma jutÄ«gas darba slodzes. PiemÄram, iestatot cpu.cfs_quota_us uz 50000 un cpu.cfs_period_us uz 100000, procesu grupa ik pÄc 100 ms ļaus iztÄrÄt 50 ms CPU laika.
- Pievienota sÄkotnÄjÄ infrastruktÅ«ra BPF programmu ielÄdÄtÄju izveidei, kas turpmÄk ļaus ielÄdÄt tikai BPF programmas, kas parakstÄ«tas ar uzticamu digitÄlo atslÄgu.
- Pievienota jauna futex operÄcija FUTEX_LOCK_PI2, kas izmanto monotonu taimeri, lai aprÄÄ·inÄtu taimautu, kas Åem vÄrÄ laiku, ko sistÄma pavada miega režīmÄ.
- RISC-V arhitektÅ«rai ir ieviests atbalsts lielÄm atmiÅas lapÄm (Transparent Huge-Pages) un iespÄja izmantot KFENCE mehÄnismu, lai atklÄtu kļūdas, strÄdÄjot ar atmiÅu.
- SistÄmas izsaukums madvise(), kas nodroÅ”ina procesa atmiÅas pÄrvaldÄ«bas optimizÄÅ”anas lÄ«dzekli, ir pievienojis karodziÅus MADV_POPULATE_READ un MADV_POPULATE_WRITE, lai Ä£enerÄtu "lapas kļūdu" visÄs atmiÅas lapÄs, kas kartÄtas lasÄ«Å”anas vai rakstÄ«Å”anas operÄcijÄm, neveicot faktisku lasÄ«Å”anu vai rakstÄ«Å”anu. (priekÅ”noklusÄjums). Karogu izmantoÅ”ana var bÅ«t noderÄ«ga, lai samazinÄtu programmas izpildes aizkavÄÅ”anos, jo "lapas kļūdas" apstrÄdÄtÄjs tiek aktÄ«vi izpildÄ«ts visÄm nepieŔķirtajÄm lapÄm vienlaikus, negaidot faktisko piekļuvi tÄm.
- Kunit vienÄ«bas testÄÅ”anas sistÄmai ir pievienots atbalsts testu veikÅ”anai QEMU vidÄ.
- Ir pievienoti jauni marÄ·ieri: "osnoise", lai izsekotu lietojumprogrammu kavÄjumiem, ko izraisa pÄrtraukumu apstrÄde, un "taimerlats", lai parÄdÄ«tu detalizÄtu informÄciju par aizkavi, kad pamoÅ”anÄs no taimera signÄla.
- VirtualizÄcija un droŔība
- SistÄmas izsaukums memfd_secret() ir pievienots, lai izveidotu privÄtu atmiÅas apgabalu izolÄtÄ adreÅ”u telpÄ, kas ir redzama tikai Ä«paÅ”nieka procesam, netiek atspoguļota citos procesos un nav tieÅ”i pieejama kodolam.
- Seccomp sistÄmas zvanu filtrÄÅ”anas sistÄmÄ, pÄrvietojot bloÄ·ÄÅ”anas apstrÄdÄtÄjus lietotÄja telpÄ, ir iespÄjams izmantot vienu atomu operÄciju, lai izveidotu faila deskriptoru izolÄtam uzdevumam un atgrieztu to, apstrÄdÄjot sistÄmas zvanu. PiedÄvÄtÄ darbÄ«ba atrisina problÄmu, kas saistÄ«ta ar apdarinÄtÄja pÄrtraukÅ”anu lietotÄja telpÄ, kad tiek saÅemts signÄls.
- Pievienots jauns mehÄnisms resursu ierobežojumu pÄrvaldÄ«bai lietotÄja ID nosaukumvietÄ, kas saista atseviŔķus rlimit skaitÄ«tÄjus ar lietotÄju "lietotÄja nosaukumvietÄ". IzmaiÅas atrisina problÄmu, kas saistÄ«ta ar kopÄjo resursu skaitÄ«tÄju izmantoÅ”anu, kad viens lietotÄjs palaiž procesus dažÄdos konteineros.
- KVM hipervizors ARM64 sistÄmÄm ir pievienojis iespÄju izmantot MTE (MemTag, Memory Tagging Extension) paplaÅ”inÄjumu viesu sistÄmÄs, kas ļauj saistÄ«t tagus katrai atmiÅas pieŔķirÅ”anas darbÄ«bai un organizÄt rÄdÄ«tÄju pareizas izmantoÅ”anas pÄrbaudi, lai bloÄ·Ätu ievainojamÄ«bas, ko izraisa piekļuve jau atbrÄ«votajiem atmiÅas blokiem, bufera pÄrpilde, piekļuve pirms inicializÄcijas un izmantoÅ”ana Ärpus paÅ”reizÄjÄ konteksta.
- ARM64 platformas rÄdÄ«tÄja autentifikÄcijas iespÄjas tagad var konfigurÄt atseviŔķi kodolam un lietotÄja vietai. Å Ä« tehnoloÄ£ija ļauj izmantot specializÄtas ARM64 instrukcijas, lai pÄrbaudÄ«tu atgrieÅ”anas adreses, izmantojot ciparparakstus, kas tiek saglabÄti paÅ”a rÄdÄ«tÄja neizmantotajos augÅ”Äjos bitos.
- LietotÄja režīmÄ Linux ir pievienots atbalsts draiveru izmantoÅ”anai PCI ierÄ«cÄm ar virtuÄlo PCI kopni, ko ievieÅ” PCI-over-virtio draiveris.
- X86 sistÄmÄm ir pievienots atbalsts virtio-iommu paravirtualizÄtajai ierÄ«cei, kas ļauj nosÅ«tÄ«t IOMMU pieprasÄ«jumus, piemÄram, ATTACH, DETACH, MAP un UNMAP, izmantojot virtio transportu, ne emulÄjot atmiÅas lapu tabulas.
- Intel centrÄlajiem procesoriem, sÄkot no Skylake saimes un beidzot ar Coffee Lake, Intel TSX (transakciju sinhronizÄcijas paplaÅ”inÄjumi), kas nodroÅ”ina rÄ«kus vairÄku pavedienu lietojumprogrammu veiktspÄjas uzlaboÅ”anai, dinamiski novÄrÅ”ot nevajadzÄ«gas sinhronizÄcijas darbÄ«bas, lietoÅ”ana pÄc noklusÄjuma ir atspÄjota. PaplaÅ”inÄjumi ir atspÄjoti, jo ir iespÄjami Zombieload uzbrukumi, kas manipulÄ ar informÄcijas noplÅ«di, izmantojot treÅ”o puÅ”u kanÄlus, kas notiek TAA (TSX Asynchronous Abort) mehÄnisma darbÄ«bas laikÄ.
- TÄ«kla apakÅ”sistÄma
- 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Ä ir pievienots mehÄnisms savu trafika jaukÅ”anas politiku iestatÄ«Å”anai IPv4 un IPv6 (daudzceļu jaukÅ”anas politika), kas ļauj no lietotÄja vietas noteikt, kuri lauki paketÄs, ieskaitot iekapsulÄtos, tiks izmantoti, aprÄÄ·inot jaucÄjkodu, kas nosaka paketes ceļa izvÄle.
- Virto virtuÄlajam transportam ir pievienots atbalsts SOCK_SEQPACKET ligzdÄm (pasÅ«tÄ«ta un uzticama datagrammu pÄrraide).
- PaplaÅ”inÄtas SO_REUSEPORT ligzdas mehÄnisma iespÄjas, kas ļauj vienlaikus pieslÄgties vairÄkÄm klausÄ«Å”anÄs ligzdÄm vienam portam, lai saÅemtu savienojumus ar ienÄkoÅ”o pieprasÄ«jumu sadali vienlaicÄ«gi pa visÄm ligzdÄm, kas savienotas caur SO_REUSEPORT, kas vienkÄrÅ”o daudzpavedienu servera lietojumprogrammu izveidi. . JaunajÄ versijÄ ir pievienoti rÄ«ki vadÄ«bas pÄrsÅ«tÄ«Å”anai uz citu ligzdu, ja, apstrÄdÄjot pieprasÄ«jumu sÄkotnÄji atlasÄ«tajÄ ligzdÄ, rodas kļūmes (atrisina problÄmu ar atseviŔķu savienojumu zudumu, restartÄjot pakalpojumus).
- ŠŠ±Š¾ŃŃŠ“Š¾Š²Š°Š½ŠøŠµ
- Amdgpu draiveris nodroÅ”ina atbalstu jaunajai AMD Radeon RX 6000 GPU sÄrijai ar koda nosaukumiem āBeige Gobyā (Navi 24) un āYellow Carpā, kÄ arÄ« uzlabotu atbalstu Aldebaran GPU (gfx90a) un Van Gogh APU. Pievienota iespÄja vienlaikus strÄdÄt ar vairÄkiem eDP paneļiem. APU Renoir ir ieviests atbalsts darbam ar Å”ifrÄtiem buferiem video atmiÅÄ (TMZ, Trusted Memory Zone). Pievienots karstÄs atvienoÅ”anas grafikas karÅ”u atbalsts. Radeon RX 6000 (Navi 2x) GPU un vecÄkiem AMD GPU pÄc noklusÄjuma ir iespÄjots ASPM (Active State Power Management) atbalsts, kas iepriekÅ” bija iespÄjots tikai Navi 1x, Vega un Polaris GPU.
- AMD mikroshÄmÄm ir pievienots atbalsts koplietojamai virtuÄlajai atmiÅai (SVM, koplietojamÄ virtuÄlÄ atmiÅa), pamatojoties uz HMM (Heterogeneous memory management) apakÅ”sistÄmu, kas ļauj izmantot ierÄ«ces ar savÄm atmiÅas pÄrvaldÄ«bas vienÄ«bÄm (MMU, atmiÅas pÄrvaldÄ«bas vienÄ«ba), kas var piekļūt galvenajai atmiÅai. Jo Ä«paÅ”i, izmantojot HMM, varat organizÄt kopÄ«gu adreÅ”u telpu starp GPU un CPU, kurÄ GPU var piekļūt procesa galvenajai atmiÅai.
- Pievienots sÄkotnÄjais atbalsts AMD Smart Shift tehnoloÄ£ijai, kas dinamiski maina CPU un GPU jaudas iestatÄ«jumus klÄpjdatoros ar AMD mikroshÄmojumu un grafisko karti, lai uzlabotu veiktspÄju spÄlÄm, video rediÄ£ÄÅ”anai un 3D renderÄÅ”anai.
- Intel grafisko karÅ”u i915 draiveris ietver Intel Alderlake P mikroshÄmu atbalstu.
- Pievienots drm/hyperv draiveris Hyper-V virtuÄlajam grafikas adapterim.
- Pievienots atbalsts Raspberry Pi 400 viss vienÄ datorÄ.
- Pievienots dell-wmi-privacy draiveris, lai atbalstÄ«tu aparatÅ«ras kameras un mikrofona slÄdžus, kas iekļauti Dell klÄpjdatoros.
- Lenovo klÄpjdatoriem ir pievienots WMI interfeiss BIOS iestatÄ«jumu mainÄ«Å”anai, izmantojot sysfs /sys/class/firmware-attributes/.
- PaplaÅ”inÄts atbalsts ierÄ«cÄm ar USB4 interfeisu.
- Pievienots atbalsts AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 un Texas Instruments TAS2505 skaÅas kartÄm un kodekiem. Uzlabots audio atbalsts HP un ASUS klÄpjdatoriem. Pievienoti ielÄpi, lai samazinÄtu aizkavi pirms audio atskaÅoÅ”anas USB ierÄ«cÄs.
Avots: opennet.ru