Kutolewa kwa kernel ya Linux 5.19

Baada ya miezi miwili ya maendeleo, Linus Torvalds aliwasilisha kutolewa kwa Linux kernel 5.19. Miongoni mwa mabadiliko mashuhuri zaidi: usaidizi wa usanifu wa kichakataji cha LoongArch, ujumuishaji wa viraka vya "BIG TCP", hali ya uhitaji katika fscache, kuondolewa kwa msimbo ili kusaidia umbizo la a.out, uwezo wa kutumia ZSTD kwa compression ya firmware, kiolesura cha kudhibiti uondoaji wa kumbukumbu kutoka kwa nafasi ya mtumiaji , kuongeza kutegemewa na utendakazi wa jenereta ya nambari isiyo ya kawaida, usaidizi wa Intel IFS (In-Field Scan), AMD SEV-SNP (Secure Nested Paging), Intel TDX (Trusted Domain Extensions) na ARM. Viendelezi vya SME (Scalable Matrix Extension).

Katika tangazo hilo, Linus alisema kuwa kuna uwezekano mkubwa kwamba toleo lijalo la kernel litakuwa na nambari 6.0, kwani tawi la 5.x limekusanya matoleo ya kutosha kubadilisha nambari ya kwanza katika nambari ya toleo. Mabadiliko ya nambari hufanyika kwa sababu za uzuri na ni hatua rasmi ambayo huondoa usumbufu kutokana na mkusanyiko wa idadi kubwa ya masuala katika mfululizo.

Linus pia alisema kuwa alitumia kompyuta ndogo ya Apple kulingana na usanifu wa ARM64 (Apple Silicon) na mazingira ya Linux kulingana na usambazaji wa Asahi Linux kuunda toleo. Sio kituo kikuu cha kazi cha Linus, lakini alitumia jukwaa kujaribu kufaa kwake kwa kazi ya kernel na kuhakikisha kuwa anaweza kutoa matoleo ya kernel wakati akisafiri na kompyuta ndogo ndogo. Hapo awali, miaka mingi iliyopita, Linus alikuwa na uzoefu wa kutumia vifaa vya Apple kwa maendeleo - aliwahi kutumia Kompyuta kulingana na ppc970 CPU na kompyuta ndogo ya Macbook Air.

Toleo jipya linajumuisha marekebisho 16401 kutoka kwa watengenezaji 2190 (katika toleo la mwisho kulikuwa na marekebisho 16206 kutoka kwa watengenezaji 2127), ukubwa wa kiraka ni 90 MB (mabadiliko yaliyoathiri faili 13847, mistari 1149456 ya msimbo iliongezwa, mistari 349177 ilifutwa). Takriban 39% ya mabadiliko yote yaliyoletwa katika 5.19 yanahusiana na viendeshi vya kifaa, takriban 21% ya mabadiliko yanahusiana na kusasisha nambari maalum ya usanifu wa maunzi, 11% inahusiana na safu ya mtandao, 4% inahusiana na mifumo ya faili na 3% zinahusiana na mifumo ndogo ya kernel ya ndani.

