Podjetje Oracle je objavilo stabilne različice distribucije Oracle Linux 9 in jedra Unbreakable Enterprise Kernel 7 (UEK R7), ki je pozicionirano za uporabo v distribuciji Oracle Linux kot alternativa privzetemu paketu z jedrom iz Red Hat Enterprise Linux. Distribucija Oracle Linux 9 je zasnovana na osnovi paketne baze Red Hat Enterprise Linux 9 in je popolnoma binarno združljiva z njo.
Na voljo so namestitveni iso-slike brez omejitev, velikosti 8.6 GB in 840 MB, pripravljene za arhitekture x86_64 in ARM64 (aarch64). Za Oracle Linux 9 je odprt brezplačen in neomejen dostop do yum-repozitorija z binarnimi posodobitvami paketov za odpravo napak (errata) in težav z varnostjo. Na voljo so tudi posebej podprti repozitoriji s sklopi paketov Application Stream in CodeReady Builder.
Poleg jedra iz sestavine RHEL (na osnovi jedra 5.14) Oracle Linux ponuja lastno jedro Unbreakable Enterprise Kernel 7, ki temelji na jedru Linux 5.15 in je optimizirano za delo s industrijsko programsko opremo in opremo Oracle. Izvorne kode jedra, vključno z razdelitvijo na posamezne popravke, so na voljo v javnem Git-repozitoriju Oracle. Jedro Unbreakable Enterprise Kernel je privzeto nameščeno, pozicionirano kot alternativa privzetemu paketu z jedrom RHEL in ponuja vrsto naprednih funkcij, kot sta integracija DTrace in izboljšana podpora za Btrfs. Poleg dodatnega jedra po funkcionalnosti so izdaje Oracle Linux 9 in RHEL 9 popolnoma identične (seznam sprememb si lahko ogledate v napovedi RHEL9).
Glavne novosti v jedru Unbreakable Enterprise Kernel 7:
- Izboljšana podpora za arhitekturo Aarch64. Velikost pomnilniških strani na 64-bitnih sistemih ARM je privzeto zmanjšana s 64 KB na 4 KB, kar se bolje ujema s količinami pomnilnika in vrstami obremenitve, tipičnimi za ARM-sisteme.
- Nadaljuje se dobava sistema dinamičnega odpravljanja napak DTrace 2.0, ki je bil prenesen na uporabo jedrskega podsistema eBPF. DTrace 2.0 deluje nad eBPF, podobno kot obstoječa orodja za sledenje v Linuxu delujejo nad eBPF.
- Možnosti datotečnega sistema Btrfs so bile razširjene. V Btrfs je bila dodana asinhrona izvedba operacije DISCARD za označevanje osvobojenih blokov, ki jih že ni potrebno fizično hraniti. Asinhrona izvedba omogoča, da ne čakamo na dokončanje DISCARD s strani pomnilnika in omogoča izvajanje te operacije v ozadju. Dodane so nove možnosti za montiranje, ki poenostavljajo obnovitev podatkov iz poškodovanega datotečnega sistema: »rescue=ignorebadroots« za montiranje kljub poškodbam nekaterih koreninskih dreves (extent, uuid, data reloc, device, csum, free space), »rescue=ignoredatacsums« za onemogočanje preverjanja kontrolnih vsot za podatke in »rescue=all« za hkratno aktiviranje načinov 'ignorebadroots', 'ignoredatacsums' in 'nologreplay'. Vnesene so bile pomembne optimizacije zmogljivosti, povezane z izvajanjem operacij fsync(). Dodana je podpora za fs-verity (preverjanje pristnosti in celovitosti datotek) in usklajevanje identifikatorjev uporabnikov.
- XFS je implementiral podporo za operacije DAX za neposreden dostop do datotečnega sistema, ki obide predpomnilnik strani, da se prepreči dvojno predpomnjenje. Dodane so spremembe, ki rešujejo težave s prekoračitvijo 32-bitnega tipa podatkov time_t leta 2038, vključno z novimi možnostmi za montiranje bigtime in inobtcount.
- Izboljšave v datotečnem sistemu OCFS2 (Oracle Cluster File System).
- Dodana je datotečna sistema ZoneFS, ki poenostavi nizkonivojsko delo z zoniranimi shranjevalnimi napravami. Pod zoniranimi shranjevalnimi napravami razumemo naprave na trdih magnetnih diskih ali NVMe SSD, katerih shranjevanje je razdeljeno na cone, ki predstavljajo skupine blokov ali sektorjev, v katere je dovoljeno samo sekvenčno dodajanje podatkov z posodobitvijo celotne skupine blokov. Datotečni sistem ZoneFS povezuje vsako cono na napravi s posebej datoteko, ki jo je mogoče uporabiti za shranjevanje podatkov v raw-režimu brez manipulacije na ravni sektorjev in blokov, kar pomeni, da aplikacijam omogoča uporabo datotečnega API-ja namesto neposrednega dostopa do blokovne naprave z ioctl.
- Podpora za protokol je stabilizirana. VPN WireGuard.
- Možnosti podsistema eBPF so razširjene. Uveden je mehanizem CO-RE (Compile Once — Run Everywhere), ki rešuje težavo prenosljivosti prevedenih eBPF programov in omogoča zbiranje eBPF kode samo enkrat ter uporabo posebnega univerzalnega nalagalnika, ki prilagodi nalagano programsko opremo trenutnemu jedru in BTF tipom (BPF Type Format). Dodan je mehanizem 'BPF trampoline', ki praktično zmanjša stroške prenosa klicev med jedrom in BPF programi na nič. Omogočene so funkcionalnosti neposrednega dostopa do jedrskih funkcij iz BPF programov ter prekinitev obdelovalnika.
- Integriran je detektor razcepljenih zaklepov ('split lock'), ki pri dostopu do neurejenih podatkov v pomnilniku nastanejo, ker pri izvajanju atomske instrukcije podatki prečkajo dve liniji CPU predpomnilnika. Jedro lahko na let prepozna take zaklepanje, ki povzročajo znatno upadanje zmogljivosti, in izda opozorila ali pošlje signal SIGBUS aplikaciji, ki je povzročila zaklep.
- Zagotovljena je podpora za Multipath TCP (MPTCP), razširitev TCP protokola, ki omogoča delovanje TCP povezave z dostavo paketov hkrati po več poteh skozi različne omrežne vmesnike, vezane na različne. IP-naslovov.
- V načrtovalniku nalog je uveden način načrtovanja SCHED_CORE, ki omogoča upravljanje s tem, kateri procesi se lahko hkrati izvajajo na enem CPU jedru. Vsakemu procesu je lahko dodeljen cookie-identifikator, ki določa področje zaupanja med procesi (na primer pripadnost enemu uporabniku ali vsebnikov). Pri organizaciji izvajanja kode lahko načrtovalnik zagotovi skupno rabo enega CPU jedra samo za procese, povezane z enim lastnikom, kar se lahko uporablja za blokiranje nekaterih napadov razreda Spectre s preprečevanjem izvajanja v enem niti SMT (Hyper Threading) zanesljivih in nezanesljivih nalog.
- Za cgroups je implementiran kontroler za razdelitev pomnilnika slab (slab memory controller), ki se odlikuje po prenosu računanja slab z ravni strani pomnilnika na raven jedrskih objektov, kar omogoča sočasen dostop do slab-strani v različnih cgroup, namesto da bi za vsako cgroup dodeljevali ločene slab predpomnilnike. Predlagan pristop omogoča povečanje učinkovitosti uporabe slab, zmanjšanje uporabe pomnilnika za slab za 30-45%, znatno zmanjšanje skupne porabe pomnilnika s strani jedra in zmanjšanje fragmentacije pomnilnika.
- Zagotavljena je dostava podatkov za debugging v formatu CTF (Compact Type Format), ki omogoča kompaktno shranjevanje informacij o C-typih, povezavah med funkcijami in simbolih za debugging.
- Zagotavljanje modula DRBD (Distributed Replicated Block Device) in naprave /dev/raw je prenehalo (za neposreden dostop do datotek uporabite zastavico O_DIRECT).
Izvor: opennet.ru
