Kutolewa kwa kernel ya Linux 5.2

Baada ya miezi miwili ya maendeleo, Linus Torvalds kuletwa kutolewa kwa kernel Linux 5.2. Miongoni mwa mabadiliko yanayoonekana zaidi: Njia ya uendeshaji ya Ext4 haizingatii kesi, simu tofauti za mfumo wa kuweka mfumo wa faili, viendeshi vya GPU Mali 4xx/ 6xx/7xx, uwezo wa kushughulikia mabadiliko ya maadili ya sysctl katika programu za BPF, ramani ya kifaa. module dm-dust, ulinzi dhidi ya mashambulizi ya MDS, usaidizi wa Sound Open Firmware kwa DSP, uboreshaji wa utendaji wa BFQ, kuleta mfumo mdogo wa PSI (Pressure Stall Information) kwenye uwezekano wa kutumika katika Android.

Toleo jipya linajumuisha marekebisho 15100 kutoka kwa watengenezaji 1882,
ukubwa wa kiraka - 62 MB (mabadiliko yaliathiri faili 30889, mistari 625094 ya kanuni iliongezwa, mistari 531864 ilifutwa). Takriban 45% ya yote yaliyowasilishwa katika 5.2
mabadiliko yanahusiana na viendesha kifaa, takriban 21% ya mabadiliko
mtazamo wa kusasisha nambari maalum kwa usanifu wa vifaa, 12%
kuhusiana na mrundikano wa mtandao, 3% kwa mifumo ya faili na 3% kwa ndani
mifumo ndogo ya kernel. 12.4% ya mabadiliko yote yalitayarishwa na Intel, 6.3% na Red Hat, 5.4% na Google, 4.0% na AMD, 3.1% na SUSE, 3% na IBM, 2.7% na Huawei, 2.7% na Linaro, 2.2% na ARM , 1.6 % - Oracle.

