Izdanje jezgre Linuxa 6.0

Nakon dva mjeseca razvoja, Linus Torvalds predstavio je izdanje Linux 6.0 kernela. Značajna promjena u broju verzije je iz estetskih razloga i formalni je korak za ublažavanje nelagode zbog gomilanja velikog broja problema u seriji (Linus se našalio da je razlog za promjenu broja ogranka vjerojatniji zato što je ostao bez prstiju i nožni prsti za brojanje brojeva verzija) . Među najznačajnijim promjenama: podrška za asinkrono pisanje u međuspremniku u XFS-u, upravljački program ublk block, optimizacija planera zadataka, mehanizam za provjeru ispravnog rada jezgre, podrška za ARIA blok šifru.

Ključne inovacije u kernelu 6.0:

  • Diskovni podsustav, I/O i datotečni sustavi
    • Datotečni sustav XFS dodao je podršku za asinkrono upisivanje u međuspremnik pomoću mehanizma io_uring. Testovi performansi provedeni korištenjem fio alata (1 nit, veličina bloka 4kB, 600 sekundi, sekvencijalno pisanje) pokazuju povećanje ulazno/izlaznih operacija u sekundi (IOPS) sa 77k na 209k, brzinu prijenosa podataka sa 314MB/s na 854MB/s, i pad latencije s 9600ns na 120ns (80 puta).
    • Datotečni sustav Btrfs implementira drugu verziju protokola za naredbu "pošalji", koja implementira podršku za dodatne metapodatke, slanje podataka u većim blokovima (više od 64K) i prijenos opsega u komprimiranom obliku. Učinkovitost operacija izravnog čitanja značajno je povećana (do 3 puta) zbog istovremenog čitanja do 256 sektora. Smanjena borba oko zaključavanja i ubrzana provjera metapodataka smanjenjem rezerviranih metapodataka za odgođene elemente.
    • Nove ioctl operacije EXT4_IOC_GETFSUUID i EXT4_IC_SETFSUUID dodane su u sustav datoteka ext4 za dohvaćanje ili postavljanje UUID-a pohranjenog u superbloku.
    • Datotečni sustav F2FS nudi način niske potrošnje memorije, koji optimizira rad na uređajima s malom količinom RAM-a i omogućuje vam smanjenje potrošnje memorije po cijenu smanjene performanse.
    • Dodana podrška za provjeru autentičnosti NVMe pogona.
    • NFSv4 poslužitelj implementira ograničenje broja aktivnih klijenata, koji je postavljen na 1024 važeća klijenta za svaki gigabajt RAM-a u sustavu.
    • Implementacija CIFS klijenta ima poboljšane performanse u višekanalnom načinu prijenosa.
    • Nova zastavica FAN_MARK_IGNORE dodana je podsustavu praćenja događaja u fanotify FS za ignoriranje određenih događaja.
    • U Overlayfs FS-u, kada se montira na vrh FS-a s preslikavanjem korisničkog ID-a, osigurana je ispravna podrška za POSIX-kompatibilne liste kontrole pristupa.
    • Dodan je upravljački program bloka ublk, koji premješta određenu logiku na stranu pozadinskog procesa u korisničkom prostoru i koristi podsustav io_uring.
  • Memorija i usluge sustava
    • Nove značajke dodane su podsustavu DAMON (Data Access MONitor), omogućujući ne samo praćenje pristupa procesa RAM-u iz korisničkog prostora, već i utjecaj na upravljanje memorijom. Konkretno, predložen je novi modul “LRU_SORT” koji omogućuje ponovno grupiranje popisa LRU (najrjeđe korištenih) kako bi se povećao prioritet određenih memorijskih stranica.
    • Sposobnost stvaranja novih memorijskih regija implementirana je korištenjem mogućnosti sabirnice CXL (Compute Express Link), koja se koristi za organiziranje brze interakcije između CPU-a i memorijskih uređaja. CXL vam omogućuje povezivanje novih memorijskih regija koje pružaju vanjski memorijski uređaji i njihovu upotrebu kao dodatne resurse fizičkog adresnog prostora za proširenje memorije s izravnim pristupom (DDR) ili trajne memorije (PMEM) sustava.
    • Riješeni su problemi s performansama s AMD Zen procesorima uzrokovani kodom koji je dodan prije 20 godina kako bi se zaobišao hardverski problem u nekim skupovima čipova (dodana je dodatna instrukcija WAIT za usporavanje procesora kako bi čipset imao vremena prijeći u stanje mirovanja). Promjena je rezultirala smanjenom izvedbom pod radnim opterećenjima koja se često izmjenjuju između stanja mirovanja i zauzetosti. Na primjer, nakon onemogućavanja zaobilaznog rješenja, prosječni rezultati tbench testa porasli su s 32191 MB/s na 33805 MB/s.
    • Kod s heuristikom uklonjen je iz planera zadataka, osiguravajući migraciju procesa na najmanje opterećene procesore, uzimajući u obzir predviđeni dobitak u potrošnji energije. Programeri su zaključili da heuristika nije bila dovoljno korisna te da ju je lakše ukloniti i migrirati procese bez dodatne evaluacije kad god bi takva migracija potencijalno mogla rezultirati nižom potrošnjom energije (na primjer, kada je ciljani CPU na nižoj razini napajanja). Onemogućavanje heuristike dovelo je do smanjenja potrošnje energije pri izvođenju intenzivnih zadataka, na primjer, u testu video dekodiranja, potrošnja energije smanjena je za 5.6%.
    • Distribucija zadataka kroz CPU jezgre na velikim sustavima je optimizirana, što je poboljšalo performanse za određene vrste radnog opterećenja.
    • Asinkrono I/O sučelje io_uring nudi novu oznaku, IORING_RECV_MULTISHOT, koja vam omogućuje korištenje multi-shot načina sa sistemskim pozivom recv() za izvođenje više operacija čitanja iz iste mrežne utičnice odjednom. io_uring također podržava mrežni prijenos bez međuspremnika (nulta kopija).
    • Implementirana je mogućnost stavljanja BPF programa priključenih na uprobe u stanje mirovanja. BPF također dodaje novi iterator ksym za rad s tablicama simbola jezgre.
    • Zastarjelo sučelje “efivars” u sysfs-u, namijenjeno pristupu UEFI varijablama za pokretanje, je uklonjeno (efivarfs virtualni FS sada se univerzalno koristi za pristup EFI podacima).
    • Uslužni program perf ima nova izvješća za analizu sukoba zaključavanja i vremena koje je procesor potrošio na izvođenje komponenti kernela.
    • Postavka CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 je uklonjena, što je omogućilo izgradnju kernela u načinu optimizacije "-O3". Napominje se da se eksperimenti s načinima optimizacije mogu provesti prosljeđivanjem oznaka tijekom sklapanja ("make KCFLAGS=-O3"), a dodavanje postavke u Kconfig zahtijeva ponovljivo profiliranje performansi, pokazujući da se odmotavanje petlje koristi u načinu "-O3" daje prednost u usporedbi s razinom optimizacije "-O2".
    • Dodano je debugfs sučelje za dobivanje informacija o radu pojedinačnih "skupljača memorije" (rukovatelji koji se pozivaju kada nema dovoljno memorije i pakiraju strukture podataka jezgre kako bi smanjili njihovu potrošnju memorije).
    • Za OpenRISC i LoongArch arhitekture implementirana je podrška za PCI sabirnicu.
    • Za arhitekturu RISC-V implementirano je proširenje "Zicbom" za upravljanje uređajima s DMA koji nije koherentan s predmemorijom.
  • Virtualizacija i sigurnost
    • Dodan je mehanizam provjere RV (Runtime Verification) za provjeru ispravnog rada na vrlo pouzdanim sustavima koji jamče da nema kvarova. Provjera se provodi tijekom izvođenja pričvršćivanjem rukovatelja točkama praćenja koji provjeravaju stvarni napredak izvršenja prema unaprijed određenom referentnom determinističkom modelu stroja koji definira očekivano ponašanje sustava. Provjera s modelom tijekom izvođenja pozicionirana je kao lakša i lakša za implementaciju metoda za potvrdu ispravnosti izvršenja na kritičnim sustavima, nadopunjujući klasične metode provjere pouzdanosti. Među prednostima RV je mogućnost pružanja stroge verifikacije bez posebne implementacije cijelog sustava u jeziku za modeliranje, kao i fleksibilan odgovor na nepredviđene događaje.
    • Integrirane komponente kernela za upravljanje enklavama temeljene na tehnologiji Intel SGX2 (Software Guard eXtensions), koja aplikacijama omogućuje izvršavanje koda u izoliranim kriptiranim područjima memorije, kojima ostatak sustava ima ograničen pristup. Intel SGX2 tehnologija podržana je u Intel Ice Lake i Gemini Lake čipovima, a razlikuje se od Intel SGX1 u dodatnim uputama za dinamičko upravljanje memorijom enklava.
    • Za x86 arhitekturu, implementirana je mogućnost prijenosa seeda za generator pseudoslučajnih brojeva kroz postavke bootloadera.
    • Modul SafeSetID LSM sada ima mogućnost upravljanja promjenama napravljenim putem poziva setgroups(). SafeSetID omogućuje sistemskim uslugama sigurno upravljanje korisnicima bez eskalacije privilegija (CAP_SETUID) i bez dobivanja root privilegija.
    • Dodana podrška za ARIA blok šifru.
    • Modul za sigurnosno upravljanje temeljen na BPF-u pruža mogućnost pripajanja rukovatelja pojedinačnim procesima i grupama procesa (cgroups).
    • Dodan je mehanizam s implementacijom nadzornog psa za otkrivanje zastoja gostujućih sustava na temelju praćenja aktivnosti vCPU-a.
  • Mrežni podsustav
    • Rukovatelji za generiranje i provjeru SYN kolačića dodani su u BPF podsustav. Dodan je i skup funkcija (kfunc) za pristup i promjenu stanja veza.
    • Bežični skup ima dodatnu podršku za MLO (Multi-Link Operation) mehanizam, definiran u WiFi 7 specifikaciji i omogućuje uređajima da istovremeno primaju i šalju podatke koristeći različite frekvencijske pojaseve i kanale, na primjer, da istovremeno uspostave nekoliko komunikacijskih kanala između pristupnu točku klijentskom uređaju.
    • Učinkovitost TLS protokola ugrađenog u kernel je poboljšana.
    • Dodana je opcija naredbenog retka jezgre "hostname=" kako bi se ime glavnog računala moglo postaviti rano u procesu pokretanja, prije pokretanja komponenti korisničkog prostora.
  • Оборудование
    • I915 (Intel) upravljački program pruža podršku za Intel Arc (DG2/Alchemist) A750 i A770 diskretne video kartice. Predložena je početna implementacija podrške za Intel Ponte Vecchio (Xe-HPC) i Meteor Lake GPU. Nastavlja se rad na podršci platformi Intel Raptor Lake.
    • Upravljački program amdgpu nastavlja pružati podršku za platforme AMD RDNA3 (RX 7000) i CDNA (Instinct).
    • Nouveau upravljački program preradio je kod podrške za NVIDIA nv50 GPU motore za prikaz.
    • Dodan novi logicvc DRM upravljački program za LogiCVC zaslone.
    • V3d upravljački program (za Broadcom Video Core GPU) podržava Raspberry Pi 4 ploče.
    • Dodana podrška za Qualcomm Adreno 619 GPU u msm upravljački program.
    • Dodana podrška za ARM Mali Valhall GPU u Panfrost upravljački program.
    • Dodana početna podrška za procesore Qualcomm Snapdragon 8cx Gen3 koji se koriste u prijenosnim računalima Lenovo ThinkPad X13s.
    • Dodani upravljački programi za zvuk za platforme AMD Raphael (Ryzen 7000), AMD Jadeite, Intel Meteor Lake i Mediatek MT8186.
    • Dodana podrška za Intel Habana Gaudi 2 akceleratore strojnog učenja.
    • Dodana podrška za ARM SoC Allwinner H616, NXP i.MX93, Sunplus SP7021, Nuvoton NPCM8XX, Marvell Prestera 98DX2530, Google Chameleon v3.

U isto vrijeme, Latinoamerička zaklada za slobodni softver formirala je verziju potpuno besplatnog kernela 6.0 - Linux-libre 6.0-gnu, očišćenu od elemenata firmvera i upravljačkih programa koji sadrže neslobodne komponente ili dijelove koda, čiji je opseg ograničeno od strane proizvođača. Novo izdanje onemogućuje korištenje blobova u CS35L41 HD-audio driveru i UCSI driveru za STM32G0 mikrokontrolere. DTS datoteke za Qualcomm i MediaTek čipove su očišćene. Onemogućavanje blobova u MediaTek MT76 driveru je prerađeno. Ažurirani kod za čišćenje mrlja u upravljačkim programima i podsustavima AMDGPU, Adreno, Tegra VIC, Netronome NFP i Habanalabs Gaudi2. Zaustavljeno čišćenje VXGE upravljačkog programa, koji je uklonjen iz kernela.

Izvor: opennet.ru

Dodajte komentar