Tvrtka Oracle objavila je stabilna izdanja distribucije Oracle Linux 9 i Unbreakable Enterprise Kernel 7 (UEK R7), koji se pozicionira kao alternativa standardnom paketu s kernelom iz Red Hat Enterprise Linux-a. Distribucija Oracle Linux 9 bazira se na paketskoj bazi Red Hat Enterprise Linux 9 i potpuno je binarno kompatibilna s njom.
Za preuzimanje su bez ograničenja dostupne instalacijske iso slike od 8.6 GB i 840 MB, pripremljene za arhitekture x86_64 i ARM64 (aarch64). Za Oracle Linux 9 otvoren je neograničen i besplatan pristup yum repozitoriju s binarnim ažuriranjima paketa s greškama (errata) i sigurnosnim problemima. Za preuzimanje su također pripremljeni odvojeni podržani repozitoriji s paketnim skupovima Application Stream i CodeReady Builder.
Osim paketa s kernelom iz RHEL-a (kojega temelji kernel 5.14), Oracle Linux nudi vlastiti kernel Unbreakable Enterprise Kernel 7, temeljen na kernelu Linux 5.15, optimiziran za rad s industrijskim softverom i opremom Oracle-a. Izvori koda kernela, uključujući raščlanjivanje na pojedinačne zakrpe, dostupni su u javnom Git repozitoriju Oracle. Kernel Unbreakable Enterprise Kernel instalira se prema zadanim postavkama, pozicionira se kao alternativa standardnom paketu s kernelom RHEL-a i pruža niz naprednih mogućnosti, poput integracije DTrace i poboljšane podrške za Btrfs. Osim dodatnog kernela po funkcionalnosti, izdanja Oracle Linux 9 i RHEL 9 potpuno su identična (popis promjena može se pogledati u najavi RHEL9).
Ključne novosti u kernelu Unbreakable Enterprise Kernel 7:
- Poboljšana podrška za arhitekturu Aarch64. Veličina stranica memorije na 64-bitnim ARM sustavima po defaultu je smanjena s 64 KB na 4 KB, što bolje odgovara količini memorije i tipovima opterećenja tipičnim za ARM sustave.
- Nastavljena je isporuka sustava dinamičkog debagiranja DTrace 2.0, koji je prebačen na korištenje eBPF podsustava jezgre. DTrace 2.0 radi iznad eBPF, slično kao što postojeći alati za praćenje u Linuxu rade iznad eBPF.
- Proširene mogućnosti datotečnog sustava Btrfs. U Btrfs je dodana asinhrona implementacija operacije DISCARD za označavanje oslobođenih blokova koje više nije potrebno fizički čuvati. Asinhrona implementacija omogućava da se ne čeka završetak DISCARD-a od strane uređaja i da se ova operacija izvodi u pozadini. Dodane su nove opcije montiranja za pojednostavljenje oporavka podataka s oštećenog datotečnog sustava: „rescue=ignorebadroots“ za montiranje unatoč oštećenjima nekih korijenskih stabala (extent, uuid, data reloc, device, csum, free space), „rescue=ignoredatacsums“ za isključivanje provjere kontrolnih zbrojeva za podatke i „rescue=all“ za istovremeno uključivanje opcija ‘ignorebadroots’, ‘ignoredatacsums’ i ‘nologreplay’. Uvedene su značajne optimizacije performansi vezane uz izvršenje operacija fsync(). Dodana je podrška za fs-verity (provjera autentičnosti i cjelovitosti datoteka) i usklađivanje identifikatora korisnika.
- U XFS je implementirana podrška za DAX operacije za izravni pristup datotečnom sustavu mimo stranice predmemorije kako bi se izbjeglo dvostruko predmemoriranje. Dodane su izmjene koje rješavaju probleme s prelivanjem 32-bitnog tipa podataka time_t 2038. godine, uključujući nove opcije montiranja bigtime i inobtcount.
- Unaprijeđena je datotečna sustava OCFS2 (Oracle Cluster File System).
- Dodana je datotečni sustav ZoneFS, koji pojednostavljuje niskonivo rad s zoniranim uređajima za pohranu. Pod zoniranim uređajima podrazumijevaju se uređaji na mehaničkim tvrdom diskovima ili NVMe SSD-ima, čiji je prostor za pohranu razdijeljen na zone koje čine grupe blokova ili sektora, gdje je dopušteno samo sekvencijalno dodavanje podataka uz ažuriranje cijele grupe blokova. Datotečni sustav ZoneFS povezuje svaku zonu na uređaju s zasebnom datotekom koja se može koristiti za pohranu podataka u raw-režimu bez manipulacije na razini sektora i blokova, što aplikacijama omogućuje korištenje datotečnog API-ja umjesto izravnog pristupa blok uređaju putem ioctl.
- Stabilizirana je podrška za protokol VPN WireGuard.
- Proširene su mogućnosti eBPF podsustava. Uveden je mehanizam CO-RE (Compile Once — Run Everywhere), koji rješava problem prenosivosti kompajliranih eBPF programa i omogućuje prikupljanje koda eBPF programa samo jednom, koristeći poseban univerzalni učitavač koji prilagođava učitani program trenutnoj jezgri i vrstama BTF (BPF Type Format). Dodan je mehanizam „BPF trampoline“, koji praktički smanjuje preklapanja troškova pri prijenosu poziva između jezgre i BPF programa. Omogućene su mogućnosti izravnog pristupa funkcionalnostima jezgre iz BPF programa i pauzira se obrada.
- Integriran je detektor rastrganih zaključavanja („split lock“), koji nastaje pri pristupu nepravilno poravnatim podacima u memoriji, jer prilikom izvršavanja atomske instrukcije podaci prelaze dvije linije CPU keša. Jezgra može na licu mjesta otkriti takve zaključke, koji dovode do značajnog pada performansi, i izdati upozorenja ili poslati SIGBUS signal aplikaciji koja je uzrokovala zaključavanje.
- Osigurana je podrška za Multipath TCP (MPTCP), proširenje TCP protokola za organizaciju rada TCP veze s dostavom paketa istovremeno preko više ruta kroz različite mrežne sučelje povezane s različitim IP adrese.
- U planeru zadataka implementiran je režim planiranja SCHED_CORE, koji omogućuje upravljanje procesima koji se mogu istovremeno izvršavati na jednoj CPU jezgri. Svakom procesu može biti dodijeljen cookie identifikator, koji određuje područje povjerenja između procesa (na primjer, pripadnost jednom korisniku ili kontejneru). Tijekom organizacije izvršavanja koda, planer može osigurati zajedničko korištenje jedne CPU jezgre samo za procese povezane s jednim vlasnikom, što se može koristiti za blokiranje nekih napada klase Spectre sprječavanjem izvršavanja u jednom SMT (Hyper Threading) niti pouzdanih i nepouzdanih zadataka.
- Za cgroups je implementiran kontroler raspodjele memorije slab (slab memory controller), koji se ističe prijenosom praćenja slab-a s razine stranica memorije na razinu objekata kernela, što omogućava zajedničku upotrebu slab-stranica u različitim cgroup-ovima, umjesto izdvajanja zasebnih slab kešova za svaki cgroup. Predloženi pristup povećava učinkovitost korištenja slab-a, smanjuje veličinu memorije potrebne za slab za 30-45%, značajno smanjuje ukupnu potrošnju memorije od strane kernela i smanjuje fragmentaciju memorije.
- Osigurana je isporuka podataka za otklanjanje grešaka u CTF (Compact Type Format) formatu, koji omogućava kompaktno pohranjivanje informacija o C tipovima, vezama između funkcija i simbolima za otklanjanje grešaka.
- Prekinuta je isporuka modula DRBD (Distributed Replicated Block Device) i uređaja /dev/raw (za izravan pristup datotekama trebate koristiti O_DIRECT zastavicu).
Izvor: opennet.ru
