Izdanje kernela Linux 6.10

Nakon dva mjeseca razvoja, Linus Torvalds je objavio kernel. Linux 6.10. Među najznačajnijim promjenama: ntsync upravljački program s primitivama za sinkronizaciju Windows NT, DRM Panic komponente za implementaciju analoga "plavog ekrana smrti", prekid podrške za starije Alpha CPU-e, mogućnost provjere integriteta u datotečnom sustavu temeljenom na FUSE-u, ograničavanje pristupa ioctl-u putem Landlock mehanizma, podsustav za profiliranje operacija dodjele memorije, sistemski poziv mseal(), mogućnost šifriranja razmjene podataka s TPM uređajima, podrška za redove čekanja visokog prioriteta u dm-crypt i panthor upravljački program za desetu generaciju Mali GPU-a.

Nova verzija uključuje 14564 popravka od 1989 programera, veličina zakrpe je 41 MB (promjene su utjecale na 12509 datoteka, dodano je 547663 linija koda, 312464 linija je izbrisano). Zadnje izdanje imalo je 15680 popravaka od 2106 programera, veličina zakrpe bila je 54 MB. Oko 41% svih promjena uvedenih u 6.10 odnosi se na upravljačke programe uređaja, približno 15% promjena odnosi se na ažuriranje koda specifičnog za hardverske arhitekture, 13% se odnosi na mrežni stog, 5% se odnosi na sustave datoteka, a 4% povezani su s unutarnjim podsustavima jezgre.

