Kutulutsidwa kwa kernel ya Linux 5.1

Pambuyo pa miyezi iwiri ya chitukuko, Linus Torvalds anayambitsa kutulutsidwa kwa kernel Linux 5.1. Zina mwazosintha zodziwika bwino: mawonekedwe atsopano a asynchronous I/O io_uring, kuthekera kogwiritsa ntchito NVDIMM ngati RAM, kuthandizira kukumbukira komwe adagawana ku Nouveau, kuthandizira kuwunika kowopsa kwamafayilo akulu kwambiri kudzera pa fanotify, kuthekera kosintha kupsinjika kwa Zstd. ma level mu Btrfs, chogwirizira chatsopano cha cpuidle TEO, kukhazikitsa mafoni adongosolo kuti athetse vuto la 2038, kuthekera koyambira kuchokera pazida zamamapu opanda initramfs, gawo la SafeSetID LSM, kuthandizira pazigawo zophatikizika.

waukulu zatsopano:

  • Disk Subsystem, I/O ndi File Systems
    • Anakhazikitsa mawonekedwe atsopano a asynchronous I/O - io_kunena, yomwe ili yodziwika chifukwa chakuthandizira kuvota kwa I/O komanso kuthekera kogwira ntchito kapena popanda kusungitsa. Tikumbukenso kuti njira ya asynchronous I/O "aio" yomwe idapangidwa kale sinagwirizane ndi buffered I/O, imatha kugwira ntchito munjira ya O_DIRECT (popanda kutchingira ndikudutsitsa posungira), inali ndi vuto lotseka chifukwa chodikirira kupezeka kwa metadata, ndi adawonetsa ndalama zambiri zochulukirapo chifukwa chokopera deta mu kukumbukira.

      Mu API
      io_uring Madivelopa anayesa kuthetsa zolakwika za mawonekedwe akale a aio. Wolemba zokolola io_uring ili pafupi kwambiri Chithunzi cha SPDK ndipo ali patsogolo kwambiri pa libaio pamene akugwira ntchito ndi kuvota kololedwa. Laibulale yakonzedwa kuti igwiritse ntchito io_uring kumapeto kwa mapulogalamu omwe akuyenda pamalo ogwiritsira ntchito kumasula, yomwe imapereka mawonekedwe apamwamba pa mawonekedwe a kernel;

    • M'makina otsata zochitika mu FS fanotify() anawonjezera kuthandizira pakutsata ma superblock ndi kusintha kwa zinthu mbali (zochitika popanga, kufufuta ndi kusuntha mayendedwe). Zomwe zawonetsedwazi zimathandizira kuthetsa zovuta zomwe zimachitika popanga kutsata kosintha kobwereza pamafayilo akulu kwambiri pogwiritsa ntchito inotify mechanism (zosintha zenizeni zitha kutsatiridwa kale kudzera mu inotify, koma
      magwiridwe antchito pakutsata kobwerezabwereza kwa maulalo akulu omwe ali ndi zisa zatsala pang'ono kufunidwa). Tsopano kuwunika kotereku kutha kuchitidwa bwino kudzera pa fanotify;

    • Pa fayilo ya Btrfs anawonjezera Kutha kusintha mulingo woponderezedwa wa zstd aligorivimu, yomwe imatha kuonedwa ngati kunyengerera koyenera pakati pa lz4 yofulumira koma yosagwira ntchito komanso yopanikizira pang'onopang'ono koma yabwino xz. Poyerekeza ndi momwe zinalili zotheka kukhazikitsa mulingo wopondereza mukamagwiritsa ntchito zlib, chithandizo cha "-o compress=zstd:level" chokwera chawonjezedwa pa zstd. Pa kuyezetsa, osachepera mlingo woyamba anapereka deta psinjika ndi nthawi 2.658 ndi psinjika liwiro 438.47 MB/s, decompression liwiro 910.51 MB/s ndi kukumbukira mowa 780 MB, ndi pazipita mlingo 15 anapereka 3.126 nthawi, koma ndi psinjika. liwiro la 37.30 MB/s kumasula 878.84 MB/s ndi kukumbukira kukumbukira 2547 MB;
    • Zowonjezedwa Kutha kuyambitsa kuchokera pamafayilo omwe ali pa chipangizo chamapper, osagwiritsa ntchito initramfs. Kuyambira ndi kutulutsidwa kwa kernel komweko, zida zamamapi a zida zitha kugwiritsidwa ntchito mwachindunji panthawi yoyambira, mwachitsanzo, ngati gawo ndi mizu yamafayilo. Gawoli limakonzedwa pogwiritsa ntchito chizindikiro cha boot "dm-mod.create". Ma module omwe amaloledwa kutsitsa ndi awa: "crypt", "kuchedwa", "linear", "snapshot-origin" ndi "verity";
    • Mbendera ya F2FS_NOCOW_FL yawonjezeredwa ku fayilo ya F2FS yoyang'ana ku Flash drives, yomwe imakulolani kuti muyimitse mawonekedwe a kukopera-kulemba kwa fayilo yoperekedwa;
    • Fayilo yachotsedwa ku kernel Exofs, yomwe ndi yosiyana ndi ext2, yosinthidwa kuti igwire ntchito ndi OSD (Object-based Storage Device) yosungirako zinthu. Thandizo la protocol ya SCSI yazida zosungira zinthu zotere zachotsedwanso;
  • Virtualization ndi Chitetezo
    • Onjezani PR_SPEC_DISABLE_NOEXEC njira ya prctl() kuti muwongolere kachitidwe kongoganizira kachitidwe kosankhidwa. Njira yatsopano imakupatsani mwayi wosankha kuletsa kuphedwa kongoyerekeza kwa njira zomwe zitha kuwukiridwa ndi Specter attack. Loko limatha mpaka kuyitanira koyamba kuchita ();
    • Module ya LSM yokhazikika SafeSetID, yomwe imalola ntchito zamakina kuti ziziyang'anira mosamala ogwiritsa ntchito popanda mwayi wokulirapo (CAP_SETUID) komanso osapeza mwayi woyambira. Mwayi umaperekedwa ndi kufotokozera malamulo mu zotetezedwa kutengera mndandanda woyera wa zomangira zovomerezeka (mu mawonekedwe "UID1: UID2");
    • Kusintha kwapang'onopang'ono kofunikira pakutsitsa motengera ma module achitetezo (LSMs). Tinayambitsa njira ya "lsm" kernel boot kuti muwongolere ma module omwe amakwezedwa ndi dongosolo lotani;
    • Thandizo la malo amafayilo awonjezedwa ku kachitidwe kakang'ono ka kafukufuku;
    • Zokulitsidwa luso la GCC plugin structleak, lomwe limakupatsani mwayi wotsekereza kutayikira kwa zomwe zili mkati mwa kukumbukira.
  • Network subsystem
    • Za soketi zakhazikitsidwa njira yatsopano "SO_BINDTOIFINDEX" yofanana ndi
      "SO_BINDTODEVICE", koma kutenga ngati mkangano nambala yolozera ya mawonekedwe a netiweki m'malo mwa dzina la mawonekedwe;

    • Stack ya mac80211 yawonjezera kuthekera kopereka ma BSSID angapo (ma adilesi a MAC) ku chipangizo chimodzi. Monga gawo la pulojekiti yopititsa patsogolo magwiridwe antchito a WiFi, stack ya mac80211 yawonjezera kuwerengera nthawi ya airtime komanso kuthekera kogawa ma airtime pakati pa masiteshoni angapo (pamene ikugwira ntchito polowera, kugawa nthawi yocheperako kuti muchepetse masiteshoni opanda zingwe, m'malo mogawa nthawi molingana pakati pa onse. masiteshoni);
    • Njira yowonjezera "devlink thanzi", yomwe imapereka zidziwitso pakachitika zovuta ndi intaneti;
  • Memory ndi ntchito zadongosolo
    • Zakhazikitsidwa Kutumiza kotetezedwa komwe kumalola kugwiritsa ntchitonso PID. Mwachitsanzo, poyimba kupha m'mbuyomu, zinthu zitha kuchitika pomwe, atangotumiza chizindikiro, chandamale cha PID chikhoza kumasulidwa chifukwa cha kutha kwa njira ndikugwiridwa ndi njira ina, ndipo chizindikirocho chimatha kuperekedwa kunjira ina. Kuti muchotse zinthu zotere, pulogalamu yatsopano yoyimba pidfd_send_signal yawonjezedwa, yomwe imagwiritsa ntchito zofotokozera mafayilo kuchokera ku /proc/pid kuti zitsimikizire kukhazikika kokhazikika. Ngakhale PID ikugwiritsidwanso ntchito panthawi ya kuyitana kwadongosolo, fayilo yofotokozera sichidzasintha ndipo ingagwiritsidwe ntchito mosamala kutumiza chizindikiro ku ndondomekoyi;
    • Zowonjezedwa Kutha kugwiritsa ntchito zida zokumbukira nthawi zonse (kulimbikira-kukumbukira, mwachitsanzo NVDIMM) monga RAM. Mpaka pano, kernel idathandizira zida monga zida zosungira, koma tsopano zitha kugwiritsidwanso ntchito ngati RAM yowonjezera. Mbaliyi ikugwiritsidwa ntchito potsatira zofuna za ogwiritsa ntchito omwe akufuna kupirira ndipo akufuna kugwiritsa ntchito Linux kernel memory management API m'malo mogwiritsa ntchito makina omwe alipo omwe akugwiritsidwa ntchito pamwamba pa mmap kwa dax. wapamwamba;
    • Onjezani chogwirizira chatsopano cha CPU (cpuidle, chimasankha nthawi yomwe CPU ingayikidwe m'njira zozama zosungira mphamvu; kuzama kwa njirayo, kusungitsa ndalama zambiri, komanso nthawi yayitali kuti mutuluke) - TEO (Timer Events Oriented Governor ). Mpaka pano, oyendetsa ma cpuidle awiri aperekedwa - "menyu" ndi "makwerero", akusiyana mu heuristics. Woyang'anira "menyu" amadziwa zovuta pakupanga zisankho zanzeru, kuti athetse zomwe zidaganiziridwa kuti akonzekere chogwirira chatsopano. TEO imayikidwa ngati m'malo mwa "menu" chogwirizira, kulola kuchita bwino kwambiri ndikusunga mphamvu yofananira.
      Mutha kuyambitsa chogwirizira chatsopano pogwiritsa ntchito chizindikiro cha boot "cpuidle.governor=teo";

    • Monga gawo la ntchito kuthetsa mavuto a 2038, yoyambitsidwa ndi kusefukira kwa mtundu wa 32-bit time_t, imaphatikizapo mafoni amtundu omwe amapereka zowerengera nthawi za 32-bit zama 64-bit zomanga. Zotsatira zake, mawonekedwe a 64-bit time_t tsopano atha kugwiritsidwa ntchito pazomanga zonse. Zosintha zofananira zakhazikitsidwanso mu network subsystem pazosankha timestamp sockets network;
    • Munjira yotentha yolumikizira pachimake (patching yamoyo) anawonjezera "Atomic Replace" mawonekedwe ogwiritsira ntchito ma atomu angapo kusintha kwa ntchito imodzi. Izi zimakuthandizani kuti mugawire zigamba zachidule zosintha zingapo nthawi imodzi, m'malo mwa njira yogwiritsira ntchito siteji ndi siteji ya zigamba zamoyo mwatsatanetsatane, zomwe zimakhala zovuta kusunga. Ngakhale kuti m'mbuyomu kusintha kulikonse kunayenera kutengera momwe ntchitoyo ikuyendera pambuyo pa kusintha komaliza, tsopano ndizotheka kufalitsa zosintha zingapo zomwe zimamangiriridwa ku chikhalidwe chimodzi choyamba nthawi imodzi (ie, osamalira amatha kusunga chigamba chimodzi chophatikizika chokhudzana ndi kernel yoyambira m'malo mwake. unyolo wa zigamba zomwe zimadalirana wina ndi mzake);
    • Adalengezedwa kuthandizira kuchotsedwa kwa fayilo ya a.out yogwiritsiridwa ntchito ndi
      kuchotsedwa code yopangira mafayilo amtundu wa a.out, omwe ali m'malo osiyidwa. Mtundu wa a.out sunagwiritsidwe ntchito pamakina a Linux kwa nthawi yayitali, ndipo kupanga mafayilo a.out kwanthawi yayitali sikunathandizidwe ndi zida zamakono zosinthira za Linux. Kuonjezera apo, chojambulira cha mafayilo a.out chikhoza kukhazikitsidwa kwathunthu mu malo ogwiritsira ntchito;

    • Kutha kuzindikira ndikuchotsa kachidindo kosagwiritsidwa ntchito kwawonjezeredwa pamakina otsimikizira pulogalamu ya BPF. Kernel imaphatikizansopo zigamba zokhala ndi chithandizo cha spinlock kwa gawo laling'ono la BPF, kupatsa mphamvu zowonjezera pakuwongolera magwiridwe antchito a BPF;
  • Zida
    • Mu driver wa Nouveau anawonjezera kuthandizira pakuwongolera kukumbukira mosiyanasiyana, kulola CPU ndi GPU kupeza malo omwe amakumbukiridwa. Makina owerengera omwe amagawana nawo (SVM, kukumbukira komwe adagawana) amakhazikitsidwa pamaziko a HMM (Heterogeneous memory management) subsystem, yomwe imalola kugwiritsa ntchito zida ndi mayunitsi awo owongolera kukumbukira (MMU, memory management unit), yomwe imatha kufikira. kukumbukira kwakukulu. Makamaka, pogwiritsa ntchito HMM, mutha kukonza malo omwe ali nawo adilesi pakati pa GPU ndi CPU, momwe GPU imatha kufikira kukumbukira kwakukulu kwa njirayi. Thandizo la SVM pakali pano limathandizidwa ndi a Pascal family GPUs, ngakhale thandizo limaperekedwa kwa Volta ndi Turing GPUs. Komanso, ku Nouveau anawonjezera ioctl yatsopano kuwongolera kusamuka kwa malo okumbukira njira kupita ku kukumbukira kwa GPU;
    • Mu driver wa Intel DRM wa GPU Skylake ndi pambuyo pake (gen9+) kuphatikizapo Mwachikhazikitso, fastboot mode imachotsa kusintha kosafunikira pa boot. Zowonjezedwa Π½ΠΎΠ²Ρ‹Π΅ zozindikiritsira zida zochokera ku Coffelake ndi Ice Lake microarchitectures. Za tchipisi ta Coffelake anawonjezera Thandizo la GVT (GPU virtualization). Kwa ma GPU enieni zakhazikitsidwa Thandizo la VFIO EDID. Kwa mapanelo a LCD MIPI/DSI anawonjezera kuthandizira pazinthu za ACPI/PMIC. Zakhazikitsidwa mitundu yatsopano ya TV 1080p30/50/60 TV;
    • Thandizo lowonjezera la Vega10/20 BACO GPU kwa oyendetsa amdgpu. Kukhazikitsa kasamalidwe ka mphamvu ka Vega 10/20 ndi matebulo oziziritsa ozizira a Vega 10. Onjezani zozindikiritsa zida zatsopano za PCI za Picasso GPU. Awonjezedwa mawonekedwe oyang'anira kudalira kokhazikika kuti mupewe kufa;
    • Awonjezedwa Woyendetsa DRM/KMS wa ma accelerator a skrini ARM Komada (Mali D71);
    • Thandizo lowonjezera la Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 ndi mapepala azithunzi a Kingdisplay kd097d04;
    • Thandizo lowonjezera la Rockchip RK3328, Cirrus Logic CS4341 ndi CS35L36, MediaTek MT6358, Qualcomm WCD9335 ndi Ingenic JZ4725B audio codecs, komanso Mediatek MT8183 audio platform;
    • Thandizo lowonjezera kwa olamulira a NAND Flash STMicroelectronics FMC2, Amlogic Meson;
    • Thandizo la accelerator la Habana AI hardware systems;
    • Thandizo lowonjezera la olamulira a NXP ENETC gigabit Ethernet ndi MediaTek MT7603E (PCIe) ndi MT76x8 opanda zingwe.

Nthawi yomweyo, Latin American Free Software Foundation anapanga
njira kernel yaulere kwathunthu 5.1 - Linux-libre 5.1-gnu, kuchotsedwa kwa firmware ndi zinthu zoyendetsa galimoto zomwe zili ndi zigawo zopanda ufulu kapena zigawo za code, zomwe zimakhala zochepa ndi wopanga. Pakutulutsidwa kwatsopano, kutsitsa kwa blob kumayimitsidwa mu madalaivala a mt7603 ndi goya. Ma code oyeretsera ma blob osinthidwa mu ma driver ndi ma subsystems wilc1000, iwlwifi, soc-acpi-intel, bcmfmac, mwifiex, btmrvl, btmtk ndi touchscreen_dmi. Kuyeretsa kwa Blob mu lantiq xrx200 firmware loader kwayimitsidwa chifukwa chochotsedwa mu kernel.

Source: opennet.ru

Kuwonjezera ndemanga