kuu ubunifu:

  • Mfumo mdogo wa diski, I/O na mifumo ya faili
    • Imeongezwa kwa Ext4 kusaidia fanya kazi bila kutofautisha kesi ya herufi katika majina ya faili, ambayo imeamilishwa tu kuhusiana na saraka tupu za kibinafsi kwa kutumia sifa mpya "+F" (EXT4_CASEFOLD_FL). Wakati sifa hii imewekwa kwenye saraka, shughuli zote zilizo na faili na saraka ndogo ndani zitafanywa bila kuzingatia kesi ya wahusika, ikiwa ni pamoja na kesi itapuuzwa wakati wa kutafuta na kufungua faili (kwa mfano, faili Test.txt, test.txt na test.TXT katika saraka kama hizo zitazingatiwa kuwa sawa). Kwa chaguo-msingi, mfumo wa faili unaendelea kuwa nyeti kwa kesi, isipokuwa saraka zilizo na sifa ya "chattr +F";
    • Kazi za usindikaji wa herufi za UTF-8 katika majina ya faili, ambazo hutumiwa wakati wa kulinganisha kamba na shughuli za kuhalalisha, zimeunganishwa;
    • XFS inaongeza miundombinu ya ufuatiliaji wa afya ya mfumo wa faili na ioctl mpya ya kuuliza hali ya afya. Kipengele cha majaribio kimetekelezwa ili kuangalia vihesabio vya block block mtandaoni.
    • Imeongeza moduli mpya ya ramani ya kifaa "dm-vumbi", ambayo inakuwezesha kuiga kuonekana kwa vitalu vibaya kwenye vyombo vya habari au makosa wakati wa kusoma kutoka kwa diski. Moduli hukuruhusu kurahisisha utatuzi na upimaji wa programu na mifumo mbali mbali ya uhifadhi mbele ya shida zinazowezekana;
    • Imetekelezwa Uboreshaji muhimu wa utendakazi kwa kipanga ratiba cha BFQ I/O. Katika hali ya upakiaji wa juu wa I/O, uboreshaji hufanywa kuruhusu Punguza muda wa utendakazi kama vile kuzindua programu kwa hadi 80%.
    • Imeongeza safu ya simu za mfumo kwa kuweka mifumo ya faili: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() ΠΈ move_mount(). Simu hizi za mfumo hukuruhusu kuchakata kando hatua tofauti za uwekaji (chakata kizuizi kikubwa, pata habari kuhusu mfumo wa faili, weka, ambatisha kwa sehemu ya mlima), ambayo hapo awali ilifanywa kwa kutumia simu ya kawaida ya mount() mfumo. Simu tofauti hutoa uwezo wa kutekeleza matukio changamano zaidi ya kupachika na kutekeleza shughuli tofauti kama vile kusanidi upya kizuizi kikuu, chaguzi za kuwezesha, kubadilisha sehemu ya kupachika, na kuhamia kwenye nafasi tofauti ya majina. Kwa kuongezea, usindikaji tofauti hukuruhusu kuamua kwa usahihi sababu za matokeo ya nambari za makosa na kuweka vyanzo vingi vya mifumo ya faili za safu nyingi, kama vile nyongeza;
    • Operesheni mpya IORING_OP_SYNC_FILE_RANGE imeongezwa kwenye kiolesura cha I/O io_uring isiyolingana, ambayo hufanya vitendo sawa na simu ya mfumo. sync_file_range(), na pia kutekeleza uwezo wa kusajili eventfd na io_uring na kupokea arifa kuhusu kukamilika kwa shughuli;
    • Kwa mfumo wa faili wa CIFS, ioctl ya FIEMAP imeongezwa, ikitoa ramani ya kiwango cha ufanisi, pamoja na usaidizi wa modi za SEEK_DATA na SEEK_HOLE;
    • Katika mfumo mdogo wa FUSE iliyopendekezwa API ya kudhibiti uhifadhi wa data;
    • Btrfs imeboresha utekelezaji wa qgroups na kuboresha kasi ya utekelezaji wa fsync kwa faili zilizo na viungo vingi ngumu. Nambari ya ukaguzi wa uadilifu wa data imeboreshwa, ambayo sasa inazingatia uharibifu iwezekanavyo wa habari katika RAM kabla ya kufuta data kwenye diski;
    • CEPH iliongeza usaidizi wa kusafirisha picha kupitia NFS;
    • Utekelezaji wa uwekaji wa NFSv4 katika hali ya "laini" umeboreshwa (ikiwa kosa linatokea katika kufikia seva katika hali ya "laini", simu ya kurejesha msimbo wa makosa mara moja, na katika udhibiti wa "ngumu" haupewi mpaka FS. upatikanaji au muda wa kuisha umerejeshwa). Toleo jipya linatoa ushughulikiaji sahihi zaidi wa muda ulioisha, urejeshaji wa kasi wa kuacha kufanya kazi, na chaguo jipya la kupachika "softerr" ambalo hukuruhusu kubadilisha msimbo wa hitilafu (ETIMEDOUT) uliorejeshwa wakati muda umeisha;
    • API ya nfsdcld, iliyoundwa kufuatilia hali ya wateja wa NFS, inaruhusu seva ya NFS kufuatilia kwa usahihi hali ya mteja inapowashwa tena. Kwa hivyo, daemon ya nfsdcld sasa inaweza kufanya kazi kama kidhibiti cha nfsdcltrack;
    • kwa AFS aliongeza uigaji wa kufuli za masafa ya baiti kwenye faili (Kufunga Msururu wa Byte);
  • Virtualization na Usalama
    • Kazi imefanywa ili kuondoa maeneo katika kernel ambayo inaruhusu utekelezaji wa msimbo kutoka kwa maeneo ya kumbukumbu yanayoakisiwa, ambayo inaruhusu kuzuia mashimo yanayoweza kutumiwa wakati wa shambulio;
    • Kigezo kipya cha mstari wa amri ya kernel "mitigations=" kimeongezwa, ikitoa njia iliyorahisishwa ya kudhibiti uwezeshaji wa mbinu fulani za kulinda dhidi ya udhaifu unaohusishwa na utekelezaji wa kubahatisha wa maagizo kwenye CPU. Kupitisha "mitigations=off" huzima mbinu zote zilizopo, na modi chaguo-msingi "mitigations=auto" huwezesha ulinzi lakini haiathiri matumizi ya Hyper Threading. Hali ya "mitigations=auto,nosmt" pia huzima Hyper Threading ikihitajika na mbinu ya ulinzi.
    • Imeongezwa msaada kwa saini ya dijiti ya elektroniki kulingana na GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), maendeleo Vitaly Chikunov kutoka Basalt SPO. Imeongeza uungwaji mkono kwa AES128-CCM kwa utekelezaji wa TLS asilia. Usaidizi ulioongezwa wa algoriti za AEAD kwenye moduli ya crypto_simd;
    • Katika Kconfig aliongeza sehemu tofauti ya "ugumu wa kernel" yenye chaguo za kuimarisha ulinzi wa kernel. Kwa sasa, sehemu mpya ina mipangilio ya kuwezesha programu jalizi za uboreshaji hundi za GCC;
    • Nambari ya kernel iko karibu mikononi kutoka kwa taarifa za kesi zisizo za kuvunja katika kubadili (bila kurudi au kuvunja baada ya kila kizuizi cha kesi). Inabakia kurekebisha kesi 32 kati ya 2311 za matumizi hayo ya kubadili, baada ya hapo itawezekana kutumia "-Wimplicit-fallthrough" mode wakati wa kujenga kernel;
    • Kwa usanifu wa PowerPC, usaidizi wa mifumo ya maunzi ya kupunguza njia za ufikiaji wa kernel zisizohitajika kwa data katika nafasi ya mtumiaji umetekelezwa;
    • Msimbo wa kuzuia umeongezwa mashambulizi darasa la MDS (Microarchitectural Data Sampling) katika wasindikaji wa Intel. Unaweza kuangalia kama mfumo unaweza kuathiriwa na udhaifu kupitia utofauti wa SysFS "/sys/devices/system/cpu/vulnerabilities/mds". Inapatikana hali mbili za ulinzi: imejaa, ambayo inahitaji msimbo mdogo uliosasishwa, na kupita, ambayo haihakikishi kabisa uondoaji wa bafa za CPU wakati udhibiti unahamishiwa kwenye nafasi ya mtumiaji au mfumo wa wageni. Ili kudhibiti njia za ulinzi, parameta ya "mds=" imeongezwa kwenye kernel, ambayo inaweza kuchukua maadili "kamili", "full, nosmt" (+ zima Hyper-Threads) na "kuzima";
    • Kwenye mifumo ya x86-64, ulinzi wa "ukurasa wa walinzi wa rafu" umeongezwa kwa IRQ, mifumo ya utatuzi na vidhibiti vya kipekee, kiini chake ni ubadilishanaji wa kurasa za kumbukumbu kwenye mpaka na mrundikano, ambao unaongoza kwa uundaji wa safu. ubaguzi (kosa la ukurasa);
    • Mpangilio wa sysctl ulioongezwa vm.unprivileged_userfaultfd, ambao unadhibiti uwezo wa michakato isiyo na upendeleo wa kutumia simu ya mfumo userfaultfd();
  • Mfumo mdogo wa mtandao
    • Imeongezwa Usaidizi wa lango la IPv6 kwa njia za IPv4. Kwa mfano, sasa unaweza kubainisha sheria za uelekezaji kama vile β€œip ro add 172.16.1.0/24 kupitia inet6 2001:db8::1 dev eth0”;
    • Kwa ICMPv6, simu za ioctl icmp_echo_ignore_anycast na icmp_echo_ignore_multicast zinatekelezwa ili kupuuza ICMP ECHO kwa utangazaji wowote na.
      anwani za multicast. Imeongezwa uwezo wa kupunguza ukubwa wa usindikaji wa pakiti za ICMPv6;

    • Kwa itifaki ya matundu ya BATMAN (Njia Bora ya Mtandao wa Adhoc), ambayo inaruhusu uundaji wa mitandao iliyogawanyika ambapo kila nodi imeunganishwa kupitia nodi za jirani, aliongeza usaidizi wa utangazaji kutoka kwa multicast hadi unicast, pamoja na uwezo wa kudhibiti kupitia sysfs;
    • Katika ethtool imeongezwa parameta mpya ya Fast Link Down, ambayo inakuwezesha kupunguza muda inachukua kupokea taarifa kuhusu tukio la kiungo chini kwa 1000BaseT (chini ya hali ya kawaida kuchelewa ni hadi 750ms);
    • Imeonekana nafasi kumfunga vichuguu vya Foo-Over-UDP kwa anwani maalum, kiolesura cha mtandao au tundu (hapo awali kufungwa kulifanywa tu na mask ya kawaida);
    • Katika stack isiyo na waya salama uwezekano wa kutekeleza washughulikiaji
      OWE (Usimbaji fiche wa Fursa wa Waya) katika nafasi ya mtumiaji;

    • Katika Netfilter, usaidizi wa familia ya anwani ya inet umeongezwa kwa minyororo ya nat (kwa mfano, sasa unaweza kutumia sheria moja ya tafsiri kuchakata ipv4 na ipv6, bila kutenganisha sheria za ipv4 na ipv6);
    • Katika mtandao imeongezwa serikali kali kwa uthibitisho mkali wa usahihi wa ujumbe na sifa zote, ambazo ukubwa unaotarajiwa wa sifa hauruhusiwi kuzidi na kuongeza data ya ziada mwishoni mwa ujumbe ni marufuku;
  • Huduma za kumbukumbu na mfumo
    • Alama ya CLONE_PIDFD imeongezwa kwenye simu ya mfumo wa clone(), inapobainishwa, kielezi cha faili "pidfd" kinachotambuliwa na mchakato wa mtoto ulioundwa kinarejeshwa kwa mchakato wa mzazi. Kielezi hiki cha faili, kwa mfano, kinaweza kutumika kutuma ishara bila hofu ya kukimbia katika hali ya mbio (mara baada ya kutuma ishara, PID inayolengwa inaweza kuachiliwa kwa sababu ya kusitisha mchakato na kukaliwa na mchakato mwingine);
    • Kwa toleo la pili la vikundi, utendakazi wa kidhibiti cha freezer umeongezwa, ambacho unaweza kusimamisha kazi katika kikundi na kuachilia kwa muda rasilimali kadhaa (CPU, I/O, na uwezekano wa kumbukumbu) kufanya kazi zingine. Usimamizi unafanywa kupitia faili za udhibiti wa cgroup.freeze na cgroup.events kwenye mti wa kikundi. Ingizo 1 katika cgroup.freeze husimamisha michakato katika kikundi cha sasa na vikundi vyote vya watoto. Kwa kuwa kufungia huchukua muda, faili ya ziada ya cgroup.events hutolewa kwa njia ambayo unaweza kujua kuhusu kukamilika kwa operesheni;
    • Imelindwa usafirishaji wa sifa za kumbukumbu zilizowekwa kwa kila nodi kwenye sysfs, ambayo hukuruhusu kuamua kutoka kwa nafasi ya mtumiaji asili ya usindikaji wa benki za kumbukumbu katika mifumo iliyo na kumbukumbu nyingi;
    • Mfumo mdogo wa PSI (Taarifa za Kitengo cha Shinikizo) umeboreshwa, ambayo inakuwezesha kuchambua taarifa kuhusu muda wa kusubiri wa kupokea rasilimali mbalimbali (CPU, kumbukumbu, I/O) kwa kazi fulani au seti za michakato katika kikundi. Kwa kutumia PSI, vidhibiti vya nafasi ya mtumiaji vinaweza kukadiria kwa usahihi zaidi kiwango cha upakiaji wa mfumo na mifumo ya kasi ya chini ikilinganishwa na Wastani wa Upakiaji. Toleo jipya hutoa usaidizi wa kuweka vizingiti vya usikivu na uwezo wa kutumia poll() simu kupokea arifa kwamba vizingiti vilivyowekwa vimeanzishwa kwa muda fulani. Kipengele hiki huruhusu Android kufuatilia upungufu wa kumbukumbu katika hatua ya awali, kutambua chanzo cha matatizo na kuzima programu zisizo muhimu bila kusababisha matatizo ambayo yanaonekana kwa mtumiaji. Wakati wa kupima mkazo, zana za ufuatiliaji wa utumiaji wa kumbukumbu zinazotegemea PSI zilionyesha alama chanya za uwongo mara 10 ikilinganishwa na takwimu za vmpressure;
    • Nambari ya kuangalia programu za BPF imeboreshwa, ambayo inaruhusu kuangalia hadi mara 20 haraka kwa programu kubwa. Uboreshaji ulifanya iwezekane kuongeza kikomo juu ya saizi ya programu za BPF kutoka 4096 hadi maagizo milioni;
    • Kwa programu za BPF zinazotolewa uwezo wa kufikia data ya kimataifa, ambayo inakuwezesha kufafanua vigezo vya kimataifa na mara kwa mara katika programu;
    • Imeongezwa API, ambayo inakuwezesha kudhibiti mabadiliko katika vigezo vya sysctl kutoka kwa programu za BPF;
    • Kwa usanifu wa MIPS32, mkusanyaji wa JIT wa mashine pepe ya eBPF imetekelezwa;
    • Kwa usanifu wa 32-bit PowerPC, usaidizi wa zana ya kurekebisha KASan (Kernel address sanitizer) imeongezwa, ambayo husaidia kutambua makosa wakati wa kufanya kazi na kumbukumbu;
    • Kwenye mifumo ya x86-64, kizuizi cha kuweka utupaji wa hali wakati wa ajali ya kernel (dump-dump) katika maeneo ya kumbukumbu zaidi ya 896MB kimeondolewa;
    • Kwa usanifu wa s390, usaidizi wa kubahatisha nafasi ya anwani ya kernel (KASLR) na uwezo wa kuthibitisha sahihi za dijiti wakati wa kupakia kernel kupitia kexec_file_load() hutekelezwa;
    • Kwa usanifu wa PA-RISC, msaada ulioongezwa kwa kitatuzi cha kernel (KGDB), alama za kuruka na kprobes;
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Dereva pamoja Lima kwa Mali 400/450 GPU, inayotumika katika chipsi nyingi za zamani kulingana na usanifu wa ARM. Kwa GPU mpya zaidi za Mali, kiendeshi cha Panfrost kimeongezwa, kinachosaidia chips kulingana na usanifu mdogo wa Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) na Bifrost (Mali G3x, G5x, G7x);
    • Usaidizi ulioongezwa kwa vifaa vya sauti kwa kutumia programu dhibiti iliyo wazi Sauti Firmware (OFS) Licha ya kuwepo kwa viendeshi vilivyo wazi, msimbo wa firmware wa chips za sauti bado ulibaki umefungwa na ulitolewa kwa njia ya binary. Mradi wa Sound Open Firmware ulianzishwa na Intel ili kuunda programu huria ya chipsi za DSP zinazohusiana na usindikaji wa sauti (Google pia ilijiunga na usanidi). Hivi sasa, mradi tayari umeandaa ugunduzi wa firmware kwa chips za sauti za Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake na majukwaa ya IceLake;
    • Dereva wa Intel DRM (i915) anaongeza usaidizi kwa chipsi
      Elkhartlake (Mwa 11). Vitambulisho vya PCI vilivyoongezwa kwa chips za Comet Lake (Gen9). Usaidizi wa chips za Iceland umeimarishwa, ambapo vitambulishi vya ziada vya vifaa vya PCI pia vimeongezwa.
      Imewashwa
      hali ya ubadilishaji wa asynchronous kati ya bafa mbili kwenye kumbukumbu ya video (async flip) wakati wa kufanya shughuli za uandishi kupitia mmio, ambayo iliongeza kwa kiasi kikubwa utendakazi wa baadhi ya programu za 3D (kwa mfano, utendakazi katika jaribio la 3DMark Ice Storm uliongezeka kwa 300-400%). Usaidizi wa teknolojia ulioongezwa HDCP2.2 (Ulinzi wa Maudhui wa Dijiti wa Juu-bandwidth) kwa kusimba mawimbi ya video yanayotumwa kupitia HDMI;

    • Kiendeshaji cha amdgpu cha Vega20 GPU aliongeza usaidizi wa RAS (Kutegemewa, Upatikanaji, Uwezo wa Huduma) na usaidizi wa majaribio kwa mfumo mdogo wa SMU 11, ambao ulichukua nafasi ya teknolojia ya Powerplay. Kwa GPU Vega12 aliongeza msaada kwa hali ya BACO (Basi Inatumika, Chip Off). Umeongeza usaidizi wa awali wa XGMI, basi ya mwendo kasi (PCIe 4.0) kwa muunganisho wa GPU. Imeongeza vitambulishi vinavyokosekana kwa kadi kulingana na Polaris10 GPU kwa kiendesha amdkfd;
    • Dereva wa Nouveau ameongeza usaidizi kwa bodi kulingana na chipset ya NVIDIA Turing 117 (TU117, inayotumiwa katika GeForce GTX 1650). KATIKA
      kconfig aliongeza kuweka ili kuzima vitendaji vilivyopitwa na wakati ambavyo havitumiki tena katika matoleo ya sasa ya libdrm;

    • Usaidizi wa vitu vya ulandanishi vya "ratiba ya matukio" umeongezwa kwenye API ya DRM na kiendeshi cha amdgpu, kukuruhusu kufanya bila uzuiaji wa kawaida.
    • Kiendeshi cha vboxvideo cha VirtualBox virtual GPU kimehamishwa kutoka kwa tawi la jukwaa hadi kwa muundo mkuu;
    • Imeongeza kiendesha kasi cha chipu ya GFX SoC ASPEED;
    • Usaidizi ulioongezwa kwa ARM SoC na Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, ,Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi ) mbao RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST Micro (stm32mp157a, stm32mp157c), NXP (
      Eckelmann ci4x10 (i.MX6DL),

      i.MX8MM EVK (i.MX8MM),

      ZII i.MX7 RPU2 (i.MX7),

      ZII SPB4 (VF610),

      Zii Ultra (i.MX8M),

      TQ TQMa7S (i.MX7Solo),

      TQ TQMa7D (i.MX7Dual),

      Kobo Aura (i.MX50),

      Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).

Wakati huo huo, Taasisi ya Programu ya Bure ya Amerika ya Kusini kuundwa
chaguo kernel ya bure kabisa 5.2 - Linux-bure 5.2-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 linajumuisha upakiaji wa faili
Sauti Fungua Firmware. Upakiaji wa blobs katika viendeshaji umezimwa
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp na ucsi_ccg. Msimbo wa kusafisha blob katika viendeshi na mifumo midogo ya ixp4xx, imx-sdma, amdgpu, nouveau na goya, na vile vile katika uhifadhi wa misimbo mikrosi, imesasishwa. Iliacha kusafisha blou kwenye kiendeshi cha r8822be kwa sababu ya kuondolewa kwake.

Chanzo: opennet.ru

Kuongeza maoni