Kutolewa kwa kernel ya Linux 5.6

Baada ya miezi miwili ya maendeleo, Linus Torvalds kuletwa kutolewa kwa kernel Linux 5.6. Miongoni mwa mabadiliko yanayoonekana zaidi: ujumuishaji wa kiolesura cha WireGuard VPN, usaidizi wa USB4, nafasi za majina kwa wakati, uwezo wa kuunda vidhibiti vya msongamano wa TCP kwa kutumia BPF, usaidizi wa awali wa MultiPath TCP, kuondoa kiini cha shida ya 2038, utaratibu wa "bootconfig". , ZoneFS.

Toleo jipya linajumuisha marekebisho 13702 kutoka kwa watengenezaji 1810,
saizi ya kiraka - 40 MB (mabadiliko yaliathiri faili 11577, mistari 610012 ya nambari iliongezwa,
safu 294828 zimeondolewa). Takriban 45% ya yote yaliyowasilishwa katika 5.6
mabadiliko yanahusiana na viendesha kifaa, takriban 15% ya mabadiliko
mtazamo wa kusasisha nambari maalum kwa usanifu wa vifaa, 12%
inayohusishwa na mrundikano wa mtandao, 4% na mifumo ya faili na 3% na ya ndani
mifumo ndogo ya kernel.