Ubunifu kuu katika kernel 5.19:

  • Mfumo mdogo wa diski, I/O na mifumo ya faili
    • Mfumo wa faili wa EROFS (Mfumo wa Faili Ulioboreshwa wa Kusoma Pekee), unaokusudiwa kutumiwa kwenye vigawanyo vya kusoma tu, umebadilishwa ili kutumia mfumo mdogo wa fscache, ambao hutoa uhifadhi wa data. Mabadiliko hayo yaliboresha kwa kiasi kikubwa utendakazi wa mifumo ambayo idadi kubwa ya vyombo huzinduliwa kutoka kwa picha inayotokana na EROFS.
    • Hali ya kusoma unapohitaji imeongezwa kwenye mfumo mdogo wa fscache, ambao unatumika kuboresha EROFS. Hali mpya hukuruhusu kupanga uhifadhi wa usomaji kutoka kwa picha za FS zilizo kwenye mfumo wa ndani. Tofauti na hali ya awali ya uendeshaji, ambayo inalenga katika kuhifadhi data iliyohamishwa kupitia mifumo ya faili ya mtandao katika mfumo wa faili wa ndani, hali ya juu ya mahitaji huwasilisha kazi za kurejesha data na kuiandika kwenye kashe kwa mchakato tofauti wa nyuma unaoendesha. katika nafasi ya mtumiaji.
    • XFS hutoa uwezo wa kuhifadhi mabilioni ya sifa zilizopanuliwa katika nodi ya i. Idadi ya juu ya upeo wa faili moja imeongezwa kutoka bilioni 4 hadi 247. Hali imetekelezwa kwa kusasisha kiotomati sifa kadhaa za faili zilizopanuliwa mara moja.
    • Mfumo wa faili wa Btrfs umeboresha kazi kwa kufuli, ambayo iliruhusu ongezeko la takriban 7% la utendakazi wakati wa kuandika moja kwa moja katika hali ya nowait. Utendaji wa shughuli katika hali ya NOCOW (bila nakala-kwa-kuandika) huongezeka kwa takriban 3%. Mzigo kwenye cache ya ukurasa wakati wa kuendesha amri ya "tuma" imepunguzwa. Ukubwa wa chini wa kurasa ndogo umepunguzwa kutoka 64K hadi 4K (kurasa ndogo kuliko kurasa za kernel zinaweza kutumika). Mpito umefanywa kutoka kwa kutumia mti wa radix hadi algoriti ya XArrays.
    • Hali imeongezwa kwenye seva ya NFS ili kupanua uhifadhi wa hali ya kufunga iliyowekwa na mteja ambaye ameacha kujibu maombi. Hali mpya hukuruhusu kuchelewesha uondoaji wa kufuli kwa hadi siku isipokuwa mteja mwingine ataomba kufuli shindani. Katika hali ya kawaida, kuzuia kunafutwa sekunde 90 baada ya mteja kuacha kujibu.
    • Mfumo mdogo wa ufuatiliaji wa tukio katika fanotify FS hutekelezea alama ya FAN_MARK_EVICTABLE, ambayo unaweza kuzima kubandika i-nodi lengwa kwenye akiba, kwa mfano, kupuuza matawi madogo bila kubandika sehemu zake kwenye akiba.
    • Dereva wa mfumo wa faili wa FAT32 ameongeza usaidizi wa kupata taarifa kuhusu wakati wa kuunda faili kupitia simu ya mfumo wa statx na utekelezaji wa toleo la ufanisi zaidi na la kufanya kazi la stat(), ambalo hurejesha habari iliyopanuliwa kuhusu faili.
    • Maboresho makubwa yamefanywa kwa kiendeshi cha exFAT ili kuruhusu uondoaji sawia wa kundi la sekta wakati modi ya 'dirsync' inatumika, badala ya uondoaji mfuatano wa sekta kwa sekta. Kwa kupunguza idadi ya maombi ya kuzuia baada ya uboreshaji, utendaji wa kuunda idadi kubwa ya saraka kwenye kadi ya SD iliongezeka kwa zaidi ya 73-85%, kulingana na ukubwa wa nguzo.
    • Kernel inajumuisha sasisho la kwanza la kusahihisha kwa kiendeshi cha ntfs3. Kwa kuwa ntfs3 ilijumuishwa kwenye 5.15 kernel Oktoba iliyopita, kiendeshi hakijasasishwa na mawasiliano na wasanidi programu yamepotea, lakini wasanidi sasa wameanza tena mabadiliko ya uchapishaji. Viraka vilivyopendekezwa viliondoa hitilafu zinazosababisha uvujaji wa kumbukumbu na kuacha kufanya kazi, kutatua matatizo na utekelezaji wa xfstests, kusafisha msimbo ambao haujatumiwa, na uchapaji usiobadilika.
    • Kwa OverlayFS, uwezo wa kuweka vitambulisho vya mtumiaji vya mifumo ya faili zilizopachikwa umetekelezwa, ambayo hutumiwa kulinganisha faili za mtumiaji mahususi kwenye kizigeu cha kigeni kilichopachikwa na mtumiaji mwingine kwenye mfumo wa sasa.
  • Huduma za kumbukumbu na mfumo
    • Imeongeza usaidizi wa awali wa usanifu wa seti ya maagizo ya LoongArch inayotumiwa katika vichakataji vya Loongson 3 5000, ambayo hutekeleza RISC ISA mpya, sawa na MIPS na RISC-V. Usanifu wa LoongArch unapatikana katika ladha tatu: 32-bit iliyokatwa (LA32R), 32-bit ya kawaida (LA32S), na 64-bit (LA64).
    • Msimbo umeondolewa ili kuauni umbizo la faili inayoweza kutekelezwa ya a.out, ambayo iliacha kutumika katika toleo la 5.1. Umbizo la a.out limeacha kutumika kwa muda mrefu kwenye mifumo ya Linux, na uundaji wa faili za a.out hauauniwi na zana za kisasa katika usanidi chaguo-msingi wa Linux. Kipakiaji cha faili za a.out kinaweza kutekelezwa kabisa katika nafasi ya mtumiaji.
    • Usaidizi kwa chaguo mahususi za buti za x86 umekatishwa: nosp, nosmap, nosmep, noexec na noclflush).
    • Usaidizi wa usanifu wa zamani wa CPU h8300 (Renesas H8/300), ambao umeachwa bila usaidizi kwa muda mrefu, umekatishwa.
    • Uwezo uliopanuliwa unaohusiana na kukabiliana na ugunduzi wa kufuli za mgawanyiko ("kufuli za kupasuliwa") ambazo hutokea wakati wa kufikia data isiyopangwa kwenye kumbukumbu kutokana na ukweli kwamba wakati wa kutekeleza maagizo ya atomiki, data huvuka mistari miwili ya kache ya CPU. Vikwazo vile husababisha kushuka kwa kiasi kikubwa kwa utendaji. Ikiwa hapo awali, kwa chaguo-msingi, kernel ingetoa onyo na habari kuhusu mchakato uliosababisha kuzuia, sasa mchakato wa shida utapunguzwa zaidi ili kuhifadhi utendaji wa mfumo wote.
    • Usaidizi ulioongezwa kwa utaratibu wa IFS (In-Field Scan) unaotekelezwa katika vichakataji vya Intel, ambayo hukuruhusu kufanya majaribio ya uchunguzi wa kiwango cha chini cha CPU ambayo yanaweza kutambua matatizo ambayo hayatambuliki kwa zana za kawaida kulingana na misimbo ya kusahihisha makosa (ECC) au biti za usawa. . Majaribio yaliyofanywa ni katika mfumo wa programu dhibiti inayoweza kupakuliwa, iliyoundwa sawa na masasisho ya msimbo mikrosi. Matokeo ya majaribio yanapatikana kupitia sysfs.
    • Imeongeza uwezo wa kupachika faili ya bootconfig kwenye kernel, ambayo inaruhusu, pamoja na chaguzi za mstari wa amri, kuamua vigezo vya kernel kupitia faili ya mipangilio. Upachikaji unafanywa kwa kutumia chaguo la mkusanyiko 'CONFIG_BOOT_CONFIG_EMBED_FILE="/PATH/TO/BOOTCONFIG/FILE"'. Hapo awali, bootconfig iliamuliwa kwa kushikamana na picha ya initrd. Ujumuishaji kwenye kernel huruhusu bootconfig kutumika katika usanidi bila initrd.
    • Uwezo wa kupakua programu dhibiti iliyobanwa kwa kutumia algoriti ya Zstandard umetekelezwa. Seti ya faili za udhibiti /sys/class/firmware/* imeongezwa kwa sysfs, kukuruhusu kuanzisha upakiaji wa programu dhibiti kutoka kwa nafasi ya mtumiaji.
    • Kiolesura cha io_uring kisicholingana cha I/O kinatoa bendera mpya, IORING_RECVSEND_POLL_FIRST, ambayo, ikiwekwa, itatuma kwanza operesheni ya mtandao ili kuchakatwa kwa kutumia upigaji kura, ambayo inaweza kuhifadhi rasilimali katika hali ambapo kuchakata utendakazi kwa kuchelewa kwa kiasi fulani kunakubalika. io_uring pia iliongeza usaidizi wa soketi() simu ya mfumo, ilipendekeza bendera mpya ili kurahisisha usimamizi wa maelezo ya faili, iliongeza modi ya "picha nyingi" kwa kukubali miunganisho kadhaa mara moja kwenye accept() simu, na kuongeza shughuli za kusambaza NVMe. amri moja kwa moja kwa kifaa.
    • Usanifu wa Xtensa unatoa usaidizi kwa zana ya utatuzi ya KCSAN (Kernel Concurrency Sanitizer), iliyoundwa ili kutambua kwa nguvu hali ya mbio ndani ya kernel. Pia imeongezwa usaidizi wa hali ya kulala na vichakataji.
    • Kwa usanifu wa m68k (Motorola 68000), mashine pepe (simulizi ya jukwaa) kulingana na emulator ya Android Goldfish imetekelezwa.
    • Kwa usanifu wa AArch64, usaidizi wa viendelezi vya Armv9-A SME (Scalable Matrix Extension) umetekelezwa.
    • Mfumo mdogo wa eBPF huruhusu kuhifadhi viashirio vilivyochapwa katika miundo ya ramani, na pia huongeza usaidizi kwa viashiria vinavyobadilika.
    • Utaratibu mpya wa kurejesha kumbukumbu unapendekezwa ambao unaweza kutumia udhibiti wa nafasi ya mtumiaji kwa kutumia faili ya memory.reclaim. Kuandika nambari kwa faili maalum kutajaribu kuondoa nambari inayolingana ya baiti kutoka kwa seti inayohusishwa na kikundi.
    • Usahihi ulioboreshwa wa matumizi ya kumbukumbu wakati wa kubana data katika sehemu ya kubadilishana kwa kutumia utaratibu wa zswap.
    • Kwa usanifu wa RISC-V, usaidizi wa kuendesha utekelezwaji wa 32-bit kwenye mifumo ya 64-bit hutolewa, hali inaongezwa ili kufunga sifa za kizuizi kwa kurasa za kumbukumbu (kwa mfano, kuzima kache), na kexec_file_load() kazi inatekelezwa. .
    • Utekelezaji wa usaidizi wa mifumo ya 32-bit Armv4T na Armv5 umebadilishwa kwa matumizi katika miundo ya kernel ya majukwaa mengi inayofaa kwa mifumo tofauti ya ARM.
  • Virtualization na Usalama
    • Mfumo mdogo wa EFI hutekeleza uwezo wa kuhamisha kwa siri taarifa za siri kwa mifumo ya wageni bila kuifichua kwa mfumo wa mwenyeji. Data hutolewa kupitia saraka ya usalama/coco katika securityfs.
    • Hali ya ulinzi wa kufunga, ambayo huzuia ufikiaji wa mtumiaji wa mizizi kwenye kernel na kuzuia njia za bypass za UEFI Secure Boot, imeondoa mwanya ambao uliruhusu ulinzi kuepukwa kwa kuchezea kitatuzi cha kernel.
    • Imejumuishwa ni viraka vinavyolenga kuboresha uaminifu na utendakazi wa jenereta ya nambari ya ulaghai.
    • Wakati wa kujenga kwa kutumia Clang 15, usaidizi wa utaratibu wa miundo ya kernel randomizing unatekelezwa.
    • Utaratibu wa Landlock, ambayo inakuwezesha kupunguza mwingiliano wa kikundi cha michakato na mazingira ya nje, hutoa msaada kwa sheria zinazokuwezesha kudhibiti utekelezaji wa shughuli za kubadilisha faili.
    • Mfumo mdogo wa IMA (Usanifu wa Kipimo cha Uadilifu), iliyoundwa ili kuthibitisha uadilifu wa vipengee vya mfumo wa uendeshaji kwa kutumia sahihi za dijiti na heshi, umebadilishwa hadi kwa kutumia moduli ya fs-verity kwa uthibitishaji wa faili.
    • Mantiki ya vitendo wakati wa kuzima ufikiaji usio na upendeleo kwa mfumo mdogo wa eBPF imebadilishwa - hapo awali amri zote zinazohusiana na simu ya mfumo bpf() zilizimwa, na kuanzia toleo la 5.19, ufikiaji wa amri ambazo hazielekezi kuunda vitu zimeachwa. . Tabia hii inahitaji mchakato uliobahatika kupakia programu ya BPF, lakini michakato isiyo na upendeleo inaweza kuingiliana na programu.
    • Usaidizi ulioongezwa wa kiendelezi cha AMD SEV-SNP (Secure Nested Paging), ambacho hutoa kazi salama na jedwali za ukurasa wa kumbukumbu zilizowekwa na hulinda dhidi ya mashambulizi ya "undeSERVed" na "SEVerity" kwa vichakataji vya AMD EPYC, ambayo inaruhusu kupitisha AMD SEV (Usaidizi Salama Uliosimbwa. ) utaratibu wa ulinzi.
    • Usaidizi ulioongezwa kwa utaratibu wa Intel TDX (Upanuzi wa Kikoa Unaoaminika), ambayo hukuruhusu kuzuia majaribio ya wahusika wengine kufikia kumbukumbu iliyosimbwa ya mashine pepe.
    • Dereva wa virtio-blk, anayetumiwa kuiga vifaa vya kuzuia, ameongeza usaidizi kwa I/O kwa kutumia upigaji kura, ambayo, kulingana na vipimo, imepunguza latency kwa karibu 10%.
  • Mfumo mdogo wa mtandao
    • Kifurushi hiki kinajumuisha safu ya viraka vya BIG TCP ambavyo hukuruhusu kuongeza ukubwa wa juu wa pakiti ya pakiti ya TCP hadi 4GB ili kuboresha utendakazi wa mitandao ya kituo cha data ya ndani ya kasi ya juu. 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. Katika upimaji wa utendakazi, kuweka saizi ya pakiti hadi KB 185 iliongeza upitishaji kwa 50% na kupunguza sana kasi ya uhamishaji data.
    • Kazi iliendelea ya kuunganisha zana kwenye rundo la mtandao ili kufuatilia sababu za kuacha pakiti (misimbo ya sababu). Msimbo wa sababu hutumwa wakati kumbukumbu inayohusishwa na pakiti imeachiliwa na kuruhusu hali kama vile kutupwa kwa pakiti kwa sababu ya hitilafu za kichwa, ugunduzi wa upotoshaji wa rp_filter, hundi batili, bila kumbukumbu, sheria za IPSec XFRM zimeanzishwa, nambari ya mfuatano batili TCP, n.k.
    • Usaidizi ulioongezwa wa kurejesha miunganisho ya MPTCP (MultiPath TCP) ili kutumia TCP ya kawaida katika hali ambapo vipengele fulani vya MPTCP haviwezi kutumika. 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. API iliyoongezwa ili kudhibiti mitiririko ya MPTCP kutoka kwa nafasi ya mtumiaji.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Imeongezwa zaidi ya mistari 420k ya msimbo inayohusiana na kiendeshi cha amdgpu, ambayo takriban mistari 400k ni faili za kichwa zinazozalishwa kiotomatiki kwa data ya rejista ya ASIC katika kiendeshi cha AMD GPU, na mistari mingine ya 22.5k hutoa utekelezaji wa awali wa usaidizi kwa AMD SoC21. Jumla ya saizi ya viendeshi vya AMD GPU ilizidi mistari milioni 4 ya msimbo. Mbali na SoC21, kiendeshi cha AMD kinajumuisha usaidizi wa SMU 13.x (Kitengo cha Usimamizi wa Mfumo), usaidizi uliosasishwa wa USB-C na GPUVM, na maandalizi ya kusaidia vizazi vijavyo vya majukwaa ya RDNA3 (RX 7000) na CDNA (AMD Instinct) .
    • Dereva wa i915 (Intel) amepanua uwezo unaohusiana na usimamizi wa nguvu. Vitambulisho vilivyoongezwa vya Intel DG2 (Arc Alchemist) GPU zinazotumiwa kwenye kompyuta za mkononi, vilitoa usaidizi wa awali kwa jukwaa la Intel Raptor Lake-P (RPL-P), viliongeza maelezo kuhusu kadi za picha za Arctic Sound-M), kutekelezwa ABI kwa injini za kompyuta, zilizoongezwa kwa Usaidizi wa kadi za DG2 kwa umbizo la Tile4; kwa mifumo inayotegemea usanifu mdogo wa Haswell, usaidizi wa DisplayPort HDR unatekelezwa.
    • Kiendeshaji cha Nouveau kimebadilisha hadi kutumia kidhibiti cha drm_gem_plane_helper_prepare_fb; ugawaji wa kumbukumbu tuli umetumika kwa miundo na vigeu vingine. Kuhusu utumiaji wa moduli za kernel chanzo wazi na NVIDIA huko Nouveau, kazi hadi sasa inakuja kwa kutambua na kuondoa makosa. Katika siku zijazo, firmware iliyochapishwa imepangwa kutumika kuboresha utendaji wa dereva.
    • Imeongeza kiendeshi cha kidhibiti cha NVMe kinachotumika kwenye kompyuta za Apple kulingana na chipu ya M1.

Wakati huo huo, Taasisi ya Programu ya Bure ya Amerika ya Kusini iliunda toleo la kernel ya bure kabisa 5.19 - Linux-libre 5.19-gnu, iliyoondolewa kwa vipengele vya firmware na viendeshi vyenye vipengele visivyo vya bure au sehemu za kanuni, wigo ambao ni. imepunguzwa na mtengenezaji. Toleo jipya husafisha viendeshi vya pureLiFi X/XL/XC na TI AMx3 Wkup-M3 IPC. Msimbo uliosasishwa wa kusafisha blob katika Silicon Labs WFX, AMD amdgpu, Qualcomm WCNSS Pembeni Image Loader, Realtek Bluetooth, Mellanox Spectrum, Marvell WiFi-Ex, Intel AVS, IFS, viendeshi vya pu3-imgu na mifumo ndogo. Uchakataji wa faili za kifaa cha Qualcomm AArch64 umetekelezwa. Usaidizi umeongezwa kwa mpango mpya wa kutoa majina wa kipengele cha Sound Open Firmware. Iliacha kumsafisha dereva wa Balozi wa ATM, ambayo ilitolewa kwenye kokwa. Usimamizi wa kusafisha blob katika HDCP na Mellanox Core umehamishwa hadi tagi za kconfig tofauti.

Chanzo: opennet.ru

Kuongeza maoni