Linux 5.2 kernel release

Pagkatapos ng dalawang buwan ng pag-unlad, si Linus Torvalds ipinakilala pagpapalabas ng kernel Linux 5.2. Kabilang sa mga pinaka-kapansin-pansing pagbabago: Ext4 operating mode ay case-insensitive, hiwalay na mga tawag sa system para sa pag-mount ng file system, mga driver para sa GPU Mali 4xx/ 6xx/7xx, ang kakayahang pangasiwaan ang mga pagbabago sa mga halaga ng sysctl sa mga programa ng BPF, device-mapper module dm-dust, proteksyon laban sa mga pag-atake ng MDS, suporta para sa Sound Open Firmware para sa DSP, pag-optimize ng pagganap ng BFQ, dinadala ang subsystem ng PSI (Pressure Stall Information) sa posibilidad ng paggamit sa Android.

Kasama sa bagong bersyon ang 15100 pag-aayos mula sa 1882 developer,
laki ng patch - 62 MB (naapektuhan ng mga pagbabago ang 30889 na file, 625094 na linya ng code ang naidagdag, 531864 na linya ang tinanggal). Humigit-kumulang 45% ng lahat ng ipinakita sa 5.2
Ang mga pagbabago ay nauugnay sa mga driver ng device, humigit-kumulang 21% ng mga pagbabago ay
saloobin sa pag-update ng code na partikular sa mga arkitektura ng hardware, 12%
nauugnay sa network stack, 3% sa mga file system at 3% sa panloob
mga subsystem ng kernel. 12.4% ng lahat ng pagbabago ay inihanda ng Intel, 6.3% ng Red Hat, 5.4% ng Google, 4.0% ng AMD, 3.1% ng SUSE, 3% ng IBM, 2.7% ng Huawei, 2.7% ng Linaro, 2.2% ng ARM , 1.6 % - Oracle.