kuu ubunifu:

  • Mfumo mdogo wa mtandao
    • Imeongezwa utekelezaji wa kiolesura cha VPN WireGuard, ambayo inatekelezwa kwa kuzingatia mbinu za kisasa za usimbaji fiche (ChaCha20, Poly1305, Curve25519, BLAKE2s), ni rahisi kutumia, bila matatizo, imejidhihirisha katika idadi kubwa ya utekelezaji na hutoa utendaji wa juu sana (mara 3,9 kwa kasi zaidi kuliko OpenVPN kwa maneno. ya matokeo). WireGuard hutumia dhana ya uelekezaji wa ufunguo wa usimbaji fiche, ambayo inahusisha kuambatisha ufunguo wa faragha kwa kila kiolesura cha mtandao na kuutumia kufunga funguo za umma. Vifunguo vya umma vinabadilishwa ili kuanzisha muunganisho kwa njia sawa na SSH. Hati za awali za kriptografia zinahitajika ili WireGuard ifanye kazi walikuwa kubebwa juu kutoka maktaba zinki kama sehemu ya API ya kawaida ya Crypto na pamoja ndani ya msingi 5.5.
    • Ilianza ushirikiano wa vipengele muhimu ili kusaidia MPTCP (MultiPath TCP), ugani wa itifaki ya TCP kwa ajili ya kuandaa uendeshaji wa uhusiano wa TCP na utoaji wa pakiti wakati huo huo pamoja na njia kadhaa kupitia miingiliano tofauti ya mtandao inayohusishwa na anwani tofauti za IP. Kwa programu za mtandao, muunganisho uliojumlishwa unaonekana kama muunganisho wa kawaida wa TCP, na mantiki yote ya kutenganisha mtiririko hufanywa na MPTCP. TCP ya njia nyingi inaweza kutumika kuongeza upitishaji na kuongeza kutegemewa. Kwa mfano, MPTCP inaweza kutumika kupanga utumaji data kwenye simu mahiri kwa kutumia viungo vya WiFi na 4G kwa wakati mmoja, au kupunguza gharama kwa kuunganisha seva kwa kutumia viungo kadhaa vya bei nafuu badala ya moja ya gharama kubwa.
    • Imeongezwa msaada kwa nidhamu ya usindikaji wa foleni ya mtandao sch_ets (Uteuzi Ulioboreshwa wa Usambazaji, IEEE 802.1Qaz), ambayo hutoa uwezo wa kusambaza kipimo data kati ya aina tofauti za trafiki. Ikiwa mzigo kwenye darasa fulani la trafiki ni chini ya bandwidth iliyotengwa, basi ETS inaruhusu madarasa mengine ya trafiki kutumia bandwidth inapatikana (isiyotumiwa). Qdisc sch_ets imesanidiwa kama nidhamu ya PRIO na hutumia madarasa ya trafiki kufafanua vikomo vikali na vya pamoja vya kipimo data. ETS hufanya kazi kama mchanganyiko wa taaluma KABLA ΠΈ DRR - ikiwa kuna madarasa machache ya trafiki, PRIO hutumiwa, lakini ikiwa hakuna trafiki kwenye foleni, inafanya kazi kama DRR.
    • Imeongeza aina mpya ya programu za BPF BPF_PROG_TYPE_STRUCT_OPS, ambayo hukuruhusu kutekeleza vidhibiti vya kazi vya kernel kupitia BPF. Kwa sasa, kipengele hiki kinaweza kutumika kutekeleza algoriti za udhibiti wa msongamano wa TCP katika mfumo wa programu za BPF. Kwa mfano iliyopendekezwa Mpango wa BPF na utekelezaji wa algorithm DCTCP.
    • Imekubaliwa ndani ya msingi mabadiliko, zana za kutafsiri ethtool na ioctl() kutumia interface ya netlink. Kiolesura kipya hurahisisha kuongeza viendelezi, huboresha ushughulikiaji wa makosa, huruhusu arifa kutumwa hali inapobadilika, hurahisisha mwingiliano kati ya kernel na nafasi ya mtumiaji, na hupunguza idadi ya orodha zilizotajwa ambazo zinahitaji kusawazishwa.
    • Utekelezaji ulioongezwa wa algoriti ya usimamizi wa foleni ya mtandao ya FQ-PIE (Flow Queue PIE), inayolenga kupunguza athari hasi ya uakibishaji wa pakiti za kati kwenye vifaa vya mtandao vya ukingo (bufferbloat). FQ-PIE huonyesha ufanisi wa juu inapotumiwa katika mifumo yenye modemu za kebo.
  • Mfumo mdogo wa diski, I/O na mifumo ya faili
    • Kwa mfumo wa faili wa Btrfs aliongeza Utekelezaji usio na usawa wa operesheni ya DISCARD (kuashiria vitalu vilivyoachiliwa ambavyo havihitaji tena kuhifadhiwa kimwili). Hapo awali, shughuli za DISCARD zilifanyika kwa usawa, ambayo inaweza kusababisha uharibifu wa utendaji kutokana na anatoa kusubiri amri zinazofanana kukamilisha. Utekelezaji wa Asynchronous hukuruhusu usisubiri gari likamilishe TUNDUA na ufanye operesheni hii chinichini.
    • Katika XFS kutekelezwa Kusafisha msimbo uliotumia vihesabio vya muda vya biti 32 (aina ya time_t ilibadilishwa na time64_t), na kusababisha tatizo la 2038. Hitilafu zisizohamishika na uharibifu wa kumbukumbu ambao ulitokea kwenye majukwaa ya 32-bit. Msimbo umefanyiwa kazi upya ili kufanya kazi na sifa zilizopanuliwa.
    • Kwa ext4 mfumo wa faili kuletwa Uboreshaji wa utendakazi unaohusiana na kushughulikia ufungaji wa ingizo wakati wa shughuli za kusoma na kuandika. Utendaji ulioboreshwa wa kuandika upya katika modi ya Moja kwa moja ya I/O. Ili kurahisisha utambuzi wa shida, nambari za makosa ya kwanza na ya mwisho huhifadhiwa kwenye kizuizi kikubwa.
    • Kwenye mfumo wa faili wa F2FS kutekelezwa uwezo wa kuhifadhi data katika fomu iliyoshinikizwa. Kwa faili ya mtu binafsi au saraka, ukandamizaji unaweza kuwezeshwa kwa kutumia amri "chattr +c file" au "chattr +c dir; gusa dir/faili". Ili kubana kizigeu kizima, unaweza kutumia chaguo la "-o compress_extension=ext" katika matumizi ya kupachika.
    • Kernel inajumuisha mfumo wa faili KandaFS, ambayo hurahisisha kazi ya kiwango cha chini na vifaa vya kuhifadhi vilivyo kanda. Viendeshi vya kanda vinamaanisha vifaa kwenye diski ngumu za sumaku au SSD za NVMe, nafasi ya kuhifadhi ambayo imegawanywa katika kanda zinazounda vikundi vya vizuizi au sekta, ambayo kuongeza tu kwa mfululizo wa data kunaruhusiwa, kusasisha kikundi kizima cha vitalu. FS ZoneFS ilitengenezwa na Western Digital na inahusisha kila eneo kwenye gari na faili tofauti ambayo inaweza kutumika kuhifadhi data katika hali ya ghafi bila kudanganywa katika sekta na kiwango cha kuzuia, i.e. Huruhusu programu kutumia API ya faili badala ya kufikia moja kwa moja kifaa cha kuzuia kwa kutumia ioctl.
    • Katika NFS, uwekaji kizigeu juu ya UDP umezimwa kwa chaguo-msingi. Usaidizi ulioongezwa wa uwezo wa kunakili faili moja kwa moja kati ya seva, iliyofafanuliwa katika vipimo vya NFS 4.2. Imeongeza chaguo mpya la kuweka "softreval", ambayo inaruhusu maadili ya sifa yaliyohifadhiwa kutumika katika kesi ya kushindwa kwa seva. Kwa mfano, wakati wa kutaja chaguo hili, baada ya seva haipatikani, inabakia iwezekanavyo kusonga kwenye njia katika sehemu ya NFS na upatikanaji wa habari ambayo imetulia kwenye cache.
    • Imetekelezwa uboreshaji wa utendakazi wa utaratibu wa fs-verity, unaotumika kufuatilia uadilifu na uthibitishaji wa faili za kibinafsi. Kuongeza kasi ya kusoma kwa kufuatana kutokana na matumizi ya mti wa Merkle hash. Utendaji wa FS_IOC_ENABLE_VERITY umeboreshwa wakati hakuna data kwenye akiba (usomaji wa mapema wa kurasa zilizo na data umetumika).
  • Virtualization na Usalama
    • Uwezo wa kuzima moduli ya SELinux wakati unaendesha umeacha kutumika, na upakuaji wa SELinux ambao tayari umewashwa utapigwa marufuku katika siku zijazo. Ili kuzima SELinux utahitaji kupitisha kigezo cha "selinux=0" kwenye mstari wa amri wa kernel.
    • Imeongezwa msaada wa nafasi za majina kwa wakati (nafasi za majina za wakati), hukuruhusu kufunga hali ya saa ya mfumo kwenye kontena (CLOCK_REALTIME,
      CLOCK_MONOTONIC, CLOCK_BOOTTIME), tumia wakati wako mwenyewe kwenye chombo na, unapohamisha kontena hadi kwa seva pangishi nyingine, hakikisha kwamba usomaji wa CLOCK_MONOTONIC na CLOCK_BOOTTIME haujabadilika (zingatia muda baada ya kupakia, pamoja na au bila kuzingatia kuwa katika hali ya usingizi. )

    • Dimbwi la kuzuia /dev/random limeondolewa. Tabia ya /dev/random ni sawa na /dev/urandom katika suala la kuzuia kuzuia entropy baada ya kuanzishwa kwa bwawa.
    • Kiini cha msingi ni pamoja na kiendeshi kinachoruhusu mifumo ya wageni inayoendesha VirtualBox kuweka saraka zinazosafirishwa na mazingira ya seva pangishi (Folda Inayoshirikiwa ya VirtualBox).
    • Seti ya viraka imeongezwa kwa mfumo mdogo wa BPF (Mtoaji wa BPF), unapotumia utaratibu wa Retpoline kulinda dhidi ya mashambulizi ya darasa la Specter V2, hukuruhusu kuongeza ufanisi wa kupiga programu za BPF wakati matukio yanayohusiana nayo yanapotokea (kwa mfano, inafanya uwezekano wa kuharakisha wito wa washughulikiaji wa XDP wakati pakiti ya mtandao inafika).
    • Kiendeshi kimeongezwa ili kusaidia TEE (Mazingira Yanayoaminika ya Utekelezaji) iliyojengwa katika APU za AMD.
  • Huduma za kumbukumbu na mfumo
    • BPF imeongeza usaidizi kwa utendaji wa kimataifa. Uendelezaji unafanywa kama sehemu ya mpango wa kuongeza usaidizi kwa maktaba za kazi ambazo zinaweza kujumuishwa katika programu za BPF. Hatua inayofuata itakuwa kuauni viendelezi vinavyobadilika vinavyoruhusu utendakazi wa kimataifa kupakiwa, ikiwa ni pamoja na kubadilisha vipengele vilivyopo vya kimataifa vinapotumika. Mfumo mdogo wa BPF pia huongeza usaidizi kwa lahaja ya utendakazi wa ramani (hutumika kuhifadhi data inayoendelea), ambayo inasaidia utekelezaji katika hali ya bechi.
    • Imeongezwa Kifaa cha "cpu_cooling" hukuruhusu kupozesha CPU yenye joto kupita kiasi kwa kuiweka katika hali ya kutofanya kitu kwa muda mfupi.
    • Simu ya mfumo imeongezwa openat2(), ambayo hutoa seti ya bendera za ziada ili kupunguza utatuzi wa njia ya faili (marufuku ya kuvuka sehemu za milima, viungo vya ishara, viungo vya uchawi (/proc/PID/fd), "../" vipengele).
    • Kwa mifumo tofauti tofauti kulingana na usanifu mkubwa.LITTLE, ikichanganya chembe za CPU zenye nguvu na zisizotumia nishati katika chip moja, kigezo cha uclamp_min huwekwa wakati wa kutekeleza majukumu ya wakati halisi (iliibuka katika kernel 5.3 kuna utaratibu wa kupata mzigo). Kigezo hiki kinahakikisha kuwa kazi itawekwa na kipanga ratiba kwenye msingi wa CPU ambao una utendaji wa kutosha.
    • Kokwa limeachiliwa kutoka matatizo ya 2038. Ilibadilisha vishikilizi vya mwisho vilivyosalia, ambavyo vilitumia aina ya 32-bit (iliyotiwa saini) time_t kwa kaunta ya wakati wa epochal, ambayo, kwa kuzingatia ripoti ya 1970, inapaswa kufurika mnamo 2038.
    • Kuendelea kuboreshwa kwa kiolesura kisicholingana cha I/O io_uring, ambamo salama usaidizi wa shughuli mpya: IORING_OP_FALLOCATE (uhifadhi wa maeneo tupu), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE (kufungua na kufunga faili),
      IORING_OP_FILES_UPDATE (kuongeza na kuondoa faili kutoka kwa orodha ya ufikiaji wa haraka),
      IORING_OP_STATX (ombi la habari ya faili),
      IORING_OP_READ,
      IORING_OP_WRITE (analogi zilizorahisishwa za IORING_OP_READV na IORING_OP_WRITEV),
      IORING_OP_FADVISE,
      IORING_OP_MADVISE (aina zisizolingana za simu posix_fadvise na madvise), IORING_OP_SEND,
      IORING_OP_RECV (kutuma na kupokea data ya mtandao),
      IORING_OP_EPOLL_CTL (fanya shughuli kwenye maelezo ya faili ya epoll).

    • Simu ya mfumo imeongezwa pidfd_getfd(), ikiruhusu mchakato wa kupata maelezo ya faili kwa faili iliyo wazi kutoka kwa mchakato mwingine.
    • Imetekelezwa utaratibu wa "bootconfig", ambayo inaruhusu, pamoja na chaguzi za mstari wa amri, kuamua vigezo vya kernel kupitia faili ya mipangilio. Ili kuongeza faili kama hizo kwenye picha ya initramfs, shirika la bootconfig linapendekezwa. Kipengele hiki kinaweza kutumika, kwa mfano, kusanidi kprobe wakati wa kuwasha.
    • Imeundwa upya utaratibu wa kusubiri kuandika na kusoma data katika mabomba yasiyo na jina. Mabadiliko hayo yalifanya iwezekane kuharakisha kazi kama vile mkusanyiko sambamba wa miradi mikubwa. Hata hivyo, uboreshaji unaweza kusababisha hali ya mbio katika utengenezaji wa GNU kutokana na hitilafu katika toleo la 4.2.1, ambalo lilirekebishwa katika toleo la 4.3.
    • Imeongeza PR_SET_IO_FLUSHER alamisho kwa prctl(), ambayo inaweza kutumika kutia alama michakato isiyo na kumbukumbu ambayo haifai kuwekewa mipaka wakati mfumo una kumbukumbu kidogo.
    • Kulingana na mfumo wa usambazaji wa kumbukumbu wa ION unaotumiwa kwenye Android, mfumo mdogo umetekelezwa dma-buf lundo, ambayo hukuruhusu kudhibiti ugawaji wa buffers za DMA kwa kushiriki maeneo ya kumbukumbu kati ya viendeshi, programu na mifumo ndogo tofauti.
  • Usanifu wa vifaa
    • Usaidizi ulioongezwa wa kiendelezi cha E0PD, ambacho kilionekana katika ARMv8.5 na inaruhusu ulinzi dhidi ya mashambulizi yanayohusiana na utekelezaji wa kubahatisha wa maagizo kwenye CPU. Ulinzi unaotegemea E0PD husababisha ulinzi wa chini zaidi kuliko ulinzi wa KPTI (Kernel Page Table Isolation).
    • Kwa mifumo kulingana na usanifu wa ARMv8.5, msaada wa maagizo ya RNG umeongezwa, kutoa ufikiaji wa jenereta ya nambari ya uwongo ya maunzi. Katika kernel, maagizo ya RNG hutumiwa kutengeneza entropy wakati wa kuanzisha jenereta ya nambari ya pseudo-random iliyotolewa na kernel.
    • Imeondoa usaidizi wa MPX (Viendelezi vya Ulinzi wa Kumbukumbu) vilivyoongezwa kwenye kernel 3.19 na hukuruhusu kupanga ukaguzi wa viashiria ili kuhakikisha kuwa mipaka ya maeneo ya kumbukumbu inaheshimiwa. Teknolojia hii haikutumiwa sana katika wakusanyaji na iliondolewa kutoka kwa GCC.
    • Kwa usanifu wa RISC-V, msaada wa zana ya kurekebisha anwani ya KASan (Kernel address sanitizer) imetekelezwa, ambayo husaidia kutambua makosa wakati wa kufanya kazi na kumbukumbu.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Usaidizi wa kubainisha kutekelezwa USB 4.0, ambayo inategemea itifaki ya Thunderbolt 3 na hutoa upitishaji hadi Gbps 40, huku ikidumisha utangamano wa nyuma na USB 2.0 na USB 3.2. Kwa mlinganisho na Radi Kiolesura cha USB 4.0 hukuruhusu kudhibiti itifaki tofauti juu ya kebo moja iliyo na kiunganishi Aina-C, ikiwa ni pamoja na PCIe, Display Port na USB 3.x, pamoja na utekelezaji wa programu ya itifaki, kwa mfano, kwa ajili ya kuandaa viungo vya mtandao kati ya majeshi. Utekelezaji unatokana na kiendeshi cha Thunderbolt ambacho tayari kimejumuishwa kwenye kinu cha Linux na hukibadilisha kufanya kazi na wapangishi na vifaa vinavyooana na USB4. Mabadiliko hayo pia yanaongeza usaidizi wa vifaa vya Thunderbolt 3 kwa utekelezaji wa programu ya Kidhibiti cha Muunganisho, ambacho kinawajibika kuunda vichuguu vya kuunganisha vifaa vingi kupitia kiunganishi kimoja.
    • Katika dereva wa amdgpu aliongeza usaidizi wa awali wa teknolojia ya ulinzi ya nakala ya HDCP 2.x (Ulinzi wa Maudhui ya Dijiti ya Juu-bandwidth). Usaidizi umeongezwa kwa chipu ya AMD Pollock ASIC kulingana na Raven 2. Imetekeleza uwezo wa kuweka upya GPU kwa familia za Renoir na Navi.
    • Kiendeshaji cha DRM kwa kadi za video za Intel aliongeza Usaidizi wa DSI VDSC kwa chips kulingana na usanifu mdogo wa Ice Lake na Tiger Lake, LMEM mmap (kumbukumbu ya ndani ya kifaa) imetekelezwa, uchanganuzi wa VBT (Video BIOS Table) umeboreshwa, usaidizi wa HDCP 2.2 umetekelezwa kwa chips za Ziwa la Kahawa.
    • Kazi iliendelea ya kuunganisha msimbo wa kiendeshi wa amdkfd (kwa GPU tofauti, kama vile Fiji, Tonga, Polaris) na kiendeshi cha amdgpu.
    • Kiendeshaji cha k10temp kimefanyiwa kazi upya, na kuongeza usaidizi wa kuonyesha volti na vigezo vya sasa vya AMD Zen CPU, pamoja na maelezo yaliyopanuliwa kutoka kwa vihisi joto vinavyotumika katika CPU za Zen na Zen 2.
    • Katika dereva wa nouveau aliongeza usaidizi wa hali ya upakiaji wa programu dhibiti iliyothibitishwa kwa NVIDIA GPU kulingana na usanifu mdogo wa Turing (GeForce RTX 2000), ambayo ilifanya iwezekane kuwezesha usaidizi wa kuongeza kasi ya 3D kwa kadi hizi (kupakua programu rasmi kwa saini ya dijiti ya NVIDIA inahitajika). Usaidizi ulioongezwa kwa injini ya picha ya TU10x. Matatizo ya Sauti ya HD yametatuliwa.
    • Usaidizi ulioongezwa wa ukandamizaji wa data unapotumwa kupitia DisplayPort MST (Usafiri wa Mitiririko mingi).
    • Imeongeza dereva mpya "ath11kΒ»kwa chips zisizotumia waya za Qualcomm zinazotumia 802.11ax.
      Dereva ni msingi wa stack ya mac80211 na inasaidia njia za kufikia, kituo cha kazi na njia za nodi za mtandao wa mesh.

    • Kupitia sysfs, ufikiaji wa usomaji wa sensorer ya hali ya joto inayotumika kwenye anatoa ngumu za kisasa na SSD hutolewa.
    • Imewasilishwa mabadiliko makubwa kwa mfumo wa sauti wa ALSA, yenye lengo la kuondoa msimbo wa matatizo ya 2038 (kuepuka matumizi ya aina ya 32-bit time_t katika violesura vya snd_pcm_mmap_status na snd_pcm_mmap_control). Imeongeza usaidizi wa kodeki mpya za sauti
      Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770.

    • Imeongezwa viendeshaji vya paneli za LCD Logic PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, Giant940B0PM
      BOE NV140FHM-N49,
      Satoz SAT050AT40H12R2,
      Sehemu ya LS020B1DD01D.

    • Imeongezwa msaada kwa bodi za ARM na majukwaa ya Gen1 Amazon Echo (msingi wa OMAP3630), Samsung Galaxy S III mini (GT-I8190), Allwinner Emlid Neutis, Libre Computer ALL-H3-IT, PineH64 Model B, Aibretech Amlogic GX PC,
      Armada SolidRun Clearfog GTR, NXPGateworks GW59xx,
      Msomaji wa eBook wa Tolino Shine 3,
      Wasanii Waliopachikwa COM (i.MX7ULP), SolidRun Clearfog CX/ITX na HoneyComb (LX2160A), Google Coral Edge TPU (i.MX8MQ),
      Rockchip Radxa Dalang Carrier, Radxa Rock Pi N10, VMARC RK3399Pro SOM
      ST Ericsson HREF520, Inforce 6640, SC7180 IDP, Atmel/Microchip AM9X60 (ARM926 SoC, Kizboxmini), ST stm32mp15, AM3703/AM3715/DM3725, ST Ericsson ab8505, Unisoc, Qualcomm SC9863A7180. Usaidizi ulioongezwa kwa kidhibiti cha PCIe kinachotumiwa katika Raspberry Pi 4.

Wakati huo huo, Taasisi ya Programu ya Bure ya Amerika ya Kusini kuundwa
chaguo kernel ya bure kabisa 5.6 - Linux-bure 5.6-gnu, kufutwa kwa firmware na vipengele vya dereva vyenye vipengele visivyo na bure au sehemu za msimbo, upeo ambao ni mdogo na mtengenezaji. Toleo jipya linalemaza upakiaji wa blob katika viendeshi vya AMD TEE, ATH11K na Mediatek SCP. Imesasisha msimbo wa kusafisha blob katika AMD PSP, amdgpu na viendeshaji vya nouveau na mifumo ndogo.

Chanzo: opennet.ru

Kuongeza maoni