Oracle har præsenteret den første stabile udgave af Unbreakable Enterprise Kernel 8 (UEK R8), en Linux-kerne variant udviklet til brug i Oracle Linux-distributionen som et alternativ til det standardpakke med kerne fra Red Hat Enterprise Linux. Kernen er kun tilgængelig for x86_64 og ARM64 (aarch64) arkitekturer. Kildekoden til kernen, inklusive opdeling i separate patches, er offentliggjort i Oracle's offentlige Git-repositorium.
Unbreakable Enterprise Kernel 8-pakken er baseret på Linux-kernen 6.12 (version UEK R7 var baseret på kernen 5.4, og beta-versionen af RHEL 10 tilbød kernen 6.11), som er suppleret med nye funktioner, optimeringer og rettelser, der også er testet for kompatibilitet med de fleste applikationer, der kører i RHEL, og optimeret til brug med Oracle's industri-software og hardware. Installations- og src-pakker med UEK R8-kernen er forberedt til Oracle Linux 9.5 (der er ingen barrierer for brugen af denne kerne i lignende versioner af RHEL, CentOS, Alma Linux og Rocky Linux).
Nøgleinnovationer i Unbreakable Enterprise Kernel 8:
- Opdelingen af UEK-kernens komponenter er ændret til separate pakker. Kernelmoduler er adskilt fra den grundlæggende kerne og er blevet flyttet til samlinger, der leveres i separate pakker: kernel-uek-modules-core (grundminimum), kernel-uek-modules (til servere), kernel-uek-modules-desktop, kernel-uek-modules-extra-netfilter, kernel-uek-modules-usb og kernel-uek-modules-wireless. Relaterede værktøjer er flyttet ud af basispakken kernel-uek-core til en separat pakke kernel-uek-tools. Konfigurationsfiler med listen over moduler, der er forbudt for indlæsning, er blevet omdøbt fra 'blacklist' til 'denylist' som en del af initiativet for at bruge inkluderende terminologi.
- For ARM Ampere-systemer, der anvendes i Oracle Cloud, er der oprettet en separat samling af kernen kernel-uek64k, hvor den grundlæggende størrelsen af hukommelsessider er øget fra 4 KB til 64 KB.
- Der er tilføjet support til den hardwareimplementering af mekanismen EDMM (Enclave Dynamic Memory Management) i Intel SGX2 (Software Guard Extensions), som muliggør styring af adgangen til individuelle hukommelsessider i en enclave og dynamisk tilføjelse/fjernelse af hukommelsessider til en enclave.
- I Intel QAT-driveren, der understøtter enheder med Intel Quick Assist Technology (QAT), er der tilføjet support til 4. generation af Intel Xeon-processorer.
- Der er tilføjet et system til at opdage split-låsninger, der opstår ved adgang til Ikke-aligneret data i hukommelsen, fordi dataene krydser to CPU-cachelinjer under udførelsen af atomiske instruktioner. Sådanne blokeringer fører til et betydeligt fald i ydeevnen (op til 1000 cyklusser langsommere end en atomar operation med data, der falder ind i en cachelinje).
- En ny metode til beskyttelse mod Retbleed-sårbarhed i Intel- og AMD-CPU'er er implementeret, som bruger opkaldsdybdeovervågning, hvilket ikke nedsætter ydeevnen så meget som den tidligere beskyttelse mod Retbleed.
- På x86-systemer er simultan aktivering af sekundære CPU-kerner sikret, hvilket har reduceret opstartstiden for kernen på systemer med mange kerner.
- Der er tilføjet et parameter til kernens kommandolinje 'ia32_emulation', der gør det muligt at aktivere og deaktivere understøttelsen af 32-bit emulation under opstart for kerner bygget til x86-64 arkitektur.
- Som standard er CFS (Completely Fair Scheduler) blevet erstattet af EEVDF (Earliest Eligible Virtual Deadline First) opgaveplanlæggeren. Når den næste proces vælges til at overtage udførelsen, tager den nye planlægger hensyn til processer, der ikke har fået tilstrækkelige CPU-ressourcer eller har fået urimeligt meget CPU-tid. I det første tilfælde tvinges overførslen til processen, mens det i det andet tilfælde udsættes. Den gamle CFS-planlægger brugte heuristik og finjusteringer til at bestemme, hvilke processer der krævede særlig opmærksomhed, mens den nye planlægger overvåger dem mere eksplicit og kræver ikke finjustering. EEVDF vil reducere forsinkelser ved opgaveudførelse, hvor CFS tidligere havde problemer med planlægningen.
- Leveringen af DTrace 2.0 dynamisk fejlfinding, der er blevet konverteret til at bruge eBPF-kernens under subsystem, fortsætter. DTrace 2.0 fungerer oven på eBPF, ligesom eksisterende sporingsværktøjer i Linux arbejder oven på eBPF.
- I KVM-hypervisoren er det tilladt at bruge op til 4096 virtuelle CPU'er (VCPU).
- Brugen af KTLS, implementeringen af TLS-protokollen på kernniveau, fortsætter.
- Implementeringen af generatoren til pseudotilfældige tal RDRAND, der er ansvarlig for driften af enheden /dev/random, er blevet opdateret til at bruge hash-funktionen BLAKE2s i stedet for SHA1 til operationsblanding af entropi. Ændringen har øget sikkerheden i generatoren af pseudotilfældige tal. For at fremskynde modtagelsen af tilfældige tal gennem systemopkaldet getrandom() er mekanismen vDSO (virtual dynamic shared object) blevet aktiveret, hvilket flytter systemopkaldshåndteringen fra kernen til brugerrummet for at undgå kontekstskift.
- Der er tilføjet støtte til BIG TCP-udvidelsen, der gør det muligt at øge den maksimale størrelse af TCP-pakker til 4 GB for at optimere driften af højhastigheds interne datacenter-netværk. En sådan stigning i paketstørrelsen ved 16-bit headerstørrelse opnås gennem implementeringen af "jumbo"-pakker, hvis størrelse i IP-headeren er sat til 0, mens den faktiske størrelse overføres i et separat 32-bit felt i en tilknyttet header.
- For netværkssokler er der implementeret en mulighed for SO_RESERVE_MEM, som gør det muligt at reservere et bestemt mængde hukommelse til soklen, som altid forbliver tilgængelig for soklen og ikke vil blive fjernet. Brug af denne mulighed muliggør øget ydeevne ved at reducere netværksstakkens operationer til tildeling og returnering af hukommelse, især ved opståen af hukommelsesmangel i systemet.
- Ydeevnen i pakkeskemalæggeren fq (Fair Queuing) er blevet optimeret, hvilket har øget båndbredden med 5% ved høje belastninger i tcp_rr (TCP Request/Response) testen og med 13% ved ubegrænsede strømme af UDP-pakker.
- Der er blevet reorganiseret netværksstrukturerne i kerneprogrammet for at forbedre effektiviteten af data caching i processoren, hvilket har øget ydeevnen af TCP-stakken på systemer, der betjener et stort antal samtidige forespørgsler.
- Støtte til ASMLib 3-biblioteket er tilføjet til automatisk lagringsadministration i Oracle-databasen.
- Der er udført arbejde på at optimere ydeevnen og øge sikkerheden for mekanismen til asynkron input/output io_uring. Io_uring-baserede optimeringer er tilføjet til filsystemerne XFS og Ext4, som muliggør parallel direkte skrivning til filen i flere tråde.
- Forbedret understøttelse af Btrfs-filsystemet. For enheder med trim/discard-support er indstillingen "discard=async" som standard aktiveret, hvilket muliggør udførelse af disse operationer straks for alle FS i asynkron tilstand. Tilføjet støtte til at sende og modtage komprimerede data uden konverteringer. Tilføjet støtte til at skrive i blokke større end 64 KB. Kvotekontrollen er blevet forenklet. Implementeret støtte til mounting af klonede enheder. Forbedringer i skrivekontroller i NOCOW-tilstand (båndbredde forbedret med 9%). Tilføjet mount-options "ignoremetacsums" og "ignoresuperflags" for at ignorere forkerte checksums for metadata og superblokflag. Garanteret udførelse af opgaver vedrørende fjernelse af enheder, balancering og omfordeling af blokke i parallelt tilstand.
- I XFS-filsystemet er det tilladt at bruge blokstørrelser, der overstiger størrelsen på hukommelsessiden. Store extent-tællere til meget store virtuelle diske er tilføjet. Tilføjet en atomar commit-tilstand for indholdet af filer. Eksperimentel implementering af kontrol (fsck) og genopretning af filsystemer i online-tilstand er foreslået.
- I NFS er brugen af operationen READ_PLUS, defineret i NFS 4.2-specifikationen, som standard aktiveret, hvilket bruges til mere effektivt at læse data fra filer, der indeholder huller.
- Hukommelsesstyringssystemet er blevet overført til brugen af datastrukturen folios (hukommelsessider). Folios ligner sammensatte hukommelsessider, men adskiller sig ved forbedret semantik og mere forståelig organisering.
- For hukommelseskortlægningsoperationer anvendes datastrukturen "maple tree", som præsenteres som en mere effektiv erstatning for strukturen "red-black tree". Maple tree er en variant af B-tree, der understøtter range-baseret indeksering og er designet til effektiv cachebrug moderne processorer.
- I mmap er der implementeret låse på niveau med individuelle VMA (Virtual Memory Area), hvilket muliggør øget ydeevne for flertrådede applikationer.
- Tilføjet datastrukturen ptdesc, der optimerer arbejdet med hukommelsestabeller ved at adskille strukturer med metadata og data for hukommelsessider.
Kilde: opennet.ru
