Hoʻokuʻu ʻo Linux kernel 5.1

Ma hope o ʻelua mahina o ka hoʻomohala ʻana, ʻo Linus Torvalds hoopuka hoʻokuʻu kernel Linux 5.1. Ma waena o nā loli kaulana loa: kahi interface hou no ka asynchronous I/O io_uring, ka hiki ke hoʻohana iā NVDIMM e like me RAM, kākoʻo no ka hoʻomanaʻo virtual virtual i Nouveau, kākoʻo no ka nānā ʻana i nā ʻōnaehana faila nui loa ma o fanotify, ka hiki ke hoʻonohonoho i ka Zstd compression. pae ma Btrfs, he cpuidle TEO mea hoʻohana hou, ka hoʻokō 'ana i nā kelepona pūnaewele e hoʻoponopono i ka pilikia 2038, ka hiki ke hoʻopaʻa 'ia mai nā polokalamu-mapper mea me ka initramfs, SafeSetID LSM module, kākoʻo no ka hui ola patches.

ka papa kuhikuhiE nā mea hou:

  • Subsystem disk, I/O a me nā ʻōnaehana waihona
    • Hoʻokomo ʻia i kahi kikowaena hou no ka I/O asynchronous - io_uring, he mea kaulana ia no kona kākoʻo ʻana i ke koho balota I/O a me ka hiki ke hana me ka pale ʻole a i ʻole. E hoʻomanaʻo mākou ʻaʻole i kākoʻo ʻia ka ʻenehana asynchronous I / O "aio" i hoʻopaʻa ʻia i ka I / O, hiki ke hana ma ke ʻano O_DIRECT (me ka ʻole o ka hoʻopaʻa ʻana a me ke kaʻe ʻana i ka cache), loaʻa nā pilikia me ka laka ma muli o ke kali ʻana i ka loaʻa metadata, a hōʻike i nā kumukūʻai overheads nui ma muli o ke kope ʻana i ka ʻikepili i ka hoʻomanaʻo.

      I loko o ka API
      Ua ho'āʻo nā mea hoʻomohala io_uring e hoʻopau i nā hemahema o ka ʻaoʻao aio kahiko. Na kūlike kokoke loa io_uring SPDK a ʻoi aku ka maikaʻi ma mua o ka libaio i ka hana ʻana me ke koho balota. Ua hoʻomākaukau ʻia kahi waihona no ka hoʻohana ʻana i ka io_uring i nā noi hope e holo ana ma kahi o ka mea hoʻohana hoomaha ana, e hāʻawi ana i kahi kiʻekiʻe kiʻekiʻe ma luna o ka kernel interface;

    • I ka hanana kaʻina hana ma ka FS fanotify() hoʻohui ʻia kākoʻo no ka nānā ʻana i nā kūlana superblock a me ka hoʻololi ʻana pololei (nā hanana o ka hana ʻana, holoi a hoʻoneʻe i nā papa kuhikuhi). ʻO nā hiʻohiʻona i hōʻike ʻia e kōkua i ka hoʻoponopono ʻana i nā pilikia scalability e kū mai ana i ka wā e hana ana i ka huli hoʻololi recursive i nā ʻōnaehana faila nui loa me ka hoʻohana ʻana i ka mīkini inotify (hiki ke nānā ʻia nā hoʻololi ʻokoʻa ma mua o ka inotify, akā.
      ka hana i nā kūlana o ka hoʻopaʻa ʻana i nā papa kuhikuhi nested nui i waiho nui ʻia e makemake ʻia). I kēia manawa hiki ke hana pono ʻia ka nānā ʻana ma o fanotify;

    • Ma ka ʻōnaehana waihona Btrfs hoʻohui ʻia ka hiki ke hoʻopilikino i ka pae hoʻopiʻi no ka zstd algorithm, hiki ke noʻonoʻo ʻia he kuʻikahi maikaʻi loa ma waena o ka lz4 wikiwiki akā maikaʻi ʻole a me ka lohi akā maikaʻi hoʻi xz. Ma ka hoʻohālikelike me pehea i hiki ai ke hoʻonohonoho i ka pae kōmike i ka wā e hoʻohana ai i ka zlib, kākoʻo no ke koho "-o compress = zstd: pae" i hoʻohui ʻia no zstd. I ka wā o ka hoʻāʻo ʻana, hāʻawi ka haʻahaʻa haʻahaʻa mua i ka hoʻopili ʻana i ka ʻikepili e 2.658 mau manawa me ka wikiwiki hoʻopiʻi o 438.47 MB ​​/ s, ka wikiwiki decompression o 910.51 MB / s a ​​me ka hoʻohana ʻana i ka hoʻomanaʻo o 780 MB, a ʻo ka pae kiʻekiʻe 15 i hāʻawi ʻia i nā manawa 3.126, akā me kahi kaomi. ka māmā holo o 37.30 MB/s. wehe i 878.84 MB/s a me ka hoʻohana hoʻomanaʻo 2547 MB;
    • Hoʻohui ʻia ʻO ka hiki ke hoʻopaʻa mai kahi ʻōnaehana faila i loaʻa ma ka polokalamu-mapper device, me ka hoʻohana ʻole ʻana i ka initramfs. E hoʻomaka me ka hoʻokuʻu ʻana o ka kernel i kēia manawa, hiki ke hoʻohana pololei ʻia nā polokalamu-mapper i ka wā o ke kaʻina hana boot, no ka laʻana, ma ke ʻano he ʻāpana me ka ʻōnaehana file root. Hoʻonohonoho ʻia ka ʻāpana me ka hoʻohana ʻana i ka ʻōkuhi boot "dm-mod.create". ʻO nā modules mapper device i ʻae ʻia no ka hoʻouka ʻana: "crypt", "delay", "linear", "snapshot-origin" a me "verity";
    • Ua hoʻohui ʻia ka hae F2FS_NOCOW_FL i ka ʻōnaehana faila F2FS e pili ana i nā flash drive, e hiki ai iā ʻoe ke hoʻopau i ke ʻano kope-ma-kākau no kahi faila i hāʻawi ʻia;
    • Wehe ʻia ka ʻōnaehana waihona mai ka kernel Exofs, he ʻano ʻokoʻa o ext2, i hoʻololi ʻia no ka hana ʻana me ka OSD (Object-based Storage Device) nā waihona mea. Ua wehe pū ʻia ke kākoʻo no ka protocol SCSI no ia mau mea mālama;
  • Virtualization a me ka palekana
    • Hoʻohui ʻia ke koho PR_SPEC_DISABLE_NOEXEC i prctl() e hoʻomalu i ka hoʻokō ʻana i nā kuhikuhi no ke kaʻina hana i koho ʻia. ʻO kahi koho hou e hiki ai iā ʻoe ke hoʻopau i ka hoʻokō speculative no nā kaʻina hana i hiki ke hoʻouka ʻia e kahi hoʻouka Specter. Hoʻomau ka laka a hiki i ke kāhea mua ʻana iā exec();
    • Hoʻokomo ʻia ka module LSM SafeSetID, ka mea e hiki ai i nā lawelawe ʻōnaehana ke mālama pono i nā mea hoʻohana me ka piʻi ʻole o nā pono (CAP_SETUID) a me ka loaʻa ʻole o nā pono kumu. Hāʻawi ʻia nā pono ma ka wehewehe ʻana i nā lula i nā securityfs e pili ana i kahi papa inoa keʻokeʻo o nā mea paʻa kūpono (ma ke ʻano "UID1:UID2");
    • Hoʻohui ʻia nā hoʻololi haʻahaʻa haʻahaʻa e pono ai no ka hoʻouka ʻana o nā modules palekana (LSMs). Hoʻokomo i ka "lsm" kernel boot koho e hoʻokele i nā modules i hoʻouka ʻia a ma ke ʻano he aha;
    • Ua hoʻohui ʻia ke kākoʻo no nā waihona inoa waihona i ka subsystem audit;
    • Hoʻonui ʻia nā mana o ka GCC plugin structleak, ka mea e hiki ai iā ʻoe ke pale i nā leaks o nā mea hoʻomanaʻo.
  • Pūnaehana pūnaewele
    • No nā kumu hoʻokō ʻia koho hou "SO_BINDTOIFINDEX" like me
      "SO_BINDTODEVICE", akā e lawe ana i ka helu kuhikuhi o ke kikowaena pūnaewele ma kahi o ka inoa kikowaena;

    • Ua hoʻohui ka waihona mac80211 i ka hiki ke hāʻawi i nā BSSID he nui (mau helu MAC) i hoʻokahi mea. Ma ke ʻano he papahana no ka hoʻokō ʻana i ka hana WiFi, ua hoʻohui ka mac80211 stack i ka helu airtime a me ka hiki ke puʻunaue i ka manawa ea ma waena o nā kikowaena lehulehu (i ka wā e hana ana ma ke ʻano wahi komo, hoʻokaʻawale i ka manawa hoʻouna liʻiliʻi e hoʻolōʻihi i nā kikowaena uila, ma kahi o ka puʻunaue like ʻana i ka manawa ma waena o nā mea āpau. nā kikowaena);
    • Hoʻohui ʻia ka mīkini "ola kino devlink", e hāʻawi ana i nā leka hoʻomaopopo i ka wā e loaʻa ai nā pilikia me ka pilina pūnaewele;
  • Nā lawelawe hoʻomanaʻo a me nā ʻōnaehana
    • Hoʻokō ʻia ka hāʻawi ʻana i nā hōʻailona palekana e hiki ai ke hoʻohana hou iā PID. No ka laʻana, i ke kāhea ʻana i ka pepehi ma mua, hiki ke kū mai kahi kūlana, ma hope koke o ka hoʻouna ʻana i kahi hōʻailona, ​​​​hiki ke hoʻokuʻu ʻia ka PID i manaʻo ʻia ma muli o ka pau ʻana o ke kaʻina hana a noho ʻia e kekahi kaʻina hana, a e hoʻopau ʻia ka hōʻailona i kahi kaʻina hana ʻē aʻe. No ka hoʻopau ʻana i kēlā ʻano kūlana, ua hoʻohui ʻia kahi ʻōnaehana kelepona hou pidfd_send_signal, e hoʻohana ana i nā faila wehewehe mai /proc/pid e hōʻoia i ka paʻa ʻana o ke kaʻina hana. ʻOiai inā hoʻohana houʻia ka PID i ka wā o ka hoʻoponopono kelepona pūnaewele,ʻaʻole e loli ka mea wehewehe faila a hiki ke hoʻohana ponoʻia e hoʻouna i kahi hōʻailona i ke kaʻina hana;
    • Hoʻohui ʻia ka hiki ke hoʻohana i nā mea hoʻomanaʻo mau (persistent-memory, no ka laʻana NVDIMM) e like me ka RAM. A hiki i kēia manawa, kākoʻo ka kernel i nā mea like me nā mea mālama, akā i kēia manawa hiki ke hoʻohana ʻia e like me ka RAM hou. Hoʻokō ʻia ka hiʻohiʻona i ka pane ʻana i ka makemake o nā mea hoʻohana e makemake e hoʻokau i kahi lag hana a makemake e hoʻohana i ka API hoʻomanaʻo hoʻomanaʻo kernel Linux maoli ma mua o ka hoʻohana ʻana i nā ʻōnaehana hoʻomanaʻo hoʻohana-space e holo nei ma luna o mmap no ka dax waihona;
    • Hoʻohui ʻia kahi mea hoʻohana idle CPU hou (cpuidle, hoʻoholo i ka wā e hiki ai ke hoʻokomo ʻia ka CPU i nā ʻano hoʻopakele mana hohonu; ʻo ka hohonu o ke ʻano, ʻoi aku ka nui o ka mālama ʻana, akā ʻoi aku ka lōʻihi o ka haʻalele ʻana i ke ʻano) - TEO (Timer Events Oriented Governor ). A hiki i kēia manawa, ua manaʻo ʻia ʻelua mau mea hoʻohana cpuidle - "menu" a me "ladder", ʻokoʻa i ka heuristics. Ua ʻike ka mea hoʻokele "menu" i nā pilikia me ka hana ʻana i nā hoʻoholo heuristic, e hoʻopau i ka mea i hoʻoholo ʻia e hoʻomākaukau i kahi mea hana hou. Hoʻonoho ʻia ʻo TEO ma ke ʻano he ʻokoʻa i ka mea hoʻohana "menu", e ʻae ana i ka hana kiʻekiʻe aʻe me ka mālama ʻana i ka pae like o ka hoʻohana mana.
      Hiki iā ʻoe ke hoʻāla i ka mea hoʻohana hou me ka hoʻohana ʻana i ka ʻōkuhi boot "cpuidle.governor=teo";

    • Ma ke ano o ka hana e hoopau nā pilikia o 2038, ma muli o ke kahe nui ʻana o ke ʻano 32-bit time_t, loaʻa nā kelepona ʻōnaehana e hāʻawi ana i nā helu manawa 32-bit no nā hale kiʻi 64-bit. ʻO ka hopena, hiki ke hoʻohana ʻia ka 64-bit time_t structure ma nā hale hana āpau. Ua hoʻokō ʻia nā hoʻololi like i ka subsystem pūnaewele no nā koho ka manawa kuhikuhi nā kumu pūnaewele;
    • I loko o ka ʻōnaehana pale wela no ke kumu (patching ola) hoʻohui ʻia ʻO ka hiʻohiʻona "Atomic Replace" no ka hoʻohana ʻana i kahi ʻano hoʻololi i kahi hana hoʻokahi. Hāʻawi kēia hiʻohiʻona iā ʻoe e puʻunaue i nā ʻāpana hōʻuluʻulu e uhi ana i kekahi mau hoʻololi i ka manawa hoʻokahi, ma kahi o ke kaʻina o ka hoʻohana ʻana i kēlā me kēia ʻanuʻu o nā paʻi ola i kahi kauoha i wehewehe ʻia, he paʻakikī loa ka mālama ʻana. ʻOiai ma mua o kēlā me kēia hoʻololi hope e hoʻokumu ʻia i ke kūlana o ka hana ma hope o ka hoʻololi hope ʻana, hiki i kēia manawa ke hoʻolaha i kekahi mau loli i hoʻopaʻa ʻia i kahi kūlana mua i ka manawa hoʻokahi (ʻo ia hoʻi, hiki i nā mea mālama ke mālama i hoʻokahi patch consolidated e pili ana i ke kumu kumu. o ke kaulahao o na lo'i e hilinai ana kekahi i kekahi );
    • Hoʻolaha ʻia hoʻopau ʻia ke kākoʻo no ke ʻano faila hiki ke hoʻokō ʻia a
      wehe ʻia code no ka hana ʻana i nā faila koʻikoʻi ma ke ʻano a.out, aia ma kahi kūlana haʻalele. ʻAʻole i hoʻohana ʻia ka ʻano a.out ma nā ʻōnaehana Linux no ka manawa lōʻihi, a ua lōʻihi ke kākoʻo ʻole ʻia o nā faila a.out e nā mea hana hou i nā hoʻonohonoho Linux paʻamau. Eia hou, hiki ke hoʻokō ʻia ka mea hoʻoili no nā faila a.out ma kahi o ka mea hoʻohana;

    • Ua hoʻohui ʻia ka hiki ke ʻike a wehe i nā code i hoʻohana ʻole ʻia i ka mīkini hōʻoia papahana BPF. Hoʻokomo pū ka kernel i nā ʻāpana me ke kākoʻo spinlock no ka subsystem BPF, e hāʻawi ana i nā mana hou no ka mālama ʻana i ka hoʻokō like ʻana o nā papahana BPF;
  • Kākoʻo
    • I ke kalaiwa Nouveau hoʻohui ʻia kākoʻo no ka hoʻokele hoʻomanaʻo heterogeneous, e ʻae ana i ka CPU a me GPU e komo i nā wahi hoʻomanaʻo maʻamau. Hoʻokomo ʻia ka ʻōnaehana hoʻomanaʻo virtual share (SVM, shared virtual memory) ma ke kumu o ka subsystem HMM (Heterogeneous memory management), e ʻae ai i ka hoʻohana ʻana i nā polokalamu me kā lākou mau ʻāpana hoʻomanaʻo hoʻomanaʻo (MMU, ʻāpana hoʻomanaʻo hoʻomanaʻo), hiki ke komo. hoʻomanaʻo nui. Ma keʻano kūikawā, me ka hoʻohana ʻana iā HMM, hiki iā ʻoe ke hoʻonohonoho i kahi kikowaena helu ma waena o ka GPU a me ka CPU, kahi e hiki ai i ka GPU ke komo i ka hoʻomanaʻo nui o ke kaʻina hana. Hoʻohana ʻia ke kākoʻo SVM i kēia manawa no nā GPU ʻohana Pascal, ʻoiai hāʻawi ʻia ke kākoʻo no Volta a me Turing GPU pū kekahi. Eia kekahi, ma Nouveau hoʻohui ʻia ioctl hou e hoʻomalu i ka neʻe ʻana o nā wahi hoʻomanaʻo kaʻina i ka hoʻomanaʻo GPU;
    • Ma ka mea hoʻokele Intel DRM no GPU Skylake a ma hope (gen9+) komo Ma ka maʻamau, hoʻopau ke mode fastboot i nā loli pono ʻole i ka wā boot. Hoʻohui ʻia hou nā mea ʻike ma muli o Coffelake a me Ice Lake microarchitectures. No nā ʻāpana Coffelake hoʻohui ʻia Kākoʻo GVT (ʻO ka virtualization GPU). No nā GPU virtual hoʻokō ʻia Kākoʻo VFIO EDID. No nā paneli LCD MIPI/DSI hoʻohui ʻia kākoʻo no nā mea ACPI/PMIC. Hoʻokō ʻia nā ʻano TV hou 1080p30/50/60 TV;
    • Hoʻohui i ke kākoʻo no Vega10/20 BACO GPU i ka mea hoʻokele amdgpu. Hoʻokō ʻia ka mana mana Vega 10/20 a me nā papa hoʻomalu ʻoluʻolu ʻo Vega 10. Ua hoʻohui ʻia nā mea hōʻike manaʻo PCI hou no Picasso GPU. Hoʻohui ʻia interface no ka mālama ʻana i nā mea hilinaʻi i hiki ke hoʻopaʻa ʻia e pale aku i nā deadlocks;
    • Hoʻohui ʻia ʻO ka mea hoʻokele DRM/KMS no nā mea hoʻokele pale ARM Komeda (Mali D71);
    • Hoʻohui i ke kākoʻo no Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 a me Kingdisplay kd097d04 panels;
    • Hoʻohui i ke kākoʻo no Rockchip RK3328, Cirrus Logic CS4341 a me CS35L36, MediaTek MT6358, Qualcomm WCD9335 a me Ingenic JZ4725B leo codecs, a me Mediatek MT8183 leo platform;
    • Kākoʻo hoʻohui ʻia no nā mea hoʻokele NAND Flash STMicroelectronics FMC2, Amlogic Meson;
    • Hoʻohui i ke kākoʻo wikiwiki no nā ʻōnaehana lako Habana AI;
    • Kākoʻo hoʻohui ʻia no NXP ENETC gigabit Ethernet controllers a me MediaTek MT7603E (PCIe) a me MT76x8 mau kikowaena uila.

Ma ka manawa like, ʻo ka Latin American Free Software Foundation hoʻokumu ʻia
koho manuahi ʻole kernel 5.1 - Linux-puka 5.1-gnu, hoʻomaʻemaʻe ʻia i nā mea firmware a me nā mea hoʻokele i loaʻa nā ʻāpana manuahi ʻole a i ʻole nā ​​​​ʻāpana code, ka palena o ia mea i kaupalena ʻia e ka mea hana. I ka hoʻokuʻu hou ʻana, ua pio ka hoʻouka ʻana o ka blob i nā mea hoʻokele mt7603 a me goya. Hoʻoponopono hou ʻia ke code hoʻomaʻemaʻe blob i nā mea hoʻokele a me nā subsystem wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifix, btmrvl, btmtk a me touchscreen_dmi. Ua kāpae ʻia ka hoʻomaʻemaʻe ʻana o ka blob i ka lantiq xrx200 firmware loader ma muli o kona wehe ʻana mai ka kernel.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka