Linux 5.9 kjarnaútgáfa

Eftir tveggja mánaða þróun, Linus Torvalds kynnt kjarnaútgáfu Linux 5.9. Meðal athyglisverðustu breytinganna: takmörkun á innflutningi tákna frá séreiningum yfir í GPL einingar, flýta fyrir samhengisskiptaaðgerðum með því að nota FSGSBASE örgjörvaleiðbeiningarnar, stuðningur við kjarnamyndaþjöppun með Zstd, endurvinna forgangsröðun þráða í kjarnanum, stuðningur við PRP. (Parallel Redundancy Protocol), bandbreiddarmeðvituð tímasetning í tímaáætlunartímanum, fyrirbyggjandi pökkun á minnissíðum, getufáni CAP_CHECKPOINT_RESTOR, close_range() kerfiskall, dm-crypt frammistöðubætur, kóða fjarlæging fyrir 32-bita Xen PV gesti, nýtt plötuminni stjórnunarkerfi, valkostur „björgun“ í Btrfs, stuðningur við innbyggða dulkóðun í ext4 og F2FS.

Nýja útgáfan inniheldur 16074 lagfæringar frá 2011 hönnuðum,
plástrastærð - 62 MB (breytingar höfðu áhrif á 14548 skrár, 782155 línum af kóða var bætt við, 314792 línum var eytt). Um 45% allra kynnt í 5.9
breytingar tengjast reklum tækja, um það bil 15% breytinga eru það
viðhorf til uppfærslu kóða sem er sértækur fyrir vélbúnaðararkitektúr, 13%
tengist netstafla, 3% skráarkerfum og 3% innri
kjarna undirkerfi.

