Ukukhutshwa kwe-kernel ye-Linux 5.1

Emva kweenyanga ezimbini zophuhliso, uLinus Torvalds wazisiwe ukukhutshwa kwe-kernel Linux 5.1. Phakathi kwezona nguqu ziphawulekayo: ujongano olutsha lwe-asynchronous I/O io_uring, ukukwazi ukusebenzisa i-NVDIMM njenge-RAM, inkxaso yememori ebonakalayo ekwabelwana ngayo e-Nouveau, inkxaso yokubeka iliso ebukhali kweenkqubo zefayile ezinkulu kakhulu nge fanotify, ukukwazi ukuqwalasela ucinezelo lweZstd. amanqanaba kwi-Btrfs, umphathi omtsha we-cpuidle TEO, ukuphunyezwa kweefowuni zenkqubo ukusombulula ingxaki ye-2038, ukukwazi ukuqalisa kwizixhobo ze-device-mapper ngaphandle kwe-initramfs, imodyuli ye-SafeSetID LSM, inkxaso yeepatches eziphilayo ezidibeneyo.

Siseko ezintsha:

  • Inkqubo engaphantsi kweDisk, I/O kunye neeNkqubo zeFayile
    • Kuphunyezwe ujongano olutsha lwe-asynchronous I/O - io_uring, ephawulekayo ngenkxaso yayo yokuvota kwe-I/O kunye nokukwazi ukusebenza kunye okanye ngaphandle kwe-buffering. Masikhumbule ukuba umatshini we-I/O ocetywayo ngaphambili "aio" awuzange uxhase i-I/O ye-buffered, inokusebenza kuphela kwimo ye-O_DIRECT (ngaphandle kokuphazamisa kunye nokugqithisa i-cache), ibe neengxaki zokutshixa ngenxa yokulinda ukufumaneka kwemetadata, kwaye ibonise iindleko ezinkulu ngenxa yokukhuphela idatha kwimemori.

      Ngaphakathi kwe-API
      abaphuhlisi be-io_uring bazame ukuphelisa iintsilelo zojongano oludala lwe-aio. Ngu imveliso io_uring ikufutshane kakhulu SPDK kwaye iphambili kakhulu kwi-libaio xa isebenza ngovoto oluvuliweyo. Ithala leencwadi lilungiselelwe ukusetyenziswa io_uring ekugqibeleni usetyenziso olusebenza kwindawo yabasebenzisi ukukhulula, ebonelela ngesakhelo esikwinqanaba eliphezulu ngaphezulu kojongano lwekernel;

    • Kumsitho wokulandela umkhondo kwi FS fanotify() yongezwe inkxaso yokulandelela i-superblock kunye neemeko zokutshintsha kwesakhiwo kude (iziganeko zokuyila, ukucima kunye nokuhambisa abalawuli). Iimpawu ezibonisiweyo zinceda ukusombulula iingxaki zobungakanani obuvela xa kusenziwa utshintsho oluphinda-phindayo lokulandela kwindlela enkulu yefayile usebenzisa i inotify mechanism (utshintsho olucacileyo belunokulandelelwa ngaphambili kuphela nge inotify, kodwa
      ukusebenza phantsi kweemeko zokuphinda umkhondo woluhlu lwezalathisi ezinkulu ezishiyeke zinqweneleka). Ngoku ujongo olunjalo lunokwenziwa ngokusebenzayo nge fanotify;

    • Kwinkqubo yefayile ye-Btrfs yongezwe ukukwazi ukwenza umgangatho woxinzelelo lwe-algorithm ye-zstd, enokuthi ithathelwe ingqalelo njengeyona nto ilungileyo phakathi kwe-lz4 ekhawulezayo kodwa engasebenziyo kunye ne-xz ecothayo kodwa elungileyo. Ngokufaniswa nendlela okwakunokwenzeka ngayo ngaphambili ukuseta inqanaba loxinzelelo xa usebenzisa i-zlib, inkxaso ye-"-o compress=zstd:level" yokunyusela ukhetho yongezwe kwi-zstd. Ngexesha lokuvavanya, ubuncinci benqanaba lokuqala linikezela ukunyanzeliswa kwedatha ngamaxesha e-2.658 ngesantya soxinzelelo se-438.47 MB ​​/ s, isantya sokunciphisa i-910.51 MB / s kunye nokusetyenziswa kwememori ye-780 MB, kunye nenqanaba eliphezulu le-15 linikezelwa ngamaxesha e-3.126, kodwa ngoxinzelelo. isantya se-37.30 MB / s. ukukhupha i-878.84 MB / s kunye nokusetyenziswa kwememori 2547 MB;
    • Yongeziwe ukukwazi ukuqala kwindlela yefayile ebekwe kwisixhobo-mapper isixhobo, ngaphandle kokusebenzisa i-initramfs. Ukuqala ngokhupho lwangoku lwe-kernel, izixhobo ze-mapper yesixhobo zinokusetyenziswa ngokuthe ngqo ngexesha lenkqubo yokuqalisa, umzekelo, njengesahlulelo ngenkqubo yefayile yengcambu. Ukwahlula kuqwalaselwe kusetyenziswa iparameter yokuqalisa "dm-mod.create". Iimodyuli ze-Device-mapper ezivunyelwe ukulayishwa ziquka: "crypt", "dey", "linear", "snapshot-origin" kunye ne "verity";
    • Iflegi ye-F2FS_NOCOW_FL yongezwe kwindlela yefayile ye-F2FS ejoliswe kwi-Flash drives, ekuvumela ukuba ukhubaze indlela yokukhuphela-ngokubhala kwifayile enikiweyo;
    • Inkqubo yefayile isusiwe kwi kernel Exofs, oluyantlukwano lwe-ext2, olulungiselelwe ukusebenza kunye ne-OSD (Isixhobo esisekwe kwiSixhobo soGcino) izinto zokugcina. Inkxaso yeprotocol ye-SCSI yezixhobo zogcino ezinjalo nayo isusiwe;
  • Ukwenziwa kweVirtual kunye noKhuseleko
    • Kongezwe PR_SPEC_DISABLE_NOEXEC ukhetho kwi prctl() ukulawula uzalisekiso oluqikelelwayo lwemiyalelo yenkqubo ekhethiweyo. Inketho entsha ikuvumela ukuba ukhethe ukukhubaza ukuphunyezwa okuqikelelwayo kwiinkqubo ezinokuhlaselwa luhlaselo lweSpecter. Isitshixo sihlala kude kube yifowuni yokuqala ukwenza ();
    • Isetyenziswe imodyuli yeLSM SafeSetID, evumela iinkonzo zenkqubo ukuba zilawule ngokukhuselekileyo abasebenzisi ngaphandle kwamalungelo akhulayo (CAP_SETUID) kwaye ngaphandle kokufumana amalungelo engcambu. Amalungelo anikezelwe ngokuchaza imigaqo kwi-securityfs esekelwe kuluhlu olumhlophe lwezibophelelo ezisebenzayo (kwifom "UID1: UID2");
    • Utshintsho olongezelelweyo olusezantsi olufunekayo ekulayisheni okusekelwe kwi-stack yeemodyuli zokhuseleko (LSMs). Yazisa i "lsm" i kernel boot ukhetho lokulawula ukuba zeziphi iimodyuli ezilayishiweyo kwaye ngoluphi ulandelelwano;
    • Inkxaso yezithuba zamagama eefayile yongezwe kwisistim yophicotho-zincwadi;
    • Yandisiwe izakhono ze-GCC plugin structleak, ekuvumela ukuba uthintele ukuvuza okunokwenzeka kwemixholo yememori Ukuqaliswa kwazo naziphi na izinto eziguquguqukayo ezisetyenziswa kwikhowudi ngofikelelo lwereferensi kwistakhi lunikiwe;
  • Inkqubo engaphantsi yothungelwano
    • Kwiziseko iphunyeziwe ukhetho olutsha "SO_BINDTOIFINDEX" olufana ne
      "SO_BINDTODEVICE", kodwa ithatha njengengxabano inombolo yesalathisi sojongano lomsebenzi womnatha endaweni yegama lojongano;

    • Isitaki se-mac80211 songeze ukukwazi ukwabela ii-BSSID ezininzi (iidilesi ze-MAC) kwisixhobo esinye. Njengenxalenye yeprojekthi yokwandisa ukusebenza kwe-WiFi, i-mac80211 stack yongeze i-airtime accounting kunye nokukwazi ukusasaza ixesha lomoya phakathi kwezikhululo ezininzi (xa zisebenza kwindawo yofikelelo, zinikezela ixesha elincinane lothumelo ukucotha izikhululo ezingenazingcingo, endaweni yokusasaza ixesha ngokulinganayo phakathi kwazo zonke izikhululo. izikhululo);
    • Isixhobo esongeziweyo "devlink impilo", ebonelela ngezaziso xa iingxaki zisenzeka ngojongano lwenethiwekhi;
  • Iinkonzo zememori kunye nenkqubo
    • Iphunyeziwe unikezelo lomqondiso olukhuselekileyo oluvumela ukusetyenziswa kwakhona kwePID. Ngokomzekelo, xa ubiza ukubulala ngaphambili, imeko inokuvela apho, ngokukhawuleza emva kokuthumela isignali, i-PID ekujoliswe kuyo inokukhululwa ngenxa yokupheliswa kwenkqubo kunye nokuhlala kwenye inkqubo, kwaye umqondiso uya kugqiba ukudluliselwa kwenye inkqubo. Ukuphelisa iimeko ezinjalo, inkqubo entsha yokufowunela i-pidfd_send_signal yongezwe, esebenzisa izichazi zefayile ukusuka /proc/pid ukuqinisekisa ukubopha inkqubo ezinzileyo. Nangona i-PID iphinda isetyenziswe ngexesha lokucubungula umnxeba, inkcazo yefayile ayiyi kutshintsha kwaye ingasetyenziselwa ngokukhuselekileyo ukuthumela isignali kwinkqubo;
    • Yongeziwe ukukwazi ukusebenzisa izixhobo zememori ezisisigxina (inkumbulo eqhubekayo, umzekelo I-NVDIMM) njenge-RAM. Ukuza kuthi ga ngoku, i-kernel ixhasa izixhobo ezifana nezixhobo zokugcina, kodwa ngoku zinokusetyenziswa njenge-RAM eyongezelelweyo. Inqaku liphunyezwa ekuphenduleni iminqweno yabasebenzisi abazimiseleyo ukunyamezela ukusebenza kunye nokufuna ukusebenzisa i-API yolawulo lwememori ye-Linux kernel endaweni yokusebenzisa iinkqubo ezikhoyo zonikezelo lwememori yendawo esebenza phezu kwe mmap ye-dax. ifayile
    • Yongeza isibambi esitsha se-CPU esingasebenziyo (i-cpuidle, ithatha isigqibo xa i-CPU inokufakwa kwiimowudi zokugcina amandla; ngokunzulu imowudi, kokukhona ukonga okukhulu, kodwa kwakhona kuthatha ixesha elide ukuphuma kwimowudi) -TEO (I-Timer Events Oriented Governor ). Ukuza kuthi ga ngoku, kucetywa abaphathi ababini be-cpuidle - "imenyu" kunye "neleli", eyahlukileyo kwi-heuristics. Umphathi "wemenyu" uneengxaki ezaziwayo malunga nokwenza izigqibo ze-heuristic, ukuphelisa apho kwagqitywa ekubeni kulungiswe umphathi omtsha. I-TEO ibekwe njengenye indlela yokuphatha "imenyu", evumela ukusebenza okuphezulu ngelixa igcina umgangatho ofanayo wokusetyenziswa kwamandla.
      Ungavula isibambi esitsha usebenzisa iparameter yokuqalisa "cpuidle.governor=teo";

    • Njengenxalenye yomsebenzi wokuphelisa iingxaki zika-2038, okubangelwa kukuphuphuma kohlobo lwe-32-bit time_t, iquka iifowuni zenkqubo ezibonelela ngezixhobo zokubala ze-32-bit ze-64-bit ye-architecture. Ngenxa yoko, i-64-bit time_t isakhiwo ngoku ingasetyenziswa kuzo zonke izakhiwo. Iinguqu ezifanayo zikwaphunyeziwe kwi-subsystem yenethiwekhi kwiinketho simiswe iziseko zenethiwekhi;
    • Kwinkqubo eshushu yokuchwetheza yondoqo (ukuchwetheza okuphilayo) yongezwe Inqaku elithi "iAtomic Replace" yokufaka iathom yoluhlu lotshintsho kumsebenzi omnye. Eli nqaku likuvumela ukuba usasaze iipetshi ezishwankathelayo ezigubungela utshintsho oluninzi ngaxeshanye, endaweni yenkqubo yenqanaba ngenqanaba usetyenziso lweepetshi eziphilayo ngendlela echazwe ngokungqongqo, ekunzima ukuyigcina. Ngelixa ngaphambili utshintsho ngalunye olulandelayo bekufuneka lusekwe kubume bomsebenzi emva kotshintsho lokugqibela, kuyenzeka ngoku ukusasaza utshintsho oluninzi olubotshelelwe kwisimo sokuqala ngexesha elinye (oko kukuthi abagcini banokugcina isiqwenga esinye esidityanisiweyo esinxulumene nekernel yesiseko endaweni ye ikhonkco yeepatches ezixhomekeke komnye nomnye);
    • Yaziswa inkxaso eyehliweyo yefomati yefayile ephunyeziweyo ye a.out kunye
      icinyiwe ikhowudi yokuvelisa iifayile ezingundoqo kwifomati ye-a.out, ekwimeko elahliwe. Ifomati ye-a.out ayizange isetyenziswe kwiinkqubo zeLinux ixesha elide, kwaye ukuveliswa kweefayile ze-a.out kudala kungaxhaswanga zizixhobo zangoku kuqwalaselo lweLinux olungagqibekanga. Ukongeza, umlayishi weefayile ze-a.out unokuphunyezwa ngokupheleleyo kwindawo yomsebenzisi;

    • Ukukwazi ukuchonga nokususa ikhowudi engasetyenziswanga yongezwe kwindlela yokuqinisekisa inkqubo ye-BPF. I-kernel ikwabandakanya iipatches kunye nenkxaso ye-spinlock ye-subsystem ye-BPF, ukubonelela ngezakhono ezongezelelweyo zokulawula ukuphunyezwa okufanayo kweenkqubo ze-BPF;
  • Izixhobo
    • Kumqhubi weNouveau yongezwe Inkxaso yolawulo lwememori engaqhelekanga, evumela i-CPU kunye ne-GPU ukufikelela kwiindawo eziqhelekileyo zememori ezilungelelanisiweyo. Inkqubo yememori ekwabelwana ngayo (i-SVM, imemori ekwabelwana ngayo) iphunyezwa ngesiseko se-HMM (i-Heterogeneous memory management) subsystem, evumela ukusetyenziswa kwezixhobo kunye neeyunithi zabo zokulawula imemori (MMU, iyunithi yokulawula imemori), enokufikelela. inkumbulo engundoqo. Ngokukodwa, usebenzisa i-HMM, unokucwangcisa indawo yedilesi ekwabelwana ngayo phakathi kwe-GPU kunye ne-CPU, apho i-GPU inokufikelela kwimemori ephambili yenkqubo. Inkxaso ye-SVM okwangoku inikwe amandla kuphela kwii-GPU zosapho lwePascal, nangona inkxaso ibonelelwa kwiVolta kunye neTuring GPUs ngokunjalo. Ngaphezu koko, eNouveau yongezwa ioctl entsha yokulawula ukufuduka kweendawo zememori yenkqubo kwimemori yeGPU;
    • Kumqhubi we-Intel DRM weGPU Skylake kwaye kamva (gen9+) ifakiwe Ngokuzenzekelayo, imowudi ye-fastboot isusa utshintsho olungafunekiyo lwemowudi ngexesha lokuqalisa. Yongeziwe Π½ΠΎΠ²Ρ‹Π΅ izichazi zesixhobo ezisekwe kwi-Coffelake kunye ne-Ice Lake microarchitectures. Iitshiphusi zeCoffelake yongezwe Inkxaso yeGVT (Ukusebenza kweGPU). YeeGPUs zenyani iphunyeziwe VFIO EDID inkxaso. Ngeephaneli zeLCD MIPI/DSI yongezwe inkxaso yezinto ze-ACPI/PMIC. Iphunyeziwe iindlela ezintsha zeTV 1080p30/50/60 TV;
    • Inkxaso eyongeziweyo yeVega10/20 BACO GPU kumqhubi we-amdgpu. Iphunyezwe iVega 10/20 yolawulo lwamandla kunye neetafile zolawulo ezipholileyo zeVega 10. Kongezwe izixhobo ezichongiweyo zePCI ezitsha zePicasso GPUs. Yongeziwe ujongano lokulawula ukuxhomekeka okucwangcisiweyo ukunqanda ideadlocks;
    • Yongeziwe Umqhubi we-DRM/KMS wezikhawulezisi zesikrini I-ARM Komeda (Mali D71);
    • Inkxaso eyongeziweyo ye-Toppoly TPG110, i-Sitronix ST7701, i-PDA 91-00156-A0, i-LeMaker BL035-RGB-002 3.5 kunye neepaneli zesikrini ze-Kingdisplay kd097d04;
    • Inkxaso eyongeziweyo ye-Rockchip RK3328, i-Cirrus Logic CS4341 kunye ne-CS35L36, i-MediaTek MT6358, i-Qualcomm WCD9335 kunye ne-Ingenic JZ4725B i-codecs yomsindo, kunye ne-Mediatek MT8183 iqonga lomsindo;
    • Inkxaso eyongeziweyo yabalawuli be-NAND Flash STMicroelectronics FMC2, Amlogic Meson;
    • Inkxaso eyongeziweyo ye-accelerator ye-Habana AI hardware systems;
    • Inkxaso eyongezelelweyo ye-NXP ENETC gigabit Ethernet abalawuli kunye neMediaTek MT7603E (PCIe) kunye ne-MT76x8 i-interfaces engenazintambo.

Kwangelo xesha, iLatin American Free Software Foundation yenziwe
ukhetho ngokupheleleyo ikernel yasimahla 5.1 - Linux-free 5.1-gnu, ukucocwa kwe-firmware kunye nezixhobo zomqhubi eziqukethe amacandelo angekho simahla okanye amacandelo ekhowudi, ububanzi bawo bukhawulelwe ngumenzi. Kukhupho olutsha, ukulayishwa kweblob kuvaliwe kwi-mt7603 kunye nabaqhubi be-goya. Ikhowudi yokucoca i-blob ehlaziyiweyo kubaqhubi kunye ne-subsystems wilc1000, iwlwifi, soc-acpi-intel, bcmfmac, mwifiex, btmrvl, btmtk kunye ne-touchscreen_dmi. Ukucocwa kweBlob kwi-lantiq xrx200 firmware loader kumisiwe ngenxa yokususwa kwayo kwikernel.

umthombo: opennet.ru

Yongeza izimvo