Pelepasan kernel Linux 6.12 kanthi dhukungan wektu nyata

Sawisé rong sasi pangembangan, Linus Torvalds ngrilis kernel kasebut. Linux 6.12. Antarane owah-owahan sing paling penting: kemampuan kanggo ngaktifake mode Realtime, sched_ext kanggo nggawe penjadwal CPU liwat eBPF, output kode QR ing kahanan darurat, mekanisme TCP Memori Piranti, mekanisme reservasi sumber daya server SCHED_DEADLINE, perbaikan penjadwal tugas EEVDF, modul IPE kanggo nyetel kabijakan integritas.

Versi anyar kalebu 14607 mbenakake saka 2167 pangembang, ukuran tembelan 37 MB (pangowahan kena 13087 file, 507913 baris kode ditambahake, 234083 baris dibusak). Rilis pungkasan wis 15130 mbenakake saka 2078 pangembang, ukuran tembelan 85 MB (ing kernel 6.10 patch ana 41 MB). Udakara 45% kabeh owah-owahan sing dienalake ing 6.12 ana gandhengane karo driver piranti, kira-kira 12% owah-owahan ana gandhengane karo nganyari kode khusus kanggo arsitektur hardware, 13% ana gandhengane karo tumpukan jaringan, 6% ana gandhengane karo sistem file, lan 3% ana hubungane karo subsistem kernel internal.

