Kutulutsidwa kwa kernel ya Linux 5.7

Pambuyo pa miyezi iwiri ya chitukuko, Linus Torvalds anayambitsa kutulutsidwa kwa kernel Linux 5.7. Zina mwazosintha zodziwika bwino: kukhazikitsidwa kwatsopano kwa fayilo ya exFAT, gawo la bareudp lopanga ngalande za UDP, chitetezo chozikidwa pa kutsimikizika kwa pointer kwa ARM64, kuthekera kophatikizira mapulogalamu a BPF kwa othandizira LSM, kukhazikitsa kwatsopano kwa Curve25519, kugawanika- lock detector, BPF yogwirizana ndi PREEMPT_RT, kuchotsa malire pa kukula kwa mzere wa zilembo 80 mu code, poganizira zizindikiro za kutentha kwa CPU mu ndondomeko ya ntchito, kutha kugwiritsa ntchito clone () kupanga njira mu gulu lina, kuteteza ku kulemba. kukumbukira pogwiritsa ntchito userfaultfd.

Mtundu watsopanowu ukuphatikiza zosintha 15033 kuchokera kwa opanga 1961,
kukula kwa chigamba - 39 MB (zosintha zidakhudza mafayilo 11590, mizere 570560 yamakhodi,
297401 mizere yachotsedwa). Pafupifupi 41% ya onse operekedwa mu 5.7
zosintha zokhudzana ndi madalaivala a chipangizo, pafupifupi 16% ya zosintha ndizo
malingaliro okhudza kukonzanso kachidindo kamangidwe ka hardware, 13%
zokhudzana ndi stack network, 4% ku machitidwe amafayilo ndi 4% mkati
kernel subsystems.