Helstu nýjungar:

  • Minni og kerfisþjónusta
    • Hert vörn gegn notkun á GPL lögum til að tengja einkarekendur við kjarnahluta sem eru eingöngu fluttir út fyrir einingar undir GPL leyfinu. TAINT_PROPRIETARY_MODULE fáninn er nú arfur í öllum einingum sem flytja inn tákn frá einingum með þessum fána. Ef GPL-eining reynir að flytja inn tákn úr einingu sem ekki er GPL, þá mun sú GPL-eining erfa TAINT_PROPRIETARY_MODULE-merkið og mun ekki geta fengið aðgang að kjarnahlutum sem eru aðeins tiltækir fyrir GPL-leyfiseiningar, jafnvel þótt einingin hafi áður flutt inn tákn frá flokkinn „gplonly“. Andstæða læsingin (flytur aðeins út EXPORT_SYMBOL_GPL í einingum sem fluttu inn EXPORT_SYMBOL_GPL), sem gæti brotið starf einkarekla, er ekki útfærð (aðeins eignareiningafáninn er arfur, en ekki GPL-bindingarnar).
    • Bætt við kcompactd vélarstuðningur fyrir að forpakka minnissíðum í bakgrunni til að fjölga stórum minnissíðum sem eru tiltækar fyrir kjarnann. Samkvæmt bráðabirgðaáætlunum geta bakgrunnspakkningar, á kostnað lágmarks kostnaðar, dregið úr töfum þegar úthlutað er stórum minnissíðum (stórsíður) um 70-80 sinnum samanborið við áður notaða umbúðabúnað, settur af stað þegar þörf krefur (á eftirspurn). ). Til að setja mörk ytri sundrunarinnar sem kcompactd mun veita hefur sysctl vm.compaction_proactiveness verið bætt við.
    • Bætt við stuðningur við kjarnamyndaþjöppun með því að nota reiknirit zstandard (zstd).
    • Stuðningur við örgjörvaleiðbeiningar hefur verið innleiddur fyrir x86 kerfi FSGSBASE, sem gerir þér kleift að lesa og breyta innihaldi FS/GS skráa úr notendarými. Í kjarnanum er FSGSBASE notað til að flýta fyrir samhengisskiptaaðgerðum með því að útrýma óþarfa MSR skrifaðgerðum fyrir GSBASE og í notendarými forðast það óþarfa kerfiskall til að breyta FS/GS.
    • Bætt við „allow_writes“ færibreytan gerir þér kleift að banna breytingar á MSR skrám örgjörvans úr notendarými og takmarka aðgang að innihaldi þessara skráa til að lesa aðgerðir, þar sem breyting á MSR getur leitt til vandamála. Sjálfgefið er að skrifa er ekki enn óvirkt og breytingar á MSR endurspeglast í skránni, en í framtíðinni er fyrirhugað að skipta sjálfgefinn aðgangi yfir í skrifvarinn hátt.
    • Að ósamstilltu I/O tengi io_úring Bætti við fullum stuðningi fyrir ósamstilltar biðminni lesaðgerðir sem krefjast ekki kjarnaþráða. Búist er við upptökustuðningi í framtíðarútgáfu.
    • Í I/O tímaáætlunarfresti komið til framkvæmda áætlanagerð byggt á getu, leyfa taka réttar ákvarðanir um ósamhverf kerfi eins og ARM-byggð kerfi DynamiIQ og big.LITTLE, sem sameina öfluga og óhagkvæmari orkunýtna örgjörvakjarna í einum flís. Sérstaklega gerir nýja stillingin þér kleift að forðast ósamræmi tímasetningar þegar hægur CPU kjarni hefur ekki viðeigandi úrræði til að klára verkefni á réttum tíma.
    • Orkunotkunarlíkanið í kjarnanum (Energy Model framework) er núna lýsir ekki aðeins CPU orkunotkun hegðun, en einnig nær yfir jaðartæki.
    • Close_range() kerfiskallið hefur verið útfært til að leyfa ferli að loka heilu úrvali opinna skráarlýsinga í einu.
    • Frá útfærslu á texta vélinni og fbcon bílstjóri kóða fjarlægður, sem veitir möguleika á að fletta texta aftur á bak (CONFIG_VGACON_SOFT_SCROLLBACK) um meira en magn af VGA textaminni.
    • Endurhannað reiknirit til að forgangsraða þráðum innan kjarnans. Nýi valkosturinn veitir betra samræmi í öllum kjarna undirkerfum þegar forgangsraðað er í rauntímaverkefni.
    • Bætt við sysctl sched_uclamp_util_min_rt_default til að stjórna örgjörvahækkunarstillingum fyrir rauntímaverkefni (t.d. geturðu breytt hegðun rauntímaverkefna á flugi til að spara orku eftir að skipt er yfir í rafhlöðuorku eða í farsímakerfum).
    • Undirbúningur hefur verið gerður til að innleiða stuðning við Transparent Huge Pages tækni í skyndiminni síðunnar.
    • Fanotify vélin útfærir nýja fána FAN_REPORT_NAME og FAN_REPORT_DIR_FID til að tilkynna foreldrisnafn og einstakar FID upplýsingar þegar sköpun, eyðing eða hreyfingar eiga sér stað fyrir skráaratriði og hluti sem ekki eru í skrá.
    • Fyrir cgroups komið til framkvæmda nýr plötuminni stjórnandi, sem er áberandi fyrir að færa plötubókhald frá minnissíðustigi yfir á kjarnahlutastig, sem gerir það mögulegt að deila plötusíðum í mismunandi cgroups, í stað þess að úthluta sérstökum plötuskyndiminni fyrir hvern cgroup. Fyrirhuguð nálgun gerir það mögulegt að auka skilvirkni notkunar á plötu, minnka stærð minnis sem notað er fyrir plötu um 30-45%, draga verulega úr heildar minnisnotkun kjarnans og draga úr sundrun minni.
    • Í hljóðundirkerfinu ALSA и USB stafla, í samræmi við nýlega samþykkt ráðleggingar um notkun innifalinna hugtaka í Linux kjarnanum; pólitískt röng hugtök voru hreinsuð upp. Kóðinn hefur verið hreinsaður af orðunum "þræll", "meistari", "svartur listi" og "hvíti listi".
  • Sýndarvæðing og öryggi
    • Þegar þú byggir kjarnann með því að nota Clang þýðanda birtist hæfileikinn til að stilla (CONFIG_INIT_STACK_ALL_ZERO) sjálfvirka frumstillingu á núll af öllum breytum sem eru geymdar á staflanum (við smíði, tilgreinið „-ftrivial-auto-var-init=núll“).
    • Í seccomp undirkerfinu, þegar vinnslustýringarhamur er notaður í notendarými, bætt við tækifæri skipting á skráarlýsingum inn í eftirlitsferlið til að líkja að fullu eftir kerfissímtölum sem leiða til þess að búa til skráarlýsingar. Virknin er eftirsótt í einangruðum gámakerfum og sandkassaútfærslum fyrir Chrome.
    • Fyrir xtensa og csky arkitektúrana hefur verið bætt við stuðningi við að takmarka kerfissímtöl með því að nota seccomp undirkerfið. Fyrir xtensa er stuðningur við endurskoðunarkerfi til viðbótar innleiddur.
    • Bætt við nýtt getufáni CAP_CHECKPOINT_RESTORE, sem gerir þér kleift að veita þér aðgang að möguleikum sem tengjast frystingu og endurheimt stöðu ferla án þess að flytja viðbótarréttindi.
    • GCC 11 býður upp á alla þá eiginleika sem þú þarft
      villuleitarverkfæri KCSAN (Kernel Concurrency Sanitizer), hannað til að greina keppnisaðstæður á virkum hætti innan kjarnans. Þannig er nú hægt að nota KCSAN með kjarna byggða í GCC.

    • Fyrir AMD Zen og nýrri CPU gerðir bætt við stuðningur við P2PDMA tækni, sem gerir þér kleift að nota DMA fyrir beinan gagnaflutning á milli minni tveggja tækja sem eru tengd við PCI rútu.
    • Stillingu hefur verið bætt við dm-crypt sem gerir þér kleift að draga úr leynd með því að framkvæma dulmálsgagnavinnslu án þess að nota vinnuraðir. Þessi háttur er einnig nauðsynlegur fyrir rétta notkun með svæðisbundið blokka tæki (tæki með svæði sem verður að skrifa í röð, uppfæra allan hópinn af blokkum). Unnið hefur verið að því að auka afköst og draga úr leynd í dm-crypt.
    • Fjarlægði kóða til að styðja 32-bita gesti sem keyra í paravirtualization ham sem keyra Xen hypervisor. Notendur slíkra kerfa ættu að skipta yfir í að nota 64 bita kjarna í gestaumhverfi eða nota fulla (HVM) eða sameinaða (PVH) sýndarstillingu í stað paravirtualization (PV) til að keyra umhverfi.
  • Diska undirkerfi, I/O og skráarkerfi
    • Á Btrfs skráarkerfinu komið til framkvæmda „björgunar“ festingarvalkostur sem sameinar aðgang að öllum öðrum endurheimtarvalkostum. Stuðningur við valkostina „alloc_start“ og „subvolrootid“ hefur verið fjarlægður og „inode_cache“ valmöguleikinn hefur verið úreltur. Hagræðingar hafa verið gerðar, sérstaklega hraðað framkvæmd fsync() aðgerða verulega. Bætt við hæfni til að nota aðrar tegundir eftirlitssumma en CRC32c.
    • Bætt við getu til að nota inline dulkóðun (Inline Encryption) í ext4 og F2FS skráarkerfum, til að virkja sem „inlinecrypt“ festingarvalkosturinn er veittur. Innbyggð dulkóðunarstilling gerir þér kleift að nota dulkóðunarbúnaðinn sem er innbyggður í drifstýringunni, sem dulkóðar og afkóðar inntak/úttak á gagnsæjan hátt.
    • Í XFS tryggð inode endurstilla (skola) í algjörlega ósamstilltum ham sem hindrar ekki ferla þegar unnið er að minnishreinsun. Leysti langvarandi kvótavandamál sem olli því að viðvaranir um mjúka takmörk og inode mörk voru rangt raktar. Sameinuð útfærsla á DAX stuðningi fyrir ext4 og xfs.
    • Í Ext4 komið til framkvæmda forhlaða blokkaúthlutun bitamyndum. Samhliða því að takmarka skönnun á óforstilltum hópum dró hagræðingin úr þeim tíma sem þarf til að setja upp mjög stóra skipting.
    • Í F2FS bætt við ioctl F2FS_IOC_SEC_TRIM_FILE, sem gerir þér kleift að nota TRIM/discard skipanirnar til að endurstilla líkamlega tilgreind gögn í skrá, til dæmis til að eyða aðgangslyklum án þess að skilja eftir gögn eftir á drifinu.
      Í F2FS líka bætt við nýr sorphirðuhamur GC_URGENT_LOW, sem virkar árásargjarnari með því að útiloka nokkrar athuganir á að vera í aðgerðalausu ástandi áður en sorphirðun er ræst.

    • Í bcache hefur bucket_size fyrir umfang verið stækkað úr 16 í 32 bita til undirbúnings að virkja svæðisbundið skyndiminni tæki.
    • Möguleikinn á að nota innbyggða dulkóðun byggt á innbyggðri vélbúnaðardulkóðun sem UFS stýringar veita hefur verið bætt við SCSI undirkerfið (Alhliða Flash geymsla).
    • Nýrri skipanalínubreytu kjarna „debugfs“ hefur verið bætt við, sem gerir þér kleift að stjórna framboði á gervi-FS með sama nafni.
    • NFSv4.2 biðlarinn veitir stuðning við aukna skráareiginleika (xattr).
    • Í dm-ryki bætt við viðmót til að birta í einu lista yfir allar auðkenndar slæmar blokkir á disknum ("dmsetup message dust1 0 listbadblocks").
    • Fyrir md/raid5 hefur /sys/block/md1/md/stripe_size færibreytunni verið bætt við til að stilla STRIPE blokkastærðina.
    • Fyrir NVMe geymslutæki bætt við stuðningur fyrir skipanir fyrir svæðisskipan drifs (ZNS, NVM Express Zoned Namespace), sem gerir þér kleift að skipta geymsluplássi í svæði sem mynda hópa af blokkum fyrir fullkomnari stjórn á staðsetningu gagna á drifinu.
  • Net undirkerfi
    • Í Netfilter bætt við getu til að hafna pökkum á stigi fyrir leiðarathugun (nú er hægt að nota REJECT tjáninguna ekki aðeins í INPUT, FORWARD og OUTPUT keðjunum, heldur einnig á PREROUTING stiginu fyrir icmp og tcp).
    • Í nftables bætt við getu til að endurskoða atburði sem tengjast stillingarbreytingum.
    • Í nftables í netlink API bætt við stuðningur við nafnlausar keðjur, nafnið sem kjarnanum úthlutar á virkan hátt. Þegar þú eyðir reglu sem tengist nafnlausri keðju er keðjunni sjálfri sjálfkrafa eytt.
    • BPF bætir við stuðningi við endurtekningar til að fara yfir, sía og breyta þáttum í tengdum fylkjum (kortum) án þess að afrita gögn inn í notendarými. Hægt er að nota endurtekningar fyrir TCP og UDP innstungur, sem gerir BPF forritum kleift að endurtaka yfir lista yfir opna innstungur og draga úr þeim upplýsingarnar sem þeir þurfa.
    • Bætti við nýrri gerð af BPF forriti BPF_PROG_TYPE_SK_LOOKUP, sem er ræst þegar kjarninn leitar að viðeigandi hlustunarinnstungu fyrir komandi tengingu. Með því að nota BPF forrit eins og þetta geturðu búið til meðhöndlara sem taka ákvarðanir um hvaða fals tenging ætti að tengjast, án þess að vera takmarkaður af bind() kerfiskallinu. Til dæmis geturðu tengt eina fals við fjölda vistfönga eða tengi. Að auki hefur stuðningi við SO_KEEPALIVE fánann verið bætt við bpf_setsockopt() og möguleikinn á að setja upp BPF_CGROUP_INET_SOCK_RELEASE meðhöndlara, kallaðir þegar falsið er sleppt, hefur verið innleitt.
    • Stuðningur við bókun innleiddur PRP (Parallel Redundancy Protocol), sem gerir Ethernet-undirstaða skiptingu yfir í vararás, gagnsæ fyrir forrit, ef einhver nethluti bilar.
    • Stafla mac80211 bætt við stuðningur við fjögurra þrepa WPA/WPA2-PSK rásarviðræður í aðgangsstaðaham.
    • Bætti við hæfileikanum til að skipta um qdisc (biðröðunarfræði) tímaáætlun til að nota FQ-PIE (Flow Queue PIE) netbiðröð stjórnun reiknirit sjálfgefið, sem miðar að því að draga úr neikvæðum áhrifum millipakkajafna á jaðarnetbúnað (bufferbloat) í netkerfum með kapalmótald.
    • Nýjum eiginleikum hefur verið bætt við MPTCP (MultiPath TCP), framlengingar á TCP samskiptareglum til að skipuleggja rekstur TCP tengingar með afhendingu pakka samtímis eftir nokkrum leiðum í gegnum mismunandi netviðmót sem tengjast mismunandi IP tölum. Bætti við stuðningi við syn-köku, DATA_FIN, sjálfvirka stillingu biðminni, innstungugreiningu og REUSEADDR, REUSEPORT og V6ONLY fánum í setsockopt.
    • Fyrir sýndarleiðartöflur VRF (Virtual Routing and Forwarding), sem gerir kleift að skipuleggja rekstur nokkurra leiðarléna á einu kerfi, hefur „stranga“ hátturinn verið innleiddur. Í þessari stillingu er aðeins hægt að tengja sýndartöflu við leiðartöflu sem er ekki notuð í öðrum sýndartöflum.
    • Þráðlausa bílstjórinn er ath11k bætt við styðja 6GHz tíðni og litrófsskönnun.
  • Оборудование
    • Fjarlægði kóða til að styðja við UniCore arkitektúrinn, þróaður í örgjörvamiðstöð Peking háskólans og innifalinn í Linux kjarnanum árið 2011. Þessum arkitektúr hefur ekki verið viðhaldið síðan 2014 og hefur engan stuðning í GCC.
    • Stuðningur við RISC-V arkitektúr hefur verið innleiddur kcov (kembiforrit viðmót til að greina umfang kjarnakóða), kmemleak (kerfi til að uppgötva minnisleka), staflavörn, stökkmerki og tikklausar aðgerðir (fjölverkavinnsla óháð merkjum tímamælis).
    • Fyrir PowerPC arkitektúrinn hefur stuðningur við spinlock biðraðir verið innleiddur, sem hefur verulega bætt frammistöðu í læsingarátökum.
    • Fyrir ARM og ARM64 arkitektúra er tíðnistjórnunarkerfi örgjörva sjálfgefið virkt tímaáætlun (cpufreq seðlabankastjóri), sem notar beint upplýsingar frá verkefnaáætluninni til að taka ákvörðun um að breyta tíðninni og getur strax fengið aðgang að cpufreq reklanum til að breyta tíðninni fljótt, samstundis aðlaga CPU rekstrarfæribreytur að núverandi álagi.
    • i915 DRM bílstjórinn fyrir Intel skjákort inniheldur stuðning fyrir flís byggða á örarkitektúr eldflaugarvatn og bætti við upphafsstuðningi fyrir stakur kort Intel Xe DG1.
    • Amdgpu bílstjóri bætti við upphafsstuðningi fyrir AMD GPU Navi 21 (Navy Flounder) og Navi 22 (Sienna Cichlid). Bætti við stuðningi við UVD/VCE myndkóðun og afkóðun hröðunarvélar fyrir Suðureyjar GPU (Radeon HD 7000).
      Bætti við eiginleika til að snúa skjánum um 90, 180 eða 270 gráður.

      Athyglisvert er að bílstjórinn fyrir AMD GPU er stærsti bílstjórinn í kjarnanum - hann hefur um það bil 2.71 milljón línur af kóða, sem er um það bil 10% af heildarstærð kjarna (27.81 milljón línur). Á sama tíma er gert ráð fyrir 1.79 milljón línum af sjálfkrafa mynduðum hausskrám með gögnum fyrir GPU skrár, og C-kóði er 366 þúsund línur (til samanburðar inniheldur Intel i915 bílstjórinn 209 þúsund línur og Nouveau - 149 þúsund).

    • Í Nouveau bílstjóri bætt við stuðningur við ramma-fyrir-ramma heilleikaathugun með því að nota CRC (Cyclic offramboð) í NVIDIA GPU skjávélum. Útfærslan er byggð á skjölum frá NVIDIA.
    • Bætt við rekla fyrir LCD spjöld: Frida FRD350H54004, KOE TX26D202VM0BWA, CDTech S070PWS19HP-FC21, CDTech S070SWV29HG-DC44, Tianma TM070JVHG33 og Xingbangda XBD599.
    • ALSA hljóðundirkerfið styður Intel Silent Stream (Stöðug aflstilling fyrir utanaðkomandi HDMI tæki til að koma í veg fyrir töf þegar spilun er hafin) og nýtt tæki til að stjórna lýsingu hljóðnemavirkjunar og hljóðnemahnappa, og bætti einnig við stuðningi við nýjan búnað, þar á meðal stjórnandi Longson 7A1000.
    • Bætt við stuðningi fyrir ARM töflur, tæki og vettvang: Pine64 PinePhone v1.2, Lenovo IdeaPad Duet 10.1, ASUS Google Nexus 7, Acer Iconia Tab A500, Qualcomm Snapdragon SDM630 (notað í Sony Xperia 10, 10 Plus, XA2 og XA2, XA Ultra), Jetson Xavier NX, Amlogic WeTek Core2, Aspeed EthanolX, fimm ný borð byggð á NXP i.MX2, MikroTik RouterBoard 6, Xiaomi Libra, Microsoft Lumia 3011, Sony Xperia Z950, MStar, Microchip Sparx5, Intel Keem Bay, Amazon Alpine v5, Renesas RZ/G3H.

Á sama tíma, Latin American Free Software Foundation myndast
вариант alveg ókeypis kjarna 5.9 - Linux-frítt 5.9-gnu, hreinsaður af vélbúnaðar- og ökumannseiningum sem innihalda ófrjálsa íhluti eða kóðahluta, en umfang þeirra er takmarkað af framleiðanda. Nýja útgáfan slekkur á blobhleðslu í rekla fyrir WiFi rtw8821c og SoC MediaTek mt8183. Uppfærður blobhreinsunarkóði í Habanalabs, Wilc1000, amdgpu, mt7615, i915 CSR, Mellanox mlxsw (Spectrum3), r8169 (rtl8125b-2) og x86 rekla og undirkerfi fyrir snertiskjá.

Heimild: opennet.ru

Bæta við athugasemd