PÄc divu mÄneÅ”u izstrÄdes Linuss Torvalds ieviesa kodola izlaiÅ”ana Linux 5.14. 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.
- diska apakÅ”sistÄma, ievades/izvades un failu sistÄmas:
- par cgroup Ä«stenota jauns I/O prioritÄtes 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ÄmÄ Ä«stenota jauna ioctl komanda EXT4_IOC_CHECKPOINT, kas visas neapstiprinÄtÄs transakcijas no žurnÄla un saistÄ«tajiem buferiem pÄrsÅ«ta uz disku, kÄ arÄ« pÄrraksta žurnÄla krÄtuves izmantoto apgabalu. IzmaiÅas tika sagatavotas kÄ daļa no iniciatÄ«vas, lai novÄrstu informÄcijas noplÅ«di no failu sistÄmÄm;
- in Btrfs ieviesa VeiktspÄjas optimizÄcija: 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 palielinÄjÄs 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 formÄtÄ pÄrstrÄdÄts bufera keÅ”atmiÅas ievieÅ”ana, kas tiek pÄrnesta uz atmiÅas lapu pieŔķirÅ”anu pakeÅ”u režīmÄ. Uzlabota keÅ”atmiÅas efektivitÄte;
- F2FS pievienoja opciju darbam tikai lasÄ«Å”anas režīmÄ un ieviesa saspiestu bloku keÅ”atmiÅas režīmu (compress_cache), lai uzlabotu izlases 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 ar masku, ir piedÄvÄta jauna piestiprinÄÅ”anas opcija nocompress;
- ir veikts darbs exFAT draiverÄ«, lai uzlabotu saderÄ«bu ar dažu digitÄlo kameru krÄtuvi;
- pievienots sistÄmas zvans quotactl_fd(), 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 noÅemti no kodola, tos jau sen ir aizstÄjusi libata apakÅ”sistÄma. Veco ierÄ«Äu atbalsts ir saglabÄts pilnÄ«bÄ, izmaiÅas attiecas tikai uz iespÄju izmantot vecos draiverus, kurus lietojot, diski tika saukti par /dev/hd*, nevis /dev/sd*;
- ā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ÄjÄ ir ieviests jauns plÄnoÅ”anas režīms SCHED_CORE, kas ļauj kontrolÄt, kuri procesi var darboties 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 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Ä. ;
- cgroup mehÄnismam ir ieviests kill operÄcijas 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Ä«to 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 tiks pÄrsniegts jebkurÅ” process, kas kļuva par dalÄ«tÄs bloÄ·ÄÅ”anas avotu. bÅ«t spiestam 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, ir iespÄja definÄt ierobežojumus, ko ierobežo noteikts darbÄ«bas ilgums, kas ļauj labÄk regulÄt latentuma jutÄ«gÄs 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;
- pievienots sÄkotnÄjÄ infrastruktÅ«ra BPF programmu ielÄdÄtÄju izveidei, kas turpmÄk ļaus lejupielÄdÄt tikai BPF programmas, kas parakstÄ«tas ar uzticamu digitÄlo atslÄgu;
- pievienota jauna futex operÄcija FUTEX_LOCK_PI2, kas taimauta aprÄÄ·inÄÅ”anai izmanto monotonu taimeri, kas Åem vÄrÄ laiku, ko sistÄma pavada miega režīmÄ;
- RISC-V arhitektÅ«rai atbalsts lielÄm atmiÅas lapÄm (Transparent Huge-Pages) un iespÄja izmantot KŽOGS identificÄt kļūdas, strÄdÄjot ar atmiÅu;
- madvise() sistÄmas izsaukumÄ, kas nodroÅ”ina lÄ«dzekli procesa atmiÅas pÄrvaldÄ«bas optimizÄÅ”anai, pievienots MADV_POPULATE_READ un MADV_POPULATE_WRITE karodziÅi, lai Ä£enerÄtu "lapas kļūdu" visÄs atmiÅas lapÄs, kas kartÄtas lasÄ«Å”anas vai rakstÄ«Å”anas darbÄ«bÄm, neveicot faktisku lasÄ«Å”anu vai rakstÄ«Å”anu (iepriekÅ”noklusÄjums). Karogu izmantoÅ”ana var bÅ«t noderÄ«ga, lai samazinÄtu programmas izpildes aizkavÄÅ”anos, pateicoties proaktÄ«vai ālapas kļūdasā apstrÄdÄtÄja izpildei visÄm nepieŔķirtajÄm lapÄm vienlaikus, negaidot faktisko piekļuvi tÄm;
- vienÄ«bas testÄÅ”anas sistÄmÄ kunit pievienots atbalsts testu veikÅ”anai QEMU vidÄ;
- pievienoti jauni marÄ·ieri: "osnoise" lai izsekotu lietojumprogrammu aizkaves, ko izraisa pÄrtraukumu apstrÄde, un " timerlat ", lai parÄdÄ«tu detalizÄtu informÄciju par aizkavi, kad pamoÅ”anÄs no taimera signÄla;
- virtualizÄcija un droŔība:
- piebilda sistÄmas zvans memfd_secret(), kas ļauj izveidot privÄtu atmiÅas apgabalu izolÄtÄ adreÅ”u telpÄ, kas ir redzama tikai Ä«paÅ”nieka procesam, nav atspoguļota citos procesos un nav tieÅ”i pieejama kodolam;
- seccomp sistÄmas zvanu filtrÄÅ”anas sistÄmÄ, pÄrvietojot slÄdzenes apstrÄdÄtÄjus lietotÄja telpÄ, ir iespÄjams izmantot vienu atomoperÄciju, lai izveidotu faila deskriptoru izolÄtam uzdevumam un atgrieztu to, apstrÄdÄjot sistÄmas izsaukumu. PiedÄvÄtÄ darbÄ«ba atrisina problÄma ar operatora pÄrtraukumu lietotÄja telpÄ, kad pienÄk signÄls;
- piebilda jauns mehÄnisms lai pÄrvaldÄ«tu resursu ierobežoÅ”anu lietotÄja ID nosaukumvietÄ, kas saista atseviŔķus rlimit skaitÄ«tÄjus ar lietotÄju "lietotÄja nosaukumvietÄ". IzmaiÅas atrisina problÄmu 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, buferu pÄrpilde, piekļuve pirms inicializÄcijas un izmantoÅ”ana Ärpus paÅ”reizÄjÄ konteksta;
- RÄdÄ«tÄja autentifikÄciju, ko nodroÅ”ina platforma ARM64, 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;
- Linux lietotÄja režīmÄ pievienots atbalsts draiveru izmantoÅ”anai PCI ierÄ«cÄm ar virtuÄlo PCI kopni, ko Ä«steno PCI-over-virtio draiveris;
- x86 sistÄmÄm 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 uzbrukumu iespÄjamÄ«bas dÄļ Zombieload, manipulÄjot ar informÄcijas noplÅ«di pa treÅ”o puÅ”u kanÄliem, kas notiek operÄciju asinhronÄs pÄrtraukÅ”anas mehÄnisma (TAA, TSX Asynchronous Abort) darbÄ«bas laikÄ;
- tÄ«kla apakÅ”sistÄma:
- turpinÄta integrÄcija MPTCP (MultiPath TCP) kodolÄ, kas ir 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Ä numurÄ piebilda 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Äju, kas nosaka ceļa izvÄli. par paciÅu;
- ligzdas atbalsts ir pievienots virtuÄlajam transporta virtio SOCK_SEQPACKET (datagrammu sakÄrtota un uzticama 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 pieslÄgtas caur SO_REUSEPORT, kas vienkÄrÅ”o daudzpavedienu servera aplikÄciju izveidi. . JaunajÄ versijÄ pievienots lÄ«dzeklis vadÄ«bas pÄrsÅ«tÄ«Å”anai uz citu ligzdu, ja rodas kļūmes, apstrÄdÄjot pieprasÄ«jumu sÄkotnÄji izvÄlÄtajÄ ligzdÄ (atrisina problÄmu ar atseviŔķu savienojumu zudumu, restartÄjot pakalpojumus);
- aprīkojums:
- amdgpu draiverÄ« Ä«stenota atbalsts jaunajai AMD Radeon RX 6000 sÄrijas GPU ar koda nosaukumiem āBeige Gobyā (Navi 24) un āYellow Carpā, kÄ arÄ« uzlabots atbalsts 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 atbalsts ASPM (Active State Power Management) enerÄ£ijas taupÄ«Å”anas mehÄnismam, 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. 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 tehnoloÄ£iju atbalsts AMD Smart Shift, kas dinamiski maina CPU un GPU enerÄ£ijas patÄriÅa parametrus klÄpjdatoros ar mikroshÄmojumu un AMD grafisko karti, lai uzlabotu veiktspÄju spÄlÄjot, video rediÄ£Äjot un 3D renderÄÅ”anÄ;
- i915 draiverÄ« Intel videokartÄm iekļauts atbalsts Intel Alderlake P mikroshÄmÄm;
- pievienots drm/hyperv draiveris Hyper-V virtuÄlajam grafikas adapterim;
- piebilda simpledrm grafikas draiveris, kas izvadei izmanto EFI-GOP vai VESA kadru buferi, ko nodroÅ”ina UEFI programmaparatÅ«ra vai BIOS. Draivera galvenais mÄrÄ·is ir nodroÅ”inÄt grafiskÄs izvades iespÄjas sÄknÄÅ”anas sÄkumposmÄ, pirms var izmantot pilnu DRM draiveri. Draiveri var izmantot arÄ« kÄ pagaidu risinÄjumu iekÄrtÄm, kurÄm vÄl nav vietÄjo DRM draiveru;
- pievienots viss vienÄ datoru atbalsts Raspberry Pi 400;
- Pievienots dell-wmi-privacy draiveris, lai atbalstÄ«tu kameras un mikrofona aparatÅ«ras slÄdžus, kas iekļauti Dell klÄpjdatoros;
- Lenovo klÄpjdatoriem piebilda WMI interfeiss BIOS parametru maiÅai, izmantojot sysfs /sys/class/firmware-attributes/;
- paplaÅ”inÄts atbalsts ierÄ«cÄm ar USB4 interfeisu;
- pievienots atbalsts skaÅas kartÄm un kodekiem AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 un Texas Instruments TAS2505. Uzlabots audio atbalsts HP un ASUS klÄpjdatoriem. Pievienots ielÄpus, lai samazinÄtu aizkavi, pirms tiek sÄkta audio atskaÅoÅ”ana ierÄ«cÄs ar USB interfeisu.
Avots ā opennet.ru.
Avots: linux.org.ru