Linux 5.14 kodolaida

Pēc divu mēnešu attīstības Linuss Torvalds ir paziņojis par Linux 5.14 kodolaida iznākšanu. Starp visredzamākajām izmaiņām ir jauni sistēmas izsaukumi quotactl_fd() un memfd_secret(), ide un raw draiveru izņemšana, jauns ievades/izvades prioritātes kontrolieris cgroup, uzdevumu plānošanas režīms SCHED_CORE un infrastruktūra, lai izveidotu verifikētu BPF programmu ielādētājus.

Jaunajā versijā iekļauti 15883 labojumi no 2002 izstrādātājiem, plātne ir 69 MB (izmaiņas skāra 12580 failus, pievienoti 861501 koda rindiņas, izdzēstas 321654 rindiņas). Aptuveni 47% no visām izmaiņām 5.14 versijā ir saistītas ar ierīču draiveriem, apmēram 14% izmaiņu attiecas uz specifisko aparatūras arhitektūru koda atjaunināšanu, 13% ir saistītas ar tīkla kaudzi, 3% ar failu sistēmām un 3% ar kodola iekšējām apakšsistēmām.

Galvenās jauninājumi:

  • Disku apakšsistēma, I/O un failu sistēmas
    • Cgroup ir ieviests jauns ievades/izvades prioritātes kontrolieris — rq-qos, kas var pārvaldīt pieprasījumu apstrādes prioritāti blokierīcēm, ko ģenerē katras cgroup dalībnieki. Jaunā prioritātes kontroliera atbalsts ir pievienots mq-deadline ievades/izvades plānotājam.
    • Ext4 failu sistēmā ieviesta jauna ioctl komanda EXT4_IOC_CHECKPOINT, kas piespiedu kārtā atsakņo diskā visas gaidošās transakcijas no žurnāla un saistītajiem buferiem, kā arī pārwrite žurnāla izmantoto teritoriju krātuvē. Izmaiņas ir sagatavotas, lai novērstu datu noplūdi no failu sistēmām.
    • Btrfs ir veikti veiktspējas optimizējumi: izslēdzot lieko žurnālu attiecībā uz paplašinātajiem atribūtiem, veicot fsync, ir palielinājusi intensīvu operāciju veiktspēju ar paplašinātajiem atribūtiem līdz 17%. Turklāt, veicot operācijas ar apgriešanu, kas neietekmē ekstensijas, ir izslēgta pilna sinhronizācija, kas samazināja operācijas izpildes laiku par 12%. Sysfs ir pievienota konfigurācija, lai ierobežotu ievades/izvades caurlaidību failu sistēmas pārbaudes laikā. Pievienoti ioctl izsaukumi, lai atceltu izmēra maiņas operācijas un ierīces dzēšanu.
    • XFS ir pārstrādāta buferu kešatmiņas īstenošana, kas pārvietota uz lapu atmiņas piešķiršanu partijās. Ir uzlabota kešatmiņas efektivitāte.
    • F2FS ir pievienota opcija, kas darbojas tikai lasīšanas režīmā, un ieviests kompresēto bloku kešatmiņas režīms (compress_cache), lai uzlabotu nejaušu lasīšanas veiktspēju. Ieviesta atbalsts failu kompresijai, kas attēlota atmiņā, izmantojot mmap() operāciju. Lai izvēles veidā atslēgtu failu kompresiju pēc maskas, piedāvāta jauna montēšanas opcija nocompress.
    • exFAT draiverī ir veikti uzlabojumi, lai palielinātu saderību ar dažādu digitālo kameru krātuvi.
    • Pievienota sistēmas izsaukuma funkcija quotactl_fd(), kas ļauj pārvaldīt kvotas nevis caur īpašu ierīču failu, bet norādot faila descriptoru, kas saistīts ar failu sistēmu, kurai piemērojama kvota.
    • No kodola ir izņemtas vecās draiveri bloķējošiem ierīcēm ar IDE interfeisu, kuras jau sen nomainījušas libata apakšsistēma.
    • No kodola ir izņemts 'raw' draiveris, kas nodrošina nebuferētu piekļuvi bloķējošām ierīcēm caur /dev/raw interfeisu. Norādītā funkcionalitāte jau sen ir īstenota lietotnēs, izmantojot O_DIRECT karogu.
  • Atmiņa un sistēmas pakalpojumi
    • Uzdevumu plānotājā ir ieviests jauns SCHED_CORE plānošanas režīms, kas ļauj pārvaldīt, kuri procesi var kopīgi darboties uz viena CPU kodola. Katram procesam var piešķirt cookie identifikatoru, kas nosaka uzticības jomu starp procesiem (piemēram, piederību vienam lietotājam vai konteineram). Organizējot koda izpildi, plānotājs var nodrošināt vienas CPU koda koplietošanu tikai procesiem, kas saistīti ar vienu īpašnieku, kas var tikt izmantots, lai bloķētu dažus uzbrukumus no Spectre klases, novēršot uzticamu un neuzticamu uzdevumu izpildi vienā SMT (Hyper Threading) plūsmā.
    • Cgroup atbalsta kill darbību, kas ļauj vienlaikus pārtraukt visus saistītos grupas procesus (nosūtīt SIGKILL), ierakstot '1' virtuālajā failā cgroup.kill.
    • Paplašinātās iespējas, kas saistītas ar reakciju uz izsistajām bloķēšanām ("split lock"), kas rodas pie piekļuves neizsvarotajiem datiem atmiņā, jo izpildot atomārās instrukcijas dati šķērso divas CPU keša līnijas. Šādas bloķēšanas noved pie būtiska veiktspējas krituma, tādēļ iepriekš bija iespēja piespiest pabeigt aplikāciju, kas izraisīja bloķēšanu. Jaunajā laidienā pievienots komandrindas parametrs "split_lock_detect=ratelimit:N", kas ļauj noteikt vispārējo sistēmas bloķēšanas operāciju intensitātes limitu sekundē, pēc kura pārsniegšanas jebkurš process, kas ir sadalītās bloķēšanas avots, vietā, lai tiktu pārtraukts, tiks piespiedu kārtā apstādināts uz 20 ms.
    • Cgroup kontrollerī CFS (CFS bandwidth controller), kas nosaka, cik daudz procesoru laika var piešķirt katrai cgroup, ieviesta iespēja noteikt limitus, kas ierobežoti ar noteiktu darbības laiku, tādējādi labāk regulējot slodzes, kuras ir jutīgas pret aizkavēšanos. Piemēram, iestata cpu.cfs_quota_us uz 50000 un cpu.cfs_period_us uz 100000 ļaus procesu grupai katras 100 ms tērēt 50 ms CPU laika.
    • Pievienota sākotnējā infrastruktūra BPF programmu ielādētājiem, 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 monotono taimeri laika izslēgšanai, ņemot vērā laiku, ko sistēma pavadījusi miega režīmā.
    • RISC-V arhitektūrai ieviesta atbalsts lielām atmiņas lapām (Transparent Huge-Pages) un iespēja piemērot KFENCE mehānismu, lai identificētu atmiņas kļūdas.
    • Sistēmas izsaukumā madvise() ir pievienoti MADV_POPULATE_READ un MADV_POPULATE_WRITE karogi, lai ģenerētu «page fault» visām atmiņas lapām, kas atspoguļotas lasīšanas vai rakstīšanas operācijās, neizpildot faktisku lasīšanu vai rakstīšanu (prefault). Karogu izmantošana var būt noderīga, lai samazinātu kavēšanos programmas darbībā, proaktīvi izpildot «page fault» apstrādātāja uzdevumus visām neizmantojotām lapām, negaidot faktisko piekļuvi tām.
    • Vienību testēšanas sistēmā kunit ir pievienota atbalsts testu palaišanai QEMU vidē.
    • Ir pievienoti jauni izsekošanas rīki: «osnoise» aplikāciju kavēšanās izsekošanai, ko izraisa pārtraukumu apstrāde, un «timerlat» rūpīgākai informācijai par kavēšanos, kad tiek pamodināts ar taimeri.
  • Virtualizācija un drošība
    • Ir pievienots sistēmas izsaukums memfd_secret(), kas ļauj izveidot privātu atmiņas jomu izolētā adreses telpā, kas ir redzama tikai īpašnieka procesam, nav atspoguļota citos procesos un nav tieši pieejama kodolam.
    • Sistēmas izsaukumu filtrēšanas sistēmā seccomp, kad bloķēšanas apstrādātāji tiek iznesti lietotāja telpā, ir nodrošināta iespēja izmantot vienu atomāro operāciju, lai izveidotu failu descriptoru izolētai uzdevumu izpildei un to atgrieztu sistēmas izsaukuma apstrādē. Ieteiktā operācija atrisina problēmu ar apstrādātāja pārtraukšanu lietotāja telpā, saņemot signālu.
    • Ir pievienots jauns mehānisms, lai pārvaldītu resursu ierobežojumu lietotāju ID telpā, kas sasaista atsevišķus rlimit skaitļus ar lietotāju «user namespace». Šī izmaiņa atrisina problēmu ar kopīgo resursu skaitļu piemērošanu, kad vienas lietotāja izpildītie procesi darbojas dažādos konteineros.
    • Hiper-vizorā KVM ARM64 sistēmām ir pievienota iespēja izmantot viesu sistēmās MTE (MemTag, Memory Tagging Extension) paplašinājumu, kas ļauj pievienot etiķetes katrai atmiņas izvietošanas operācijai un veikt rādītāju izmantošanas pareizības pārbaudi, lai novērstu ievainojamību izmantošanu, kas saistītas ar piekļuvi jau atbrīvotām atmiņas blokiem, bufera pārsniegumu, piekļuvi pirms inicializācijas un izmantošanu ārpus pašreizējā konteksta.
    • ARM64 platform support for Pointer Authentication can now be individually configured for the kernel and user space. This technology allows the use of specialized ARM64 instructions to verify return addresses using digital signatures stored in the unused upper bits of the pointer itself.
    • User-mode Linux now supports drivers for PCI devices with a virtual PCI bus implemented by the PCI-over-virtio driver.
    • For x86 systems, support for the paravirtualized virtio-iommu device has been added, enabling IOMMU requests such as ATTACH, DETACH, MAP, and UNMAP to be sent over virtio transport without emulating memory page tables.
    • For Intel CPUs, from the Skylake family to Coffee Lake, the use of Intel TSX (Transactional Synchronization Extensions) is disabled by default. This feature provides methods to improve the performance of multithreaded applications by dynamically excluding unnecessary synchronization operations. The extensions are disabled due to the risk of Zombieload attacks, which manipulate information leakage through side channels during the asynchronous interrupt operation mechanism (TAA, TSX Asynchronous Abort).
  • Tīkla subsistēma
    • Integration into the MPTCP (MultiPath TCP) kernel continues, an extension of the TCP protocol to enable TCP connections to deliver packets simultaneously over multiple routes through different network interfaces bound to different IP adresēm. The new release introduces a mechanism to define custom traffic hashing policies for IPv4 and IPv6 (multipath hash policy), allowing user space to specify which fields in packets, including encapsulated ones, will be used in the hash computation determining the path selection for the packet.
    • Support for SOCK_SEQPACKET sockets (ordered and reliable datagram transmission) has been added to the virtio transport.
    • Paplašinātas SO_REUSEPORT soketu mehānisma iespējas, kas ļauj vairākiem klausīšanās soketiem pieslēgties vienam portam, lai pieņemtu savienojumus, vienlaikus sadalot ienākošos pieprasījumus pa visiem pieslēgtajiem SO_REUSEPORT soketiem. Tas atvieglo multivides serveru lietojumprogrammu izveidi. Jaunajā versijā ir iekļauti rīki, lai nodotu kontroli citam soketam, ja sākotnēji izvēlētais sokets neizdodas apstrādāt pieprasījumu (risina atsevišķu savienojumu zaudēšanas problēmu, pārstartējot pakalpojumus).
  • Aprīkojums
    • Amdgpu draiverī ir ieviesta atbalsta jauno AMD Radeon RX 6000 GPU sērijām, kas attīstītas ar nosaukumiem "Beige Goby" (Navi 24) un "Yellow Carp", kā arī uzlabots Aldebaran GPU atbalsts (gfx90a) un Van Gogh APU. Ir pievienota iespēja vienlaikus darboties ar vairākām eDP panelēm. Renoir APU ir ieviests atbalsts šifrētu buferu izmantošanai videomemori (TMZ, Trusted Memory Zone). Pievienots atbalsts karstajai grafikas karšu izņemšanai (hot-unplug). Radeon RX 6000 GPU (Navi 2x) un vecāku AMD GPU atbalsts energoefektivitātes mehānismam ASPM (Active State Power Management) ir ieslēgts pēc noklusējuma, kas iepriekš bija aktivizēts tikai Navi 1x, Vega un Polaris GPU.
    • AMD mikroshēmām ir pievienots atbalsts koplietotai virtuālai atmiņai (SVM, shared virtual memory) uz HMM (Heterogeneous memory management) subsistēmas bāzes, kas ļauj izmantot ierīces ar saviem atmiņas kontroles blokiem (MMU, memory management unit), kas var piekļūt pamatatmiņai. Ar HMM palīdzību ir iespējams organizēt kopīgu adreses telpu starp GPU un CPU, kurā GPU var piekļūt procesa pamatatmiņai.
    • Ievies atsāļu atbalstu AMD Smart Shift tehnoloģijai, kas dinamiski maina CPU un GPU energoefektivitātes parametrus portatīvajos datoros ar AMD chipset un grafisko karti, lai uzlabotu veiktspēju spēlēs, video rediģēšanā un 3D attēlošanā.
    • Intel grafikas kartēm i915 draiverī ir iekļauts atbalsts Intel Alderlake P mikroshēmām.
    • Ir pievienots drm/hyperv draiveris Hyper-V virtuālajam grafikas adapterim.
    • Ir pievienots atbalsts Raspberry Pi 400 all-in-one datoram.
    • Ir pievienots dell-wmi-privacy draiveris, lai atbalstītu Dell klēpjdatoros iekļautos aparatūras kameras un mikrofonu izslēgšanas slēdžus.
    • Lenovo klēpjdatoriem ir pievienots WMI interfeiss BIOS parametru maiņai caur sysfs /sys/class/firmware-attributes/.
    • Paplašināta atbalsta sniegšana 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 skaņas atbalsts HP un ASUS portatīvajos datoros. Pievienoti labojumi, lai samazinātu kavēšanos pirms skaņas atskaņošanas sākuma ierīcēs ar USB interfeisu.

Avots: opennet.lv

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster