Lëshimi i kernelit Linux 6.7

Pas dy muajsh zhvillimi, Linus Torvalds prezantoi lëshimin e kernelit Linux 6.7. Ndër ndryshimet më të dukshme: integrimi i FS Bcachefs, ndalimi i mbështetjes për arkitekturën Itanium, mundësia e funksionimit të Nouvea me firmware GSP-R, mbështetje për TLS-enkriptimin në NVMe-TCP, mundësia e përdorimit të përjashtimeve në BPF, mbështetje për futex në io_uring, optimizimi i performancës së planifikuesit fq (Fair Queuing), mbështetje për zgjerimin TCP-AO (TCP Authentication Option) dhe mundësia për të kufizuar lidhjet rrjet në mekanizmin e mbrojtjes Landlock, si dhe është shtuar menaxhimi i qasjes në user namespace dhe io_uring përmes AppArmor.

Në versionin e ri janë pranuar 18405 korrigjime nga 2066 zhvillues, madhësia e patch-it është 72 MB (ndryshimet përfshinë 13467 skedare, shtuar 906147 linja kodi, fshirë 341048 linja). Në lëshimin e kaluar kishte 15291 korrigjime nga 2058 zhvillues, madhësia e patch-it ishte 39 MB. Rreth 45% e të gjitha ndryshimeve të prezantuara në 6.7 lidhen me drejtuesit e pajisjeve, afërsisht 14% e ndryshimeve kanë të bëjnë me përditësimin e kodit të veçantë për arkitekturën harduerike, 13% lidhen me grilimin rrjet, 5% me sistemet e skedave dhe 3% me nën-sistemet e brendshme të kernelit.