Inovasi utama ing kernel 6.12:

  • Layanan memori lan sistem
    • Kemampuan kanggo mbangun kernel nganggo opsi PREEMPT_RT tanpa patch tambahan kanggo operasi wektu nyata saiki wis kasedhiya. Fitur kernel pungkasan sing ilang sing nyegah mode PREEMPT_RT diaktifake yaiku dhukungan kanggo output atom non-blocking liwat fungsi printk, sing uga kalebu ing kernel. Dhukungan PREEMPT_RT kasedhiya kanggo arsitektur x86, x86_64, ARM64, lan RISC-V. Nganti saiki, implementasi mode PREEMPT_RT diwenehake ing wangun patch eksternal, sing sawetara distribusi, kayata RHEL, SUSE, lan Ubuntu, nggawe edisi Realtime sing kapisah saka produk-produke, sing dibutuhake ing bidang-bidang kayata sistem keuangan, piranti pangolahan audio lan video, penerbangan, kedokteran, robotika, telekomunikasi lan sistem industri, ing ngendi perlu kanggo njamin wektu pangolahan kedadeyan sing bisa diprediksi.
    • Mekanisme "sched_ext" (SCX) wis ditambahake, sing ngaktifake panggunaan eBPF kanggo nggawe penjadwal CPU sing nutupi meh kabeh aspek penjadwalan tugas lan alokasi sumber daya CPU. Penjadwal kasebut bisa dimuat lan dieksekusi kanthi dinamis ing njero kernel. Linux в mesin virtual eBPF. Mekanisme sched_ext nyederhanakake nggawe penjadwal khusus tugas, ngaktifake eksperimen karo macem-macem teknik lan strategi penjadwalan, lan ngidini nggawe prototipe kerja kanthi cepet lan panggantos penjadwal ing infrastruktur produksi. Contone, nggunakake sched_ext, sampeyan bisa nggawe penjadwal sing nganggep spesifikasi aplikasi tartamtu lan kanthi dinamis ngganti strategi penjadwalan gumantung saka kahanan sistem lan faktor liyane.
    • Komposisi kasebut kalebu sisa patch sing dibutuhake kanggo operasi mekanisme server SCHED_DEADLINE, sing ngrampungake masalah kekurangan sumber daya CPU kanthi tugas biasa nalika CPU dimonopoli dening tugas prioritas dhuwur (wektu nyata). Kanggo nyegah monopolization CPU, kernel sadurunge nggunakake mekanisme throttling Realtime, sing nyoba kanggo cadangan 5% kanggo tugas-prioritas kurang, ninggalake 95% wektu kanggo tugas realtime. Mekanisme iki isih akeh sing dikarepake, amarga tugas biasa ing pirang-pirang kahanan ora entuk wektu prosesor sing cukup. Server SCHED_DEADLINE ngetrapake mekanisme reservasi sumber daya sing luwih efisien.
    • Integrasi saka EEVDF (Earliest Eligible Virtual Deadline First) panjadwal tugas wis rampung, kang ngganti CFS (Rampung Fair Scheduler) panjadwal, diwenehake miwiti karo kernel 2.6.23. Nalika milih proses sabanjure kanggo nransfer eksekusi, panjadwal anyar njupuk proses akun sing durung nampa sumber daya prosesor cukup utawa wis nampa jumlah undeservedly akeh wektu prosesor. Ing kasus sing sepisanan, transfer kontrol menyang proses dipeksa, lan ing kaloro, sebaliknya, ditundha. Penjadwal CFS lawas nggunakake heuristik lan fine-tuning kanggo ngenali proses sing mbutuhake perhatian khusus, dene panjadwal anyar nglacak kanthi luwih jelas lan ora mbutuhake setelan sing apik. EEVDF wis samesthine kanggo nyuda wektu tundha ing tugas sing CFS wis masalah jadwal karo.
    • Ing panangan darurat kernel - DRM Panic, sing nggunakake subsistem DRM (Direct Rendering Manager) kanggo nampilake laporan visual kanthi gaya "layar biru pati", kemampuan kanggo nampilake logo lan kode QR kanthi laporan kmsg ing layar nalika ana kahanan darurat wis ditambahake. Amarga mung 2953 bait sing cocog karo kode QR, pilihan DRM_PANIC_SCREEN_QR_CODE_URL diwenehake, ing ngendi laporan kmsg dikompres nggunakake zlib lan ditempelake minangka parameter ing URL, sing ngidini udakara 40 bita bisa ditransfer liwat kode QR V7500. Nalika mbangun paket nganggo kernel, distribusi bisa nyetel URL dhasar kanggo URL, sing bakal ngidini dheweke navigasi menyang kaca kanggo nglaporake masalah. Kanggo milih format kode QR, setelan DRM_PANIC_SCREEN_QR_VERSION diwenehake.
    • Dhukungan ditambahake kanggo ARM POE (Ijin Overlay Extension), sing ngidini sampeyan nyetel hak akses menyang wilayah memori. Nggunakake extension iki, ing sistem karo prosesor ARM64, mekanisme Memory Protection Keys bisa dipun ginakaken, kang digunakake kanggo matesi akses menyang kaca memori tanpa ngganti tabel kaca memori.
    • Kanggo arsitektur Loongarch, ARM64, PowerPC lan s390, implementasine getrandom () sistem telpon wis dipindhah, optimized nggunakake vDSO (virtual dynamic shared object) mekanisme, kang ndadekake iku bisa kanggo mindhah pawang telpon sistem saka kernel kanggo ruang pangguna lan ngindhari ngalih konteks. Optimasi ngidini sampeyan nyepetake generasi nomer acak nganti kaping 15.
    • Kemampuan kanggo nggunakake wektu entek mutlak, micu nalika wektu tartamtu wis tekan ing jam sistem, wis ditambahake menyang io_uring bedo input / output subsistem (sadurunge, mung wektu entek relatif bisa disetel, kang nuduhake durasi saka awal operasi. ).
    • Added file kanggo nggawe bindings kanggo perpustakaan libcpupower nggunakake toolkit SWIG, sing ngijini sampeyan kanggo generate bindings saka C / C ++ kode kanggo macem-macem basa program. Bindings ngijini sampeyan kanggo nggawe Tulisan ing Python lan basa liyane, lan digunakake kanggo ngluwihi fungsi perpustakaan libcpupower, kang menehi API kanggo ngatur cpufreq lan driver saka papan pangguna.
    • Utilitas cpuidle nampilake nilai "residensi" negara idle, digunakake kanggo sistem realtime lan njupuk wektu minimal prosesor kudu nganggur kanggo mbenerake biaya energi kanggo transisi menyang lan metu saka negara iki.
    • Nambahake kemampuan kanggo nggunakake kompiler Clang kanggo mbangun pustaka C standar nolibc, sing kalebu ing kode sumber kernel. Linux lan nyedhiyakake ringkesan babagan panggilan sistem dhasar. Nalika mbangun nolibc ing Clang, optimalisasi wektu-link (LTO) diaktifake.
    • Sawetara antarmuka cgroup1 wis ora digunakake, kayata akuntansi TCP, versi watesan alus XNUMX, lan manajemen kekeselen memori. Dhukungan kanggo fitur-fitur kasebut tetep lengkap nganti saiki, lan bebaya digawe kanggo nyinaoni jumlah pangguna sing terus nggunakake fitur kasebut.
    • Nambahake kemampuan kanggo ngatur buffer tilak ring kanggo nyimpen data akumulasi sawise urip maneh, sing bakal ngidini sampeyan ora ilang informasi debugging akumulasi yen ana kacilakan kernel. Data disimpen ing memori. Ngaktifake wis rampung liwat trace_instance kernel parameter baris printah, contone, setelan "trace_instance = boot_map@0x285400000:12M" bakal cadangan 12 MB memori ing 0x285400000 kanggo "boot_map" buffer, kang bakal diakses liwat file /sys/kernel /tracing/instances/boot_map.
    • Owah-owahan sing terus migrasi saka cabang Rust-for-Linux, ana hubungane karo panggunaan Rust minangka basa kapindho kanggo ngembangake driver lan modul kernel (dhukungan Rust ora aktif kanthi standar lan ora kalebu Rust ing antarane dependensi build sing dibutuhake saka kernel). Nambahake modul 'daftar' lan 'rbtree' kanggo nggarap dhaptar sing disambung dobel lan wit telusuran abang-ireng. Ngembangake kemampuan modul 'init', 'sync', 'types', lan 'error'. Kemampuan kanggo nggunakake kode Rust nalika mbangun kernel kanthi perlindungan marang serangan Spectre (opsi MITIGATION_{RETHUNK,RETPOLINE,SLS}), nggunakake sistem debugging KASAN, mekanisme perlindungan kCFI (kernel Control Flow Integrity) lan Shadow Call, lan nalika nggunakake plugin GCC tambahan ditambahake. Driver kanggo kontroler Applied Micro QT2025 PHY Ethernet, sing ditulis ing Rust, ditambahake. Situs web kapisah kanthi dokumentasi wis disiapake: rust.docs.kernel.org.
    • Utilitas xdrgen wis ditambahake menyang kode sumber kernel kanggo ngowahi spesifikasi XDR (eXternal Data Representation) dadi fungsi encoding lan decoding XDR sing ditulis nggunakake gaya C sing diadopsi dening kernel. Linux.
    • Kernel wis diadopsi owah-owahan kanggo ngleksanakake mekanisme masking pointer kanggo ngurangi jumlah telpon alon kanggo barrier_nospec () ing fungsi copy_from_user () 64-dicokot, digunakake kanggo nyalin data menyang kernel saka ruang panganggo. Nggunakake masking nyepetake tes "per_thread_ops", sing ngevaluasi jumlah operasi sing bisa ditindakake ing siji benang, kanthi 2.6%.
    • Driver USB anyar wis ditambahake sing ngidini sampeyan nggunakake protokol 9pfs minangka transportasi kanggo ngirim lan nampa data saka piranti USB nalika masang sistem file 9p liwat USB (contone, "mount -t 9p -o trans=usbg, jeneng=/path/to/ fs /mnt/9"). Conto panggunaan driver anyar yaiku nggunakake NFS tinimbang ngatur boot partisi root nalika ngembangake piranti sing dipasang.
  • Subsistem disk, I/O lan sistem file
    • Kemampuan kanggo nggarap piranti panyimpenan sing ukuran blok luwih gedhe tinimbang ukuran kaca memori ing sistem wis ditambahake menyang subsistem VFS. Ing sistem berkas, fitur iki saiki mung didhukung ing XFS.
    • Subsistem FUSE, sing ngidini sampeyan nggawe implementasi sistem file sing beroperasi ing ruang pangguna, wis nambah dhukungan kanggo pemetaan pengenal pangguna sistem file sing dipasang, digunakake kanggo cocog karo file pangguna tartamtu ing partisi asing sing dipasang karo pangguna liyane ing saiki. sistem.
    • Operasi fcntl anyar, F_CREATED_QUERY, wis dileksanakake, menehi aplikasi kemampuan kanggo nemtokake manawa file sing dibukak nggunakake gendera O_CREAT digawe utawa apa wis ana sadurunge.
    • Added kemampuan kanggo nggunakake unik 64-dicokot Gunung titik ID kanggo name_to_handle_at () sistem telpon supaya kahanan lomba nalika parsing /proc/mountinfo.
    • Ukuran struktur "berkas" ing kernel wis suda saka 232 dadi 184 bait, sing nyuda konsumsi memori ing sistem sing aktif nggarap file.
    • Pasang sistem file kanggo masang titik ing hirarki / proc, kayata / proc / PID / fd, dilarang, sing nyebabake masalah keamanan potensial.
    • NSFS pseudo-FS (NameSpace FS), digunakake kanggo nggarap spasi jeneng, nyedhiyakake informasi tambahan babagan spasi jeneng titik gunung.
    • Sistem file EROFS (Extendable Read-Only File System), sing dirancang kanggo nggunakake partisi mung diwaca, saiki ndhukung sistem file sing dipasang langsung saka gambar disk sing disimpen minangka file.
    • Prentah ioctl anyar XFS_IOC_START_COMMIT lan XFS_IOC_COMMIT_RANGE wis ditambahake menyang XFS kanggo ijol-ijolan konten ing antarane rong file.
    • NFS wis nambahake dhukungan kanggo protokol "LOCALIO", sing ngidini sampeyan nemtokake manawa klien lan server NFS ing host sing padha kanggo ngaktifake optimasi sing cocog.
    • Ing sistem file Btrfs, optimasi kinerja wis diusulake, kode wis refactored, area penguncian ekstensif sajrone operasi maca wis suda, karya wis terus ngowahi kaca memori kanggo nggunakake folios kaca, lan release memori otomatis wis. dipun ginakaken kanggo struktur btrfs_path.
    • Ing sistem file Ext4, kewan omo sing ana gandhengane karo alokasi blok, manajemen ombone, komitmen cepet, lan jurnal wis didandani.
  • Virtualisasi lan Keamanan
    • Nambahake modul LSM IPE (Integrity Policy Enforcement), sing dikembangake dening Microsoft kanggo nggedhekake sistem kontrol akses wajib sing ana. Modul kasebut ngidini sampeyan nemtokake kabijakan integritas umum kanggo kabeh sistem, nuduhake operasi sing diidini lan kepiye keaslian komponen kudu diverifikasi. Contone, nggunakake IPE, sampeyan bisa nemtokake file eksekusi sing diijini mbukak, kanthi nganggep tundhuk karo versi referensi nggunakake hash kriptografi sing diwenehake dening sistem dm-verity.
    • Ing tataran kompilasi kernel, bisa kanthi kapisah ngaktifake metode perlindungan sing kasedhiya marang kerentanan kelas Spectre sing beda ing CPU. Kconfig nawakake paramèter anyar: MITIGATE_MDS (proteksi marang kerentanan Sampling Data Microarchitectural), MITIGATE_TAA (proteksi marang kerentanan TSX Asynchronous Abort), MITIGATE_MMIO_STALE_DATA (perlindhungan marang kerentanan Data Stale MMIO), MITIGATEult_L1TFFULnerability Terminal (LMITIGATE_L1TFF) (proteksi marang Kerentanan Retbleed), MITIGATE_SPECTRE_V1, MITIGATE_SPECTRE_V2 (proteksi marang kerentanan Spectre), MITIGATE_SRBDS (proteksi marang kerentanan Sampling Data Buffer Register Khusus), MITIGATE_SSB (proteksi marang kerentanan Bypass Toko Spekulatif).
    • Added pilihan baris printah proc_mem.force_override lan pesawat saka setelan mbangun ing Kconfig (PROC_MEM_FORCE_ALWAYS, PROC_MEM_FORCE_PTRACE lan PROC_MEM_FORCE_NEVER) kanggo nyegah owah-owahan memori liwat /proc/pid/mem.
    • Subsistem LSM (Linux modul keamanan) wis dialihake nggunakake panggilan statis, sing wis ningkatake keamanan lan kinerja.
    • Kemampuan kanggo nggunakake inti standar kanggo arsitektur ARM64 ing lingkungan tamu sing mlaku ing Android-sistem nganggo hypervisor KVM sing dimodifikasi (KVM sing dilindhungi).
    • Modul Landlock LSM, sing ngijini sampeyan kanggo matesi interaksi klompok pangolahan karo lingkungan njaba, nindakake konsep "IPC scoping" kanggo selektif matesi interaksi karo lingkungan kothak wedhi nggunakake soket Unix lan sinyal. Contone, sampeyan bisa nglarang sambungan nggunakake soket Unix saka lingkungan kothak wedhi kanggo pangolahan sing ora duwe isolasi Applied, nanging ngidini sambungan kanggo pangolahan ing orane katrangan padha.
    • Ing hypervisor KVM, flag wis ditambahake menyang CPUID kanggo sistem tamu nuduhake support kanggo ekstensi AVX10.1.
  • Subsistem jaringan
    • Mekanisme TCP Memori Piranti wis ditambahake, ngidini panggunaan soket jaringan kanggo ngirim langsung isi memori piranti periferal liwat jaringan (mode nul-salinan) lan langsung nyelehake isi paket jaringan ing area memori piranti ing sisih panampa. Data sing dikirim ing paket ditransfer saka kertu jaringan menyang memori piranti periferal utawa saka memori piranti menyang kertu jaringan langsung, ngliwati CPU, lan header paket rampung ing buffer kernel biasa.
    • Kapabilitas akeh pembalap Ethernet lan nirkabel wis ditambahi. Contone, driver Intel iwlwifi nambahake dhukungan kanggo mindhah operasi RLC / SMPS menyang sisih firmware, driver RealTek rtw89 nambah kinerja lan nambah dhukungan kanggo chip RTL8852BT / 8852BE-VT (WiFi 6), driver microchip Ethernet nambahake dhukungan kanggo IEEE 802.3 bw (100BASE) spesifikasi -T1) lan IEEE 802.3bp, implementasi Ethernet virtual sing luwih apik Microsoft vNIC lan IBM veth. Nambahake pembalap anyar kanggo Realtek RTL9054, RTL9068, RTL9072, RTL9075, RTL9068, RTL9071 lan Microchip LAN8650/1 10BASE-T1S MAC-PHY Kripik Ethernet.
    • Ing MPTCP (MultiPath TCP), extension saka protokol TCP kanggo ngatur pangiriman paket TCP bebarengan ing sawetara rute liwat antarmuka jaringan beda, ukuran bobot digunakake ing routing tambah saka 8 kanggo 16 bit. Dilaksanakake deteksi lalu lintas sing ilang (blackhole) lan penundaan kanggo sawetara wektu nyoba kanggo nggawe sambungan karo sistem sing ndadékaké mundhut lalu lintas.
    • Kanggo IPv6, dhukungan dileksanakake kanggo gendera "p" ing PIO (Pilihan Informasi Awalan), digunakake ing iklan RA (Iklan Router IPv6) kanggo milih model panyebaran klien liwat DHCPv6-PD (DHCPv6 Prefix Delegation, RFC9663) tinimbang menehi alamat individu adhedhasar awalan nggunakake SLAAC (Stateless Address Autoconfiguration). IPv6 IOAM6 nambahake dhukungan kanggo mode enkapsulasi tunsrc anyar kanggo kinerja sing luwih apik.
    • Kinerja sing luwih apik kanggo ngolah paket kontrol IPsec.
    • Kinerja apik saka flushing set aturan nftables gedhe. nfnetlink_queue wis nambah dhukungan SCTP.
    • API ethtool wis nambahake dhukungan kanggo naleni sawetara kertu jaringan menyang antarmuka jaringan siji.
  • Peralatan
    • Ing driver AMDGPU, karya terus kanggo ngleksanakake support kanggo AMD RDNA4 ("GFX12") GPUs. Nambahake kemampuan kanggo ngreset antrian tugas individu tanpa ngreset kabeh GPU.
    • Work terus ing driver Xe drm (Direct Rendering Manager) kanggo GPUs adhedhasar arsitektur Intel Xe, kang digunakake ing kertu video kulawarga Intel Arc lan grafis terpadu, miwiti karo pemroses Tiger Lake. Versi anyar kalebu dhukungan kanggo GPU adhedhasar Battlemage lan microarchitectures Lunar Lake. Dhukungan kanggo CCS (Warna Control Surface) Xe2 modifiers wis ngenalaken kanggo ngontrol paramèter GPUs terpadu lan diskrèt.
    • Pembalap i915 ngetrapake kemampuan kanggo ngasilake informasi babagan kacepetan penggemar liwat antarmuka HWMON utawa sysfs (atribut "fan1_input"). Parameter "i915.modeset" wis ora digunakake; parameter "i915.nomodeset" kudu digunakake tinimbang "i0.modeset = 915".
    • Nambahake dhukungan kanggo GPU A615, A306 lan A621 menyang driver msm DRM (Qualcomm Adreno GPU).
    • Pembalap Nouveau wis nggawe struktur internal lan diresiki.
    • Pembalap intel_pstate, sing ngontrol paramèter konsumsi daya (P-state) ing sistem karo prosesor Intel, wis nambah dhukungan kanggo sistem hibrida kanthi CPU asimetris (karakteristik sing beda), uga dhukungan kanggo manajemen daya prosesor adhedhasar Granite Rapids lan Sierra Forest. mikroarsitektur. Nambahake dhukungan kanggo Xeon Granite Rapids CPU menyang driver intel_idle. Pembalap intel_rapl menehi pangenalan proses kulawarga AMD 1Ah lan prosesor Intel ArrowLake-U.
    • Nggabungake owah-owahan terus kanggo ndhukung ARM SoC Snapdragon X Elite, sing nggunakake CPU Oryon 12-inti Qualcomm lan GPU Qualcomm Adreno. Chip iki ngarahke ing nggunakake ing laptop lan PC, lan ahead saka Apple M3 lan Intel Core Ultra 155H chip ing akeh tes kinerja.
    • Dhukungan tambahan kanggo papan ARM, SoC lan piranti: Broadcom bcm2712 (Raspberry Pi 5), Renesas R9A09G057 (RZ/V2H), Qualcomm Snapdragon 414 (MSM8929), Lenovo ThinkPad T14s Gen 6, Lenovo A6000/A6010, Laptop Surface RG7, Anbernic , Firefly Core-PX35-JD30, Lunzn Fastrhino R4S, Aspeed Riser, AGX Orin, Rockchip Qnap-TS68, Huashan Pi, Meta Catalina, BeagleY-AI, NanoPi R433S Plus, ExynosAuto v2, SOPHGO SG920, Qualcommh IPQ2002 Keren Pi CM5332 GenBook, Anbernic RG4XXSP, GameForce Ace, IBM P815, Kontron i.MX5 OSM-S, NanoPC-T35
    • Dhukungan tambahan kanggo panel layar Anbernic RG28XX, On Tat Industrial Company KD50G21-40NT-A1, Innolux G070ACE-LH3, Melfas lmfbx101117480, Densitron DMT028VGHMCMI-1D, Microchip AC40T08A, AOU116A B02.3XAN116, AOU B06.1XAT116, BOE TV04.1WUM-LL101, BOE NV2WUM-N140, BOE NV41WUM-N133, BOE NV63WHM-A116D, BOE NE4WUM-N140G, CMN-6G, CMNEA-N116G MNB2LS116-2, Lintang er601.
    • Subsistem audio wis nambah dhukungan kanggo chip lan codec RME Digiface USB, AMD ACP 7.1, Mediatek MT6367, MT8365, Realtek RTL1320, C-Media CM9825. driver swara lawas kanggo Intel ASoC wis ngumumaké lungse, lan dianjurake kanggo nggunakake driver AVS tinimbang. Akeh dandan wis digawe kanggo driver SoundWire.

Source: opennet.ru

Tuku hosting sing dipercaya kanggo situs kanthi proteksi DDoS, server VPS VDS 🔥 Tuku hosting situs web sing bisa dipercaya nganggo proteksi DDoS, server VPS VDS | ProHoster