Ključne inovacije u kernelu 6.10:

  • Diskovni podsustav, I/O i datotečni sustavi
    • Dodana je nova fcntl operacija, F_DUPFD_QUERY, koja omogućuje procesu da utvrdi da se dva različita deskriptora datoteke odnose na istu datoteku. Za razliku od sličnih značajki koje nudi sistemski poziv kcmp(), F_DUPFD_QUERY ne otkriva nepotrebne informacije i radi na sustavima s onemogućenim kcmp().
    • Podsustav FUSE, koji se koristi za implementaciju sustava datoteka u korisničkom prostoru, implementira mogućnost korištenja mehanizma fs-verity za provjeru integriteta i autentičnosti datoteka.
    • Modul dm-crypt, koji se koristi za šifriranje blokovskih uređaja, ažuriran je opcijom "high_priority" koja omogućuje korištenje visokoprioritetnih radnih redova za poboljšanje performansi na snažnim računalima. poslužiteljiOvaj način rada je prema zadanim postavkama onemogućen jer može dovesti do povećane latencije na običnim računalima prilikom izvođenja zadataka koji nisu povezani s enkripcijom, poput obrade zvuka.
    • Dodan je protokol temeljen na netlinku za upravljanje NFS poslužiteljem u kernelu. U korisničkom prostoru, uslužni program nfsdctl pripremljen je na temelju ovog protokola. Podrška za montiranje NFS v2 onemogućena je prema zadanim postavkama (u uslužnom programu mount.nfs podrška za NFS v2 ukinuta je 2021.).
    • U sustavu datoteka XFS nastavlja se rad na implementaciji mogućnosti korištenja uslužnog programa fsck za provjeru i ispravljanje identificiranih problema na mreži, bez demontaže sustava datoteka. Dodan ioctl XFS_IOC_EXCHANGE_RANGE za razmjenu raspona bajtova između dvije datoteke u atomskom načinu rada.
    • Btrfs pruža podršku za smanjivanje neprikvačenih mapa opsega, što može biti korisno za smanjenje potrošnje memorije kada sustav nema dovoljno memorije. Kod za kompresiju podataka i funkcija put_file_data() pretvoreni su za korištenje folija stranica. Mehanizam za zaključavanje ekstenta prilikom izvođenja operacija povratnog pisanja je redizajniran.
    • Ext4 FS je dodao podršku za ioctl FS_IOC_GETFSSYSFSPATH za određivanje lokacije danog montiranog FS-a u /sys/fs hijerarhiji.
    • Datotečni sustavi OPENPROMFS, ISOFS, QNX6, NILFS2, MINIX i FREEVXFS pretvoreni su za korištenje novog API-ja za montiranje particija.
    • Datotečni sustav EROFS (Extendable Read-Only File System), dizajniran za korištenje na particijama samo za čitanje, sada podržava Zstandardni algoritam kompresije.
    • Bcachefs je pripremljen za izvršavanje fsck-a bez demontiranja particije (online provjera). Dodane promjene i popravci za poboljšanje pouzdanosti. Implementirana je mogućnost ažuriranja i vraćanja FS formata u način rada "nochanges", koji onemogućuje snimanje i pohranjuje metapodatke samo u memoriju.
    • Dodana je podrška za stvaranje privremenih datoteka u sustavu datoteka OverlayFS pomoću opcije O_TMPFILE.
    • Ukinuta je podrška za mehanizam ograničenja propusnosti blok uređaja “CONFIG_BLK_DEV_THROTTLING_LOW” koji je od 2017. godine zadržao svoj eksperimentalni status, nije zaživio u praksi i otežava održavanje podsustava blok uređaja.
  • Memorija i usluge sustava
    • Dodan je, ali onemogućen tijekom asembliranja, upravljački program ntsync koji implementira znakovni uređaj /dev/ntsync i skup primitiva za sinkronizaciju korištenih u kernelu. Windows NT. Implementacija takvih primitiva na razini jezgre može značajno poboljšati performanse. Windows-igre pokrenute pomoću Winea. Povećanje performansi postiže se uklanjanjem opterećenja povezanog s korištenjem RPC-ova u korisničkom prostoru. Izrada zasebnog upravljačkog programa za kernel Linux To se objašnjava problematičnom prirodom ispravne implementacije NT sinkronizacijskog API-ja preko postojećih primitiva u kernelu.
    • Dodan je podsustav za profiliranje operacija alokacije memorije u kernelu Linux, što omogućuje otkrivanje curenja memorije u kernelu i pojednostavljuje optimizaciju memorije. Podsustav pruža niske opterećenja, što mu omogućuje korištenje ne samo u debug verzijama kernela već i na produkcijskim sustavima.
    • Dodana je početna implementacija rukovatelja hitnim slučajevima kernela - DRM Panic, koji koristi podsustav DRM (Direct Rendering Manager) za prikaz vizualnog izvješća u boji u stilu "plavog ekrana smrti". U sljedećem izdanju planira se dodati mogućnost prikaza logotipa i QR koda na zaslonu kada se dogodi hitno stanje.
    • Nastavak migracije promjena iz Rust-for-branchLinuxVezano uz korištenje Rusta kao drugog jezika za razvoj upravljačkih programa i modula kernela (podrška za Rust nije omogućena prema zadanim postavkama i ne uključuje Rust kao obaveznu ovisnost za izgradnju kernela). Izvršen je prijelaz na Rust 1.78, što je omogućilo korištenje standardne alloc biblioteke umjesto prilagođenog forka. Dodane su apstrakcije za rad s vremenom u kernelu (omotač oko strukture ktime_t). Dodana je podrška za korištenje Rust komponenti kernela na RISC-V sustavima.
    • BPF programi implementiraju mogućnost korištenja redova čekanja u kernelu. Dodane su funkcije bpf_preempt_disable i bpf_preempt_enable, koje vam omogućuju stvaranje odjeljaka koda koje ne prekida planer zadataka. Pruža mogućnost BPF programima da pristupe kriptografskim funkcijama kernela (crypto). Implementirana je podrška za JIT kompilaciju BPF programa na sustavima s 32-bitnim ARCv2 procesorima.
    • Za 32-bitne ARM sustave implementirana je podrška za sklapanje kernela pomoću Clang prevoditelja s uključenim načinom zaštite CFI (Control Flow Integrity), koji blokira kršenja normalnog redoslijeda izvršavanja (kontrolnog toka) kao rezultat upotrebe eksploatacije koje mijenjaju funkcijske pokazivače pohranjene u memoriji.
    • Dodana mogućnost izravnog zrcaljenja međuspremnika kružnog praćenja putem mmap() za prijenos njihovog sadržaja u korisnički prostor bez dodatnog kopiranja.
    • Dodan je sistemski poziv "mseal" kako bi se omogućilo procesima da zaključaju promjenu određenih dijelova svog adresnog prostora. U praksi se novi sistemski poziv planira koristiti u pregledniku Chrome za poboljšanje izolacije sandboxa.
    • Za podarhitekturu x32, koja pruža hibridni x86_64 ABI koji dopušta upotrebu 64-bitnog modela memorijskog adresiranja na 32-bitnim sustavima (procesor radi u 64-bitnom načinu, ali koristi 32-bitne pokazivače i aritmetičke operacije), dodano podrška za mehanizam Shadow Stack, koji vam omogućuje blokiranje rada mnogih exploita, koristeći hardverske mogućnosti Intelovih procesora za zaštitu od prepisivanja povratne adrese iz funkcije u slučaju prekoračenja međuspremnika na stogu.
    • Na sustavima s arhitekturom ARM64, sistemski poziv userfaultfd(), koji omogućuje stvaranje rukovatelja za pristup nedodijeljenim memorijskim stranicama (greške stranice) u korisničkom prostoru, implementira značajke koje se odnose na zaštitu od pisanja memorijskih područja i elemenata tablice memorijskih stranica.
    • Kod koji podržava Alpha 21164 (EV5) i ranije procesore, objavljene od 1995. godine, je uklonjen. Održavanje koda za ove procesore bilo je komplicirano zbog nedostatka pristupa memoriji na razini bajtova. Alpha je bila prva arhitektura na koju je kernel prenesen. Linux, u početku dostupan samo za x86 sustave.
  • Virtualizacija i sigurnost
    • Dodana podrška za šifriranu razmjenu podataka s TPM (Trusted Platform Module) uređajima i provjeru integriteta transakcije.
    • Mogućnost primjene pravila za ograničavanje pristupa ioctl() pozivima dodana je Landlock LSM modulu, koji vam omogućuje ograničavanje interakcije grupe procesa s vanjskim okruženjem.
    • Predložena je opcija init_mlocked_on_free, postavljena u fazi podizanja sustava, koja osigurava da se sadržaj memorije zaštićen od izbacivanja na swap particiju pomoću poziva mlock() resetira ako se ova memorija oslobodi bez otključavanja pozivom na munlock(). Korištenje ove opcije omogućuje vam da spriječite da se kriptografski ključevi smjeste u memoriju u slučaju hitnog prekida aplikacije koja radi s njima.
    • Kriptopodsustav ubrzava operacije šifriranja diska pomoću algoritma AES-XTS na x86_64 sustavima s Intel i AMD procesorima koji podržavaju proširenja VAES, AVX2, VPCLMULQDQ, AVX10 ili AVX512.
    • Mogućnost prikupljanja statistike o korištenju kripto podsustava jezgre (CONFIG_CRYPTO_STATS) je uklonjena. Ova značajka nije korištena u praksi i dovela je do značajnog smanjenja produktivnosti, a također je stvorila značajno dodatno opterećenje za održavatelje.
  • Mrežni podsustav
    • Performanse operacija slanja podataka u načinu rada bez kopiranja pri korištenju podsustava io_uring značajno su poboljšane. Dodana je mogućnost kombiniranja ("paketa") nekoliko međuspremnika za operacije slanja i primanja podataka.
    • Ponovno je napisan kod za sakupljanje smeća koji se koristi prilikom slanja deskriptora datoteka preko Unix utičnica pomoću SCM_RIGHTS poruka. Promjena rješava problem s nakupljanjem brojača referentnih petlji.
    • Dodana je mogućnost postavljanja filtara za PFCP (Packet Forwarding Control Protocol) protokol koji se koristi u 4G i 5G mrežama.
    • Dodana je podrška za SO_PEEK_OFF opciju mrežnih utičnica, koja vam, po analogiji s istom opcijom za Unix utičnice, omogućuje određivanje pomaka podataka u redu čekanja koji koristi sistemski poziv recv kada navedete oznaku MSG_PEEK (označava podatke kao nepročitane i bit će izdati ponovno sljedeći put kada se recv pozove).
    • Podrška za operaciju IORING_CQE_F_SOCK_NONEMPTY dodana je podsustavu io_uring, koji vam omogućuje da odredite ima li mrežna utičnica zahtjeve za povezivanje koji čekaju obradu.
    • Predlaže se implementacija PoE (napajanje preko Etherneta) tehnologije, temeljena na prethodno dostupnom kodu za podršku PoDL (napajanje preko podatkovne linije) i kompatibilna s Microchip PD692x0 i TI TPS23881 PoE kontrolerima.
    • Za protokole TCP, DCCP i MPTC dodana je podrška za mehanizam rstreason koji vam omogućuje određivanje razloga slanja RST paketa (na primjer, NO_SOCKET).
  • Оборудование
    • Uključen je panthor upravljački program za desetu generaciju GPU Mali (G310, G510, G710), koji koristi tehnologiju CSF (Command Stream Frontend), koja prenosi neke funkcije upravljačkog programa na stranu firmvera kako bi se smanjilo opterećenje CPU-a i nudi novi model za organizaciju rada na GPU . Promjene koje podržavaju novi upravljački program također su usvojene od strane Mesa i uključene su u panfrost Gallium upravljački program za Mali GPU-ove.
    • PCI identifikatori novih diskretnih Intel Arc video kartica (DG915/Alchemist) dodani su i2 drajveru.
    • Nastavljen je rad na pokretačkom programu Xe drm (Direct Rendering Manager) za GPU-ove temeljene na Intel Xe arhitekturi, koji se koristi u grafičkim karticama obitelji Intel Arc i integriranoj grafici, počevši od Tiger Lake procesora. Dodana podrška za procesore Arrow Lake H Nastavak implementacije podrške za procesore Lunar Lake. Dodana početna podrška za mehanizam SR-IOV (Single Root I/O Virtualization).
    • AMDGPU upravljački program je dodao podršku za SMU 14.0 (System Management Unit). Dodana je mogućnost korištenja novih AMD GPU-ova na sustavima s RISC-V arhitekturom.
    • Dodan je upravljački program za Tegra Security Engine kriptografski akcelerator, koji se može koristiti za ubrzavanje AES-a i raznih algoritama raspršivanja.
    • Dodana podrška za LG SW43408, Innolux G121XCE-L01 LVDS, RK3326 GameForce Chi, Crystal Clear CMT430B19N00, POWERTIP PH128800T006-ZHC01, Startek KD050HDFIA020-C020A, Pixel 3a, Khadas TS050 V2, Raydium RM ekran ploče 69380,BOE NT116WHM-N44, CMN N116BCA -EA1 i AUO B120XAN01.0.
    • Dodana podrška za audio podsustav prijenosnih računala Lenovo Thinkbook 13x Gen 4, Lenovo Thinkbook 16P Gen 5, Lenovo Thinkbook 13X i ASUS Zenbook 2024 HN7306W. Dodana podrška za vanjske zvučne kartice Vocaster One i Vocaster Two. Dodan upravljački program za NAU8325 pojačala tvrtke Nuvoton Technology.
    • HID-Steam upravljački program dodaje podršku za IMU (Inertial Measurement Unit) kontrolera igre Steam Deck, dopuštajući korištenje zasebnog evdev čvora za pristup podacima žiroskopa i akcelerometra.
    • Promjene su uključene za podršku Snapdragon X Elite ARM SoC, koji koristi Qualcommov vlastiti 12-jezgreni Oryon CPU i Qualcomm Adreno GPU. Čip je namijenjen za korištenje u prijenosnim i osobnim računalima, a ispred je Apple M3 i Intel Core Ultra 155H čipova u mnogim testovima performansi.
    • Dodana podrška za ARM ploče, SoC-ove i uređaje: PocketBook 614 Plus, Sony Xperia Z3, Xperia 1 V, Samsung Galaxy S5 China, Motorola Moto G, RK3326 GameForce Chi, Anbernic RG35XX (Plus/H/2024), Airoha EN7581, Radxa ROCK 3C, ArmSom Sige7, Tanix TX1, Toradex Colibri iMX8DX, Renesas RZ/V2H, Forlinx OK3588-C, Protonic MECSBC, Emcraft Systems NavQ+, NXP S32G3, Wolfvision pf5, Amlogic A4/A5, ASUS RT-AC3200, ASUS RT-AC5300, ASrock E3C256D4I, IBM system1 BMC, Meta Harma BMC(AST2600), ASRock X570D4U BMC, Au-Zone Maivin AI Vision Starter Kit.
    • Dodana podrška za Milk-V Mars ploče koje koriste Starfive JH7110 SoC temeljen na RISC-V arhitekturi.

Istovremeno, Latinoamerička zaklada za slobodni softver stvorila je verziju potpuno besplatne jezgre 6.10 - Linux-libre 6.10-gnu, očišćen od elemenata firmvera i upravljačkih programa koji sadrže neslobodne komponente ili dijelove koda s ograničenim opsegom od strane proizvođača. Izdanje 6.10 uključuje ažurirani kod za čišćenje blobova u upravljačkim programima Intel i915, rtl8xxxu, qla2xxx i QCAI sahara. Nazivi blobova u dts datotekama (devicetree) za arhitekturu Aarch64 su očišćeni. Nove datoteke dodane upravljačkim programima Adreno, Intel IPU3 i PRUEth očišćene su od blobova. Novi upravljački programi za Panthor, Intel IPU6, PRUEth SR1, rtw8703b, tps23881, air_en8811h, Intel ISH HID i pcm6240 su očišćeni. Čišćenje USB upravljačkog programa Prism2.5/3 je prekinuto i uklonjeno je iz kernela.

Izvor: opennet.ru

Kupite pouzdan hosting za stranice s DDoS zaštitom, VPS VDS poslužiteljima 🔥 Kupite pouzdan web hosting sa DDoS zaštitom, VPS VDS servere | ProHoster