Kutolewa kwa kernel ya Linux 6.7

Baada ya miezi miwili ya maendeleo, Linus Torvalds aliwasilisha kutolewa kwa Linux kernel 6.7. Miongoni mwa mabadiliko mashuhuri zaidi: ujumuishaji wa mfumo wa faili wa Bcachefs, kukomesha msaada kwa usanifu wa Itanium, uwezo wa Nouvea kufanya kazi na firmware ya GSP-R, usaidizi wa usimbuaji wa TLS katika NVMe-TCP, uwezo wa kutumia isipokuwa katika BPF, usaidizi wa futex katika io_uring, uboreshaji wa utendaji wa kiratibu wa fq (Fair Queuing) ), usaidizi wa kiendelezi cha TCP-AO (Chaguo la Uthibitishaji wa TCP) na uwezo wa kuzuia miunganisho ya mtandao katika utaratibu wa usalama wa Landlock, aliongeza udhibiti wa ufikiaji kwa nafasi ya jina la mtumiaji na io_uring. kupitia AppArmor.

Toleo jipya linajumuisha marekebisho 18405 kutoka kwa watengenezaji 2066, ukubwa wa kiraka ni 72 MB (mabadiliko yaliathiri faili 13467, mistari 906147 ya kanuni iliongezwa, mistari 341048 ilifutwa). Toleo la mwisho lilikuwa na marekebisho 15291 kutoka kwa watengenezaji wa 2058, saizi ya kiraka ilikuwa 39 MB. Takriban 45% ya mabadiliko yote yaliyoletwa katika 6.7 yanahusiana na viendeshi vya kifaa, takriban 14% ya mabadiliko yanahusiana na kusasisha msimbo maalum wa usanifu wa maunzi, 13% yanahusiana na safu ya mtandao, 5% inahusiana na mifumo ya faili, na 3% zinahusiana na mifumo ndogo ya kernel ya ndani.

