Kutolewa kwa kernel ya Linux 6.3

Baada ya miezi miwili ya maendeleo, Linus Torvalds aliwasilisha kutolewa kwa Linux kernel 6.3. Miongoni mwa mabadiliko mashuhuri zaidi: kusafishwa kwa majukwaa ya urithi ya ARM na viendeshi vya michoro, ujumuishaji unaoendelea wa usaidizi wa lugha ya Rust, matumizi ya hwnoise, usaidizi wa miundo ya miti nyekundu-nyeusi katika BPF, hali ya BIG TCP ya IPv4, alama ya Dhrystone iliyojengwa, uwezo wa kuzima. utekelezaji katika memfd, usaidizi wa kuunda viendeshi vya HID kwa kutumia BPF, mabadiliko yamefanywa kwa Btrfs ili kupunguza mgawanyiko wa vikundi vya kuzuia.

Toleo jipya linajumuisha marekebisho 15637 kutoka kwa watengenezaji 2055; ukubwa wa kiraka - 76 MB (mabadiliko yaliathiri faili 14296, mistari 1023183 ya kanuni iliongezwa, mistari 883103 ilifutwa). Kwa kulinganisha, toleo la awali lilitoa marekebisho 16843 kutoka kwa watengenezaji 2178; ukubwa wa kiraka ni 62 MB. Takriban 39% ya mabadiliko yote yaliyoletwa kwenye kernel 6.3 yanahusiana na viendesha kifaa, takriban 15% ya mabadiliko yanahusiana na kusasisha nambari maalum kwa usanifu wa maunzi, 10% inahusiana na safu ya mtandao, 5% inahusiana na mifumo ya faili na. 3% inahusiana na mifumo ndogo ya kernel ya ndani.