Ang pangunahing mga inobasyon:

  • Disk subsystem, I/O at mga file system
    • Idinagdag para sa Ext4 sinusuportahan gumana nang hindi nakikilala ang kaso ng mga character sa mga pangalan ng file, na isinaaktibo lamang na may kaugnayan sa mga indibidwal na walang laman na direktoryo gamit ang bagong katangian na "+F" (EXT4_CASEFOLD_FL). Kapag ang katangiang ito ay nakatakda sa isang direktoryo, ang lahat ng mga operasyon na may mga file at subdirectory sa loob ay isasagawa nang hindi isinasaalang-alang ang kaso ng mga character, kabilang ang kaso ay hindi papansinin kapag naghahanap at nagbubukas ng mga file (halimbawa, ang mga file na Test.txt, test.txt at test.TXT sa naturang mga direktoryo ay ituturing na pareho). Bilang default, ang file system ay patuloy na case-sensitive, maliban sa mga direktoryo na may katangiang "chattr +F";
    • Pinag-isa ang mga function para sa pagproseso ng mga UTF-8 na character sa mga pangalan ng file, na ginagamit kapag nagsasagawa ng paghahambing ng string at normalisasyon;
    • Nagdaragdag ang XFS ng imprastraktura para sa pagsubaybay sa kalusugan ng file system at isang bagong ioctl para sa pagtatanong ng katayuan sa kalusugan. Ang isang pang-eksperimentong tampok ay ipinatupad upang suriin ang mga superblock counter online.
    • Nagdagdag ng bagong module device-mapper "dm-alikabok", na nagpapahintulot sa iyo na gayahin ang hitsura ng masamang mga bloke sa media o mga error kapag nagbabasa mula sa disk. Binibigyang-daan ka ng module na pasimplehin ang pag-debug at pagsubok ng mga application at iba't ibang storage system sa harap ng mga posibleng pagkabigo;
    • Isinagawa Mga makabuluhang pag-optimize ng pagganap para sa BFQ I/O scheduler. Sa mga kondisyon ng mataas na I/O load, ginawa ang mga pag-optimize payagan Bawasan ang oras ng mga operasyon tulad ng paglulunsad ng mga application nang hanggang 80%.
    • Nagdagdag ng serye ng mga system call para sa pag-mount ng mga file system: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() ΠΈ move_mount(). Nagbibigay-daan sa iyo ang mga system call na ito na hiwalay na magproseso ng iba't ibang yugto ng pag-mount (iproseso ang superblock, kumuha ng impormasyon tungkol sa file system, i-mount, i-attach sa mount point), na dati nang isinagawa gamit ang karaniwang mount() system call. Ang mga hiwalay na tawag ay nagbibigay ng kakayahang magsagawa ng mas kumplikadong mga mount scenario at magsagawa ng magkakahiwalay na operasyon gaya ng muling pag-configure ng superblock, pagpapagana ng mga opsyon, pagpapalit ng mount point, at paglipat sa ibang namespace. Bilang karagdagan, ang hiwalay na pagpoproseso ay nagbibigay-daan sa iyo upang tumpak na matukoy ang mga dahilan para sa output ng mga error code at magtakda ng maraming mga mapagkukunan para sa mga multi-layer na file system, tulad ng mga overlay;
    • Ang isang bagong operasyon na IORING_OP_SYNC_FILE_RANGE ay naidagdag sa interface para sa asynchronous na I/O io_uring, na nagsasagawa ng mga pagkilos na katumbas ng isang tawag sa system sync_file_range(), at ipinatupad din ang kakayahang magrehistro ng eventfd sa io_uring at makatanggap ng mga abiso tungkol sa pagkumpleto ng mga operasyon;
    • Para sa CIFS file system, idinagdag ang FIEMAP ioctl, na nagbibigay ng mahusay na pagma-map sa lawak, pati na rin ang suporta para sa SEEK_DATA at SEEK_HOLE mode;
    • Sa FUSE subsystem iminungkahi API para sa pamamahala ng data caching;
    • Na-optimize ng Btrfs ang pagpapatupad ng qgroups at pinahusay ang bilis ng pagpapatupad ng fsync para sa mga file na may maraming mga hard link. Ang data integrity check code ay napabuti, na ngayon ay isinasaalang-alang ang posibleng pinsala sa impormasyon sa RAM bago i-flush ang data sa disk;
    • Nagdagdag ang CEPH ng suporta para sa pag-export ng mga snapshot sa pamamagitan ng NFS;
    • Ang pagpapatupad ng pag-mount ng NFSv4 sa "soft" mode ay napabuti (kung ang isang error ay nangyari sa pag-access sa server sa "soft" mode, isang tawag upang agad na ibalik ang isang error code, at sa "hard" mode na kontrol ay hindi ibinigay hanggang sa FS ang availability o timeout ay naibalik). Ang bagong release ay nagbibigay ng mas tumpak na paghawak sa timeout, mas mabilis na pag-recover ng pag-crash, at isang bagong opsyon sa pag-mount na "softerr" na nagbibigay-daan sa iyong baguhin ang error code (ETIMEDOUT) na ibinalik kapag nagkaroon ng timeout;
    • Ang nfsdcld API, na idinisenyo upang subaybayan ang estado ng mga kliyente ng NFS, ay nagbibigay-daan sa NFS server na subaybayan nang tama ang estado ng kliyente sa pag-reboot. Kaya, ang nfsdcld daemon ay maaari na ngayong kumilos bilang isang nfsdcltrack handler;
    • Para sa AFS idinagdag emulation ng byte range lock sa mga file (Pag-lock ng Byte Range);
  • Virtualization at Seguridad
    • Ang trabaho ay ginawa upang alisin ang mga lugar sa kernel na nagbibigay-daan sa pagpapatupad ng code mula sa nasusulat na mga lugar ng memorya, na nagpapahintulot sa pagharang sa mga potensyal na butas na maaaring pinagsamantalahan sa panahon ng isang pag-atake;
    • Ang isang bagong parameter ng command line ng kernel na "mitigations=" ay naidagdag, na nagbibigay ng isang pinasimpleng paraan upang makontrol ang pagpapagana ng ilang mga diskarte upang maprotektahan laban sa mga kahinaan na nauugnay sa speculative execution ng mga tagubilin sa CPU. Ang pagpasa sa "mitigations=off" ay hindi pinapagana ang lahat ng umiiral na pamamaraan, at ang default na mode na "mitigations=auto" ay nagbibigay-daan sa proteksyon ngunit hindi nakakaapekto sa paggamit ng Hyper Threading. Ang "mitigations=auto,nosmt" mode ay hindi rin pinapagana ang Hyper Threading kung kinakailangan ng paraan ng proteksyon.
    • Idinagdag suporta para sa electronic digital signature ayon sa GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), binuo ni Vitaly Chikunov mula sa Basalt SPO. Nagdagdag ng suporta para sa AES128-CCM sa katutubong pagpapatupad ng TLS. Nagdagdag ng suporta para sa mga algorithm ng AEAD sa crypto_simd module;
    • Sa Kconfig idinagdag isang hiwalay na seksyon ng "kernel hardening" na may mga opsyon para mapahusay ang proteksyon ng kernel. Sa kasalukuyan, ang bagong seksyon ay naglalaman lamang ng mga setting para sa pagpapagana ng GCC check-enhancing plugin;
    • Ang kernel code ay halos naihatid mula sa mga pahayag na hindi sumisira sa kaso sa switch (nang walang pagbabalik o break pagkatapos ng bawat bloke ng kaso). Nananatili itong ayusin ang 32 sa 2311 na mga kaso ng naturang paggamit ng switch, pagkatapos nito ay posible na gamitin ang mode na "-Wimplicit-fallthrough" kapag binubuo ang kernel;
    • Para sa arkitektura ng PowerPC, ipinatupad ang suporta para sa mga mekanismo ng hardware para sa paglilimita sa mga hindi gustong kernel access path sa data sa espasyo ng user;
    • Nagdagdag ng blocking code mga pag-atake MDS (Microarchitectural Data Sampling) class sa mga Intel processor. Maaari mong suriin kung ang isang system ay mahina sa mga kahinaan sa pamamagitan ng SysFS variable na β€œ/sys/devices/system/cpu/vulnerabilities/mds”. Magagamit na dalawang mode ng proteksyon: puno, na nangangailangan ng na-update na microcode, at bypass, na hindi ganap na ginagarantiyahan ang pag-clear ng mga buffer ng CPU kapag inilipat ang kontrol sa espasyo ng user o sa guest system. Upang makontrol ang mga mode ng proteksyon, ang parameter na "mds=" ay idinagdag sa kernel, na maaaring kunin ang mga halaga na "buo", "buo, nosmt" (+ huwag paganahin ang Hyper-Threads) at "off";
    • Sa mga sistema ng x86-64, idinagdag ang proteksyon ng "stack guard-page" para sa IRQ, mga mekanismo ng pag-debug at mga exception handler, ang esensya nito ay ang pagpapalit ng mga pahina ng memorya sa hangganan ng stack, ang pag-access na humahantong sa pagbuo ng isang exception (page-fault);
    • Idinagdag ang setting ng sysctl vm.unprivileged_userfaultfd, na kumokontrol sa kakayahan ng mga hindi karapat-dapat na proseso na gamitin ang userfaultfd() system call;
  • Subsystem ng network
    • Idinagdag Suporta sa IPv6 gateway para sa mga ruta ng IPv4. Halimbawa, maaari mo na ngayong tukuyin ang mga panuntunan sa pagruruta tulad ng "ip ro add 172.16.1.0/24 sa pamamagitan ng inet6 2001:db8::1 dev eth0";
    • Para sa ICMPv6, ang mga ioctl na tawag sa icmp_echo_ignore_anycast at icmp_echo_ignore_multicast ay ipinatupad upang huwag pansinin ang ICMP ECHO para sa anycast at
      mga multicast na address. Idinagdag ang kakayahang limitahan ang intensity ng ICMPv6 packet processing;

    • Para sa BATMAN (Better Approach To Mobile Adhoc Networking) mesh protocol, na nagpapahintulot sa paglikha ng mga desentralisadong network kung saan ang bawat node ay konektado sa pamamagitan ng mga kalapit na node, idinagdag suporta para sa pagsasahimpapawid mula sa multicast hanggang unicast, pati na rin ang kakayahang kontrolin sa pamamagitan ng sysfs;
    • Sa ethtool dagdag pa isang bagong parameter ng Mabilis na Link Down, na nagbibigay-daan sa iyong bawasan ang oras na kinakailangan upang makatanggap ng impormasyon tungkol sa isang link down na kaganapan para sa 1000BaseT (sa ilalim ng normal na mga kondisyon ang pagkaantala ay hanggang 750ms);
    • Nagpakita pagkakataon pagbibigkis ng mga tunnel ng Foo-Over-UDP sa isang partikular na address, interface ng network o socket (ang dating pag-binding ay ginawa lamang ng isang karaniwang maskara);
    • Sa wireless stack ibinigay posibilidad ng pagpapatupad ng mga humahawak
      OWE (Opportunistic Wireless Encryption) sa espasyo ng gumagamit;

    • Sa Netfilter, idinagdag ang suporta para sa pamilya ng inet address sa mga nat chain (halimbawa, maaari ka na ngayong gumamit ng isang panuntunan sa pagsasalin upang iproseso ang ipv4 at ipv6, nang hindi pinaghihiwalay ang mga panuntunan para sa ipv4 at ipv6);
    • Sa netlink dagdag pa mode mahigpit para sa mahigpit na pagpapatunay ng kawastuhan ng lahat ng mga mensahe at katangian, kung saan ang inaasahang laki ng mga katangian ay hindi pinapayagang lumampas at ang pagdaragdag ng karagdagang data sa dulo ng mga mensahe ay ipinagbabawal;
  • Mga serbisyo ng memorya at system
    • Ang CLONE_PIDFD flag ay idinagdag sa clone() system call, kapag tinukoy, ang file descriptor na "pidfd" na tinukoy sa ginawang proseso ng bata ay ibabalik sa proseso ng magulang. Ang file descriptor na ito, halimbawa, ay maaaring gamitin upang magpadala ng mga signal nang walang takot na tumakbo sa isang kondisyon ng karera (kaagad pagkatapos ipadala ang signal, ang target na PID ay maaaring mapalaya dahil sa pagwawakas ng proseso at inookupahan ng isa pang proseso);
    • Para sa pangalawang bersyon ng mga cgroup, idinagdag ang functionality ng freezer controller, kung saan maaari kang huminto sa trabaho sa isang cgroup at pansamantalang palayain ang ilang mga mapagkukunan (CPU, I/O, at potensyal na memorya) upang maisagawa ang iba pang mga gawain. Ang pamamahala ay ginagawa sa pamamagitan ng cgroup.freeze at cgroup.events control files sa cgroup tree. Ang entry 1 sa cgroup.freeze ay nag-freeze ng mga proseso sa kasalukuyang cgroup at lahat ng grupo ng bata. Dahil ang pagyeyelo ay tumatagal ng ilang oras, isang karagdagang cgroup.events file ay ibinigay kung saan maaari mong malaman ang tungkol sa pagkumpleto ng operasyon;
    • Secured pag-export ng mga katangian ng memorya na naka-attach sa bawat node sa sysfs, na nagbibigay-daan sa iyo upang matukoy mula sa espasyo ng gumagamit ang likas na katangian ng pagproseso ng mga bangko ng memorya sa mga system na may heterogenous na memorya;
    • Ang subsystem ng PSI (Pressure Stall Information) ay napabuti, na nagbibigay-daan sa iyong pag-aralan ang impormasyon tungkol sa oras ng paghihintay para sa pagtanggap ng iba't ibang mapagkukunan (CPU, memorya, I/O) para sa ilang partikular na gawain o hanay ng mga proseso sa isang cgroup. Gamit ang PSI, mas tumpak na matatantya ng mga tagapangasiwa ng espasyo ng user ang antas ng pag-load ng system at mga pattern ng pagbagal kumpara sa Load Average. Ang bagong bersyon ay nagbibigay ng suporta para sa pagtatakda ng mga threshold ng sensitivity at ang kakayahang gamitin ang poll() na tawag upang makatanggap ng abiso na ang mga nakatakdang threshold ay na-trigger para sa isang tiyak na tagal ng panahon. Ang tampok na ito ay nagbibigay-daan sa Android na subaybayan ang mga kakulangan sa memorya sa isang maagang yugto, tukuyin ang pinagmulan ng mga problema at wakasan ang mga hindi mahalagang application nang hindi nagdudulot ng mga problema na kapansin-pansin sa user. Kapag nagsusuri ng stress, ang mga tool sa pagsubaybay sa pagkonsumo ng memorya na nakabatay sa PSI ay nagpakita ng 10 beses na mas kaunting mga maling positibo kumpara sa mga istatistika ng vmpressure;
    • Ang code para sa pagsuri sa mga programa ng BPF ay na-optimize, na nagbibigay-daan sa pagsuri ng hanggang 20 beses na mas mabilis para sa malalaking programa. Ginawang posible ng pag-optimize na itaas ang limitasyon sa laki ng mga programa ng BPF mula 4096 hanggang sa isang milyong mga tagubilin;
    • Para sa mga programa ng BPF ipinagkaloob ang kakayahang ma-access ang pandaigdigang data, na nagbibigay-daan sa iyo upang tukuyin ang mga pandaigdigang variable at constants sa mga programa;
    • Idinagdag API, na nagpapahintulot sa iyo na kontrolin ang mga pagbabago sa mga parameter ng sysctl mula sa mga programa ng BPF;
    • Para sa arkitektura ng MIPS32, isang JIT compiler para sa eBPF virtual machine ang ipinatupad;
    • Para sa 32-bit na arkitektura ng PowerPC, idinagdag ang suporta para sa tool sa pag-debug ng KASan (Kernel address sanitizer), na tumutulong sa pagtukoy ng mga error kapag nagtatrabaho gamit ang memorya;
    • Sa mga x86-64 system, ang paghihigpit sa paglalagay ng mga state dump sa panahon ng pag-crash ng kernel (crash-dump) sa mga lugar ng memorya sa itaas ng 896MB ay inalis;
    • Para sa arkitektura ng s390, ang suporta para sa kernel address space randomization (KASLR) at ang kakayahang mag-verify ng mga digital na lagda kapag naglo-load ng kernel sa pamamagitan ng kexec_file_load() ay ipinatupad;
    • Para sa arkitektura ng PA-RISC, nagdagdag ng suporta para sa kernel debugger (KGDB), mga jump mark at kprobes;
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Kasama ang driver Lima para sa Mali 400/450 GPU, na ginagamit sa maraming mas lumang chips batay sa arkitektura ng ARM. Para sa mga mas bagong Mali GPU, idinagdag ang Panfrost driver, na sumusuporta sa mga chips batay sa Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) at Bifrost (Mali G3x, G5x, G7x) microarchitectures;
    • Nagdagdag ng suporta para sa mga audio device gamit ang bukas na firmware Tunog Buksan ang Firmware (KAYA). Sa kabila ng pagkakaroon ng mga bukas na driver, ang firmware code para sa sound chips ay nanatiling sarado at ibinigay sa binary form. Ang proyekto ng Sound Open Firmware ay binuo ng Intel upang lumikha ng bukas na firmware para sa mga DSP chip na nauugnay sa pagpoproseso ng audio (ang Google ay sumali rin sa pag-unlad). Sa kasalukuyan, inihanda na ng proyekto ang pagtuklas ng firmware para sa mga sound chip ng Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake at IceLake platform;
    • Ang driver ng Intel DRM (i915) ay nagdaragdag ng suporta para sa mga chips
      Elkhartlake (Gen11). Nagdagdag ng mga PCI ID para sa Comet Lake (Gen9) chips. Ang suporta para sa Icelake chips ay na-stabilize, kung saan ang mga karagdagang PCI device identifier ay naidagdag din.
      Nakabukas
      mode ng asynchronous na paglipat sa pagitan ng dalawang buffer sa memorya ng video (async flip) kapag nagsasagawa ng mga write operation sa pamamagitan ng mmio, na makabuluhang nagpapataas ng performance ng ilang 3D application (halimbawa, ang performance sa 3DMark Ice Storm test ay tumaas ng 300-400%). Nagdagdag ng suporta sa teknolohiya HDCP2.2 (High-bandwidth Digital Content Protection) para sa pag-encrypt ng mga signal ng video na ipinadala sa pamamagitan ng HDMI;

    • Ang amdgpu driver para sa Vega20 GPU idinagdag suporta para sa RAS (Reliability, Availability, Serviceability) at pang-eksperimentong suporta para sa subsystem ng SMU 11, na pumalit sa teknolohiya ng Powerplay. Para sa GPU Vega12 idinagdag suporta para sa BACO mode (Bus Active, Chip Off). Nagdagdag ng paunang suporta para sa XGMI, isang high-speed bus (PCIe 4.0) para sa GPU interconnection. Nagdagdag ng mga nawawalang identifier para sa mga card batay sa Polaris10 GPU sa amdkfd driver;
    • Ang driver ng Nouveau ay nagdagdag ng suporta para sa mga board batay sa NVIDIA Turing 117 chipset (TU117, na ginamit sa GeForce GTX 1650). SA
      kconfig idinagdag setting na huwag paganahin ang mga hindi na ginagamit na function na hindi na ginagamit sa mga kasalukuyang release ng libdrm;

    • Ang suporta para sa mga bagay sa pag-synchronize ng "timeline" ay idinagdag sa DRM API at sa amdgpu driver, na nagbibigay-daan sa iyong gawin nang walang klasikong pagharang.
    • Ang vboxvideo driver para sa VirtualBox virtual GPU ay inilipat mula sa staging branch patungo sa pangunahing istraktura;
    • Nagdagdag ng aspeed driver para sa GFX SoC ASPEED chip;
    • Nagdagdag ng suporta para sa ARM SoC at Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, , Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi ) mga board 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).

Kasabay nito, ang Latin American Free Software Foundation nabuo
pagpipilian ganap na libreng kernel 5.2 - Linux-libre 5.2-gnu, na-clear sa firmware at mga elemento ng driver na naglalaman ng mga di-libreng bahagi o mga seksyon ng code, na ang saklaw ay limitado ng tagagawa. Kasama sa bagong release ang pag-upload ng file
Sound Open Firmware. Ang pag-load ng mga blobs sa mga driver ay hindi pinagana
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp at ucsi_ccg. Na-update ang blob cleaning code sa ixp4xx, imx-sdma, amdgpu, nouveau at goya driver at subsystem, pati na rin sa dokumentasyon ng microcode. Huminto sa paglilinis ng mga patak sa driver ng r8822be dahil sa pagtanggal nito.

Pinagmulan: opennet.ru

Magdagdag ng komento