Ukukhishwa kwe-kernel ye-Linux 5.8

Ngemuva kwezinyanga ezimbili zokuthuthuka, uLinus Torvalds kwethulwa ukukhishwa kwe-kernel Linux 5.8. Phakathi kwezinguquko eziphawuleka kakhulu: umtshina wesimo somjaho we-KCSAN, indlela yendawo yonke yokuletha izaziso endaweni yomsebenzisi, ukusekelwa kwezingxenyekazi zekhompuyutha zokubethela okusemgqeni, izindlela zokuphepha ezithuthukisiwe ze-ARM64, ukusekelwa kwephrosesa ye-Baikal-T1 yaseRussia, ikhono lokufaka izehlakalo ze-procfs ngokuhlukana. , ukuqaliswa kwezindlela zokuphepha ze-Shadow ze-ARM64 Call Stack kanye ne-BTI.

I-Kernel 5.8 ibe enkulu kunazo zonke ngokwenani lezinguquko zazo zonke izinhlamvu phakathi nobukhona bephrojekthi. Ngaphezu kwalokho, izinguquko azihlobene nanoma iyiphi isistimu engaphansi eyodwa, kodwa zihlanganisa izingxenye ezihlukene ze-kernel futhi zihlotshaniswa kakhulu nokusebenza kabusha kwangaphakathi nokuhlanza. Izinguquko ezinkulu zibonakala kubashayeli. Inguqulo entsha ifake phakathi ukulungiswa okungu-17606 okuvela konjiniyela abangu-2081, okuthinte cishe u-20% wawo wonke amafayela endaweni yekhodi ye-kernel. Usayizi wesichibi ungu-65 MB (izinguquko ezithintekile amafayela angu-16180, imigqa yekhodi engu-1043240 yengezwe, imigqa engu-489854 yasuswa). Uma kuqhathaniswa, igatsha elingu-5.7 libe nokulungiswa okungu-15033 kanye nosayizi wesichibi ongu-39 MB. Cishe u-37% wazo zonke izinguquko ezethulwe ku-5.8 zihlobene nezishayeli zedivayisi, cishe u-16% wezinguquko zihlobene nokubuyekeza ikhodi eqondene nezakhiwo zehadiwe, u-11% uhlobene nesitaki senethiwekhi, u-3% uhlobene nezinhlelo zamafayela, futhi u-4% zihlobene nesistimu ye-kernel yangaphakathi.