waukulu zatsopano:

  • Disk Subsystem, I/O ndi File Systems
    • Kukhazikitsa kwatsopano kwa driver wa exFAT, anakhazikitsidwa kutengera ma code "sdfat" (2.x) omwe alipo pano opangidwa ndi Samsung pama foni ake am'manja a Android. Dalaivala yemwe adawonjezedwa kale ku kernel adatengera nambala ya Samsung (mtundu 1.2.9) ndipo anali pafupifupi 10% kumbuyo kwa dalaivala watsopano pakuchita. Tikumbukire kuti kuwonjezera thandizo la exFAT ku kernel kudatheka pambuyo pa Microsoft losindikizidwa zapagulu ndikupanga ma patent a exFAT kuti agwiritsidwe ntchito kwaulere pa Linux.
    • Btrfs imagwiritsa ntchito lamulo latsopano la ioctl() - BTRFS_IOC_SNAP_DESTROY_V2, lomwe limakupatsani mwayi wochotsa kachigawo ndi chizindikiritso chake. Thandizo lathunthu la ma cloning inline makulidwe amaperekedwa. Chiwerengero cha malo oletsa ntchito zogawiranso chakulitsidwa, zomwe zachepetsa kudikirira kwakanthawi pochita lamulo la 'balance cancel'. Kutsimikiza kwa ma backlinks mpaka kumlingo kwafulumizitsa (mwachitsanzo, nthawi yoyeserera script yatsika kuchokera pa ola limodzi mpaka mphindi zingapo). Anawonjezera luso angagwirizanitse wapamwamba extents aliyense inode ya mtengo. Dongosolo lotsekereza lomwe limagwiritsidwa ntchito polembera magawo ang'onoang'ono komanso osaphatikiza NOCOW lakonzedwanso. Kuchita bwino kwa fsync kachitidwe kamitundu.
    • XFS yasintha kuwunika kwa metadata ndi fsck pamagawo omwe akugwira ntchito. Laibulale yaperekedwa kuti imangenso zida za btree, zomwe mtsogolomo zidzagwiritsidwa ntchito kukonzanso xfs_repair ndikukhazikitsanso mwayi wochira popanda kutsitsa magawowo.
    • Thandizo loyesera pakuyika magawo osinthika mu SMB3 storages yawonjezedwa ku CIFS. Kukhazikitsa POSIX zowonjezera ku readdir, zofotokozedwa mu SMB3.1.1. Kulemba bwino kwamasamba a 64KB pamene cache=strict mode yayatsidwa ndipo mitundu ya protocol 2.1+ imagwiritsidwa ntchito.
    • FS EXT4 yasamutsidwa kuchoka ku bmap ndi iopoll kupita ku iomap.
    • F2FS imapereka chithandizo chosankha pakukanika kwa data pogwiritsa ntchito zstd algorithm. Mwachikhazikitso, algorithm ya LZ4 imagwiritsidwa ntchito popanikiza. Thandizo lowonjezera la lamulo la "chattr -c commit". Chiwonetsero cha nthawi yokwera chimaperekedwa. Onjezani ioctl F2FS_IOC_GET_COMPRESS_BLOCKS kuti mudziwe zambiri za kuchuluka kwa midadada yopanikizidwa. Adawonjezera kutulutsa kwa data ya compression kudzera pa statx.
    • Dongosolo la fayilo la Ceph lawonjezera kuthekera kopanga mafayilo akomweko ndikuchotsa (kuchotsa) osadikirira kuyankha kuchokera kwa seva (kugwira ntchito mosagwirizana). Kusintha, mwachitsanzo, kumatha kupititsa patsogolo magwiridwe antchito mukamagwiritsa ntchito rsync.
    • Kutha kugwiritsa ntchito ma virtiofs ngati fayilo yapamwamba kwambiri yawonjezedwa ku OVERLAYFS.
    • Zalembedwanso path traversal code mu VFS, nambala yofananira yolumikizira yasinthidwanso, ndipo mount point traversal yalumikizidwa.
    • Mu scsi subsystem kwa ogwiritsa ntchito opanda mwayi kuloledwa kutsata malamulo a ZBC.
    • Mu dm_writecache zakhazikitsidwa kuthekera kochotsa pang'onopang'ono posungira kutengera max_age parameter, yomwe imayika nthawi yayitali ya moyo wa block.
    • Mu dm_integrity anawonjezera kuthandizira ntchito ya "kutaya".
    • Mu null_blk anawonjezera kuthandizira m'malo mwa zolakwika kuti muyese zolephera pakuyesa.
    • Zowonjezedwa Kutha kutumiza zidziwitso za udev za kusintha kwa kukula kwa chipangizocho.
  • Network subsystem
    • Netfilter ikuphatikizidwa kusintha, kufulumizitsa kwambiri kukonza mndandanda wamasewera akuluakulu (ma seti a nftables), omwe amafunikira kuyang'ana kaphatikizidwe ka subnets, madoko a netiweki, ma protocol ndi ma adilesi a MAC.
      Zowonjezera anayambitsa mu gawo la nft_set_pipapo (PIle PAcket POlicies), lomwe limathetsa vuto lofananiza zomwe zili mu paketi yokhala ndi magawo osasinthika omwe amagwiritsidwa ntchito posefera, monga ma IP ndi ma network port ranges (nft_set_rbtree ndi nft_set_hash amawongolera kufananitsa kwanthawi ndikuwonetsa molunjika za mikhalidwe. ). Mtundu wa pipapo vectorized pogwiritsa ntchito malangizo a 256-bit AVX2 pamakina okhala ndi purosesa ya AMD Epyc 7402 adawonetsa kuwonjezeka kwa magwiridwe antchito a 420% polemba zolemba 30 kuphatikiza kuphatikiza ma doko-protocol. Kuwonjezeka poyerekeza kuphatikizika kwa subnet ndi nambala ya doko pogawa zolemba 1000 kunali 87% kwa IPv4 ndi 128% kwa IPv6.

    • Awonjezedwa bareudp module, yomwe imakulolani kuti muphatikize ma protocol osiyanasiyana a L3, monga MPLS, IP ndi NSH, mumsewu wa UDP.
    • Kuphatikizika kwa zigawo za MPTCP (MultiPath TCP), kukulitsa kwa protocol ya TCP yokonzekera kugwiritsa ntchito kulumikizana kwa TCP ndi kutumiza mapaketi nthawi imodzi m'njira zingapo kudzera munjira zosiyanasiyana zolumikizirana ndi ma adilesi osiyanasiyana a IP, kwapitilira.
    • Zowonjezedwa kuthandizira njira zothamangitsira ma hardware zopangira mafelemu a Ethernet mu 802.11 (Wi-Fi).
    • Mukasamutsa chipangizo kuchokera ku netiweki ina kupita ku ina, ufulu wofikira ndi umwini wa mafayilo ofananira mu sysfs amasinthidwa.
    • Yawonjezera kuthekera kogwiritsa ntchito mbendera ya SO_BINDTODEVICE kwa ogwiritsa ntchito omwe alibe mizu.
    • Gawo lachitatu la zigamba lavomerezedwa, kusintha zida za ethtool kuchokera ku ioctl () kugwiritsa ntchito mawonekedwe a netlink. Mawonekedwe atsopanowa amapangitsa kuti zikhale zosavuta kuwonjezera zowonjezera, kuwongolera kuwongolera zolakwika, kulola kuti zidziwitso zitumizidwe pamene dziko likusintha, kumathandizira kulumikizana pakati pa kernel ndi malo ogwiritsa ntchito, ndikuchepetsa kuchuluka kwa mindandanda yotchulidwa yomwe ikufunika kulumikizidwa.
    • Anawonjezera luso logwiritsa ntchito ma accelerator apadera a hardware kuti achite ntchito zotsatizana.
    • Mu netfilter anawonjezera mbedza yolumikizira magulu a mapaketi otuluka (egress), omwe amakwaniritsa mbedza yomwe inalipo kale pamapaketi obwera (ingress).
  • Virtualization ndi Chitetezo
    • Kukhazikitsa kwa hardware kwa kutsimikizika kwa pointer (Chizindikiro cha Pointer), yomwe imagwiritsa ntchito malangizo apadera a ARM64 CPU kuti atetezere ku ziwopsezo pogwiritsa ntchito njira zobwerera (ROP), momwe wowukirayo samayesa kuyika code yake kukumbukira, koma amagwira ntchito pamakina a malangizo omwe alipo kale m'malaibulale odzaza, kutha. ndi malangizo obwerera. Chitetezo chimabwera pogwiritsa ntchito siginecha ya digito kutsimikizira maadiresi obwerera pamlingo wa kernel. Siginecha imasungidwa muzitsulo zapamwamba zosagwiritsidwa ntchito pa pointer yokha. Mosiyana ndi kukhazikitsa mapulogalamu, kupanga ndi kutsimikizira siginecha digito kumachitika pogwiritsa ntchito malangizo apadera a CPU.
    • Zowonjezedwa Kutha kuteteza malo okumbukira kuti asalembe pogwiritsa ntchito foni ya userfaultfd (), yopangidwira kuthana ndi zolakwika zamasamba (kufikira masamba osakumbukira) pamalo ogwiritsira ntchito. Lingaliro ndikugwiritsa ntchito userfaultfd() onse kuti azindikire zosokoneza zopezeka pamasamba olembedwa kuti atetezedwa ndikuyitanitsa chothandizira chomwe chingayankhe pamayesero oterowo (mwachitsanzo, kuthana ndi zosintha panthawi yopanga zithunzi zamoyo zomwe zikuyenda, boma. jambulani potaya zotayika zokumbukira ku diski, kugwiritsa ntchito kukumbukira komwe mudagawana, kutsatira kusintha kwamakumbukidwe). Kachitidwe ofanana pogwiritsa ntchito mprotect() molumikizana ndi SIGSEGV chowongolera chizindikiro, koma imagwira ntchito mwachangu.
    • SELinux yasiya "checkreqprot" parameter, yomwe imakulolani kuti muyimitse macheke a chitetezo cha kukumbukira pamene mukukonza malamulo (kulola kugwiritsa ntchito malo okumbukira kukumbukira, mosasamala kanthu za malamulo omwe atchulidwa m'malamulo). Ma symlink a Kernfs amaloledwa kuti alowe m'malo omwe amalozera makolo awo.
    • The zikuchokera kuphatikizapo gawo KRSI, zomwe zimakulolani kuti muphatikize mapulogalamu a BPF ku mbedza za LSM mu kernel. Kusinthaku kumakupatsani mwayi wopanga ma module a LSM (Linux Security Module) mu mawonekedwe a mapulogalamu a BPF kuti muthane ndi zovuta zowunikira komanso kuwongolera kovomerezeka.
    • Zidachitidwa Imakulitsa magwiridwe antchito a /dev/mwachisawawa poyimitsa ma CRNG m'malo moyimbira malangizo a RNG payekhapayekha. Kuchita bwino kwa getrandom ndi /dev/random pamakina a ARM64 opereka malangizo a RNG.
    • Kukhazikitsidwa kwa elliptic curve Curve25519 m'malo kwa njira kuchokera ku laibulale Zotsatira HACL, kuti kupatsidwa umboni wamasamu wotsimikizira kudalirika kovomerezeka.
    • Awonjezedwa makina odziwitsa zamasamba aulere a kukumbukira. Pogwiritsa ntchito makinawa, machitidwe a alendo amatha kutumiza zambiri zamasamba omwe sagwiritsidwanso ntchito ku makina osungira, ndipo wolandirayo akhoza kubweza deta ya tsamba.
    • Mu vfio/pci anawonjezera kuthandizira kwa SR-IOV (Muzu Wokha I/O Virtualization).
  • Memory ndi ntchito zadongosolo
    • Kuyambira 80 mpaka 100 zilembo kuchuluka malire pa utali wochuluka wa mzere m'malemba oyambira. Panthawi imodzimodziyo, opanga akulangizidwabe kuti azikhala mkati mwa zilembo 80 pamzere uliwonse, koma izi sizilinso malire ovuta. Kuphatikiza apo, kupitilira malire a kukula kwa mzere tsopano kubweretsa chenjezo lomanga pokhapokha ngati checkpatch ikuyendetsedwa ndi njira ya '--strict'. Kusinthaku kumapangitsa kuti zisasokoneze opanga mapulogalamu kusokoneza ndi mipata ndikukhala omasuka kwambiri mukagwirizanitsa ma code, komanso zidzaletsa kusweka kwambiri kwa mzere, zosokoneza kuzindikira ndi kusaka.
    • Zowonjezedwa kuthandizira kwa EFI yosakanikirana ya boot mode, yomwe imakulolani kukweza 64-bit kernel kuchokera ku 32-bit firmware yomwe ikuyenda pa 64-bit CPU popanda kugwiritsa ntchito bootloader yapadera.
    • Yayatsidwa dongosolo lozindikiritsa ndi kukonza maloko ogawanika ("kugawa loko"), zomwe zimachitika mukapeza deta yosasinthika m'makumbukidwe chifukwa chakuti pochita malangizo a atomiki, deta imadutsa mizere iwiri ya cache ya CPU. Kutsekereza kotereku kumabweretsa kugunda kwakukulu (kuzungulira kwa 1000 pang'onopang'ono kuposa ntchito ya atomiki pa data yomwe imagwera pamzere umodzi wa cache). Kutengera "split_lock_detect" boot parameter, kernel imatha kuzindikira maloko otere pa ntchentche ndikupereka machenjezo kapena kutumiza chizindikiro cha SIGBUS ku pulogalamu yomwe imayambitsa loko.
    • Wopanga ntchitoyo amapereka kutsata kwa masensa a kutentha (Thermal Pressure) ndikugwiritsidwa ntchito poganizira kutentha kwambiri poyika ntchito. Pogwiritsa ntchito ziwerengero zomwe zaperekedwa, bwanamkubwa wotentha amatha kusintha ma frequency a CPU akatenthedwa, ndipo wokonza ntchitoyo tsopano akuganizira za kuchepa kwa mphamvu zamakompyuta chifukwa cha kuchepa kwafupipafupi kotereku pokonzekera ntchito kuti ziyendetsedwe (kale, wokonza ntchitoyo adayankha zosintha). pafupipafupi ndi kuchedwa kwinakwake, kwakanthawi kupanga zisankho motengera malingaliro ochulukirachulukira azinthu zamakompyuta zomwe zilipo).
    • Wopanga ntchito akuphatikizapo zizindikiro zosasintha kutsata katundu, kukulolani kuti muyese molondola katunduyo, mosasamala kanthu kuti CPU ikugwira ntchito pafupipafupi bwanji. Kusinthaku kumakupatsani mwayi wolosera molondola momwe ntchito zimakhalira pansi pakusintha kwamphamvu kwamagetsi ndi ma frequency a CPU. Mwachitsanzo, ntchito yomwe idadya 1/3 yazinthu za CPU pa 1000 MHz idzadya 2/3 yazinthuzo pomwe ma frequency akutsikira mpaka 500 MHz, yomwe m'mbuyomu idapanga lingaliro labodza kuti ikuyenda mokwanira (ie ntchito zidawoneka. chokulirapo kwa ndandanda pokhapokha pochepetsa pafupipafupi, zomwe zidapangitsa kuti zisankho zolakwika zipangidwe mu kazembe wa schedutil cpufreq).
    • Dalaivala wa Intel P-state, yemwe ali ndi udindo wosankha njira zogwirira ntchito, wasinthidwa kuti agwiritse ntchito anayankha.
    • Kutha kugwiritsa ntchito kagawo kakang'ono ka BPF pomwe kernel ikugwira ntchito munthawi yeniyeni (PREEMPT_RT) yakhazikitsidwa. M'mbuyomu, PREEMPT_RT itayatsidwa, BPF idafunikira kuyimitsidwa.
    • Mtundu watsopano wa pulogalamu ya BPF wawonjezedwa - BPF_MODIFY_RETURN, yomwe imatha kulumikizidwa ndi ntchito mu kernel ndikusintha mtengo womwe wabwezedwa ndi ntchitoyi.
    • Zowonjezedwa mwayi Kugwiritsa ntchito foni ya clone3 () kupanga njira mu gulu lomwe ndi losiyana ndi gulu la makolo, kulola njira ya makolo kuti igwiritse ntchito zoletsa ndikuyambitsa kuwerengera ndalama pambuyo poyambitsa njira yatsopano kapena ulusi. Mwachitsanzo, woyang'anira ntchito akhoza kugawa mwachindunji mautumiki atsopano kuti alekanitse magulu, ndipo njira zatsopano, zikaikidwa m'magulu "ozizira", zidzayimitsidwa nthawi yomweyo.
    • ku Kbuild anawonjezera kuthandizira kusintha kwa chilengedwe "LLVM=1" kuti musinthe ku Clang/LLVM toolkit pomanga kernel. Zofunikira za mtundu wa binutils zakwezedwa (2.23).
    • Gawo /sys/kernel/debug/kunit/ lawonjezeredwa ku debugfs ndi zotsatira za mayeso a kunit.
    • Wowonjezera kernel boot parameter pm_debug_messages (yofanana ndi /sys/power/pm_debug_messages), yomwe imathandizira kutulutsa chidziwitso chokhudza momwe magwiridwe antchito amagwirira ntchito (zothandiza pakuthetsa mavuto ndi hibernation ndi standby mode).
    • Kwa mawonekedwe asynchronous I/O io_kunena thandizo anawonjezera chigawo () ΠΈ kusankha kwa bafa ya atomiki.
    • Kupititsa patsogolo mbiri yamagulu pogwiritsa ntchito zida za perf. M'mbuyomu, perf amangogwira ntchito mugulu linalake ndipo sakanatha kudziwa kuti ndi gulu liti lomwe chitsanzo chapano chili. perf tsopano imatenganso zidziwitso zamagulu pachitsanzo chilichonse, kukulolani kuti mulembe gulu limodzi ndikugwiritsa ntchito kusanja
      phatikizani ma report.

    • cgroupfs, pseudo-FS yoyang'anira magulu, yawonjezera chithandizo chazikhumbo zowonjezera (xattrs), zomwe, mwachitsanzo, mukhoza kusiya zambiri kwa ogwira ntchito mu malo ogwiritsira ntchito.
    • Mu cgroup memory controller anawonjezerandi kuthandizira chitetezo chobwerezabwereza cha mtengo wa "memory.low", umene umayang'anira kuchuluka kwa RAM komwe kumaperekedwa kwa mamembala a gulu. Mukayika gulu lotsogola ndi njira ya "memory_recursiveprot", mtengo wa "memory.low" womwe wakhazikitsidwa m'magawo apansi udzagawidwa kokha ku ma node onse a ana.
    • Awonjezedwa Uacce (Unified/User-space-access-intended Accelerator Framework) yogawana maadiresi (SVA, Shared Virtual Addressing) pakati pa CPU ndi zipangizo zotumphukira, kulola ma accelerator a hardware kuti azitha kupeza ma data mu CPU yayikulu.
  • Zomangamanga za Hardware
    • Pamamangidwe a ARM, kuthekera kotenga kukumbukira kumayendetsedwa.
    • Pazomangamanga za RISC-V, chithandizo cha plugging otentha ndikuchotsa ma CPU (CPU hotplug) yawonjezedwa. Kwa 32-bit RISC-V, eBPF JIT imakhazikitsidwa.
    • Kutha kugwiritsa ntchito makina a 32-bit ARM kuyendetsa malo ochezera a KVM kwachotsedwa.
    • Yachotsa "dummy" NUMA kukhazikitsa kwa zomangamanga za s390, zomwe palibe milandu yogwiritsira ntchito yomwe idapezeka kuti ikwaniritse bwino ntchito.
    • Kwa ARM64, chithandizo chowonjezera cha AMU (Activity Monitors Unit), chomwe chimafotokozedwa mu ARMv8.4 ndikupereka zowerengera za magwiridwe antchito zomwe zimagwiritsidwa ntchito kuwerengera ma frequency owongolera masitepe mu ndandanda ya ntchito.
  • Zida
    • Zowonjezedwa kuthandizira pazida za vDPA zomwe zimagwiritsa ntchito njira yosinthira deta yomwe imagwirizana ndi mafotokozedwe a virtio. Zipangizo za vDPA zitha kukhala zida zolumikizidwa mwakuthupi kapena zida zotsatiridwa ndi mapulogalamu.
    • Mu GPIO subsystem adawonekera lamulo latsopano la ioctl () lowunikira kusintha, kukulolani kuti mudziwitse ndondomeko ya kusintha kwa mzere uliwonse wa GPIO. Monga chitsanzo chogwiritsa ntchito lamulo latsopano akufuna gpio-wotchi yothandiza.
    • Mu dalaivala wa i915 DRM wa makadi avidiyo a Intel kuphatikiza Thandizo losasinthika la tchipisi ta Tigerlake ("Gen12") ndikuwonjezera chithandizo choyambirira cha kuwongolera ma backlight a OLED. Thandizo labwino la Ice Lake, Elkhart Lake, Baytrail ndi tchipisi ta Haswell.
    • Mu driver wa amdgpu anawonjezera Kutha kutsitsa firmware mu USBC chip ya ASIC. Thandizo labwino la tchipisi ta AMD Ryzen 4000 "Renoir". Tsopano pali chithandizo chowongolera mapanelo a OLED. Kuwonetsa mawonekedwe a firmware mu debugfs.
    • Kutha kugwiritsa ntchito OpenGL 4 pamakina a alendo awonjezedwa ku vmwgfx DRM driver pa VMware virtualization systems (kale OpenGL 3.3 inkathandizidwa).
    • Onjezani ma driver atsopano a DRM pamawonekedwe a TI Keystone.
    • Madalaivala owonjezera a mapanelo a LCD: Feixin K101 IM2BA02, Samsung s6e88a0-ams452ef01, Novatek NT35510, Elida KD35T133, EDT, NewEast Optoelectronics WJFH116008A, Rocktech RKDFR101D01 Frieda.
    • Ku dongosolo loyang'anira mphamvu anawonjezera kuthandizira pa nsanja ya Intel Jasper Lake (JSL) yochokera ku Atom.
    • Thandizo lowonjezera la laputopu ya Pinebook Pro kutengera Rockchip RK3399, Pine64 PineTab piritsi ndi foni yamakono PinePhone zochokera ku Allwinner A64.
    • Thandizo lowonjezera la ma codec atsopano ndi tchipisi:
      Amlogic AIU, Amlogic T9015, Texas Instruments TLV320ADCX140, Realtek RT5682, ALC245, Broadcom BCM63XX I2S, Maxim MAX98360A, Presonus Studio 1810c, MOTU MicroBook IIc.

    • Zowonjezera zothandizira ma board a ARM ndi nsanja Qualcomm Snapdragon 865 (SM8250), IPQ6018, NXP i.MX8M Plus, Kontron β€œsl28”, 11 i.MX6 TechNexion Pico zosankha za board, njira zitatu zatsopano za Toradex Colibri, Samsung S7710 Galaxy Xcover 2 zochokera ST -Ericsson u8500, DH Electronics DHCOM SoM ndi PDK2, Renesas M3ULCB, Hoperun HiHope, Linutronix Testbox v2, PocketBook Touch Lux 3.

Source: opennet.ru

Kuwonjezera ndemanga