Rilis kernel Linux 5.15

Sawise rong wulan pangembangan, Linus Torvalds nampilake rilis kernel Linux 5.15. Owah-owahan penting kalebu: driver NTFS anyar kanthi dhukungan nulis, modul ksmbd kanthi implementasi server SMB, subsistem DAMON kanggo ngawasi akses memori, primitif ngunci wektu nyata, dhukungan fs-verity ing Btrfs, panggilan sistem process_mrelease kanggo memori sistem respon kelaparan, modul sertifikasi remot dm-ima.

Versi anyar kalebu 13499 mbenakake saka 1888 pangembang, ukuran tembelan 42 MB (pangowahan kena 10895 file, 632522 baris kode ditambahake, 299966 baris dibusak). Udakara 45% saka kabeh owah-owahan sing dikenalake ing 5.15 ana gandhengane karo driver piranti, kira-kira 14% owah-owahan ana gandhengane karo nganyari kode khusus kanggo arsitektur hardware, 14% ana gandhengane karo tumpukan jaringan, 6% ana gandhengane karo sistem file, lan 3% ana hubungane karo subsistem kernel internal.

Inovasi utama:

  • Subsistem disk, I/O lan sistem file
    • Kernel wis ngetrapake implementasi anyar sistem file NTFS, dibukak dening Paragon Software. Pembalap anyar bisa digunakake ing mode nulis lan ndhukung kabeh fitur versi saiki NTFS 3.1, kalebu atribut file lengkap, dhaptar akses (ACL), mode kompresi data, karya efektif karo spasi kosong ing file (jarang) lan muter maneh owah-owahan saka log kanggo mulihake integritas sawise gagal.
    • Sistem file Btrfs ngetrapake dhukungan kanggo mekanisme fs-verity, sing digunakake kanggo ngontrol integritas lan keaslian file individu kanthi transparan nggunakake hash kriptografi utawa kunci sing ana gandhengane karo file, sing disimpen ing area metadata. Sadurunge, fs-verity mung kasedhiya kanggo sistem file Ext4 lan F2fs.

      Btrfs uga nambah dhukungan kanggo pemetaan ID pangguna kanggo sistem file sing dipasang (sadurunge didhukung kanggo sistem file FAT, ext4 lan XFS). Fitur iki ngidini sampeyan mbandhingake file pangguna tartamtu ing partisi asing sing dipasang karo pangguna liyane ing sistem saiki.

      Owah-owahan liyane ing Btrfs kalebu: nambah luwih cepet tombol menyang indeks direktori kanggo nambah kinerja nggawe file; kemampuan kanggo nggarap raid0 karo siji piranti, lan raid10 karo loro (contone, sak proses reconfiguring array); opsi "rescue=ibadroots" kanggo nglirwakake wit ombone sing salah; akselerasi operasi "kirim"; nyuda konflik ngunci sajrone operasi ganti jeneng; kemampuan kanggo nggunakake sektor 4K ing sistem karo ukuran kaca memori 64K.

    • Ing XFS, kemampuan kanggo nggunakake tanggal sawise 2038 ing sistem file wis stabil. Ngleksanakake mekanisme kanggo mateni inode telat lan dhukungan kanggo instalasi tundha lan mbusak atribut file. Kanggo ngilangi masalah, kemampuan kanggo mateni kuota disk kanggo partisi sing wis dipasang wis dibusak (sampeyan bisa mateni kuota kanthi paksa, nanging pitungan sing ana gandhengane bakal terus, mula remounting dibutuhake kanggo mateni kabeh).
    • Ing EXT4, karya wis ditindakake kanggo nambah kinerja nulis buffer delalloc lan ngolah file yatim piatu sing terus ana amarga kasunyatane tetep mbukak, nanging ora ana gandhengane karo direktori. Ngolah operasi mbuwang wis dipindhah metu saka utas kthread jbd2 supaya ora ngalangi operasi nganggo metadata.
    • F2FS nambahake opsi "discard_unit = block | segmen | bagean" kanggo ngiket operasi discard (marking pamblokiran dibebasake sing bisa uga ora disimpen sacara fisik) menyang alignment relatif kanggo blok, sektor, bagean utawa bagean. Dhukungan tambahan kanggo nglacak owah-owahan ing latensi I/O.
    • Sistem file EROFS (Extendable Read-Only File System) nambahake dhukungan I / O langsung kanggo file sing disimpen tanpa kompresi, uga dhukungan fiemap.
    • OverlayFS ngleksanakake penanganan sing bener saka "ora bisa diganti", "mung ditambah", "sinkronisasi" lan "noatime" panji gunung.
    • NFS wis apik nangani kahanan ngendi server NFS mandheg nanggapi panjalukan. Nambahake kemampuan kanggo mount saka server sing wis digunakake, nanging bisa diakses liwat alamat jaringan sing beda.
    • Persiapan wis diwiwiti kanggo nulis ulang subsistem FSCACHE.
    • Dhukungan tambahan kanggo partisi EFI kanthi penempatan tabel GPT sing ora standar.
    • Mekanisme fanotify ngleksanakake gendΓ©ra anyar, FAN_REPORT_PIDFD, sing nyebabake pidfd kalebu ing metadata bali. Pidfd mbantu nangani kahanan nggunakake maneh PID supaya luwih akurat ngenali proses ngakses file sing dipantau (pidfd digandhengake karo proses tartamtu lan ora owah, nalika PID bisa digandhengake karo proses liyane sawise proses saiki sing ana gandhengane karo PID kasebut mandheg).
    • Added kemampuan kanggo nambah TCTerms gunung kanggo kelompok sambungan ana kanggo move_mount () sistem telpon, kang solves masalah karo nyimpen lan mulihake negara proses ing CRIU nalika ana sawetara papan gunung dienggo bareng ing wadhah terisolasi.
    • Perlindhungan tambahan marang kahanan balapan sing didhelikake sing bisa nyebabake korupsi file nalika nindakake cache maca nalika ngolah void ing file.
    • Dhukungan kanggo ngunci file wajib (wajib), dileksanakake liwat pamblokiran telpon sistem sing nyebabake owah-owahan file, wis mandheg. Amarga kahanan balapan sing bisa ditindakake, kunci kasebut dianggep ora bisa dipercaya lan ora digunakake pirang-pirang taun kepungkur.
    • Subsistem LightNVM wis dibusak, sing ngidini akses langsung menyang drive SSD, ngliwati lapisan emulasi. LightNVM ilang makna sawise tekane standar NVMe sing nyedhiyakake zoning (ZNS, Zoned Namespace).
  • Layanan memori lan sistem
    • Subsistem DAMON (Data Access MONitor) wis dileksanakake, ngijini sampeyan kanggo ngawasi aktivitas related kanggo ngakses data ing RAM ing hubungan kanggo proses milih mlaku ing papan pangguna. Subsistem ngidini sampeyan nganalisa area memori sing diakses proses sajrone operasi kabeh, lan wilayah memori sing ora diklaim. DAMON nduweni beban CPU sing sithik, konsumsi memori sing sithik, akurasi dhuwur lan overhead konstan sing bisa diprediksi, ora gumantung saka ukuran. Subsistem bisa digunakake loro dening kernel kanggo Manajemen memori ngoptimalake, lan keperluan ing ruang panganggo kanggo ngerti apa persis proses lan ngoptimalake nggunakake memori, Contone, mbebasake memori keluwihan kanggo sistem.
    • Panggilan sistem process_mrelease wis dileksanakake kanggo nyepetake proses ngeculake memori saka proses sing ngrampungake eksekusi. Ing kahanan normal, rilis sumber daya lan mungkasi proses ora langsung lan bisa uga ditundha amarga macem-macem alasan, ngganggu sistem respon awal memori ruang pangguna kayata oomd (disedhiyakake dening systemd) lan lmkd (digunakake dening Android). Kanthi nelpon process_mrelease, sistem kasebut bisa luwih bisa diprediksi micu mbalekake memori saka proses sing dipeksa.
    • Saka cabang kernel PREEMPT_RT, sing ngembangake dhukungan kanggo operasi wektu nyata, varian primitif kanggo ngatur kunci mutex, ww_mutex, rw_semaphore, spinlock lan rwlock, adhedhasar subsistem RT-Mutex, wis ditransfer. Owah-owahan wis ditambahake menyang SLUB slab allocator kanggo nambah operasi ing mode PREEMPT_RT lan nyuda impact ing interrupts.
    • Dhukungan kanggo atribut panjadwal tugas SCHED_IDLE wis ditambahake menyang cgroup, ngidini sampeyan nyedhiyakake atribut iki kanggo kabeh proses saka grup sing kalebu ing cgroup tartamtu. Sing. pangolahan iki mung bakal mbukak nalika ora ana tugas liyane nunggu kanggo kaleksanan ing sistem. Ora kaya nyetel atribut SCHED_IDLE kanggo saben proses kanthi individu, nalika ngiket SCHED_IDLE menyang cgroup, bobot relatif tugas ing grup kasebut dianggep nalika milih tugas sing bakal ditindakake.
    • Mekanisme kanggo akun konsumsi memori ing cgroup wis ditambahi karo kemampuan kanggo trek struktur data kernel tambahan, kalebu sing digawe kanggo polling, Processing sinyal lan namespaces.
    • Dhukungan ditambahake kanggo jadwal asimetris tugas sing naleni menyang inti prosesor ing arsitektur sing sawetara CPU ngidini eksekusi tugas 32-bit, lan sawetara mung bisa digunakake ing mode 64-bit (contone, ARM). Mode anyar ngidini sampeyan nimbang mung CPU sing ndhukung tugas 32-dicokot nalika jadwal tugas 32-dicokot.
    • Antarmuka I/O asinkron io_uring saiki ndhukung mbukak file langsung ing tabel indeks file tetep, tanpa nggunakake deskriptor file, sing ndadekake bisa nyepetake sawetara jinis operasi kanthi signifikan, nanging nglawan proses Unix tradisional nggunakake deskriptor file. kanggo mbukak file.

      io_uring kanggo subsistem BIO (Blok I/O Layer) ngleksanakake mekanisme daur ulang anyar ("daur ulang BIO"), sing nyuda overhead ing proses ngatur memori internal lan nambah jumlah operasi I / O sing diproses saben detik kira-kira 10% . io_uring uga nambah support kanggo mkdirat (), symlinkat () lan linkat () telpon sistem.

    • Kanggo program BPF, kemampuan kanggo njaluk lan ngolah acara timer wis dileksanakake. Iterator kanggo soket UNIX wis ditambahake, lan kemampuan kanggo njaluk lan nyetel opsi soket kanggo setsockopt wis dileksanakake. BTF dumper saiki ndhukung data diketik.
    • Ing sistem NUMA kanthi macem-macem jinis memori sing beda-beda ing kinerja, nalika papan kosong wis kesel, kaca memori sing diusir ditransfer saka memori dinamis (DRAM) menyang memori permanen sing luwih alon (Memori Persisten) tinimbang mbusak kaca kasebut. Tes nuduhake manawa taktik kasebut biasane nambah kinerja ing sistem kasebut. NUMA uga menehi kemampuan kanggo nyedhiakke kaca memori kanggo proses saka sakumpulan simpul NUMA sing dipilih.
    • Kanggo arsitektur ARC, dhukungan kanggo tabel kaca memori telu lan papat tingkat wis dileksanakake, sing bakal ngidini dhukungan kanggo prosesor ARC 64-bit.
    • Kanggo arsitektur s390, kemampuan kanggo nggunakake mekanisme KFENCE kanggo ndeteksi kesalahan nalika nggarap memori wis dipun ginakaken, lan support kanggo detektor kondisi lomba KCSAN wis ditambahake.
    • Dhukungan ditambahake kanggo ngindeks dhaptar pesen output liwat printk (), ngijini sampeyan kanggo njupuk kabeh pesen kasebut bebarengan lan trek owah-owahan ing papan pangguna.
    • mmap () wis dibusak support kanggo pilihan VM_DENYWRITE, lan kode kernel wis dibusak saka nggunakake mode MAP_DENYWRITE, kang wis suda jumlah kahanan sing ndadΓ©kakΓ© kanggo Watesan nulis menyang file karo kesalahan ETXTBSY.
    • Jinis mriksa anyar, "Probe acara," wis ditambahake menyang subsistem nelusuri, sing bisa ditempelake ing acara nelusuri sing ana, nemtokake format output sampeyan dhewe.
    • Nalika mbangun kernel nggunakake Clang compiler, assembler standar saka project LLVM saiki digunakake.
    • Minangka bagΓ©an saka proyΓ¨k kanggo nyisihaken kernel kode sing ndadΓ©kakΓ© kanggo bebaya kang output dening compiler, eksperimen wis digawa metu karo mode "-Werror" diaktifake minangka standar, kang bebaya compiler diproses minangka kasalahan. Kanggo nyiapake rilis 5.15, Linus wiwit nampa mung owah-owahan sing ora nyebabake bebaya nalika mbangun kernel lan ngaktifake bangunan kanthi "-Werror", nanging banjur sarujuk yen keputusan kasebut durung wayahe lan ditundha supaya "-Werror" minangka standar. . Gawan flag "-Werror" sak DΓ©wan kontrol nggunakake parameter WERROR, kang disetel kanggo COMPILE_TEST minangka standar, i.e. Saiki mung diaktifake kanggo mbangun tes.
  • Virtualisasi lan Keamanan
    • Panangan dm-ima anyar wis ditambahake menyang Device Mapper (DM) kanthi implementasi mekanisme sertifikasi remot adhedhasar subsistem IMA (Integrity Measurement Architecture), sing ngidini layanan eksternal kanggo verifikasi kahanan subsistem kernel kanggo njamin keasliane. . Ing praktik, dm-ima ngidini sampeyan nggawe panyimpenan nggunakake Mapper Piranti sing disambung menyang sistem maya eksternal, ing endi validitas konfigurasi target DM sing diluncurake dicenthang nggunakake IMA.
    • prctl () ngleksanakake pilihan anyar PR_SPEC_L1D_FLUSH, kang nalika diaktifake, nyebabake kernel kanggo flush isi cache tingkat pisanan (L1D) saben wektu ngalih context. Mode iki ngidini, kanthi selektif kanggo proses sing paling penting, kanggo ngleksanakake proteksi tambahan marang panggunaan serangan saluran sisih sing ditindakake kanggo nemtokake data sing wis ana ing cache minangka akibat saka kerentanan sing disebabake dening eksekusi spekulatif instruksi ing CPU. Biaya kanggo ngaktifake PR_SPEC_L1D_FLUSH (ora diaktifake kanthi gawan) minangka paukuman kinerja sing signifikan.
    • Sampeyan bisa mbangun kernel kanthi tambahan bendera "-fzero-call-used-regs=used-gpr" menyang GCC, sing njamin kabeh registrasi direset menyang nol sadurunge bali kontrol saka fungsi kasebut. Opsi iki ngidini sampeyan nglindhungi saka bocor informasi saka fungsi lan nyuda 20% jumlah blok sing cocog kanggo mbangun gadget ROP (Return-Oriented Programming) ing eksploitasi.
    • Kemampuan kanggo mbangun kernel kanggo arsitektur ARM64 ing wangun klien kanggo hypervisor Hyper-V wis dipun ginakaken.
    • A framework pembangunan driver anyar "VDUSE" ngajokaken, sing ngidini ngleksanakake piranti pamblokiran virtual ing ruang panganggo lan nggunakake Virtio minangka transportasi kanggo akses saka sistem tamu.
    • Added driver Virtio kanggo bis I2C, nggawe iku bisa kanggo niru pengontrol I2C ing mode paravirtualization nggunakake backends kapisah.
    • Added Virtio driver gpio-virtio kanggo ngidini tamu ngakses garis GPIO sing diwenehake dening sistem inang.
    • Nambahake kemampuan kanggo matesi akses menyang kaca memori kanggo pembalap piranti kanthi dhukungan DMA ing sistem tanpa I / O MMU (unit manajemen-memori).
    • Hypervisor KVM nduweni kemampuan kanggo nampilake statistik ing wangun histogram linear lan logaritmik.
  • Subsistem jaringan
    • Modul ksmbd wis ditambahake menyang kernel kanthi implementasine server file nggunakake protokol SMB3. Modul kasebut nglengkapi implementasi klien SMB sing sadurunge kasedhiya ing kernel lan, ora kaya server SMB sing mlaku ing ruang pangguna, luwih efisien babagan kinerja, konsumsi memori lan integrasi karo kapabilitas kernel sing luwih maju. Ksmbd diarani minangka ekstensi Samba kanthi kinerja dhuwur lan siap dipasang sing nggabungake karo alat lan perpustakaan Samba yen perlu. Kapabilitas ksmbd kalebu dhukungan sing luwih apik kanggo teknologi caching file sing disebarake (sewa SMB) ing sistem lokal, sing bisa nyuda lalu lintas kanthi signifikan. Ing mangsa ngarep, padha rencana kanggo nambah support kanggo RDMA ("smbdirect") lan ekstensi protokol related kanggo nambah linuwih saka enkripsi lan verifikasi nggunakake teken digital.
    • Klien CIFS ora ndhukung NTLM lan algoritma otentikasi basis DES sing luwih lemah sing digunakake ing protokol SMB1.
    • Dhukungan multicast dileksanakake ing implementasine jembatan jaringan kanggo vlan.
    • Pembalap ikatan, sing digunakake kanggo nggabungake antarmuka jaringan, wis nambahake dhukungan kanggo subsistem XDP (eXpress Data Path), sing ngidini sampeyan ngapusi paket jaringan ing tahap sadurunge diproses dening tumpukan jaringan kernel Linux.
    • Tumpukan nirkabel mac80211 ndhukung 6GHZ STA (Wewenang Temporer Khusus) ing mode LPI, SP lan VLP, uga kemampuan kanggo nyetel TWT individu (Target Wake Time) ing mode titik akses.
    • Dhukungan ditambahake kanggo MCTP (Management Component Transport Protocol), digunakake kanggo interaksi antarane pengontrol manajemen lan piranti sing gegandhengan (pemroses inang, piranti periferal, lsp.).
    • Integrasi menyang inti saka MPTCP (MultiPath TCP), extension saka protokol TCP kanggo ngatur operasi sambungan TCP karo pangiriman paket bebarengan sawetara rute liwat antarmuka jaringan beda gadhah alamat IP beda. Rilis anyar nambahake dhukungan kanggo alamat ing mode fullmesh.
    • Handlers kanggo jaringan stream encapsulated ing SRv6 (Segment Routing IPv6) protokol wis ditambahake menyang netfilter.
    • Dhukungan sockmap ditambahake kanggo soket streaming Unix.
  • Peralatan
    • Driver amdgpu ndhukung Cyan Skillfish APUs (dilengkapi Navi 1x GPUs). APU Yellow Carp saiki ndhukung codec video. Dhukungan GPU Aldebaran sing luwih apik. Nambah pengenal peta anyar adhedhasar GPU Navi 24 "Beige Goby" lan RDNA2. Implementasi layar virtual (VKMS) sing luwih apik diusulake. Dhukungan kanggo ngawasi suhu chip AMD Zen 3 wis ditindakake.
    • Driver amdkfd (kanggo GPU diskret, kayata Polaris) ngleksanakake manager memori virtual sing dienggo bareng (SVM, memori virtual bareng) adhedhasar subsistem HMM (Manajemen memori heterogen), sing ngidini panggunaan piranti karo unit manajemen memori dhewe (MMU). , unit manajemen memori), sing bisa ngakses memori utama. Utamane, nggunakake HMM, sampeyan bisa ngatur papan alamat sing dituduhake ing antarane GPU lan CPU, ing ngendi GPU bisa ngakses memori utama proses kasebut.
    • Driver i915 kanggo kertu video Intel ngembangaken nggunakake manager memori video TTM lan kalebu kemampuan kanggo ngatur konsumsi daya adhedhasar GuC (Graphics mikro Controller). Preparasi wis diwiwiti kanggo implementasine dhukungan kanggo kertu grafis Intel ARC Alchemist lan GPU Intel Xe-HP.
    • Pembalap nouveau ngetrapake kontrol lampu latar kanggo panel eDP nggunakake DPCD (Data Konfigurasi DisplayPort).
    • Nambahake dhukungan kanggo Adreno 7c Gen 3 lan Adreno 680 GPU menyang driver msm.
    • Pembalap IOMMU dileksanakake kanggo chip Apple M1.
    • Added driver swara kanggo sistem adhedhasar AMD Van Gogh APUs.
    • Pembalap Realtek R8188EU wis ditambahake menyang cabang pementasan, sing ngganti versi driver lawas (rtl8188eu) kanggo chip nirkabel Realtek RTL8188EU 802.11 b/g/n.
    • Pembalap ocp_pt kalebu kanggo papan PCIe sing dikembangake dening Meta (Facebook) kanthi implementasi jam atom miniatur lan panrima GNSS, sing bisa digunakake kanggo ngatur operasi server sinkronisasi wektu sing kapisah.
    • Dhukungan ditambahake kanggo Sony Xperia 10II (Snapdragon 665), Xiaomi Redmi 2 (Snapdragon MSM8916), Samsung Galaxy S3 (Snapdragon MSM8226), smartphone Samsung Gavini / Codina / Kyle.
    • Dhukungan tambahan kanggo ARM SoΠ‘ lan NVIDIA Jetson TX2 NX Developer Kit, Sancloud BBE Lite, PicoITX, DRC02, SolidRun SolidSense, SKOV i.MX6, Nitrogen8, Traverse Ten64, GW7902, Microchip SAMA7, ualcomm Snapdragon SDM636/SM8150, H3seas papan -2G/M3e-2G, Marvell CN913x, ASpeed ​​​​AST2600 (Facebook Cloudripper, Elbert lan Fuji papan server), 4KOpen STiH418-b2264.
    • Dhukungan tambahan kanggo panel LCD Gopher 2b, EDT ETM0350G0DH6/ETMV570G2DHU, LOGIC Technologies LTTD800480070-L6WH-RT, Multi-Innotechnology MI1010AIT-1CP1, Innolux EJ030NA 3.0, Vilitek 9341, Vilitek 3300, Vilitek, Samsung 33 20, Samsung DB7430, WideChips WS2401 .
    • Nambahake driver LiteETH kanthi dhukungan kanggo pengontrol Ethernet sing digunakake ing piranti lunak LiteX SoC (kanggo FPGA).
    • Opsi lowlatency wis ditambahake menyang driver usb-audio kanggo ngontrol operasi ing mode latensi minimal. Uga ditambahake pilihan quirk_flags kanggo ngliwati setelan khusus piranti.

Ing wektu sing padha, Latin American Free Software Foundation mbentuk versi kernel gratis 5.15 - Linux-libre 5.15-gnu, ngresiki unsur perangkat kukuh lan driver sing ngemot komponen utawa bagean kode sing ora gratis, ruang lingkup sing diwatesi. dening pabrikan. Rilis anyar ngleksanakake output pesen menyang log babagan rampung reresik. Masalah karo ngasilake paket nggunakake mkspec wis diatasi, dhukungan kanggo paket sworo seru wis apik. Mbusak sawetara bebaya sing ditampilake nalika ngolah file header firmware.h. Diijini output saka sawetara jinis bebaya ("format-ekstra-args", komentar, fungsi sing ora digunakake lan variabel) nalika mbangun ing mode "-Werror". Ditambahake reresik driver gehc-achc. Kode reresik blob sing dianyari ing driver lan subsistem adreno, btusb, btintel, brcmfmac, aarch64 qcom. Reresik saka pembalap prism54 (dibusak) lan rtl8188eu (diganti dening r8188eu) wis mandegake.

Source: opennet.ru

Add a comment