main emisha:

  • I-Virtualization kanye Nokuphepha
    • Ukulayishwa kwamamojula e-kernel anezigaba ezinekhodi lapho izingcezu ezivumela ukwenziwa nokubhala zisethwa ngesikhathi esisodwa kunikezwa. Ushintsho lwenziwe njengengxenye yephrojekthi enkulu yokususa i-kernel yokusetshenziswa kwamakhasi enkumbulo avumela ukwenziwa nokubhala ngasikhathi sinye.
    • Manje sekungenzeka ukuthi udale izimo ezihlukene zama-procfs, okuvumela ukusetshenziswa kwamaphoyinti amaningi wokukhweza we-procfs, afakwe ngezinketho ezihlukene, kodwa okubonisa inqubo efanayo yesihlonzi sendawo yegama (pid namespace). Ngaphambilini, wonke amaphoyinti okukhweza e-procfs ayefanekisela kuphela ukumelwa okukodwa kwangaphakathi, futhi noma yiluphi ushintsho kumapharamitha wokukhweza luthinte zonke ezinye izindawo zokukhweza ezihlobene nendawo ye-ID yenqubo efanayo. Phakathi kwezindawo lapho ukukhweza ngezinketho ezahlukene kungase kudingeke khona ukuqaliswa kokuhlukaniswa okungasindi kwamasistimu ashumekiwe anekhono lokufihla izinhlobo ezithile zezinqubo namanodi olwazi kuma-procfs.
    • Ukusekelwa kwendlela kusetshenziswe iplathifomu ye-ARM64
      Isitaki Sekholi Yethunzi, ehlinzekwe umdidiyeli we-Clang ukuze kuvikelwe ekubhalweni phezu kwekheli lokubuyisela lomsebenzi esimweni sokuchichima kwebhafa yesitaki. Ingqikithi yokuvikela iwukulondoloza ikheli lokubuyisela kusitaki β€œsethunzi” esihlukile ngemva kokudlulisa isilawuli kumsebenzi kanye nokukhipha leli kheli ngaphambi kokuphuma emsebenzini.

    • Usekelo lweziyalezo lwengeziwe kungxenyekazi ye-ARM64 I-ARMv8.5-BTI (I-Branch Target Indicator) ukuze kuvikelwe ukwenziwa kwamasethi eziyalezo okungafanele kuhlanganiswe kuzo. Ukuvimbela ukushintshela ezigabeni ezingafanele zekhodi kuqaliswa ukuze kuvinjwe ukudalwa kwamagajethi emisebenzini esebenzisa amasu okuhlela agxile ekubuyiseleni (ROP - I-Return-Oriented Programming; umhlaseli akazami ukubeka ikhodi yakhe enkumbulweni, kodwa usebenzisa izingcezu esezivele zikhona. yemiyalelo yomshini egcina ngomyalo wokulawula ukubuyisela, lapho kwakhiwa khona uchungechunge lwezingcingo ukuze kutholwe ukusebenza okufunayo).
    • Kwengezwe ukusekelwa kwehadiwe yokubethela okungaphakathi kwe-inthanethi kwamadivayisi we-block (Ukubethela Okusemgqeni). Amadivayisi wokubethela we-Inlinep ngokuvamile akhelwe kudrayivu, kodwa atholakala ngokunengqondo phakathi kwememori yesistimu nediski, ibhala ngokusobala futhi isusa ukubethela kwe-I/O ngokusekelwe kokhiye abashiwo yi-kernel kanye ne-algorithm yokubethela.
    • Kwengezwe inketho yomugqa womyalo we-kernel "initrdmem" ukukuvumela ukuthi ucacise ikheli lememori yangempela ye-initrd lapho ubeka isithombe sokuqala sokuqalisa ku-RAM.
    • Kwengezwe amandla amasha: CAP_PERFMON ukuze afinyelele isistimu engaphansi yokusebenza futhi enze ukuqapha ukusebenza. CAP_BPF, evumela imisebenzi ethile ye-BPF (efana nokulayisha izinhlelo ze-BPF) ebidinga amalungelo e-CAP_SYS_ADMIN ngaphambilini (amalungelo e-CAP_SYS_ADMIN manje ahlukaniswe abe yinhlanganisela ye-CAP_BPF, CAP_PERFMON, ne-CAP_NET_ADMIN).
    • Kungeziwe idivayisi entsha ye-virtio-mem ekuvumela ukuthi uxhume okushisayo futhi uxhume inkumbulo eshisayo kumasistimu ezivakashi.
    • Ukukhumbula okusetshenzisiwe kokusebenza kwemephu ku-/dev/mem uma umshayeli wedivayisi esebenzisa izindawo zememori ezigqagqene.
    • Kwengezwe ukuvikelwa kokuba sengozini I-CROSSTalk/SRBDS, okukuvumela ukuthi ubuyisele imiphumela yemiyalelo ethile ekhishwe komunye umgogodla we-CPU.
  • Imemori kanye nezinsizakalo zesistimu
    • Kudokhumenti echaza imithetho yokufometha ikhodi, kwamukelwe izincomo zokusetshenziswa kwamatemu abandakanyayo. Onjiniyela abanconyiwe ukusebenzisa izinhlanganisela 'eziyinhloko / isigqila' kanye 'nohlu olumnyama / olumhlophe', kanye negama elithi 'isigqila' ngokuhlukana. Izincomo zithinta kuphela ukusetshenziswa okusha kwale migomo. Ukukhulunywa kwamagama ashiwo vele akhona emnyombeni kuzohlala kungathintwa. Ekhodini entsha, ukusetshenziswa kwemigomo ephawuliwe kuvunyelwe uma kudingeka ukuze kusekelwe i-API ne-ABI evezwe endaweni yomsebenzisi, kanye nalapho kubuyekezwa ikhodi ukuze kusekelwe izingxenyekazi zekhompuyutha ezikhona noma amaphrothokholi okucaciswa kwawo kudinga ukusetshenziswa kwemigomo ethile.
    • Ithuluzi lokususa iphutha lifakiwe I-KCSAN (Kernel Concurrency Sanitizer), yakhelwe ukutholwa okuguquguqukayo izimo zomjaho ngaphakathi ngaphakathi. Ukusetshenziswa kwe-KCSAN kusekelwa lapho kwakhiwa ku-GCC ne-Clang, futhi kudinga ukuguqulwa okukhethekile ngesikhathi sokuhlanganisa ukuze kulandelelwe ukufinyelela kwememori (amaphoyinti asetshenziswayo aqaliswa lapho inkumbulo ifundwa noma ilungiswa). Ukugxila ekuthuthukisweni kwe-KCSAN bekusekuvimbeleni okungamanga okuhle, ukuqina, kanye nokusebenziseka kalula.
    • Kwengezwe indlela yendawo yonke ukuletha izaziso ukusuka ku-kernel kuya esikhaleni somsebenzisi. Indlela yokusebenza isuselwe kumshayeli wepayipi ojwayelekile futhi ikuvumela ukuthi usabalalise ngempumelelo izaziso ezivela ku-kernel phezu kwamashaneli avuliwe esikhaleni somsebenzisi. Izindawo zokwamukela izaziso amapayipi avulwa ngemodi ekhethekile futhi avumele imilayezo etholwe ku-kernel ukuthi iqoqwe kusigcinalwazi esiyiringi. Ukufunda kwenziwa umsebenzi ojwayelekile othi read(). Umnikazi wesiteshi uyanquma ukuthi yimiphi imithombo ku-kernel edinga ukugadwa futhi angachaza isihlungi sokuziba izinhlobo ezithile zemilayezo nemicimbi. Emicimbini, yimisebenzi enokhiye kuphela esekelwayo okwamanje, njengokwengeza/ukukhipha okhiye nokushintsha izibaluli zabo. Le micimbi ihlelelwe ukuthi isetshenziswe ku-GNOME.
    • Ukuthuthukiswa okuqhubekayo komsebenzi we-'pidfd' ukusiza ukuphatha izimo zokuphinda zisetshenziswe i-PID (i-pidfd ihlotshaniswa nenqubo ethile futhi ayishintshi, kuyilapho i-PID ingahlotshaniswa nenye inqubo ngemva kokuthi inqubo yamanje ehlotshaniswa naleyo PID inqanyuliwe). Inguqulo entsha yengeza usekelo lokusebenzisa i-pidfd ukunamathisela inqubo kuzikhala zamagama (ivumela i-pidfd ukuthi icaciswe lapho kwenziwa ikholi yesistimu yama-setns). Ukusebenzisa i-pidfd kukuvumela ukuthi ulawule okunamathiselwe kwenqubo ezinhlotsheni ezimbalwa zezikhala zamagama ngocingo olulodwa, wehlise kakhulu inani lezingcingo ezidingekayo zesistimu nokusebenzisa okunamathiselwe kwimodi ye-athomu (uma ukunamathiselwa kwesinye sezikhala zamagama kwehluleka, ezinye ngeke zixhume) .
    • Kwengezwe ikholi yesistimu entsha facecessat2(), ehlukile kune
      faceat() impikiswano eyengeziwe enamafulegi athobela izincomo ze-POSIX (ngaphambilini lawa mafulegi alingisa kulabhulali ye-C, futhi i-faccessat2 entsha iwavumela ukuthi asetshenziswe ku-kernel).

    • KuQembu kwengezwe i-memory.swap.high setting engasetshenziswa ukwehlisa ijubane imisebenzi ethatha isikhala esiningi sokushintshana.
    • Kusixhumi esibonakalayo se-I/O esingavumelaniyo io_ring usekelo olungeziwe lwekholi yesistimu ye-tee().
    • Kwengezwe indlela "I-BPF iterator, eklanyelwe ukukhipha okuqukethwe kwezakhiwo ze-kernel endaweni yomsebenzisi.
    • Kuhlinzekiwe ikhono lokusebenzisa isigcinalwazi sendandatho yokushintshisana kwedatha phakathi kwezinhlelo ze-BPF.
    • Ingene kumshini idatha, eklanyelwe ukuhlela ukukhishwa okuhambisanayo kwemisebenzi ku-kernel, yengeze usekelo lwemisebenzi enemicu eminingi ngokulinganisa umthwalo.
    • Kumshini we-pstore, okuvumela ukuthi ulondoloze imininingwane yokulungisa iphutha mayelana nembangela yokuphahlazeka ezindaweni zememori ezingalahleki phakathi kokuqalisa kabusha, kungezwe i-backend yokulondoloza ulwazi ukuze uvimbele amadivayisi.
    • Kusuka egatsheni le-kernel le-PREEMPT_RT ihlelwe kabusha ukuqaliswa kwezingidi zendawo.
    • Kwengezwe i-API entsha ye-buffer allocation (AF_XDP), okuhloswe ngayo ukwenza lula ukubhalwa kwabashayeli benethiwekhi ngokusekelwa kwe-XDP (eXpress Data Path).
    • Ngokwakheka kwe-RISC-V, ukusekelwa kokulungisa amaphutha ezingxenyeni ze-kernel kusetshenziswa i-KGDB sekuqaliwe.
    • Ngaphambi kokukhishwa kwe-4.8, izimfuneko zenguqulo ye-GCC engasetshenziswa ukwakha i-kernel zinyusiwe. Kokunye okukhishiwe okulandelayo kuhlelwe ukukhulisa izinga libe yi-GCC 4.9.
  • I-Disk Subsystem, I/O kanye ne-File Systems
    • Kumephu Yedivayisi kungezwe isibambi se-dm-ebs esisha (silingisa usayizi webhulokhi), esingasetshenziswa ukulingisa usayizi webhulokhi omncane onengqondo (isibonelo, ukulingisa imikhakha ye-512-byte kumadiski osayizi womkhakha we-4K).
    • Isistimu yefayela ye-F2FS manje isekela ukucindezelwa kusetshenziswa i-algorithm ye-LZO-RLE.
    • Ku-dm-crypt kwengezwe usekelo lokhiye ababethelwe.
    • I-Btrfs ithuthukise ukuphathwa kwemisebenzi yokufunda ngemodi eqondile ye-I/O. Uma ukhweza usheshisiwe ukuhlola izigatshana ezisusiwe kanye nezinkomba ezishiywe ngaphandle komzali.
    • Ipharamitha ethi "nodelete" yengezwe ku-CIFS, okuvumela ukuhlolwa kwemvume evamile kuseva, kodwa ivimbela iklayenti ekususeni amafayela noma izinkomba.
    • I-Ext4 ithuthukise ukuphatha amaphutha ENOSPC uma usebenzisa i-multithreading. i-xattr yengeze usekelo lwe-gnu.* indawo yegama esetshenziswe ku-GNU Hurd.
    • Ku-Ext4 ne-XFS, ukusekelwa kokusebenza kwe-DAX kunikwe amandla (ukufinyelela okuqondile ohlelweni lwefayela, ukweqa inqolobane yekhasi ngaphandle kokusebenzisa ileveli yedivayisi yokuvimba) ngokuphathelene namafayela nezikhombisi-ndlela.
    • Kukholi yesistimu statx() ifulegi lengeziwe I-STATX_ATTR_DAX, okuthi uma kucacisiwe, ibuyise ulwazi kusetshenziswa injini ye-DAX.
    • I-EXFAT kwengezwe ukusekela ukuqinisekiswa kwendawo yokuqalisa.
    • Ku-FAT ngcono ukulayishwa okusebenzayo kwezinto ze-FS. Ukuhlola idrayivu ye-USB engu-2TB enensayo kubonise ukuncipha kwesikhathi sokuqeda ukuhlolwa ukusuka kumasekhondi angama-383 kuye kwangama-51.
  • Isistimu engaphansi yenethiwekhi
    • Ekhodini yokulawula ukusebenza kwamabhuloho enethiwekhi kwengezwe ukwesekwa kwephrothokholi MRP (Media Redundancy Protocol), evumela ukubekezelelwa kwamaphutha ngokukhipha amaswishi e-Ethernet amaningi.
    • Kuhlelo lokulawulwa kwethrafikhi (Tc) kwengezwe isenzo "sesango" esisha, esenza kube lula ukuchaza izikhawu zesikhathi zokucubungula nokulahla amaphakethe athile.
    • Usekelo lokuhlola ikhebuli yenethiwekhi exhunyiwe kanye nokuzixilonga kwamadivayisi enethiwekhi kwengezwe ku-kernel kanye nesisetshenziswa se-ethtool.
    • Usekelo lwe-algorithm ye-MPLS (Multiprotocol Label Switching) yengezwe kusitaki se-IPv6 sokuthungatha amaphakethe kusetshenziswa ukushintsha kwelebula ye-multiprotocol (i-MPLS ngaphambilini ibisekelwa i-IPv4).
    • Ukwesekwa okwengeziwe kokudlulisa i-IKE (Internet Key Exchange) kanye namaphakethe e-IPSec nge-TCP (RFC 8229) ukudlula ukuvinjwa kwe-UDP okungenzeka.
    • Kungeziwe i-network block device rnbd, ekuvumela ukuthi uhlele ukufinyelela okukude kudivayisi evinjiwe usebenzisa ezokuthutha ze-RDMA (InfiniBand, RoCE, iWARP) kanye nephrothokholi ye-RTRS.
    • Esitakini se-TCP kwengezwe ukusekelwa kokuminyaniswa kobubanzi kuzimpendulo ezikhethiwe zokuvuma (i-SACK).
    • Okwe-IPv6 kwenziwe Ukusekelwa kwe-TCP-LD (RFC 6069, Ukuphazamiseka Okude Kokuxhumana).
  • Izinsiza
    • Umshayeli we-i915 DRM wamakhadi wevidiyo we-Intel uhlanganisa ukusekelwa kwama-chips e-Intel Tiger Lake (GEN12) ngokuzenzakalelayo, okuwenzelwa wona. kwenziwe ikhono lokusebenzisa isistimu ye-SAGV (System Agent Geyserville) ukulungisa ngokuguquguqukayo imvamisa namandla kagesi kuye ngokusetshenziswa kwamandla noma izidingo zokusebenza.
    • Umshayeli we-amdgpu wengeze ukusekelwa kwefomethi yephikseli ye-FP16 kanye nekhono lokusebenza namabhafa abethelwe kumemori yevidiyo (TMZ, Trusted Memory Zone).
    • Ukwesekwa okwengeziwe kwezinzwa zamandla ze-AMD Zen neZen2 processors, kanye nezinzwa zokushisa ze-AMD Ryzen 4000 Renoir. Ukwesekwa kokubuyisa ulwazi lokusetshenziswa kwamandla ngokusebenzisa isixhumi esibonakalayo kunikezwa i-AMD Zen neZen2 I-RAPL (Running Average Power Limit).
    • Kwengezwe usekelo lwefomethi yokuguqula i-NVIDIA kumshayeli we-Nouveau. Ku-gv100, amandla okusebenzisa amamodi okuskena ane-interlaced aqalisiwe. Kungezwe ukutholwa kwe-vGPU.
    • Ukwesekwa okwengeziwe kwe-Adreno A405, A640 kanye ne-A650 GPUs kumshayeli we-MSM (Qualcomm).
    • Kwengezwe uhlaka lwangaphakathi lokuphatha izinsiza ze-DRM (Direct Rendering Manager).
    • Usekelo olungeziwe lwe-Xiaomi Redmi Note 7 nama-smartphones e-Samsung Galaxy S2, kanye namalaptop e-Elm/Hana Chromebook.
    • Abashayeli abangeziwe bamaphaneli e-LCD: ASUS TM5P5 NT35596, Starry KR070PE2T, Leadtek LTK050H3146W, Visionox rm69299, Boe tv105wum-nw0.
    • Ukwengezwa okungeziwe kwamabhodi e-ARM nezinkundla Renesas "RZ/G1H", Realtek RTD1195, Realtek RTD1395/RTD1619, Rockchips RK3326, AMLogic S905D, S905X3, S922XH, Olimex A20-OLInu-LIMEI-LPI-50MXNUMXMC
      , Beacon i.MX8m-Mini, Qualcomm SDM660/SDM630, Xnano X5 TV Box, Stinger96, Beaglebone-AI.

    • Ukwesekwa okwengeziwe kwephrosesa ye-MIPS Loongson-2K (isifushaniso Loongson64). Ku-CPU Loongson 3, ukwesekwa kokubonwa kusetshenziswa i-KVM hypervisor kungeziwe.
    • Kwengeziwe
      ukusekelwa kwephrosesa yaseRussia ye-Baikal-T1 kanye nesistimu-on-chip esekelwe kuyo BE-T1000. Iphrosesa ye-Baikal-T1 iqukethe ama-P5600 MPS 32 r5 superscalar cores amabili asebenza ku-1.2 GHz. I-chip iqukethe i-L2 cache (1 MB), DDR3-1600 ECC isilawuli sememori, 1 10Gb Ethernet port, 2 1Gb Ethernet port, PCIe Gen.3 x4 isilawuli, 2 SATA 3.0 port, USB 2.0, GPIO, UART, SPI, I2C. Iphrosesa ihlinzeka ngosekelo lwehadiwe lokwenza izinto ezibonakalayo, imiyalelo ye-SIMD kanye ne-accelerator yehadiwe ehlanganisiwe ye-cryptographic esekela i-GOST 28147-89. I-chip ithuthukiswa kusetshenziswa iyunithi yephrosesa ye-MIPS32 P5600 Warrior enelayisensi yakwa-Imagination Technologies.

Ngesikhathi esifanayo, i-Latin American Free Software Foundation kwakheka
inketho i-kernel yamahhala ngokuphelele 5.8 - I-Linux-free 5.8-gnu, kusulwe ku-firmware nezinto zomshayeli eziqukethe izingxenye ezingezona zamahhala noma izigaba zekhodi, ububanzi bazo obunqunyelwe umkhiqizi. Ukukhishwa okusha kukhubaza ukulayishwa kwe-blob kubashayeli be-Atom ISP Video, MediaTek 7663 USB/7915 PCIe, Realtek 8723DE WiFi, Renesas PCI xHCI, HabanaLabs Gaudi, Enhanced Asynchronous Sample Rate Converter, Maxim Integrated MAX98390, I-Audio Ehlanganisiwe MAX38060, I-AudioSpecior 2 ZL86 I-Audio Ampl6656 Inqubo Yomsindo Yasekhaya kanye ne-IXNUMXC EEPROM Slave. Ikhodi yokuhlanza i-blob ebuyekeziwe ku-Adreno GPU, HabanaLabs Goya, xXNUMX touchscreen, vtXNUMX kanye namashayeli e-btbcm namasistimu angaphansi.

Source: opennet.ru

Engeza amazwana