Kryesoret e reja në kernelin 6.7:

  • Sistemi i diskut, hyrja/ dalje dhe sistemet e skedarëve
    • Në bërthamën e saj është pranuar kodi i sistemit të skedarëve Bcachefs, në të cilin është bërë një përpjekje për të arritur një nivel performancë, besueshmërie dhe shkallëzueshmërie që i përgjigjet XFS, në kombinim me elemente të funksionaliteteve të avancuara që janë të pranishme në Btrfs dhe ZFS. Për shembull, Bcachefs mbështet mundësi të tilla si përfshirja në ndarje të disa pajisjeve, skemë të shumëfishtë të grumbullimit të skedarëve (niveli i poshtëm me të dhëna të shfrytëzuara shpesh në bazë të SSD-ve të shpejtë, ndërsa niveli i sipërm me të dhëna më pak të kërkuara nga diskët e ngurtë), replikim (RAID 1/10), memorizimi, kompresimi i dhënave në mënyrë transparente (modet LZ4, gzip dhe ZSTD), snapshot-e, verifikimi i integritetit përmes kontrolleve të shifrave, mundësia për të ruajtur kodet e korrigjimit të gabimeve të Reda—Solomon (RAID 5/6), ruajtja e informacionit në formë të enkriptuar (përdoren ChaCha20 dhe Poly1305). Sipas performancës, Bcachefs është më i shpejtë se Btrfs dhe sistemet e tjera të skedarëve të bazuara në mekanizmin Copy-on-Write, dhe tregon shpejtësi të punës afërsisht me Ext4 dhe XFS.
    • Në sistemin e skedarëve Btrfs është introduktuar një mod i thjeshtuar i kuotave, i cili lejon arritjen e performancës më të lartë duke ndjekur ekstentet vetëm në atë nënndarje ku janë krijuar, çka e thjeshton ndjeshëm llogaritjen dhe përmirëson performancën, por nuk lejon marrjen parasysh të ekstentëve të përdorur në përbashkët në disa nënndarje.
    • Në Btrfs është shtuar një strukturë e re të dhënash e quajtur "stripe tree", e përshtatshme për mapimin logjik të ekstentëve në situata kur mapimi fizik nuk përputhet në pajisje të ndryshme. Kjo strukturë aktualisht është e angazhuar në implementimet RAID0 dhe RAID1 për pajisjet e zonuara me bllok. Në të ardhmen, kjo strukturë planifikohet të përdoret edhe në RAID më të avancuar, çka do të zgjidhë një sërë problemesh që ekzistojnë në implementimin aktual.
    • Në sistemin e skedarëve Ceph është realizuar mbështetje për mapimin e identifikuesve të përdoruesve të sistemeve të skedarëve të montuar, i cili përdoret për përputhjen e skedareve të një përdoruesi në një ndarje të huaj të montuar me një përdorues tjetër në sistemin aktual.
    • Në efivarfs është shtuar mundësia për të caktuar uid dhe gid gjatë montimit për të mundësuar ndryshimin e variablave UEFI nga proceset e nisura pa të drejtat root.
    • Në exFAT janë shtuar thirrje ioctl për të lexuar dhe ndryshuar atributet e FS. Është shtuar trajtimi i dosjeve me madhësi zero.
    • Në F2FS është realizuar mundësia e përdorimit të blloqeve me madhësi 16K.
    • Mekanizmi i automontimit autofs është kaluar në përdorimin e API së re për montimin e ndarjeve.
    • Në OverlayFS janë propozuar opsione montimi "lowerdir+" dhe "datadir+". Është shtuar mbështetje për montimin e nivelit të dytë të OverlayFS me xattrs.
    • Në XFS është optimizuar ngarkesa në CPU në kodin e shpërndarjes së blloqeve në kohë reale. Është siguruar mundësia e ekzekutimit simultan të operacioneve të leximit dhe FICLONE.
    • Kodi EXT2 është kaluar në përdorimin e folieve të faqeve të memories (page folios).
  • Kujtesa dhe shërbimet sistemore
    • Mbështetje për arkitekturën ia64, e përdorur në procesorët Intel Itanium, është ndërprerë, pasi shitjet e tyre u ndalën plotësisht në vitin 2021. Procesorët Itanium u prezantuan nga Intel në vitin 2001, por arkitektura ia64 nuk arriti të konkurrojë me AMD64, kryesisht për shkak të performancës më të lartë të AMD64 dhe kalimit më të lehtë nga procesorët x86 me 32 bitë. Si rezultat, interesat e Intel u orientojnë drejt procesorëve x86-64, ndërsa Itanium mbeti në HP Integrity, por porositë për ta u ndërprenë tre vjet më parë. falas. Kjo është vetëm një nga shumë privilegjet që ofrojmë për klientët tanë të rinj të web-hosting. Kodi për mbështetje ia64 është fshirë nga bërthama kryesisht për shkak të mungesës së gjatë të mbështetjes për këtë platformë, ndërsa Linus Torvalds shprehu gatishmërinë për të rikthyer mbështetje për ia64 në bërthamë, por vetëm nëse gjendet një mbështetës që do të demonstrojë mbështetje cilësore për këtë platformë jashtë bërthamës kryesore për të paktën një vit.
    • Shtesa e parametrave të komandës së bërthamës «ia32_emulation», e cila lejon aktivizimin dhe çaktivizimin e mbështetjes për emulimin e modit 32-bit gjatë fazës së ngarkimit në bërthamat e ndërtuara për arkitekturën x86-64. Nga një pikëpamje praktike, ky parametër i ri lejon ndërtimin e bërthamës me mbështetje për kompatibilitetin me aplikacionet 32-bit, por për defolt e çaktivizon këtë mod për të reduktuar vektorin e sulmit në bërthamë, duke qenë se API për sigurimin e kompatibilitetit është më pak e testuar se sa ndërfaqet kryesore të bërthamës.
    • Vazhdon transferimi i ndryshimeve nga dega Rust-for-Linux, që lidhen me përdorimin e gjuhës Rust si gjuhë të dytë për zhvillimin e driverëve dhe moduleve të bërthamës (mbështetje për Rust nuk është aktive në mënyrë të paracaktuar dhe nuk çon në aktivizimin e Rust si varësi të detyrueshme për ndërtimin e bërthamës). Në versionin e ri është realizuar kalimi në përdorimin e versionit Rust 1.73 dhe është propozuar një grup lidhjesh për punë me radhë (workqueues).
    • Ësht mundësuar përdorimi i mekanizmit binfmt_misc për mbështetje të formateve të reja të skedarëve ekzekutivë (për shembull, për të ekzekutuar aplikacione të kompiluara në Java ose Python) brenda hapësirave të veçanta pa privilegje (namespace).
    • Në kontrollorin e cgroup cpuset, që lejon menaxhimin e angazhimit të bërthamave të CPU gjatë ekzekutimit të një detyre, është siguruar ndarja në seksione lokale dhe të largëta (remote partition), të cilat dallohen nga ajo nëse cgroup-i prind është një seksion rrënjor i saktë apo jo. Në cpuset janë shtuar gjithashtu konfigurime të reja «cpuset.cpus.exclusive» dhe «cpuset.cpus.exclusive.effective» për lidhje ekskluzive me CPU.
    • Në nën-sistemin BPF është realizuar mbështetje për përjashtime, të cilat trajtohen si dalje urgjente nga programi BPF me mundësinë e sigurt të zhvillimit të kadrove të grumbullimit. Për më tepër, në programet BPF lejohet përdorimi i treguesve kptr në lidhje me CPU.
    • Në nënstrukturën io_uring është shtuar mbështetje për operacionet me futex, si dhe janë realizuar operacione të reja: IORING_OP_WAITID (versioni asinkron i waitid), SOCKET_URING_OP_GETSOCKOPT (varianti i getsockoptand), SOCKET_URING_OP_SETSOCKOPT (varianti i setsockopt) dhe IORING_OP_READ_MULTISHOT (operacione të shumta leximi, që nuk ndalojnë derisa të ketë të dhëna ose derisa bufferi të mbushet).
    • Është shtuar implementimi i FIFO-racave të lehta të lidhura, që kërkojnë bllokim me spin vetëm për fshirjen nga radhë në konteksin e procesit dhe që shpëtojnë nga bllokimi me spin për shtimin e atomik në radhë në çdo kontekst.
    • Është shtuar bufferi circular "objpool" me një implementim të shkallëzueshëm të një rradhe me performancë të lartë për alokimin dhe kthimin e objekteve.
    • Është shtuar pjesa fillestare e ndryshimeve për realizimin e API-së së re futex2, e cila ofron performancë më të lartë në sistemet NUMA, mbështet madhësi të ndryshme nga 32 bit, dhe mund të përdoret si zëvendësim për thirrjen sistemike të shumëfishtë futex().
    • Për arkitekturat ARM32 dhe S390x është shtuar mbështetje për grupin aktual të instruksioneve BPF (cpuv4).
    • Për arkitekturën RISC-V është implementuar mundësia e përdorimit të modit të kontrollit të Shadow-Call Stack, i disponueshëm në Clang 17, i dedikuar për mbrojtjen nga rinovimi i adresës së kthimit nga funksioni në rast të tejkalimit të buffers në stack. Qëllimi i mbrojtjes është ruajtja, pas kalimit të kontrollit në funksion, e adresës së kthimit në një 'stack' të veçantë 'shadow' dhe nxjerrja e kësaj adrese para daljes nga funksioni.
    • Në mekanizmin e bashkimit të faqeve të kujtesës identike (KSM: Kernel Samepage Merging) është shtuar një mod të ri inteligjent për skanimin e faqeve të kujtesës, i cili përcjell faqet e skanuara me dështim dhe zvogëlon intensitetin e skanimeve të tyre të përsëritura. Për të aktivizuar modin e ri, është shtuar një konfigurim në /sys/kernel/mm/ksm/smart_scan.
    • Është shtuar një komandë e re ioctl PAGEMAP_SCAN, e cila kur përdoret me userfaultfd(), lejon përcaktimin e faktit të shkrimit në një gamë të caktuar kujtese. Kjo mundësi e re, për shembull, mund të përdoret në sistem për ruajtjen dhe rikthimin e gjendjes së proceseve CRIU ose në sistemet anti-bashkëngjitëse për lojëra.
    • Në sistemin e ndërtimit, me prezencën e kompajlerit Clang, ndërtimi i shembujve të përdorimit të nënstrukturës perf, të shkruar si programe BPF, është aktivizuar si parazgjedhje.
    • Shtresa e vjetër videobuf, që ishte përdorur për menaxhimin e frame buffer-ave në nënstrukturën e medias, është hequr dhe është zëvendësuar më shumë se 10 vjet më parë me një implementim të ri videobuf2.
  • Virtualizimi dhe siguria
    • Në nënstrukturën fscrypt është shtuar mundësia e përshkimit të të dhënave me blloqe më të vogla se madhësia e bllokut në sistemin e skedareve. Diçka e tillë mund të nevojitet për të aktivizuar mekanizmat harduerikë të përshkimit që mbështetin vetëm blloqe të vogla (për shembull, kontrollet UFS, që mbështesin vetëm madhësinë e bllokut 4096, do të mund të përdoren me FS me madhësi blloku 16K).
    • Në nënstrukturën 'iommufd', që lejon menaxhimin e tabelave të faqeve të memories për input/output IOMMU (I/O Memory-Management Unit) përmes deshifruesve të skedarëve nga hapësira e përdoruesit, është shtuar ndjekja e të dhënave që nuk janë hequr ende nga keši (dirty) për operacionet DMA, që është e nevojshme për të përcaktuar memorien me të dhëna të pahequra gjatë migrimit të proceseve.
    • Në mekanizmin Landlock, i cili lejon kufizimin e ndërveprimit të një grupi procesesh me mjedisin e jashtëm, është shtuar mbështetje për përcaktimin e rregullave për menaxhimin e aksesit në soketat TCP. Për shembull, mund të krijoni një rregull që lejon vetëm qasjen përmes portit rrjetor 443 për të vendosur lidhje HTTPS.
    • Në nën-sistemin AppArmor është shtuar mundësia për të menaxhuar aksesin në mekanizmin io_uring dhe për krijimin e hapësirave të emrave të identifikuesve të përdoruesit (user namespaces), që lejon selektivisht të lejohet aksesin në këto mundësi vetëm për procese të caktuara.
    • API për vlerësimin është shtuar. makinave virtuale për të konfirmuar integritetin e procesit të ngarkesës së tij.
    • Në sistemet LoongArch është realizuar mbështetje për virtualizimin duke përdorur hipervizorin KVM.
    • Kur përdoret hipervizori KVM në sistemet RISC-V, është shtuar mbështetje për zgjerimin Smstateen, që pengon qasjen e makinës virtuale në regjistrat e CPU-së që qartësisht nuk mb supportohen nga hipervizori. Gjithashtu, është shtuar mbështetje për përdorimin në sistemet mysafirë të zgjerimit Zicond, që lejon të përdoren disa operacione të të números shprehshëm.
    • Në sistemet e miohosura nën KVM që bazohen në arkitekturën x86, lejohet përdorimi deri në 4096 CPU virtuale.
  • Sistemi i rrjetit
    • Në drejtuesin NVMe-TCP (NVMe mbi TCP), i cili lejon qasjen në diskët NVMe përmes rrjetit (NVM Express mbi Fabrics), u shtua mbështetje për enkriptimin e kanalit të transmetimit të të dhënave duke përdorur TLS (duke përdorur KTLS dhe procesin e prapavijës në hapësirën e përdoruesit tlshd për negociatën e lidhjes).
    • U optimizua performanca e planifikuesit të paketave fq (Fair Queuing), duke lejuar rritjen e kapacitetit me 5% në ngarkesa të mëdha gjatë testit tcp_rr (TCP Request/Response) dhe me 13% në fluksin e pakufizuar të paketave UDP.
    • Në protokollin TCP u shtua mundësia opsionale e përdorimit të vulave të kohës (TCP TS) me saktësi mikrosekondash (RFC 7323), çka lejon vlerësimin më të saktë të vonesave dhe krijimin e moduleve më të avancuara për kontrollin e mbingarkesës. Për ta aktivizuar, mund të përdorni komandën "ip route add 10/8 … features tcp_usec_ts".
    • Në stakun TCP është shtuar mbështetje për zgjerimin TCP-AO (TCP Authentication Option, RFC 5925), i cili ofron mundësinë për të verifikuar titujt TCP nëpërmjet kodit MAC (Message Authentication Code), duke përdorur algoritme më moderne HMAC-SHA1 dhe CMAC-AES-128 në vend të opsionit të mëparshëm TCP-MD5 të bazuar në algoritmin e vjetruar MD5.
    • Është shtuar një tip i ri i pajisjeve virtuale rrjetës ‘netkit’, logjika e transmetimit të të dhënave në të cilat përcaktohet me një program BPF.
    • Në KSMBD, implementimin e serverit SMB në nivelin e bërthamës, është shtuar mbështetje për shndërrimin e emrave të skedarëve që përmbajnë çift suprugësh të simboleve.
    • Në NFS është përmirësuar implementimi i rrjedhave me shërbimet RPC. Është shtuar mbështetje për delegimin e shkruarjes (për NFSv4.1+). Në NFSD është shtuar mbështetje për trajtuesin netlink rpc_status. Është përmirësuar mbështetje për klientët NFSv4.x gjatë eksportimit të përsëritur në knfsd.
  • Pajisjet
    • Në modulin e bërthamës Nouveau është shtuar mbështetje fillestare për firmware GSP-RM, të cilat përdoren në GPU NVIDIA RTX 20+ për të kaluar operacionet e inicializimit dhe kontrollit të GPU-së në një mikro-kontroller të veçantë GSP (GPU System Processor). Mbështetja e GSP-RM lejon që ndihmësin Nouveau të punojë duke ndjekur firmware-n, në vend të programimit të drejtpërdrejtë të operacioneve të ndërveprimit me harduerin, gjë që e thjeshton ndjeshëm shtimin e mbështetjes për GPU-të e reja NVIDIA përmes përdorimit të thirrjeve tashmë të gatshme për inicializimin dhe menaxhimin e konsumit të energjisë.
    • Në ndihmësin AMDGPU është realizuar mbështetje për GC 11.5, NBIO 7.11, SMU 14, SMU 13.0 OD, DCN 3.5, VPE 6.1 dhe DML2. Është përmirësuar mbështetja për ngarkimin pa qepje (pa blerim gjatë kalimit të modit të videos).
    • Në ndihmësin i915 është realizuar mbështetje për çipat Intel Meteor Lake dhe është shtuar një e implementuar fillestare për Intel LunarLake (Xe 2).
    • Është shtuar mbështetje për kanale të asimetrike transmetimi, të shtuar në specifikimet USB4 v2 (120/40G).
    • Është shtuar mbështetje për ARM SoC: Qualcomm Snapdragon 720G (përdoret në telefona inteligjentë Xiaomi), AMD Pensando Elba, Renesas, R8A779F4 (R-Car S4-8), USRobotics USR8200 (përdoret në routera dhe NAS).
    • Shtohen mbështetje për smartphone Fairphone 5 dhe platformat ARM Orange Pi 5, QuartzPro64, Turing RK1, Variscite MX6, BigTreeTech CB1, Freescale LX2162, Google Spherion, Google Hayato, Genio 1200 EVK, RK3566 Powkiddy RGB30.
    • Shtohen mbështetje për platformat RISC-V Milk-V Pioneer dhe Milk-V Duo.
    • Shtohen mbështetje për ndërfaqet audio të laptopëve HUAWEI që furnizohen me CPU AMD. Shtohen mbështetje për altoparlantët shtesë të instaluar në laptopët Dell Oasis 13/14/16. Shtohen mbështetje për altoparlantët e integruar ASUS K6500ZC. Shtohen mbështetje për indikatorin e heshtjes në laptopët HP 255 G8 dhe G10. Shtohen mbështetje për drejtuesit audio acp6.3. Shtohen mbështetje për ndërfaqet profesionale të regjistrimit audio Focusrite Clarett+ 2Pre dhe 4Pre.

Së bashku, Fondi Latino-Amerikan i Softuerit të Lirë ka formuluar një variant të plotë të lirë të bërthamës 6.7 — Linux-libre 6.7-gnu, i pastër nga elementet e firmware-t dhe drivereve që përmbajnë komponente ose pjesë kodi të pamjaftueshme, ku përdorimi i të cilëve është i kufizuar nga prodhuesi. Në versionin 6.7 është përditësuar kodi për pastrimin e blobëve në drejtuese dhe nën-sisteme të ndryshme, si për shembull, në drejtuese amdgpu, nouveau, adreno, mwifiex, mt7988, ath11k, avs dhe btqca. Kodi për pastrimin e drejtueseve localtalk dhe rtl8192u është hequr për shkak të përjashtimit të tyre nga bërthama. Janë eliminuar komponentët e tepërt të pastrimit të drejtueseve xhci-pci, rtl8xxxu dhe rtw8822b, të shtuar më parë për gabim. Është realizuar pastrimi i emrave të blobëve në dts-fajla për arkitekturën Aarch64. Blobët në drejtuese të rinj mt7925, tps6598x, aw87390 dhe aw88399 janë hequr.

Burimi: opennet.ru

Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster