Két hónapos fejlesztés után Linus Torvalds bemutatta a Linux 6.0 kernel kiadását. A verziószám jelentős megváltoztatását esztétikai megfontolások indokolták, és ez egy formális lépés, amely csökkenti a sorozatban felhalmozódott kiadások miatti kényelmetlenséget (Linus viccelődött, hogy a verziószámok számlálásához már kifogytak az ujjai). A legszembetűnőbb változások közé tartozik: az aszinkron pufferelt írás támogatása XFS-ben, a blokkeszköz-illesztőprogram (ublk), a feladatütemező optimalizálása, a kernel működésének ellenőrzésének mechanizmusa, az ARIA blokkok titkosítás támogatása.
A 6.0 kernel fő újdonságai:
- Lemezszubszisztéma, bemenet/kipontozás és fájlrendszerek
- Az XFS fájlrendszerhez hozzáadták az aszinkron pufferelt írás támogatását az io_uring mechanizmus felhasználásával. A teljesítménytesztek, amelyeket a fio eszközkészletével végeztek (1 szál, 4kB blokk méret, 600 másodperc, soros írás), azt mutatják, hogy az I/O műveletek másodpercenkénti száma (IOPS) 77k-ról 209k-ra, az adatátviteli sebesség 314MB/s-ról 854MB/s-ra nőtt, és a késleltetés 9600ns-ról 120ns-ra csökkent (80-szoros javulás).
- A Btrfs fájlrendszerben a „send” parancs második verzióját valósították meg, amely kiegészítő metaadatok támogatását, nagyobb blokkok (64K-nál nagyobb) adatküldést és tömörített kiterjedések átvitelét teszi lehetővé. Az közvetlen olvasási műveletek teljesítménye jelentősen (akár háromszorosára) nőtt, a szektorok párhuzamos olvasása révén, akár 256 szektor olvasásával. Csökkentek a zárolási ütközések és felgyorsult a metaadatok ellenőrzése a késleltetett elemekhez rendelt metaadatok mennyiségének csökkentésével.
- Az ext4 fájlrendszerhez új ioctl-műveletek, az EXT4_IOC_GETFSUUID és az EXT4_IC_SETFSUUID, lettek hozzáadva a superblockban tárolt UUID azonosító kiolvasásához vagy beállításához.
- Az F2FS fájlrendszerben egy alacsony memóriafogyasztású módot vezettek be, amely optimalizálja a működést korlátozott RAM-mal rendelkező eszközökön, és lehetővé teszi a memóriafogyasztás csökkentését a teljesítmény csökkentésének árán.
- Hozzáadták az NVMe meghajtók hitelesítésének támogatását.
- A szerveren Az NFSv4-ben korlátozást vezettek be az aktív kliensek számára, ami 1024 engedélyezett klienst jelent minden gigabájt RAM esetén a rendszerben.
- A CIFS ügyfél megvalósításában javult a teljesítmény a többsávos átviteli üzemmódban.
- A fanotify eseménykövető alrendszerhez új FAN_MARK_IGNORE jelző került hozzáadásra, amely lehetővé teszi bizonyos események figyelmen kívül hagyását.
- Az Overlayfs fájlrendszerben, felhasználói azonosító-mappinggel rendelkező fájlrendszerre való csatoláskor javították a POSIX-kompatibilis hozzáférés-ellenőrzési listák támogatását.
- Új ublk blokkdriver került bevezetésre, amely specifikus logikát a háttérfolyamat oldalára visz át a felhasználói térben, és az io_uring alrendszert használja.
- Memória és rendszerszolgáltatások
- A DAMON (Data Access MONitor) alrendszer új funkciókat kapott, amelyek lehetővé teszik, hogy ne csak figyelemmel kísérjük a folyamatok hozzáférését a memóriahoz a felhasználói térből, hanem befolyásoljuk a memória kezelését is. Különösen bevezetésre került egy új "LRU_SORT" modul, amely a LRU (Legutóbb Használt) listák újrasorolását biztosítja a bizonyos memóriaoldalak prioritásának növelése érdekében.
- Lehetőséget teremtettek új memória régiók létrehozására a CXL (Compute Express Link) busz funkcionalitása segítségével, amelyet a CPU és a memóriaeszközök közötti nagy sebességű kommunikáció megszervezésére használnak. A CXL lehetővé teszi, hogy új memória régiók csatlakozzanak, amelyeket külső memóriaeszközök biztosítanak, és azokat további forrásként használják a fizikai címzési tér kiterjesztésére a rendszermemóriához (DDR) vagy tartós memóriához (PMEM).
- Megoldották az AMD Zen processzorokon tapasztalt teljesítményproblémákat, amelyeket 20 évvel ezelőtt adtak hozzá egy hardveres probléma megkerülésére néhány chipkészlet esetében (további WAIT utasítás került bevezetésre, amely lelassította a processzort, hogy a chipkészlet elérje a kiszolgáló állapotot). A módosítás teljesítménycsökkenéshez vezetett olyan terheléseknél, ahol gyakran váltakoznak a kiszolgáló (idle) és aktív (busy) állapotok. Például a megkerülő intézkedés kikapcsolásakor a tbench teszt átlagos mutatói 32191 MB/s-ről 33805 MB/s-ra nőttek.
- A feladatütemezőből eltávolították azt a kódot, amely a folyamatok migrálását végezte a legkevésbé leterhelt CPU-kra, figyelembe véve az előre jelzett energiafogyasztás-csökkentési előnyöket. A fejlesztők arra a következtetésre jutottak, hogy az ehhez kapcsolódó heuristika nem nyújt megfelelő előnyöket, ezért egyszerűbb ledobni, és a folyamatokat a szükséges értékelések elvégzése nélkül továbbítani, amikor a migráció potenciálisan csökkentheti az energiafogyasztást (például amikor a célzott CPU alacsonyabb energiafogyasztású állapotban van). Az heuristika kikapcsolása intenzív feladatok során csökkentette az energiafogyasztást, például egy videodekódoló teszt során 5,6%-kal.
- Optimalizálták a feladatok elosztását a CPU magok között nagy rendszereken, ami javította a teljesítményt bizonyos terhelési típusok esetén.
- Az io_uring aszinkron bemeneti/kimeneti interfészében egy új IORING_RECV_MULTISHOT zászló került bevezetésre, amely lehetővé teszi a "multi-shot" üzemmód használatát a recv() rendszerhívással, hogy egyszerre több olvasási műveletet végezzenek egy hálózati socket-ből. Az io_uring-ban megvalósították a hálózati továbbítást közvetítő pufferek nélkül (zero-copy).
- Megvalósították a BPF programok felfüggesztésének lehetőségét, amelyek az uprobe-hoz vannak csatolva. A BPF-hez új kiterjesztőt adtak hozzá, a ksym-ot, amely a kernel szimbólumtábláival való munkavégzésre szolgál.
- Eltávolították a "efivars" elavult interfészt a sysfs-ből, amelyet az UEFI indítóváltozók elérésére használtak (az EFI adataihoz való hozzáféréshez mostantól az efivarfs virtuális fájlrendszer használatos).
- A perf eszközben új riportokat implementáltak a zárolásokkal kapcsolatos ütközések és a processzor által a kernel komponensek végrehajtására fordított idő elemzésére.
- Eltávolították a CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 beállítást, amely lehetővé tette a kernel "-O3" optimalizálási módú fordítását. Úgy vélik, hogy az optimalizálási módokkal végzett kísérletek átadható paraméterekkel végezhetők el a fordítás során ("make KCFLAGS=-O3"), és az Kconfig-ba való beállításhoz meg kell mutatni a teljesítmény repeatábilis profilozását, amely bizonyítja, hogy a "-O3" üzemmódban alkalmazott ciklusok kibővítése előnyösebb az "O2" szinthez képest.
- A debugfs interface has been added to obtain information about the operation of individual "memory shrinkers" (handlers triggered during memory shortages that pack kernel data structures to reduce their memory consumption).
- Support for the PCI bus has been implemented for OpenRISC and LoongArch architectures.
- For the RISC-V architecture, the "Zicbom" extension has been implemented to manage non-cache-coherent DMA devices.
- Virtualizáció és biztonság
- A Runtime Verification (RV) mechanism has been added to check the correctness of operation in high-reliability systems that guarantee the absence of failures. The verification is performed during execution by attaching handlers to trace points that compare the actual execution flow with a pre-defined reference deterministic model of the automaton that specifies the expected system behavior. Runtime matching with the model is positioned as a more lightweight and practical way to confirm execution correctness in critical systems, complementing classical reliability validation methods. One of the advantages of RV is the ability to provide strict verification without a separate implementation of the entire system in a modeling language, as well as flexible response to unforeseen events.
- Kernel components for managing enclaves based on Intel SGX2 (Software Guard eXtensions) technology have been integrated, allowing applications to execute code in isolated encrypted memory areas, with restricted access to the rest of the system. Intel SGX2 technology is supported in Intel Ice Lake and Gemini Lake chips and differs from Intel SGX1 with additional instructions for dynamic enclave memory management.
- For the x86 architecture, the ability to pass seeds for a pseudorandom number generator through bootloader settings has been implemented.
- The LSM module SafeSetID has been enhanced with the ability to manage changes made through the setgroups() call. SafeSetID allows system services to manage users safely without privilege escalation (CAP_SETUID) and without obtaining root user permissions.
- Support for the ARIA block cipher has been added.
- In the security management module based on BPF, the ability to attach handlers to individual processes and process groups (cgroup) has been implemented.
- Beépített watchdog mechanizmus került hozzáadásra a vendég rendszerek fagyásának észlelésére, a vCPU aktivitásának monitorozása alapján.
- Hálózati alrendszer
- A BPF alrendszerhez hozzá lettek adva a SYN cookie-k generálására és ellenőrzésére szolgáló kezelők. Továbbá egy funkciókészlet (kfunc) is hozzá lett adva a kapcsolatok állapotának eléréséhez és módosításához.
- A vezeték nélküli stackhez hozzá lett adva a WiFi 7 specifikációban meghatározott MLO (Multi-Link Operation) mechanizmus támogatása, amely lehetővé teszi az eszközök számára, hogy különböző frekvenciasávokat és csatornákat használva egyidejűleg adatokat küldjenek és fogadjanak, például több kapcsolatot hozzanak létre a közvetítőpont és a kliens eszköz között.
- Növelték a beépített TLS protokoll teljesítményét.
- Új parancssori paraméter, a „hostname=”, került hozzáadásra, amely lehetővé teszi a gazdagép nevének beállítását a betöltés korai szakaszában, mielőtt a felhasználói tér komponenesei elindulnának.
- Hardver
- Az i915 (Intel) meghajtóban biztosították az Intel Arc (DG2/Alchemist) A750 és A770 diszkrét videokártyák támogatását. Először került bevezetésre az Intel Ponte Vecchio (Xe-HPC) és Meteor Lake GPU-knak a támogatása. Folyamatban van az Intel Raptor Lake platform támogatásának munkája.
- Az amdgpu meghajtóban folytatódtak a támogatás biztosításának munkálatai az AMD RDNA3 (RX 7000) és CDNA (Instinct) platformokhoz.
- A Nouveau meghajtóban átdolgozták a NVIDIA nv50 GPU kijelzőmotorok támogatásának kódját.
- Új DRM meghajtó, a logicvc került hozzáadásra a LogiCVC kijelzőkhöz.
- A v3d meghajtóban (Broadcom Video Core GPU) megvalósították a Raspberry Pi 4 platform támogatását.
- A msm meghajtóban hozzá lett adva a Qualcomm Adreno 619 GPU támogatása.
- A Panfrost meghajtóban hozzá lett adva az ARM Mali Valhall GPU támogatása.
- Elkezdték a Qualcomm Snapdragon 8cx Gen3 processzorok kezdeti támogatását, amelyek a Lenovo ThinkPad X13s laptopokban kerülnek felhasználásra.
- Hozzá lettek adva az audio meghajtók az AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake és Mediatek MT8186 platformokhoz.
- Hozzá lettek adva a gépi tanulás Intel Habana Gaudi 2 gyorsítóinak támogatása.
- Hozzá lett adva az ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3 támogatása.
Egy időben a latin-amerikai Szabad Szoftver Alapítvány bemutatta a teljesen szabad 6.0-ás kernelt - Linux-libre 6.0-gnu, amely eltávolított minden nem szabad firmware-t és drivert, amelyek nem szabad összetevőket vagy kódrészleteket tartalmaznak, és amelynek használatát a gyártó korlátozza. Az új kiadásban letiltották a blobok használatát a CS35L41 HD-audio és az STM32G0 mikrokontroller interfészével rendelkező UCSI driverében. A Qualcomm és a MediaTek chipjeinek dts-fájljaiban tisztítást végeztek. A MediaTek MT76 drivere blobok letiltását is átdolgozták. Frissítették a blobok tisztításához szükséges kódot az AMDGPU, Adreno, Tegra VIC, Netronome NFP és Habanalabs Gaudi2 driverekben és alrendszerekben. Megszüntették a VXGE driver tisztítását, amelyet eltávolítottak a kernelből.
Forrás: opennet.ru