Ubunifu kuu katika kernel 6.3:

  • Huduma za kumbukumbu na mfumo
    • Usafishaji muhimu wa kanuni zinazohusiana na bodi za ARM za zamani na zisizotumiwa zilifanyika, ambayo ilifanya iwezekanavyo kupunguza ukubwa wa msimbo wa chanzo cha kernel kwa mistari 150 elfu. Zaidi ya mifumo 40 ya zamani ya ARM imeondolewa.
    • Uwezo wa kuunda madereva kwa vifaa vya pembejeo na interface ya HID (Human Interface Device), inayotekelezwa kwa namna ya programu za BPF, imetekelezwa.
    • Uhamishaji kutoka kwa tawi la Rust-for-Linux la utendakazi wa ziada unaohusiana na matumizi ya lugha ya Rust kama lugha ya pili ya kutengeneza viendeshaji na moduli za kernel umeendelea. Usaidizi wa kutu haujawezeshwa kwa chaguo-msingi, na hausababishi Rust kujumuishwa kama utegemezi unaohitajika wa kernel. Utendaji uliotolewa katika matoleo ya awali umepanuliwa ili kusaidia aina za Arc (utekelezaji wa viashiria vilivyo na hesabu ya marejeleo), ScopeGuard (kusafisha unapotoka nje ya upeo) na ForeignOwnable (hutoa uhamishaji wa viashiria kati ya C na msimbo wa Kutu). Sehemu ya 'azima' (aina ya 'Ng'ombe' na sifa 'Inayomilikiwa') imeondolewa kwenye kifurushi cha 'alloc'. Imebainika kuwa hali ya msaada wa kutu kwenye kernel tayari iko karibu na kuanza kukubali moduli za kwanza zilizoandikwa kwa Rust kwenye kernel.
    • Linux ya hali ya mtumiaji (inayoendesha kernel kama mchakato wa mtumiaji) kwenye mifumo ya x86-64 hutekeleza usaidizi wa msimbo ulioandikwa katika lugha ya Rust. Usaidizi ulioongezwa wa kujenga Linux ya Modi ya Mtumiaji kwa kutumia clang na uboreshaji wa wakati wa kiungo (LTO) umewashwa.
    • Imeongeza matumizi ya hwnoise kufuatilia ucheleweshaji unaosababishwa na maunzi. Mkengeuko katika muda wa utekelezaji wa shughuli (jitter) hubainishwa wakati usindikaji wa kukatiza umezimwa, unaozidi microsecond moja kwa dakika 10 za hesabu.
    • Imeongeza moduli ya kernel inayotekelezea kiwango cha Dhrystone, ambacho kinaweza kutumika kutathmini utendakazi wa CPU katika usanidi bila vijenzi vya nafasi ya mtumiaji (kwa mfano, katika hatua ya upakiaji wa SoCs mpya zinazotekeleza upakiaji wa kernel pekee).
    • Imeongeza kigezo cha mstari wa amri ya kernel "cgroup.memory=nobpf", ambayo inalemaza uhasibu wa matumizi ya kumbukumbu kwa programu za BPF, ambayo inaweza kuwa muhimu kwa mifumo iliyo na vyombo vilivyotengwa.
    • Kwa programu za BPF, utekelezaji wa muundo wa data ya mti-nyeusi unapendekezwa, unaotumia kfunc + kptr (bpf_rbtree_add, bpf_rbtree_remove, bpf_rbtree_first) badala ya kuongeza aina mpya ya ramani.
    • Utaratibu wa mifuatano inayoweza kuanzishwa upya (rseq, mifuatano inayoweza kuanzishwa upya) imeongeza uwezo wa kuhamisha vitambulishi vya utekelezaji sambamba (kitambulisho cha sarafu ya ramani ya kumbukumbu) hadi kwa michakato, inayotambuliwa na nambari ya CPU. Rseq hutoa njia ya kutekeleza kwa haraka shughuli za atomi, ambazo, ikiwa zimekatizwa na uzi mwingine, husafishwa na kujaribiwa tena.
    • Vichakataji vya ARM vinaunga mkono maagizo ya SME 2 (Scalable Matrix Extension).
    • Kwa usanifu wa s390x na RISC-V RV64, usaidizi wa utaratibu wa "BPF trampoline" umetekelezwa, ambayo inaruhusu kupunguza juu wakati wa kuhamisha simu kati ya programu za kernel na BPF.
    • Juu ya mifumo yenye wasindikaji kulingana na usanifu wa RISC-V, matumizi ya maagizo ya "ZBB" yanatekelezwa ili kuharakisha uendeshaji wa kamba.
    • Kwa mifumo inayozingatia usanifu wa seti ya maagizo ya LoongArch (inayotumika katika vichakataji vya Loongson 3 5000 na kutekeleza RISC ISA mpya, sawa na MIPS na RISC-V), usaidizi wa kubahatisha nafasi ya anwani ya kernel (KASLR), mabadiliko ya uwekaji kumbukumbu ya kernel (kuhamishwa). ), pointi za vifaa zinatekelezwa kuacha na utaratibu wa kprobe.
    • Utaratibu wa DAMOS (Data Access Monitoring-based Operation Schemes), ambayo inakuwezesha kufungua kumbukumbu kulingana na mzunguko wa upatikanaji wa kumbukumbu, inasaidia vichujio ili kuwatenga maeneo fulani ya kumbukumbu kutoka kwa usindikaji katika DAMOS.
    • Maktaba ya kiwango cha chini cha Nolibc C hutoa usaidizi kwa usanifu wa s390 na seti ya maagizo ya Arm Thumb1 (pamoja na usaidizi wa ARM, AArch64, i386, x86_64, RISC-V na MIPS).
    • Objtool imeboreshwa ili kuharakisha mkusanyiko wa kernel na kupunguza matumizi ya kumbukumbu ya kilele wakati wa kusanyiko (wakati wa kujenga kernel katika hali ya "allyesconfig", sasa hakuna matatizo na kusitisha kulazimishwa kwa michakato kwenye mifumo yenye 32 GB ya RAM).
    • Usaidizi wa mkusanyiko wa kernel na mkusanyaji wa Intel ICC umekatishwa, ambao haujafanya kazi kwa muda mrefu na hakuna mtu aliyeonyesha nia ya kurekebisha.
  • Mfumo mdogo wa diski, I/O na mifumo ya faili
    • tmpfs hutumia usaidizi wa kupanga vitambulisho vya mtumiaji vya mifumo ya faili zilizopachikwa, zinazotumiwa kulinganisha faili za mtumiaji mahususi kwenye kizigeu cha kigeni kilichopachikwa na mtumiaji mwingine kwenye mfumo wa sasa.
    • Katika Btrfs, ili kupunguza mgawanyiko wa vikundi vya vitalu, viwango vinagawanywa kwa ukubwa wakati wa kugawa vitalu, i.e. kundi lolote la vitalu sasa ni mdogo kwa ndogo (hadi 128KB), kati (hadi 8 MB) na kiasi kikubwa. Utekelezaji wa uvamizi56 umefanywa upya. Msimbo wa kuangalia hesabu za hundi umefanyiwa kazi upya. Uboreshaji wa utendakazi umefanywa ili kuharakisha utumaji kwa hadi mara 10 kwa kuakibisha matumizi ya saraka na kutekeleza amri inapobidi tu. Shughuli za Fiemap sasa zina kasi mara tatu kwa kuruka ukaguzi wa kiunganishi kwa data iliyoshirikiwa (picha). Uendeshaji kwa kutumia metadata umeharakishwa kwa 10% kwa kuboresha utafutaji wa vitufe katika miundo ya b-tree.
    • Utendaji wa mfumo wa faili wa ext4 umeboreshwa kwa kuruhusu michakato mingi kwa wakati mmoja kutekeleza shughuli za moja kwa moja za I/O kwenye vizuizi vilivyotengwa awali kwa kutumia kufuli za ingizo zilizoshirikiwa badala ya kufuli za kipekee.
    • Katika f2fs, kazi imefanywa ili kuboresha usomaji wa msimbo. Ilisuluhisha maswala muhimu yanayohusiana na maandishi ya atomiki na kashe ya kiwango kipya.
    • Mfumo wa faili wa EROFS (Mfumo wa Faili Ulioboreshwa wa Kusoma-Pekee), iliyoundwa kwa ajili ya matumizi katika sehemu za kusoma tu, hutekelezea uwezo wa kufunga utendakazi wa mfinyazo wa yaliyomo kwenye faili iliyobanwa kwa CPU ili kupunguza muda wa kusubiri wakati wa kufikia data.
    • Kipanga ratiba cha BFQ I/O kimeongeza usaidizi kwa viendeshi vya hali ya juu vya kusokota, kama vile viendeshaji vichwa vingi vinavyodhibitiwa tofauti (Viigizaji Multi).
    • Usaidizi wa usimbaji fiche wa data kwa kutumia algoriti ya AES-SHA2 umeongezwa kwa mteja wa NFS na utekelezaji wa seva.
    • Usaidizi wa utaratibu wa upanuzi wa hoja umeongezwa kwa mfumo mdogo wa FUSE (File Systems In User Space), kuruhusu maelezo ya ziada kuwekwa kwenye hoja. Kulingana na kipengele hiki, inawezekana kuongeza vitambulisho vya kikundi kwa ombi la FS, ambayo ni muhimu kuzingatia haki za kufikia wakati wa kuunda vitu katika FS (kuunda, mkdir, symlink, mknod).
  • Virtualization na Usalama
    • Hypervisor ya KVM ya mifumo ya x86 imeongeza usaidizi kwa simu zilizopanuliwa za Hyper-V na kutoa usambazaji wao kwa kidhibiti kinachoendesha katika mazingira ya seva pangishi katika nafasi ya mtumiaji. Mabadiliko hayo yalifanya iwezekane kutekeleza usaidizi wa uzinduzi wa kiota wa Hyper-V hypervisor.
    • KVM hurahisisha kuzuia ufikiaji wa wageni kwa matukio ya PMU (Kitengo cha Ufuatiliaji wa Utendaji) yanayohusiana na kipimo cha utendakazi.
    • Utaratibu wa memfd, unaokuwezesha kutambua eneo la kumbukumbu kwa njia ya maelezo ya faili iliyohamishwa kati ya michakato, imeongeza uwezo wa kuunda maeneo ambayo utekelezaji wa kanuni ni marufuku (memfd isiyoweza kutekelezwa) na haiwezekani kuweka haki za utekelezaji katika siku zijazo. .
    • Operesheni mpya ya prctl PR_SET_MDWE imeongezwa ambayo inazuia majaribio ya kuwezesha haki za ufikiaji wa kumbukumbu ambazo zinaruhusu wakati huo huo kuandika na kutekeleza.
    • Ulinzi dhidi ya mashambulizi ya darasa la Specter umeongezwa na kuwezeshwa kwa chaguo-msingi, kwa kuzingatia modi ya kiotomatiki ya IBRS (Ukadiriaji Ulioimarishwa wa Tawi la Kuzuia Moja kwa Moja) iliyopendekezwa katika vichakataji vya AMD Zen 4, ambayo huruhusu kwa urahisi kuruhusu na kulemaza utekelezaji wa kubahatisha wa maagizo wakati wa usindikaji wa kukatiza, simu za mfumo na. swichi za muktadha. Ulinzi unaopendekezwa unasababisha kushuka kwa kiwango cha juu ikilinganishwa na ulinzi wa Retpoline.
    • Athari inayoruhusu kuepusha ulinzi dhidi ya mashambulizi ya Specter v2 wakati wa kutumia teknolojia ya nyuzi nyingi kwa wakati mmoja (SMT au Hyper-Threading) na inayosababishwa na kuzima utaratibu wa STIBP (Watabiri wa Tawi Moja la Mfululizo wa Moja kwa Moja) wakati wa kuchagua modi ya ulinzi ya IBRS imerekebishwa.
    • Kwa mifumo kulingana na usanifu wa ARM64, lengo jipya la mkutano "virtconfig" limeongezwa, linapochaguliwa, ni seti ya chini tu ya vipengele vya kernel vinavyohitajika boot katika mifumo ya virtualization imeanzishwa.
    • Kwa usanifu wa m68k, usaidizi wa kuchuja simu za mfumo kwa kutumia utaratibu wa seccomp umeongezwa.
    • Usaidizi umeongezwa kwa vifaa vya CRB TPM2 (Command Response Buffer) vilivyoundwa katika vichakataji vya AMD Ryzen, kulingana na teknolojia ya Microsoft Pluton.
  • Mfumo mdogo wa mtandao
    • Kiolesura cha netlink kimeongezwa ili kusanidi safu ndogo ya PLCA (Physical Layer Collision Collision Evoidance), iliyofafanuliwa katika vipimo vya IEEE 802.3cg-2019 na kutumika katika mitandao ya Ethaneti ya 802.3cg (10Base-T1S) iliyoboreshwa kwa kuunganisha vifaa vya Internet of Things na mifumo ya viwanda. Matumizi ya PLCA huboresha utendakazi katika mitandao ya Ethaneti yenye midia iliyoshirikiwa.
    • Usaidizi wa API ya "viendelezi visivyotumia waya" kwa ajili ya kudhibiti violesura vya wireless vya WiFi 7 (802.11be) umekatishwa kwa sababu API hii haijumuishi mipangilio yote muhimu. Unapojaribu kutumia API ya "viendelezi visivyotumia waya", ambayo inaendelea kutumika kama safu iliyoigwa, onyo sasa litaonyeshwa kwa vifaa vingi vya sasa.
    • Nyaraka za kina kwenye API ya netlink zimetayarishwa (kwa wasanidi wakuu na wasanidi programu wa nafasi ya mtumiaji). Huduma ya ynl-gen-c imetekelezwa ili kuzalisha msimbo C kulingana na maelezo ya YAML ya itifaki ya Netlink.
    • Usaidizi wa chaguo la IP_LOCAL_PORT_RANGE umeongezwa kwenye soketi za mtandao ili kurahisisha usanidi wa miunganisho inayotoka kupitia vitafsiri vya anwani bila kutumia SNAT. Unapotumia anwani moja ya IP kwenye seva pangishi kadhaa, IP_LOCAL_PORT_RANGE hurahisisha kutumia anuwai tofauti ya lango la mtandao linalotoka kwa kila seva pangishi, na kusambaza pakiti kulingana na nambari za mlango kwenye lango.
    • Kwa MPTCP (MultiPath TCP), uwezo wa kuchakata mitiririko mchanganyiko kwa kutumia itifaki za IPv4 na IPv6 umetekelezwa. MPTCP ni kiendelezi cha itifaki ya TCP kwa ajili ya kuandaa uendeshaji wa muunganisho wa TCP na uwasilishaji wa pakiti wakati huo huo kwenye njia kadhaa kupitia miingiliano tofauti ya mtandao inayohusishwa na anwani tofauti za IP.
    • Kwa IPv4, inawezekana kutumia ugani wa BIG TCP, ambayo inakuwezesha kuongeza ukubwa wa juu wa pakiti ya TCP hadi 4GB ili kuboresha uendeshaji wa mitandao ya kituo cha data ya ndani ya kasi. Ongezeko sawa la ukubwa wa pakiti na ukubwa wa shamba la kichwa cha 16-bit hupatikana kupitia utekelezaji wa pakiti za "jumbo", ukubwa katika kichwa cha IP ambacho kimewekwa 0, na ukubwa halisi hupitishwa kwa tofauti 32-bit. shamba katika kichwa tofauti kilichoambatishwa.
    • Kigezo kipya cha sysctl chaguo-msingi_rps_mask kimeongezwa, ambacho kupitia hicho unaweza kuweka usanidi chaguo-msingi wa RPS (Pokea Uendeshaji wa Pakiti), ambao una jukumu la kusambaza uchakataji wa trafiki inayoingia kwenye viini vya CPU katika kiwango cha kidhibiti cha kukatiza.
    • Usaidizi wa taaluma za uchakataji wa foleni kwa ajili ya kupunguza CBQ (foleni kulingana na darasa), ATM (saketi pepe za ATM), dsmark (alama ya huduma tofauti), tcindex (kiashiria cha udhibiti wa trafiki) na RSVP (itifaki ya kuhifadhi rasilimali) umekatishwa. Taaluma hizi zimeachwa kwa muda mrefu na hakukuwa na mtu aliye tayari kuendelea na msaada wao.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Imeondoa viendeshi vyote vya picha vya DRI1: i810 (kadi za michoro za Intel 8xx za zamani), mga (Matrox GPU), r128 (ATI Rage 128 GPU, ikiwa ni pamoja na Rage Fury, XPERT 99 na XPERT 128 kadi), savage (S3 Savage GPU), sis (Crusty SiS GPU), tdfx (3dfx Voodoo) na kupitia (VIA IGP), ambazo ziliacha kutumika mwaka wa 2016 na hazijatumika katika Mesa tangu 2012.
    • Viendeshaji vya fremu vilivyopitwa na wakati (fbdev) omap1, s3c2410, tmiofb na w100fb vimeondolewa.
    • Kiendeshi cha DRM kimeongezwa kwa vitengo vya VPU (Versatile Processing Unit) vilivyounganishwa kwenye Intel Meteor Lake CPU (kizazi cha 14), iliyoundwa ili kuharakisha utendakazi unaohusiana na kuona kwa kompyuta na kujifunza kwa mashine. Dereva hutekelezwa kwa kutumia mfumo mdogo wa "accel", unaolenga kutoa usaidizi kwa viongeza kasi vya kukokotoa, ambavyo vinaweza kutolewa kwa njia ya ASIC binafsi au kama vizuizi vya IP ndani ya SoC na GPU.
    • Dereva wa i915 (Intel) huongeza usaidizi wa kadi za michoro za Intel Arc (DG2/Alchemist), hutoa usaidizi wa awali kwa Meteor Lake GPU, na inajumuisha usaidizi kwa Intel Xe HP 4tile GPU.
    • Kiendeshaji cha amdgpu huongeza usaidizi kwa teknolojia ya AdaptiveSync na uwezo wa kutumia hali ya Uonyeshaji Salama na maonyesho mengi. Usaidizi uliosasishwa wa DCN 3.2 (Display Core Next), SR-IOV RAS, VCN RAS, SMU 13.x na DP 2.1.
    • Dereva wa msm (Qualcomm Adreno GPU) ameongeza usaidizi kwa majukwaa ya SM8350, SM8450 SM8550, SDM845 na SC8280XP.
    • Kiendeshaji cha Nouveau hakiauni tena simu za zamani za ioctl.
    • Usaidizi wa majaribio wa NPU VerSilicon (VeriSilicon Neural Network Processor) umeongezwa kwa kiendeshi cha etnaviv.
    • Kiendeshaji cha pata_parport kimetekelezwa kwa viendeshi vya IDE vilivyounganishwa kupitia mlango sambamba. Dereva aliyeongezwa alituruhusu kuondoa kiendeshi cha zamani cha PARIDE kutoka kwa kernel na kusasisha mfumo mdogo wa ATA. Kizuizi cha kiendeshi kipya ni kutokuwa na uwezo wa kuunganisha kichapishi na diski kwa wakati mmoja kupitia mlango sambamba.
    • Kiendeshaji cha ath12k kimeongezwa kwa kadi zisizotumia waya kwenye chip za Qualcomm zinazotumia Wi-Fi 7. Usaidizi umeongezwa kwa kadi zisizotumia waya kwenye chip za RealTek RTL8188EU.
    • Usaidizi ulioongezwa kwa bodi 46 zilizo na vichakataji kulingana na usanifu wa ARM64, ikiwa ni pamoja na Samsung Galaxy tab A (2015), Samsung Galaxy S5, BananaPi R3, Debix Model A, EmbedFire LubanCat 1/2, Facebook Greatlakes, Orange Pi R1 Plus, Tesla FSD, na pia vifaa kulingana na SoC Qualcomm MSM8953 (Snapdragon 610), SM8550 (Snapdragon 8 Gen 2), SDM450 na SDM632, Rockchips RK3128 TV box, RV1126 Vision, RK3588, RK3568, RK3566, RK3588AM, RK3328AM, RK3AM na KK642AM RK654AM 68 69/ AMXNUMX /AMXNUMX).

Wakati huo huo, Taasisi ya Programu ya Bure ya Amerika ya Kusini iliunda toleo la kernel ya bure kabisa 6.3 - Linux-libre 6.3-gnu, iliyoondolewa kwa vipengele vya firmware na viendeshi vyenye vipengele visivyo vya bure au sehemu za kanuni, wigo ambao ni. imepunguzwa na mtengenezaji. Katika toleo la 6.3, blobs zilisafishwa katika viendeshi vipya vya ath12k, aw88395 na peb2466, na pia katika faili mpya za kifaa cha vifaa vya qcom kulingana na usanifu wa AArch64. Imesasisha msimbo wa kusafisha blob katika viendeshaji na mifumo ndogo ya amdgpu, xhci-rcar, qcom-q6v5-pas, sp8870, av7110, na vile vile katika viendeshaji vya kadi za DVB zilizo na usimbaji wa programu na faili za BPF zilizokusanywa mapema. Usafishaji wa viendeshaji vya mga, r128, tm6000, cpia2 na r8188eu umesimamishwa tangu kuondolewa kwenye punje. Usafishaji wa blob ya dereva wa i915 umeboreshwa.

Chanzo: opennet.ru

Kuongeza maoni