Ubunifu kuu katika kernel 6.7:

  • Mfumo mdogo wa diski, I/O na mifumo ya faili
    • Kokwa huchukua msimbo wa mfumo wa faili wa Bcachefs, ambao hujaribu kufikia utendakazi, kutegemewa na upanuzi wa XFS, pamoja na vipengele vya utendakazi wa hali ya juu unaopatikana katika Btrfs na ZFS. Kwa mfano, Bcachefs huauni vipengele kama vile kujumuisha vifaa vingi katika kizigeu, mipangilio ya hifadhi ya tabaka nyingi (safu ya chini yenye data inayotumiwa mara kwa mara kulingana na SSD zenye kasi, na safu ya juu iliyo na data isiyotumika sana kutoka kwa diski kuu), urudufishaji (RAID). 1/10), kuweka akiba , ukandamizaji wa data uwazi (njia za LZ4, gzip na ZSTD), vipande vya serikali (picha), uthibitishaji wa uadilifu kwa kutumia cheki, uwezo wa kuhifadhi misimbo ya kurekebisha makosa ya Reed-Solomon (RAID 5/6), kuhifadhi taarifa ndani fomu iliyosimbwa (ChaCha20 na Poly1305 zinatumika). Kwa upande wa utendakazi, Bcachefs ziko mbele ya Btrfs na mifumo mingine ya faili kulingana na utaratibu wa Copy-on-Write, na huonyesha kasi ya uendeshaji karibu na Ext4 na XFS.
    • Mfumo wa faili wa Btrfs huleta hali iliyorahisishwa ya upendeleo ambayo hukuruhusu kufikia utendaji wa juu zaidi kwa kufuatilia viwango tu katika sehemu ndogo ambayo zimeundwa, ambayo hurahisisha mahesabu na kuboresha utendaji, lakini haikuruhusu kuzingatia viwango vilivyoshirikiwa katika kadhaa. sehemu ndogo.
    • Btrfs imeongeza muundo mpya wa data wa "mti wa mstari", unaofaa kwa ramani ya kimantiki katika hali ambapo michoro hailingani kwenye vifaa vyote. Muundo kwa sasa unatumika katika utekelezaji wa RAID0 na RAID1 kwa vifaa vya kuzuia kanda. Katika siku zijazo, wanapanga kutumia muundo huu katika RAID za kiwango cha juu, ambazo zitatatua matatizo kadhaa yaliyopo katika utekelezaji wa sasa.
    • Mfumo wa faili wa Ceph unatumia usaidizi wa kupanga vitambulisho vya mtumiaji vya mifumo ya faili iliyowekwa kwenye ramani, inayotumika kulinganisha faili za mtumiaji mahususi kwenye sehemu ya kigeni iliyowekwa na mtumiaji mwingine kwenye mfumo wa sasa.
    • Imeongeza uwezo wa kubainisha uid na gid kwenye mount kwa efivarfs ili kuruhusu michakato isiyo ya mizizi kubadilisha vigeu vya UEFI.
    • Aliongeza simu za ioctl kwa exFAT kwa kusoma na kubadilisha sifa za FS. Utunzaji ulioongezwa wa saraka za saizi sifuri.
    • F2FS hutumia uwezo wa kutumia vizuizi 16K.
    • Utaratibu wa kupachika otomatiki umebadilishwa ili kutumia API ya kupachika sehemu mpya.
    • OverlayFS inatoa chaguzi za kuweka "lowerdir+" na "datadir+". Usaidizi ulioongezwa kwa uwekaji kiota wa OverlayFS na xattrs.
    • XFS imeboresha upakiaji wa CPU katika msimbo wa muda halisi wa mgao wa block. Uwezo wa kufanya shughuli za kusoma na FICLONE kwa wakati mmoja hutolewa.
    • Msimbo wa EXT2 umebadilishwa ili kutumia folios za ukurasa.
  • Huduma za kumbukumbu na mfumo
    • Usaidizi wa usanifu wa ia64 unaotumiwa katika vichakataji vya Intel Itanium, ambao ulikomeshwa kabisa mnamo 2021, umekatishwa. Wasindikaji wa Itanium walianzishwa na Intel mwaka wa 2001, lakini usanifu wa ia64 ulishindwa kushindana na AMD64, hasa kutokana na utendaji wa juu wa AMD64 na mpito laini kutoka kwa wasindikaji wa 32-bit x86. Kama matokeo, masilahi ya Intel yalibadilika na kupendelea wasindikaji wa x86-64, na kura ya Itanium ilibaki seva za Uadilifu za HP, maagizo ambayo yalisimamishwa miaka mitatu iliyopita. Nambari ya usaidizi wa ia64 iliondolewa kwenye kernel hasa kwa sababu ya ukosefu wa msaada wa muda mrefu kwa jukwaa hili, wakati Linus Torvalds alionyesha nia yake ya kurudisha usaidizi wa ia64 kwenye kernel, lakini ikiwa tu kuna mtunzaji ambaye anaweza kuonyesha ubora wa juu. msaada kwa jukwaa hili nje ya kerneli kuu kwa angalau mwaka mmoja .
    • Imeongeza kigezo cha amri ya mstari wa "ia32_emulation", ambayo hukuruhusu kuwezesha au kuzima usaidizi wa uigaji wa modi ya 32-bit kwenye kokwa zilizojengwa kwa usanifu wa x86-64 kwenye hatua ya kuwasha. Kwa upande wa vitendo, chaguo jipya hukuruhusu kuunda kernel na usaidizi wa utangamano na programu 32-bit, lakini zima hali hii kwa chaguo-msingi ili kupunguza vekta ya shambulio kwenye kernel, kwani API ya utangamano haijajaribiwa kidogo kuliko kernel kuu. violesura.
    • Kuendelea kuhama kwa mabadiliko kutoka kwa tawi la Rust-for-Linux kuhusiana na matumizi ya lugha ya Rust kama lugha ya pili ya kuendeleza viendeshaji na moduli za kernel (Usaidizi wa kutu haufanyiki kwa chaguo-msingi, na hauleti kujumuishwa kwa Rust kati ya utegemezi wa kusanyiko unaohitajika kwa kernel). Toleo jipya hufanya mpito wa kutumia toleo la Rust 1.73 na hutoa seti ya vifungo vya kufanya kazi na foleni za kazi.
    • Inawezekana kutumia utaratibu wa binfmt_misc kuongeza usaidizi wa fomati mpya za faili zinazoweza kutekelezeka (kwa mfano, kutekeleza programu zilizokusanywa za Java au Python) ndani ya nafasi tofauti za majina zisizo salama.
    • Kidhibiti cha kikundi cpuset, ambacho hukuruhusu kudhibiti utumiaji wa cores za CPU wakati wa kutekeleza kazi, hutoa mgawanyiko katika ugawaji wa ndani na wa mbali, ambao hutofautiana ikiwa kikundi cha mzazi ni sehemu sahihi ya mizizi au la. Mipangilio mipya "cpuset.cpus.exclusive" na "cpuset.cpus.excluisve.effective" pia imeongezwa kwenye cpuset kwa ajili ya uunganishaji wa kipekee wa CPU.
    • Mfumo mdogo wa BPF hutekeleza usaidizi kwa vighairi, ambavyo huchakatwa kama njia ya dharura ya kutoka kwa mpango wa BPF wenye uwezo wa kutengua fremu za rafu kwa usalama. Kwa kuongeza, programu za BPF huruhusu matumizi ya viashiria vya kptr kuhusiana na CPU.
    • Usaidizi wa utendakazi na futex umeongezwa kwenye mfumo mdogo wa io_uring, na utendakazi mpya umetekelezwa: IORING_OP_WAITID (toleo lisilosawazisha la waitid), SOCKET_URING_OP_GETSOCKOPT (getsockoptand chaguo), SOCKET_URING_OP_SETSOCKOPT (weka chaguo_la_kusoma_KUTOKA_LOOPTI_LOOPT) kuna data au si bafa kamili).
    • Utekelezaji ulioongezwa wa foleni nyepesi za FIFO zilizounganishwa moja tu ambazo zinahitaji kufuli kwa mpangilio tu katika muktadha wa mchakato na kutoweka kwa kufuli kwa nyongeza za atomiki kwenye foleni katika muktadha wowote.
    • Imeongeza bafa ya pete "objpool" yenye utekelezaji mkubwa wa foleni ya utendakazi wa juu kwa kutenga na kurejesha vitu.
    • Sehemu ya awali ya mabadiliko imeongezwa ili kutekeleza API mpya ya futex2, ambayo ina utendakazi bora kwenye mifumo ya NUMA, inayoauni saizi zingine isipokuwa biti 32, na inaweza kutumika badala ya simu ya mfumo ya futex() nyingi.
    • Kwa usanifu wa ARM32 na S390x, usaidizi wa seti ya sasa (cpuv4) ya maagizo ya BPF umeongezwa.
    • Kwa usanifu wa RISC-V, inawezekana kutumia hali ya kuangalia Stack-Call Stack inayopatikana katika Clang 17, iliyoundwa ili kulinda dhidi ya kubatilisha anwani ya kurejesha kutoka kwa chaguo za kukokotoa katika tukio la kufurika kwa bafa kwenye rafu. Kiini cha ulinzi ni kuhifadhi anwani ya kurejesha katika safu tofauti ya "kivuli" baada ya kuhamisha udhibiti kwa kazi na kurejesha anwani hii kabla ya kuondoka kwenye kazi.
    • Hali mpya ya kuchanganua ukurasa wa kumbukumbu mahiri imeongezwa kwa utaratibu wa kuunganisha kurasa za kumbukumbu zinazofanana (KSM: Kuunganisha Kernel Samepage), ambayo hufuatilia kurasa zilizochanganuliwa bila mafanikio na kupunguza ukubwa wa utambazaji wao upya. Ili kuwezesha modi mpya, mpangilio wa /sys/kernel/mm/ksm/smart_scan umeongezwa.
    • Imeongeza amri mpya ya ioctl PAGEMAP_SCAN, ambayo, inapotumiwa na userfaultfd(), hukuruhusu kubainisha ukweli wa uandishi kwa safu mahususi ya kumbukumbu. Kipengele kipya, kwa mfano, kinaweza kutumika katika mfumo kuokoa na kurejesha hali ya michakato ya CRIU au katika mifumo ya kupambana na udanganyifu wa mchezo.
    • Katika mfumo wa kusanyiko, ikiwa mkusanyiko wa Clang unapatikana, mkusanyiko wa mifano ya kutumia mfumo mdogo wa perf, ulioandikwa kama programu za BPF, umewezeshwa kwa chaguo-msingi.
    • Safu ya zamani ya videobuf, ambayo ilitumika kudhibiti vidhibiti fremu katika mfumo mdogo wa media na nafasi yake ikachukuliwa na utekelezaji mpya wa videobuf10 zaidi ya miaka 2 iliyopita, imeondolewa.
  • Virtualization na Usalama
    • Uwezo wa kusimba data kwa njia fiche katika vizuizi vidogo kuliko ukubwa wa kizuizi katika mfumo wa faili umeongezwa kwenye mfumo mdogo wa fscrypt. Hii inaweza kuhitajika ili kuwezesha mbinu za usimbaji fiche za maunzi ambazo zinaauni vizuizi vidogo pekee (kwa mfano, vidhibiti vya UFS vinavyotumia ukubwa wa 4096 pekee vinaweza kutumika na mfumo wa faili wenye ukubwa wa blok 16K).
    • Mfumo mdogo wa "iommufd", unaokuruhusu kudhibiti majedwali ya ukurasa wa kumbukumbu ya IOMMU (I/O Memory-Management) kupitia vifafanuzi vya faili kutoka kwa nafasi ya mtumiaji, umeongeza ufuatiliaji wa data ambayo bado haijaondolewa kwenye kashe (chafu) ya DMA. shughuli, ambayo ni muhimu kwa ajili ya kuamua kumbukumbu na data unflushed wakati wa uhamiaji mchakato.
    • Usaidizi wa kufafanua sheria za udhibiti wa upatikanaji wa soketi za TCP zimeongezwa kwenye utaratibu wa Landlock, ambayo inakuwezesha kupunguza mwingiliano wa kikundi cha michakato na mazingira ya nje. Kwa mfano, unaweza kuunda sheria ambayo inaruhusu tu ufikiaji wa mlango wa mtandao 443 ili kuanzisha miunganisho ya HTTPS.
    • Mfumo mdogo wa AppArmor umeongeza uwezo wa kudhibiti ufikiaji wa utaratibu wa io_uring na kuunda nafasi za majina za watumiaji, ambayo hukuruhusu kwa kuchagua kuruhusu ufikiaji wa uwezo huu kwa michakato fulani pekee.
    • Imeongeza API ya uthibitishaji wa mashine pepe ili kuthibitisha uadilifu wa mchakato wa kuwasha mashine pepe.
    • Mifumo ya LoongArch inasaidia uboreshaji kwa kutumia hypervisor ya KVM.
    • Wakati wa kutumia hypervisor ya KVM kwenye mifumo ya RISC-V, usaidizi wa ugani wa Smstateen umeonekana, ambao huzuia mashine ya mtandaoni kufikia rejista za CPU ambazo haziungwa mkono wazi na hypervisor. Pia imeongeza usaidizi wa matumizi ya kiendelezi cha Zicond katika mifumo ya wageni, ambayo inaruhusu matumizi ya baadhi ya shughuli za masharti kamili.
    • Katika mifumo ya wageni yenye misingi ya x86 inayoendeshwa chini ya KVM, hadi CPU pepe 4096 zinaruhusiwa.
  • Mfumo mdogo wa mtandao
    • Kiendeshaji cha NVMe-TCP (NVMe over TCP), kinachokuruhusu kufikia viendeshi vya NVMe kupitia mtandao (NVM Express over Fabrics) kwa kutumia itifaki ya TCP, kimeongeza usaidizi wa kusimba chaneli ya upitishaji data kwa kutumia TLS (kwa kutumia KTLS na mchakato wa usuli. katika nafasi ya mtumiaji tlshd kwa mazungumzo ya unganisho).
    • Utendaji wa kipanga ratiba cha pakiti za fq (Fair Queuing) uliboreshwa, ambayo ilifanya iwezekane kuongeza upitishaji kwa 5% chini ya mizigo mizito katika jaribio la tcp_rr (TCP Request/Response) na kwa 13% kwa mtiririko usio na kikomo wa pakiti za UDP.
    • TCP huongeza uwezo wa hiari wa muhuri wa muda wa microsecond-usahihi (TCP TS) (RFC 7323), ambayo inaruhusu ukadiriaji sahihi zaidi wa kusubiri na moduli za juu zaidi za kudhibiti msongamano. Ili kuiwezesha, unaweza kutumia amri "njia ya ip ongeza 10/8 ... vipengele vya tcp_usec_ts".
    • Rafu ya TCP imeongeza usaidizi kwa kiendelezi cha TCP-AO (Chaguo la Uthibitishaji wa TCP, RFC 5925), ambayo inawezesha kuthibitisha vichwa vya TCP kwa kutumia misimbo ya MAC (Msimbo wa Uthibitishaji wa Ujumbe), kwa kutumia algoriti za kisasa zaidi HMAC-SHA1 na CMAC-AES- 128 badala yake ilipatikana chaguo la TCP-MD5 kulingana na algoriti ya MD5 iliyopitwa na wakati.
    • Aina mpya ya vifaa vya mtandao pepe "netkit" imeongezwa, mantiki ya uhamishaji data ambayo imewekwa kwa kutumia programu ya BPF.
    • KSMBD, utekelezaji wa kiwango cha kernel wa seva ya SMB, imeongeza usaidizi wa kusuluhisha majina ya faili yaliyo na jozi mbadala za herufi ambatani.
    • NFS imeboresha utekelezaji wa nyuzi na huduma za RPC. Usaidizi ulioongezwa kwa uwakilishi wa maandishi (kwa NFSv4.1+). NFSD imeongeza usaidizi kwa kidhibiti cha netilink cha rpc_status. Usaidizi ulioboreshwa kwa wateja wa NFSv4.x wakati wa kusafirisha tena kwa knfsd.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Usaidizi wa awali wa programu dhibiti ya GSP-RM umeongezwa kwenye moduli ya kernel ya Nouveau, ambayo hutumiwa katika NVIDIA RTX 20+ GPU kusogeza uanzishaji na uendeshaji wa udhibiti wa GPU kwenye kando ya kidhibiti kidogo cha GSP (GPU System Processor). Usaidizi wa GSP-RM huruhusu kiendeshi cha Nouveau kufanya kazi kupitia simu za programu dhibiti, badala ya kupanga mwingiliano wa maunzi moja kwa moja, na hivyo kurahisisha zaidi kuongeza usaidizi kwa GPU mpya za NVIDIA kwa kutumia simu zilizoundwa awali za kuanzisha na kudhibiti nishati.
    • Kiendeshi cha AMDGPU kinaauni GC 11.5, NBIO 7.11, SMU 14, SMU 13.0 OD, DCN 3.5, VPE 6.1 na DML2. Usaidizi ulioboreshwa wa upakiaji bila mshono (hakuna kutetereka wakati wa kubadilisha modi ya video).
    • Dereva wa i915 anaongeza usaidizi kwa chips za Intel Meteor Lake na anaongeza utekelezaji wa awali wa Intel LunarLake (Xe 2).
    • Usaidizi umeongezwa kwa njia zisizo za ulinganifu zilizoongezwa kwenye vipimo vya USB4 v2 (120/40G).
    • Usaidizi ulioongezwa kwa ARM SoC: Qualcomm Snapdragon 720G (inayotumika katika simu mahiri za Xiaomi), AMD Pensando Elba, Renesas, R8A779F4 (R-Car S4-8), USRobotics USR8200 (hutumika katika vipanga njia na NAS).
    • Usaidizi ulioongezwa kwa simu mahiri za Fairphone 5 na bodi za ARM Orange Pi 5, QuartzPro64, Turing RK1, Variscite MX6, BigTreeTech CB1, Freescale LX2162, Google Spherion, Google Hayato, Genio 1200 EVK, RK3566 Powkiddy RGB30.
    • Usaidizi umeongezwa kwa bodi za RISC-V Milk-V Pioneer na Milk-V Duo.
    • Usaidizi ulioongezwa wa violesura vya sauti vya kompyuta za mkononi za HUAWEI zinazotolewa na CPU za AMD. Usaidizi ulioongezwa kwa spika za ziada zilizosakinishwa kwenye kompyuta za mkononi za Dell Oasis 13/14/16. Usaidizi ulioongezwa kwa spika zilizojengewa ndani ASUS K6500ZC. Usaidizi ulioongezwa wa kiashirio cha bubu kwenye kompyuta za mkononi za HP 255 G8 na G10. Usaidizi ulioongezwa kwa viendesha sauti vya acp6.3. Usaidizi umeongezwa kwa violesura vya kurekodi vya Focusrite Clarett+ 2Pre na 4Pre vya kitaalamu.

Wakati huo huo, Taasisi ya Programu ya Bure ya Amerika ya Kusini iliunda toleo la kernel ya bure kabisa 6.7 - Linux-libre 6.7-gnu, iliyoondolewa kwa vipengele vya firmware na madereva yenye vipengele visivyo na bure au sehemu za msimbo, upeo wa ambayo ni mdogo. na mtengenezaji. Katika toleo la 6.7, msimbo wa kusafisha blob umesasishwa katika viendeshaji na mifumo ndogo mbalimbali, kwa mfano, katika viendeshi vya amdgpu, nouveau, adreno, mwifiex, mt7988, ath11k, avs na btqca. Msimbo wa kusafisha localtalk na viendeshaji vya rtl8192u umeondolewa kwa sababu ya kutengwa kwao kwenye kernel. Imeondoa vipengele visivyohitajika vya kusafisha viendeshi vya xhci-pci, rtl8xxxu na rtw8822b, vilivyoongezwa hapo awali kwa makosa. Imesafisha majina ya blob katika faili za dts za usanifu wa Aarch64. Imeondoa matone katika viendeshaji vipya vya mt7925, tps6598x, aw87390 na aw88399.

Chanzo: opennet.ru

Kuongeza maoni