Izšel je jedro Linux 6.0

Po dveh mesecih razvoja je Linus Torvalds predstavil izdajo jedra Linux 6.0. Znatna sprememba različice je bila izvedena iz estetskih razlogov in je formalni korak, ki odpravlja nelagodje zaradi velikega števila izdaj v seriji (Linus je pošalil, da je razlog za spremembo številke veje bolj v tem, da mu uhajajo prsti na rokah in nogah pri štetju različic). Med najbolj opaznimi spremembami so: podpora asinhronemu obsežnemu pisanju v XFS, blokovni gonilnik ublk, optimizacija načrtovalnika nalog, mehanizem za preverjanje pravilnosti delovanja jedra ter podpora blokovnemu šifriranju ARIA.

Glavne novosti v jedru 6.0:

  • Дисковая подсистема, ввод/вывод и файловые системы
    • V datotečni sistem XFS je bila dodana podpora asinhronemu obsežnemu pisanju z uporabo mehanizma io_uring. Testi zmogljivosti, izvedeni s pomočjo orodja fio (1 tok, velikost bloka 4 kB, 600 sekund, zaporedno pisanje), kažejo povečanje števila operacij vhod/izhod na sekundo (IOPS) z 77k na 209k, hitrosti prenosa podatkov – z 314MB/s na 854MB/s, in zmanjšanje zakasnitve z 9600ns na 120ns (80-krat).
    • V datotečnem sistemu Btrfs je bila implementirana druga različica protokola za ukaz „send“, ki uvaja podporo za dodatne metapodatke, pošiljanje podatkov v večjih blokih (več kot 64k) in prenos ekstenzov v stisnjeni obliki. Znatno (do 3-krat) je bila povečana zmogljivost operacij neposrednega branja (direct read) zaradi sočasnega branja do 256 sektorjev. Zmanjšani so konflikti zaklepov in pospešena preveritev metapodatkov zaradi zmanjšanja rezerviranih metapodatkov za odložene elemente.
    • V datotečnem sistemu ext4 so bile dodane nove ioctl-operacije EXT4_IOC_GETFSUUID in EXT4_IC_SETFSUUID za pridobitev ali nastavitev UUID-identifikatorja, shranjenega v superbloku.
    • V datotečnem sistemu F2FS je bil predlagan način nizke porabe pomnilnika, ki optimizira delovanje na napravah z majhnim obsegom RAM-a in omogoča zmanjšanje porabe pomnilnika na račun zmanjšanja zmogljivosti.
    • Dodana je podpora za avtentikacijo naprav NVMe.
    • V strežnikom NFSv4 je implementiral omejitev števila aktivnih strank, ki znaša 1024 dovoljenih strank na vsak gigabajt pomnilnika v sistemu.
    • V izvedbi CIFS-klienta je bila izboljšana zmogljivost v načinu večkanalne prenosa.
    • В подсистему отслеживания событий в ФС fanotify добавлен новый флаг FAN_MARK_IGNORE для игнорирования специфичных событий.
    • В ФС Overlayfs, при монтировании поверх ФС с маппингом идентификаторов пользователей, обеспечена корректная поддержка POSIX-совместимых списков управления доступом.
    • Добавлен блочный драйвер ublk, выносящий специфичную логику на сторону фонового процесса в пространстве пользователя и использующий подсистему io_uring.
  • Pomnilnik in sistemske storitve
    • В подсистему DAMON (Data Access MONitor) добавлены новые возможности, позволяющие не только отслеживать доступ процессов к оперативной памяти из пространства пользователя, но и влиять на управление памятью. В частности, предложен новый модуль «LRU_SORT», обеспечивающий перегруппировку списков LRU (Least Recently Used) для повышения приоритета определённых страниц памяти.
    • Реализована возможность создания новых регионов памяти, используя возможности шины CXL (Compute Express Link), применяемой для организации высокоскоростного взаимодействия CPU с устройствами памяти. CXL позволяет подключать новые регионы памяти, предоставляемые внешними устройствами памяти, и использовать их как дополнительные ресурсы физического адресного пространства для расширения системной оперативной памяти (DDR) или постоянной памяти (PMEM).
    • Решены проблемы с производительностью систем на процессорах AMD Zen, вызванные кодом, добавленным 20 лет назад для обхода аппаратной проблемы в некоторых чипсетах (добавлялась дополнительная инструкция WAIT, замедляющая процессор чтобы чипсет успевал перейти в состояние простоя). Изменение приводило к снижению производительности при нагрузках, в которых часто чередуются состояния простоя (idle) и активности (busy). Например, после отключения обходного манёвра средние показатели теста tbench увеличились с 32191 MB/s до 33805 MB/s.
    • Iz planerja opravil je bil odstranjen kodeks z hevristiko, ki omogoča migracijo procesov na najmanj obremenjene CPU, ob upoštevanju napovedane koristi v porabi energije. Razvijalci so ugotovili, da hevristika ne prinaša ustrezne koristi in jo je preprosteje odstraniti ter prenašati procese brez dodatnih ocen vsakič, ko tak prenos potencialno lahko privede do zmanjšanja porabe energije (na primer, ko je ciljna CPU na ravni z nižjo porabo energije). Izklop hevristike je privedel do zmanjšanja porabe energije pri intenzivnih nalogah, na primer, v testu z dekodiranjem videa je poraba energije padla za 5,6%.
    • Izvedena je bila optimizacija porazdelitve nalog med jedri CPU na velikih sistemih, kar je omogočilo povečanje zmogljivosti pri nekaterih vrstah obremenitev.
    • V vmesniku asinhronih vhodov/izhodov io_uring je bil predlagan nov zastavica IORING_RECV_MULTISHOT, ki omogoča uporabo načina 'multi-shot' s sistemskim klicem recv() za hkratno izvedbo več bralnih operacij z ene omrežne vtičnice. V io_uring je bila implementirana tudi podpora za omrežni prenos brez vmesnega predpomnjenja (zero-copy).
    • Uvedena je bila možnost prehoda programov BPF, povezanih z uprobe, v stanje spanja. V BPF je bil dodan nov iterator ksym za delo s tabelami simbolov jedra.
    • Odstranjen je bil zastareli vmesnik 'efivars' v sysfs, namenjen dostopu do zagonskih spremenljivk UEFI (za dostop do podatkov EFI se zdaj povsod uporablja virtualna datotečna sistem efivarfs).
    • V orodju perf so bile uvedene nove poročila za analizo konfliktov zaklepanja in časa, ki ga procesor porabi za izvajanje komponent jedra.
    • Odstranjena je bila nastavitev CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3, ki je omogočala sestavljanje jedra v načinu optimizacije '-O3'. Opaženo je, da se poskusi z načini optimizacije lahko izvajajo s prenosom zastavic med sestavljanjem ('make KCFLAGS=-O3'), medtem ko je za dodajanje nastavitve v Kconfig potrebno zagotoviti ponovljivo profiliranje zmogljivosti, ki kaže, da prenos ciklov v načinu '-O3' prinaša koristi v primerjavi z nivojem optimizacije '-O2'.
    • Dodana je debugfs sučelje za dobivanje informacija o radu pojedinačnih 'memory shrinker'-a (obrađivači koji se pozivaju prilikom nedostatka memorije i koji smanjuju potrošnju memorije pakiranjem struktura podataka jezgre).
    • Za arhitekture OpenRISC i LoongArch implementirana je podrška za PCI sabirnicu.
    • Za arhitekturu RISC-V implementirano je 'Zicbom' proširenje za upravljanje uređajima s DMA-om koji nisu usklađeni s kešom (non-cache-coherent).
  • Virtualizacija in varnost
    • Dodan je mehanizam verifikacije RV (Runtime Verification) za proveru ispravnosti rada na visoko pouzdanim sistemima, koji garantiraju odsustvo grešaka. Provera se vrši tokom izvođenja kroz pridruživanje obrađivača tačkama praćenja koje usklađuju stvarni tok izvršenja s unapred definisanom etalon modelom automata koja određuje očekivano ponašanje sistema. Usklađivanje s modelom tokom izvođenja postavlja se kao lakši i jednostavniji način potvrđivanja ispravnosti izvršenja na kritičnim sistemima, koji dopunjuje klasične metode potvrđivanja pouzdanosti. Među prednostima RV-a se ističe mogućnost pružanja stroge verifikacije bez potrebe za odvojenom implementacijom celog sistema na jeziku modelovanja, kao i fleksibilno reagovanje na neočekivane događaje.
    • Integrisani su komponente jezgre za upravljanje enklavama baziranim na Intel SGX2 (Software Guard eXtensions) tehnologiji, koja omogućava aplikacijama da izvršavaju kod u izolovanim, enkriptovanim oblastima memorije, kojima je pristup ostatku sistema ograničen. Intel SGX2 se podržava u Intel Ice Lake i Gemini Lake čipovima i razlikuje se od Intel SGX1 dodatnim instrukcijama za dinamičko upravljanje memorijom enklava.
    • Za arhitekturu x86 implementirana je mogućnost prenosa semena za generator pseudonasumičnih brojeva kroz podešavanja podizača.
    • U LSM modulu SafeSetID dodana je mogućnost upravljanja promenama izvršenim putem poziva setgroups(). SafeSetID omogućava sistemskim servisima da bezbedno upravljaju korisnicima bez podizanja privilegija (CAP_SETUID) i bez dobijanja ovlašćenja korisnika root.
    • Dodana je podrška za blok šifru ARIA.
    • U modulu za upravljanje bezbednošću zasnovanom na BPF-u uvedena je mogućnost pridruživanja obrađivača pojedinačnim procesima i grupama procesa (cgroup).
    • Dodana je mehanizacija s implementacijom watchdog za prepoznavanje zamrzavanja gostujućih sistema na osnovu praćenja aktivnosti vCPU.
  • Mrežna podsistem
    • U BPF podsistemu dodani su obrtnici za generisanje i proveru SYN kolačića. Takođe je dodat skup funkcija (kfunc) za pristup i izmene stanja veza.
    • U bežičnom steku dodana je podrška za mehanizam MLO (Multi-Link Operation), definisan u WiFi 7 specifikaciji, koji omogućava uređajima simultano primanje i slanje podataka koristeći različite frekvencijske opsege i kanale, na primer, za uspostavljanje više komunikacionih kanala između pristupne tačke i klijentskog uređaja.
    • Poboljšana je performansa ugrađene implementacije TLS protokola.
    • Dodana je opcija komandne linije jezgra "hostname=", koja omogućava postavljanje imena hosta u ranoj fazi podizanja sistema, pre nego što se pokrenu komponente korisničkog prostora.
  • Oprema
    • U i915 drajveru (Intel) obezbeđena je podrška za diskretne grafičke kartice Intel Arc (DG2/Alchemist) A750 i A770. Predložena je inicijalna implementacija podrške za GPU Intel Ponte Vecchio (Xe-HPC) i Meteor Lake. Nastavljena je obnova podrške za Intel Raptor Lake platformu.
    • U amdgpu drajveru nastavljena je obnova podrške za AMD RDNA3 (RX 7000) i CDNA (Instinct) platforme.
    • U Nouveau drajveru revidiran je kod podrške za display engine GPU NVIDIA nv50.
    • Dodat je novi DRM drajver logicvc za LogiCVC ekrane.
    • U v3d drajveru (za GPU Broadcom Video Core) implementirana je podrška za Raspberry Pi 4 platforme.
    • U msm drajveru dodana je podrška za GPU Qualcomm Adreno 619.
    • U Panfrost drajveru dodana je podrška za GPU ARM Mali Valhall.
    • Dodata je inicijalna podrška za procesore Qualcomm Snapdragon 8cx Gen3, korišćene u Lenovo ThinkPad X13s laptopima.
    • Dodati su zvučni drajveri za AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake i Mediatek MT8186 platforme.
    • Dodana je podrška za akceleratore sistema mašinskog učenja Intel Habana Gaudi 2.
    • Dodana je podrška za ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3.

Hkrati je Latinoameriški sklad prostega programske opreme oblikoval različico popolnoma prostega jedra 6.0 — Linux-libre 6.0-gnu, očiščeno elementov vdelanih programov in gonilnikov, ki vsebujejo neprostovoljno komponente ali odseke kode, katerega uporaba je omejena s proizvajalcem. V novem izdaji je onemogočena uporaba blobov v gonilniku CS35L41 HD-audio in gonilniku z vmesnikom UCSI za mikrokrmilnike STM32G0. Očiščeni so bili dts-datoteke za čipe Qualcomm in MediaTek. Preurejeno je onemogočanje blobov v gonilniku MediaTek MT76. Posodobljen je koda za čiščenje blobov v gonilnikih in podsistemih AMDGPU, Adreno, Tegra VIC, Netronome NFP in Habanalabs Gaudi2. Čiščenje gonilnika VXGE, ki je bil odstranjen iz jedra, je bilo ukinjeno.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster