Baada ya miezi miwili ya maendeleo, Linus Torvalds alitoa Linux kernel 6.6. Miongoni mwa mabadiliko mashuhuri zaidi: kipanga kazi kipya cha EEVDF; utaratibu wa stack ya kivuli kwa ulinzi wa kunyonya; msaada wa fs-ukweli katika OverlayFS; upendeleo na utekelezaji wa xattr katika tmpfs; utayarishaji wa fsck mkondoni katika XFS; ufuatiliaji ulioimarishwa wa mauzo ya alama za "GPL-pekee"; msaada wa tundu la mtandao katika io_uring; kumbukumbu nasibu katika kmalloc(); ReiserFS imeacha kutumika; matoleo ya awali ya kiendeshi cha Vulkan NVK yameongezwa kwenye Nouveau.
Toleo jipya linajumuisha marekebisho 15291 kutoka kwa wasanidi 2058, na ukubwa wa kiraka wa MB 39 (mabadiliko yaliathiri faili 14844, kuongeza mistari 553359 ya msimbo, na kuondoa mistari 284012). Toleo la awali lilijumuisha marekebisho 14674 kutoka kwa watengenezaji 2016, na ukubwa wa kiraka wa 78 MB. Takriban 44% ya mabadiliko yote katika 6.6 yanahusiana na viendesha kifaa, takriban 17% ya mabadiliko yanahusiana na sasisho za msimbo maalum kwa usanifu wa maunzi, 11% yanahusiana na safu ya mtandao, 4% inahusiana na mifumo ya faili, na 3% inahusiana na mifumo ndogo ya kernel ya ndani.
Ubunifu kuu katika kernel 6.6:
- Huduma za kumbukumbu na mfumo
- Ratiba mpya ya kazi, EEVDF (Tarehe ya Mwisho ya Mapema Zaidi Inayostahiki ya Kwanza), imetekelezwa, na kuchukua nafasi ya kipanga ratiba cha CFS (Kipanga Kisicho Haki Kabisa), ambacho kilisafirishwa kuanzia na kernel 2.6.23. Wakati wa kuchagua mchakato unaofuata wa kuhamishia utekelezaji, kipanga ratiba kipya huzingatia michakato ambayo imepokea rasilimali za CPU isiyotosha au imepokea kiasi kikubwa cha muda wa CPU isivyo haki. Katika kesi ya awali, uhamisho wa udhibiti kwa mchakato unalazimika, wakati katika kesi ya mwisho, uhamisho wa udhibiti umechelewa. Kipanga ratiba cha zamani cha CFS kilitumia uratibu na urekebishaji vizuri ili kutambua michakato inayohitaji uangalizi maalum, huku kipanga ratiba kipya kinazifuatilia kwa uwazi zaidi na hazihitaji kusawazisha. EEVDF inatarajiwa kupunguza muda wa kusubiri katika kazi ambazo CFS ilikuwa na matatizo ya kuratibu.
- Mabadiliko yamefanywa kwenye ushughulikiaji wa alama za ndani za GPL pekee, zinazolenga kuifanya iwe vigumu zaidi kwa moduli za wamiliki kutumia vipatanishi vya GPL pekee ili kukwepa vizuizi vya ufikiaji kwenye mifumo ndogo ya kernel ambayo inaruhusu tu msimbo wenye leseni ya GPL. Kitendakazi cha symbol_get() sasa kimezimwa kwa moduli za wamiliki, na kuzizuia kutafuta alama zilizo alama kama GPL-pekee. Kinyume chake, moduli za GPL hazitaweza kupata alama zinazosafirishwa na moduli za wamiliki.
- Mipangilio ya ziada ya foleni ya kazini (foleni ya kazi isiyofungwa) imeongezwa ili kuboresha ufanisi wa matumizi ya akiba ya CPU kwenye mifumo mikubwa yenye akiba nyingi za L3. Kernel pia inajumuisha zana/workqueue/wq_dump.py matumizi ya kuangalia usanidi wa sasa wa foleni ya kazi.
- Usaidizi wa awali wa uendeshaji na amri mahususi za soketi umeongezwa kwenye mfumo mdogo wa io_uring. Io_uring_disabled sysctl imeongezwa ili kuzima mfumo mzima wa io_uring. I/O ya moja kwa moja katika hali ya asynchronous pia imeharakishwa kwa kiasi kikubwa katika io_uring. Ongezeko la matokeo na kupunguza muda wa kusubiri kwa shughuli za I/O baada ya kutekeleza mabadiliko haya kufikia 37%.
- Kikusanyaji cha JIT cha BPF kimetekelezwa kwa usanifu wa PA-RISC.
- Mpangilio wa /sys/devices/system/cpu/smt/control sasa unaauni vigezo vya nambari vinavyobainisha idadi ya nyuzi zinazopatikana kwa kila msingi wa CPU. Hapo awali, ni thamani za "kuwasha" na "kuzima" za kuwezesha na kuzima usaidizi wa usomaji mwingi wa ulinganifu ndizo zilizotumika. Kipengele hiki kipya kinaweza kutumika kwenye baadhi ya vichakataji vya PowerPC vinavyotumia hotplug SMT ili kuwasha SMT kwenye cores maalum wakati wa operesheni.
- Mabadiliko yanayoendelea ya uhamishaji kutoka kwa tawi la Rust-for-Linux yanayohusiana na kutumia Rust kama lugha ya pili ya kuunda viendeshaji na moduli za kernel (Usaidizi wa kutu haufanyiki kwa chaguo-msingi na haujumuishi Rust kati ya vitegemezi vya ujenzi wa kernel). Uhamiaji hadi Rust 1.71.1 na bindgen 0.65.1 umekamilika. Sifa ya 'Zeroable' imetekelezwa. Macros ya kiutaratibu 'kubandika!' na '#[derive(Zeroable)]' zimeongezwa. Utangamano na '#[pin_data]' umehakikishwa. Vitendo vya uanzishaji '{,pin_}init_array_from_fn()' na mbinu ya '{,pin_}chain' vimeongezwa. Moduli ya 'aina' imepanuliwa. Mfumo wa upimaji wa kitengo cha kunit sasa unaauni majaribio ya kufanya kazi kutoka kwa hati ya Rust.
- Mfumo mdogo wa "eventfs" umeongezwa, na hivyo kupunguza kwa kiasi kikubwa utumiaji wa kumbukumbu katika mfumo wa ufuatiliaji kwa kuondoa uhifadhi wa miundo isiyohitajika inayotumiwa kuwakilisha alama katika mfumo wa faili. Hapo awali, miundo kama hiyo iliundwa kwa alama zote, bila kujali ikiwa ufuatiliaji ulitumiwa. Kwa eventfs, miundo kama hii inaweza kuundwa kwa nguvu, tu wakati inahitajika.
- Uwezo wa matumizi ya perf umepanuliwa.
- Taarifa za kuchunguza ufanisi wa utaratibu wa Kuunganisha Kernel Samepage (KSM) zimeongezwa kwenye faili /proc/pid/smaps.
- API ya Frontswap, ambayo inaruhusu partitions za kubadilishana kugawiwa katika kumbukumbu ambayo haiwezi kushughulikiwa moja kwa moja na haitoi maelezo ya wakati halisi kuhusu nafasi inayopatikana, imeondolewa. API hii ilitumika tu katika zswap, kwa hivyo iliamuliwa kutumia utendakazi huu moja kwa moja katika zswap, kuondoa upeanaji wa ziada usio wa lazima.
- Kwa usanifu wa RISC-V, usaidizi umeongezwa kwa ajili ya kufikia vihesabio vya utendakazi kutoka kwa nafasi ya mtumiaji na uwezo wa kuweka dampo la msingi baada ya ajali katika eneo lililo nje ya mpaka wa 4GB.
- Imeongeza usaidizi wa awali kwa maagizo ya ARM SME (Scalable Matrix Extension).
- Imetekeleza uwezo wa kutumia zana za utatuzi KDB, KGDB, kcov, KFENCE na KASAN kwenye mifumo iliyo na usanifu wa LoongArch.
- Usaidizi ulioongezwa wa faili za majaribio ya kernel katika mfumo wa ujumuishaji endelevu wa GitLab, ambao hutumiwa katika uundaji wa viendeshi vya michoro.
- Mfumo mdogo wa diski, I/O na mifumo ya faili
- Mfumo wa faili wa OverlayFS sasa unaauni uhifadhi wa heshi za fs-verity katika sifa iliyopanuliwa ya overlay.verity (xattr), ambayo inaweza kutumika kuthibitisha uadilifu na uhalisi wa faili katika safu za chini za OverlayFS kwa kutumia heshi na vitufe vya kriptografia. Kwa hivyo, OverlayFS sasa inajumuisha mabadiliko yote yanayohitajika na mradi wa Composefs kufanya kazi kama safu juu ya OverlayFS na EROFS.
- Mfumo wa faili wa XFS umetayarishwa kusaidia matumizi ya fsck kwa kuangalia mtandaoni na kurekebisha masuala yaliyogunduliwa, bila kuteremsha mfumo wa faili. Zaidi ya hayo, XFS sasa inasaidia matumizi ya folios kubwa katika kashe ya ukurasa na imeongeza uboreshaji kadhaa unaohusiana, kuboresha kwa kiasi kikubwa utendakazi kwa mizigo fulani ya kazi.
- Mfumo wa faili wa tmpfs sasa unaauni sifa zilizopanuliwa zilizofafanuliwa na mtumiaji (xattrs), I/O ya moja kwa moja, na upendeleo maalum wa watumiaji na kikundi. Urekebishaji wa saraka umeimarishwa, kusuluhisha maswala na usafirishaji wa tmpfs kupitia NFS.
- Ili kuboresha usalama, alama ya FSCONFIG_CMD_CREATE_EXCL imeongezwa kwenye API ya usimamizi wa kupachika. Bendera hii huzuia kizuizi kikubwa kushirikiwa kwenye sehemu nyingi za kupachika (huzuia kizigeu kimoja kuunganishwa kwenye sehemu nyingi za kupachika). Chaguo la "--ya kipekee" limeongezwa kwa matumizi ya kupachika ili kuwezesha bendera hii.
- Mfumo mdogo wa VFS sasa unaauni mabadiliko ya wakati halisi ya kufikia na kurekebisha vigezo vya muda (atime, mtime). Hapo awali, data ya saa ilionekana kwa ucheleweshaji fulani, ambao ulitatiza ufuatiliaji wa data iliyoakibishwa katika mifumo kama vile NFS (kutokana na kucheleweshwa kwa kugundua mabadiliko ya faili, mfumo unaweza kudhani kimakosa kwamba data iliyohifadhiwa ilikuwa imesasishwa). Kipengele hiki kipya kinapatikana kwa Btrfs, Ext4, tmpfs, na XFS.
- Btrfs imeacha kuendesha utaratibu wake wa kukagua uadilifu uliojengewa ndani, unaowashwa wakati wa ujenzi kupitia kigezo cha BTRFS_FS_CHECK_INTEGRITY. Utaratibu huu hautunzwa tena, haujaribiwi tena, na huunda CPU ya ziada na mzigo wa kumbukumbu. Zaidi ya hayo, Btrfs imeboresha utendakazi wa msimbo wake mpya wa kukagua mfumo wa faili (scrub).
- Mfumo wa faili wa Ext4 sasa unaangazia ukaguzi wa mara kwa mara wa masasisho makubwa na huharakisha ugawaji wa kumbukumbu wakati wa kuambatanisha hadi mwisho wa faili.
- Mfumo mdogo wa FUSE sasa unaauni sifa ya btime ("wakati wa kuzaliwa"), ambayo inabainisha wakati wa kuunda ingizo.
- Kubadilisha ruhusa kwa viungo vya ishara ni marufuku.
- Simu ya mfumo wa fchmodat2() imeongezwa. Inatofautiana na simu ya mfumo wa fchmodat() kwa kuwa na hoja ya ziada ya kubainisha bendera. Kwa sasa, ni AT_SYMLINK_NOFOLLOW na AT_EMPTY_PATH pekee ndizo zinazotumika. Alama hizi huruhusu kitendakazi cha fchmodat() libc kuzima kwa urahisi uondoaji rejeleo wa viungo vya ishara na kuruhusu matumizi ya kifafanuzi cha faili njia tupu inapobainishwa.
- EROFS (Mfumo wa Faili unaopanuliwa wa Kusomwa Pekee), ulioundwa kwa ajili ya matumizi ya sehemu za kusoma tu, sasa unaauni kanuni ya mbanaji ya Deflate. Kichujio kinachowezekana cha maua hutumika kuharakisha utafutaji wa sifa zilizopanuliwa.
- Mpangilio wa CONFIG_BUFFER_HEAD umeongezwa, kuruhusu kernel kujengwa bila kutumia muundo wa buffer_head. Unapojenga bila buffer_head, vifaa vya kuzuia na baadhi ya mifumo ya faili, kama vile xfs, btrfs, cramfs, erofs, na squashfs, inaweza kutumika.
- Kiendeshaji cha kifaa cha ublk block, ambacho huruhusu mantiki mahususi kuhamishiwa kwenye mchakato wa nafasi ya mtumiaji, sasa kinaauni vifaa vya kuhifadhi vilivyo kanda (kugawanya vikundi vya vizuizi au sekta katika kanda, ikiruhusu tu uongezaji mfuatano wa data na kusasisha kikundi kizima).
- Utekelezaji wa mfumo wa faili wa ReiserFS umehamishwa kutoka kategoria inayotumika hadi kitengo cha kizamani. Usaidizi wa ReiserFS umepangwa kuisha mwaka wa 2025. Sababu zilizotajwa za kuacha kutumia ReiserFS ni pamoja na vilio katika usaidizi, suala ambalo halijatatuliwa la 2038, ukosefu wa uwezo wa kustahimili makosa, na nia ya kupunguza gharama ya kudumisha mabadiliko ya mfumo wa faili tofauti kuhusiana na usaidizi wa API mpya ya kupachika, iomap, na folios.
- Seva ya NFS hutekelezea utaratibu wa kuwasilisha ujumbe kwa NFSv4, kuboresha ufanisi wa uandishi wa faili ili kupunguza trafiki ya mtandao. Usaidizi wa operesheni ya READ_PLUS, iliyofafanuliwa katika NFS 4.2, sasa imejumuishwa.
- msaada wa fscrypt umeongezwa kwa mfumo wa faili wa Ceph.
- Virtualization na Usalama
- Utekelezaji wa Rafu ya Kivuli umeongezwa. Utaratibu huu huzuia matumizi mengi kwa kutumia uwezo wa maunzi wa vichakataji vya Intel ili kulinda dhidi ya kubatilisha anwani ya urejeshaji kutoka kwa chaguo za kukokotoa iwapo buffer ya rafu itafurika. Ulinzi huu hufanya kazi kwa kuhifadhi anwani ya kurejesha sio tu kwenye rafu ya kawaida lakini pia kwenye safu tofauti ya "kivuli", ambayo haiwezi kurekebishwa moja kwa moja, baada ya kuhamisha udhibiti kwa kazi. Kabla ya kuondoka kwenye chaguo la kukokotoa, anwani ya kurejesha hutolewa kutoka kwa safu ya kivuli na ikilinganishwa na anwani ya kurejesha kutoka kwa rafu kuu. Kutolingana katika anwani husababisha ubaguzi kutupwa, kuzuia hali ambapo unyonyaji umeweza kubatilisha anwani kwenye rafu kuu. Rafu ya vivuli vya maunzi inatumika tu katika miundo ya 64-bit, wakati 32-bit huunda hutumia uigaji wa programu.
- Usaidizi ulioongezwa wa kujenga na mkusanyaji wa Clang na hali ya ulinzi ya CFI (Control Flow Integrity) imewashwa, ambayo huzuia ukiukaji wa udhibiti wa mtiririko unaosababishwa na matumizi makubwa ambayo hurekebisha viashiria vya utendakazi vilivyohifadhiwa kwenye kumbukumbu.
- Kwa usanifu wa RISC-V, uwekaji nasibu wa uwekaji kumbukumbu ya msingi kwenye buti umewezeshwa.
- Alama ya SECCOMP_USER_NOTIF_FD_SYNC_WAKE_UP imeongezwa kwa simu ya mfumo wa seccomp(), ikiruhusu matukio kutoka kwa michakato inayofuatiliwa kuchakatwa kwa usawa kwa utendakazi mzuri zaidi wa kipanga kazi.
- Kmalloc() chaguo za kukokotoa hutoa kubahatisha kwa kache za slab, ambayo inafanya kuwa vigumu zaidi kutumia udhaifu wa kernel.
- Rejeleo la Shirika la Usalama la Kitaifa la Marekani limeondolewa kwenye chaguo zinazohusiana na kuwezesha mfumo wa udhibiti wa ufikiaji wa usalama wa SELinux. Kwa kuwa mradi umeendelezwa chini ya mwamvuli wa jumuiya kwa miaka 20 na kuungwa mkono na watunzaji wa kujitegemea, imeamuliwa kubadili kutumia jina "SELinux" badala ya "NSA SELinux" katika maoni na nyaraka katika Kconfig (kwa mfano, maelezo ya parameta ya kujenga SECURITY_SELINUX imebadilishwa kutoka "Msaada wa SELinux wa NSA" hadi "Msaada wa SELinux").
- В системный вызов userfaultfd() добавлена операция UFFDIO_POISON, позволяющая пометить страницы памяти «отравленными» (poisoned), что может быть использовано для переноса повреждённых страниц памяти при миграции mashine pepe с одной системы на другую.
- Kiolesura kipya cha ishara (/dev/vfio/devices/vfioX) kimeongezwa kwenye mfumo mdogo wa VFIO wa kudhibiti vifaa vya VFIO, na kumruhusu mtumiaji kufungua faili moja kwa moja akitumia kifaa, bila kufikia kiolesura cha kikundi cha urithi /dev/vfio/$groupID.
- В seva NFS прекращена поддержка устаревших типов шифрования Kerberos, использующих алгоритмы DES и 3DES.
- Wakati unaendeshwa katika mazingira ya Hyper-V hypervisor, usaidizi umeongezwa kwa mifumo ya wageni inayolindwa na AMD SEV-SNP (Secure Nested Paging) na teknolojia ya Intel TDX (Trusted Domain Extensions).
- Wakati wa kuunda kerneli katika hali ya "W=1", maonyo ya mkusanyaji "-Wformat-overflow," "-Wformat-truncation," "-Wstringop-overflow," na "-Wrestrict" huwashwa kwa chaguomsingi. Onyo la "-Wenum-conversion" limewezeshwa kwa miundo yote.
- Mfumo mdogo wa mtandao
- Utekelezaji wa familia ya anwani ya AF_XDP (eXpress Data Path) umepanuliwa ili kusaidia pakiti zilizohifadhiwa katika vihifadhi vingi (kwa mfano, bafa moja inaweza kuwa na kichwa cha pakiti, na nyingine inaweza kuwa na data, au msururu wa vibafa vingi unaweza kuwa na fremu kubwa za Ethaneti kubwa). Programu zinazotumia soketi za AF_XDP sasa zinaweza kupokea na kusambaza pakiti kutoka kwa bafa nyingi kwa wakati mmoja.
- Mfumo mdogo wa BPF umesasishwa ili kusaidia utenganishaji wa pakiti za IPv4 na IPv6, pamoja na uwezo wa kuchuja pakiti zilizogawanyika.
- BPF imeongeza kidhibiti kipya, update_socket_protocol, inayoruhusu programu za BPF kubadilisha itifaki iliyoombwa ya soketi mpya. Kwa mfano, mpango wa BPF unaweza kuchukua nafasi ya TCP kwa uwazi na MPTCP (multipath TCP) ili kuboresha trafiki ya programu. BPF pia huongeza usaidizi wa kudhibiti uelekezaji wa pakiti kwenye mitiririko tofauti ya MPTCP.
- Moduli ya ksmbd, ambayo hutoa utekelezaji wa seva ya kiwango cha kernel kulingana na itifaki ya SMB3, imesisitizwa kama majaribio. Msaada wa kuchanganya shughuli za kusoma (soma maombi ya kiwanja) umeongezwa.
- Оборудование
- Mfumo mdogo wa DRM (Kidhibiti Utoaji wa Moja kwa Moja) umesasishwa ili kuhakikisha kiendeshi cha chanzo huria cha NVK kinafanya kazi ipasavyo na utekelezaji wa API ya michoro ya Vulkan kwa kadi za michoro za NVIDIA. Kiendeshaji cha Nouveau DRM kiliundwa awali kwa OpenGL, kwa hivyo hakina kanuni za awali zinazohitajika ili viendeshi vya Vulkan kufanya kazi kwa ufanisi, kama vile usaidizi wa vitu vilivyosawazishwa na usimamizi wa nafasi ya anwani pepe.
- Kiendeshi cha AMDGPU sasa kinaauni SDMA 6.1.0, HDP 6.1, SMUIO 14.0, PSP 14.0, IH 6.1, na GFX 9.4.3. Msimbo wa upakiaji wa programu dhibiti wa PSP (Kichakataji cha Usalama cha Jukwaa) umefanyiwa kazi upya. Usaidizi wa teknolojia ya ulandanishi inayojirekebisha ya FreeSync umepanuliwa (msaada wa Uchezaji upya wa Paneli ya Freesync V2 umeongezwa).
- Dereva wa i915 anaendelea kuunga mkono chips za Intel Meteor Lake. Usaidizi wa ulinzi wa nakala wa HDCP (Ulinzi wa Maudhui ya Dijiti wa Kiwango cha Juu-bandwidth) umeboreshwa. Msimbo wa mwingiliano wa kuonyesha umefanyiwa kazi upya.
- Chaguo za kulemaza upakiaji wa misimbo mikrosi wakati wa ujenzi—MICROCODE_INTEL na MICROCODE_AMD—zimeondolewa kwenye Kconfig. Kerneli sasa hujengwa kila wakati kwa kutumia msimbo wa upakiaji wa msimbo wa maikrofoni kwa mifumo ya x86, lakini upakiaji halisi wa msimbo mdogo unaweza kuzimwa kwa kubainisha kigezo cha 'dis_ucode_ldr'.
- Mfumo mdogo wa sauti sasa una uwezo wa kudhibiti vifaa vya sauti vilivyounganishwa kupitia mfumo mdogo wa IIO (Industrial I/O).
- Usaidizi ulioongezwa kwa violesura vya sauti vya Intel LunarLake, Intel ArrowLake, na AMD ACP5x, Cirrus Logic CS42L43, Realtek RT1017, na kodeki za TI TAS2781, na vikuza vya Cirrus Logic CS35L56 na Winic aw88261. Msaada ulioongezwa kwa AMD Van Gogh ASoC.
- Kiendeshi cha Kifaa cha USB MIDI 2.0 kimeongezwa, kinachoiga kiolesura cha USB MIDI 2.0, kilichounganishwa na kifaa cha ALSA UMP rawmidi.
- Usaidizi ulioongezwa kwa vidhibiti vya Ethaneti vya Broadcom ASP 2.0 na Marvell 88Q2XXX.
- Usaidizi ulioongezwa kwa Visionox R66451, TDO TL050HDV35, KD070FHFID015, Inanbo T28CP45TN89 na paneli za EDT ET028013DMA, vidhibiti vya kuonyesha vya Loongson na Azoteq IQS7222D/IQS7210A screen controller.
- Usaidizi ulioongezwa kwa ARM SoC Qualcomm SM4450 (Snapdragon 4 Gen 2), TI AM62P5, Intel Agilex5, Qualcomm ipq5018, AN400 (Amlogic T7)
- Usaidizi ulioongezwa kwa bodi za ARM Samsung Galaxy Tab 3 8.0, FriendlyElec NanoPC T6, Amlogic A311D2, Khadas Vim4, Xiaomi SM7125, Facebook Yosemite 4, Orange Pi Zero 3, Radxa ROCK 4SE.
Wakati huo huo, Free Software Foundation (FSF) katika Amerika ya Kusini iliunda toleo lisilolipishwa la kernel 6.6—Linux-libre 6.6-gnu—iliyosafishwa kwa firmware na vipengee vya kiendeshi vyenye vipengee vya umiliki au sehemu za msimbo zenye upeo uliozuiliwa na mtengenezaji. Toleo la 6.6 linajumuisha msimbo uliosasishwa wa kusafisha blob kwa viendeshaji na mifumo ndogo ndogo, kama vile TI gigabit RU ethernet, MediaTek 792x wifi, Cirrus Logic cs42l43 mfd, cs35l56 HD-audio, na viendeshaji vya SoC aw88261. Majina ya Blob katika faili za dts za usanifu wa Aarch64 yalisafishwa. Matone yaliondolewa kutoka kwa viendeshaji vipya vya ivpu, viendeshi vya Bluetooth, viendeshi vya skrini ya kugusa, na encoder/decoder ya Qualcomm Venus V4L2.
Chanzo: opennet.ru
