Mwepụta kernel Linux 5.3

Mgbe ọnwa abụọ nke mmepe gasịrị, Linus Torvalds webatara ntọhapụ kernel Linux 5.3. N'ime mgbanwe ndị a ma ama: nkwado maka AMD Navi GPUs, ndị na-emepụta Zhaoxi na Intel Speed ​​​​Select ike njikwa teknụzụ, ikike iji ntuziaka umwait chere na-enweghị iji okirikiri,
Ọnọdụ 'utilization clamping' na-abawanye mmekọrịta maka CPU asymmetric, pidfd_open usoro oku, ikike iji adreesị IPv4 sitere na 0.0.0.0/8 subnet, ohere nke nftables ngwaike ngwaike, HDR nkwado na DRM subsystem, ntinye nke ACRN. hypervisor.

В ọkwa ntọhapụ ọhụrụ, Linus chetara ndị mmepe niile nke isi iwu nke mmepe kernel - idowe otu omume maka akụrụngwa-ohere onye ọrụ. Mgbanwe na kernel ekwesịghị n'ụzọ ọ bụla agbaji ngwa na-agba ọsọ ma ọ bụ bute nkwụghachi azụ na ọkwa onye ọrụ. N'okwu a, mmebi nke omume nwere ike ime ka ọ bụghị naanị mgbanwe na ABI, iwepụ koodu oge ochie, ma ọ bụ ọdịdị nke njehie, kamakwa mmetụta na-apụtaghị ìhè nke mmezi bara uru na-arụ ọrụ nke ọma. Dị ka ihe atụ atụ e nwere atụfuo bara uru njikarịcha na koodu Ext4, nke na-ebelata ọnụ ọgụgụ nke ịnweta draịva site n'ịkwụsị tupu ịgụpụta tebụl inode maka obere arịrịọ I/O.

Nkwalite ahụ mere ka eziokwu ahụ bụrụ na, n'ihi mbelata nke ọrụ diski, entropy maka getrandom () random nọmba generator malitere ịgbakọ nwayọọ nwayọọ na ụfọdụ nhazi, n'ọnọdụ ụfọdụ, enwere ike ịhụ freezes n'oge nbudata ruo mgbe ọdọ mmiri entropy dị. jupụtara. Ebe ọ bụ na njikarịcha ahụ bara uru n'ezie, mkparịta ụka bilitere n'etiti ndị mmepe nke a tụrụ aro iji dozie nsogbu ahụ site n'ịgbanyụ ọnọdụ igbochi ndabara nke oku getrandom () na ịgbakwunye ọkọlọtọ nhọrọ iji chere entropy, mana mgbanwe dị otú ahụ ga-emetụta. àgwà nke nọmba random na mmalite ogbo nke loading.

Ụdị ọhụrụ a gụnyere ndozi 15794 sitere na ndị nrụpụta 1974,
patch size - 92 MB (mgbanwe metụtara faịlụ 13986, agbakwunyere ahịrị koodu 258419,
599137 ahịrị wepụrụ). Ihe dị ka 39% nke niile gosipụtara na 5.3
mgbanwe metụtara ndị ọkwọ ụgbọala ngwaọrụ, ihe dịka 12% nke mgbanwe bụ
àgwà maka imelite koodu kpọmkwem maka ụlọ ọrụ ngwaike, 11%
metụtara nchịkọta netwọkụ, 3% na sistemụ faịlụ yana 3% n'ime
kernel subsystems.

Main ihe ọhụrụ:

  • Ebe nchekwa na ọrụ sistemụ
    • Ịga n'ihu na mmepe nke ọrụ 'pidfd' iji nyere aka ijikwa ọnọdụ PID ọzọ ( pidfd na-ejikọta ya na otu usoro na ọ dịghị agbanwe, ebe PID nwere ike jikọta na usoro ọzọ mgbe usoro dị ugbu a jikọtara na PID ahụ kwụsịrị). E tinyeburu ya na kernel
      oku sistemu pidfd_send_signal() yana ọkọlọtọ CLONE_PIDFD dị na clone() oku iji nweta pidfd maka ojiji na idfd_send_signal(). Iji clone() nwere ọkọlọtọ CLONE_PIDFD nwere ike ịkpata nsogbu na ndị njikwa ọrụ ma ọ bụ sistemu ike nkwụsị ike nke ikpo okwu gam akporo. N'okwu a, a na-eji oku na-aga ndụdụ () ma ọ bụ clone() na-enweghị CLONE_PIDFD malite.

      Kernel 5.3 webatara oku sistemụ pidfd_open(), nke na-enye gị ohere ịnweta pidfd nke a na-enyocha maka usoro na-enweghị isi nke na-emepụtaghị site na ịkpọ clone() ya na ọkọlọtọ CLONE_PIDFD. Agbakwunyekwara nkwado maka ntuli aka pidfd site na iji ntuli aka () na epoll (), nke na-enye ndị njikwa usoro ohere soro nkwụsị nke usoro aka ike na-enweghị atụ egwu ọnọdụ agbụrụ ma ọ bụrụ na ekenye PID na usoro ọhụrụ. Usoro maka ịkọwapụta mgbe usoro ejikọtara na pidfd kwụsịrị yiri ịkọ mgbe usoro nwa ya kwụsịrị;

    • agbakwunyere nkwado maka usoro ntinye ibu na onye nhazi ọrụ (Mkpọchi ojiji), na-enye gị ohere ịrapagidesi ike na oke opekempe ma ọ bụ karịa, dabere na ọrụ ndị na-arụ ọrụ na CPU. Usoro a gosipụtara na-eme ka ọrụ dị ngwa na-emetụta ogo ahụmịhe onye ọrụ site na ịme ọrụ ndị a opekata mpe na njedebe ala nke ugboro "arịrịọ". A na-ewepụta ọrụ ndị dị ala nke na-adịghị emetụta ọrụ onye ọrụ site na iji oke elu nke ugboro "ekwe". A na-edozi oke site na sched_uclamp_util_min na sched_uclamp_util_max àgwà na sched_setattr() usoro oku.
    • Nkwado agbakwunyere maka teknụzụ njikwa ike Nhọrọ ọsọ ọsọ Intel, dị na ahọpụtara sava nwere Intel Xeon processors. Nkà na ụzụ a na-enye gị ohere ịtọ ntọala arụmọrụ na nkebi nkebi maka cores CPU dị iche iche, nke na-enye gị ohere ịkwado ọrụ maka ọrụ ndị a na-arụ na ụfọdụ cores, na-achụ àjà na cores ndị ọzọ;
    • Usoro na oghere onye ọrụ enyere ikike ichere obere oge na-ejighi loops site na iji ntuziaka umwait. A ga-enye ntụziaka a, yana ntụziaka umonitor na tpause na Intel's chips "Tremont" na-abịa, ma na-enye ohere maka mmejuputa nke igbu oge na-arụ ọrụ ike ma ghara imetụta arụmọrụ nke eriri ndị ọzọ mgbe ị na-eji Hyper Threading;
    • Maka ihe owuwu RISC-V, agbakwunyere nkwado maka ibe nchekwa buru ibu;
    • Usoro nchọta kprobes agbakwunyela ikike ịhapụ ihe nrịbama kernel na oghere onye ọrụ, nke enwere ike iji, dịka ọmụmaatụ, nyochaa ọdịnaya nke ihe owuwu gafere na oku sistemụ. E tinyekwala ikike ịwụnye ndenye ego na ọkwa buut.
    • Agbakwunyere PREEMPT_RT nhọrọ na faịlụ nhazi maka ịrụ ọrụ ozugbo. E tinyebeghị koodu ahụ n'onwe ya iji kwado ọnọdụ ezigbo oge na kernel, mana ọdịdị nke nhọrọ ahụ bụ ezigbo ihe ịrịba ama na epic ogologo oge. mwekota Patches adịgboroja na-eru nso;
    • Agbakwunyere oku usoro clone3 () na mmejuputa ụdị nke nwere ike ịmegharị ihe nke clone () interface, nke na-enye ohere ịkọwapụta ọnụ ọgụgụ buru ibu nke ọkọlọtọ;
    • agbakwunyere bpf_send_signal() njikwa, na-enye ohere mmemme BPF izipu akara na usoro aka ike;
    • Maka ihe omume perf na gburugburu KVM hypervisor, agbakwunyere usoro nzacha ihe omume ọhụrụ, na-enye onye nchịkwa ohere ikpebi ụdị ihe omume ndị a na-ahapụ ma ọ bụ na-ekweghị maka nlekota n'akụkụ usoro ndị ọbịa;
    • Agbakwunyela ikike ịhazi mmemme na loops na usoro nkwenye ngwa eBPF ma ọ bụrụ na ogbugbu nke loop nwere oke na enweghị ike iduga oke oke na ọnụọgụ ntuziaka kacha;
  • Sistemụ Disk, I/O na Sistemụ Faịlụ
    • Sistemụ faịlụ XFS na-akwado ụzọ ngafe inode nwere ọtụtụ eriri (dịka ọmụmaatụ, mgbe ị na-elele oke). Agbakwunyere ioctls ọhụrụ BULKSTAT na INUMBERS, na-enye ohere ịnweta njirimara ndị pụtara na mbipụta nke ise nke usoro FS, dị ka oge ọmụmụ inode na ikike ịtọ ntọala BULKSTAT na INUMBERS maka otu AG ọ bụla (Allocation Groups);
    • Na Ext4 nkwado agbakwunyere voids na akwụkwọ ndekọ aha (nkụkọ enweghị njikọ).
      Enyere nhazi ọkọlọtọ "i" (enweghị ike ịgbanwe) maka faịlụ mepere emepe (amachibidoro ide ihe n'ọnọdụ ma ọ bụrụ na edobere ọkọlọtọ n'oge faịlụ emeghelarị);

    • Btrfs na-enye nkọwa nke mmejuputa ngwa ngwa nke crc32c na ụlọ ọrụ niile;
    • Na CIFS, ewepụla koodu maka nkwado smbdirect dịka mmepe nnwale. SMB3 gbakwunyere ike iji cryptographic algọridim na ọnọdụ GCM. Agbakwunyere nhọrọ ugwu ọhụrụ iji wepụ parampat mode na ndenye ACE (Nbanye Njikwa Nweta). Haziri arụmọrụ nke oku mepere emepe;
    • Agbakwunyere nhọrọ na F2FS iji kpachie onye na-anakọta ihe mkpofu mgbe ọ na-agba ọsọ na nlele = gbanyụọ ọnọdụ. Agbakwunyere ioctl iji wepu oke mgbochi na F2FS, na-enye ohere maka mgbanwe nha nkebi na-efe efe. Agbakwunyere ike idowe faịlụ swap na F2FS iji nye I/O ozugbo. Nkwado agbakwunyere maka itinye faịlụ na ikenye ngọngọ maka faịlụ ndị yiri ya maka ndị ọrụ niile;
    • agbakwunyere nkwado maka arụmọrụ asynchronous sendmsg() na recvmsg() na interface maka ntinye/mpụta asynchronous io_uring;
    • Nkwado maka mkpakọ site na iji zstd algọridim na ikike iji nyochaa onyonyo FS bịanyere aka n'akwụkwọ agbakwunyere na sistemụ faịlụ UBIFS;
    • Ceph FS na-akwado akara nchekwa SELinux maka faịlụ;
    • Maka NFSv4, emejuputala nhọrọ mgbago ọhụrụ “nconnect =”, nke na-ekpebi ọnụọgụ njikọ etinyere na sava ahụ. A ga-ekesa okporo ụzọ n'etiti njikọ ndị a site na iji nhazi ibu. Na mgbakwunye, ihe nkesa NFSv4 ugbu a na-emepụta ndekọ / proc / fs / nfsd / ndị ahịa nwere ozi gbasara ndị ahịa ugbu a, gụnyere ozi gbasara faịlụ ndị ha meghere;
  • Virtualization na Nchekwa
    • kernel gụnyere hypervisor maka ngwaọrụ agbakwunyere ACRN, nke edere ya na anya maka ịdị njikere maka ọrụ ndị dị adị na nke dabara maka iji na usoro ozi-dị mkpa. ACRN na-enye obere ego n'elu, na-ekwe nkwa nkwụsịtụ dị ala yana nzaghachi zuru oke mgbe gị na akụrụngwa na-emekọrịta ihe. Na-akwado virtualization nke CPU akụrụngwa, I/O, netwọk subsystem, ndịna-emeputa na ụda arụmọrụ. Enwere ike iji ACRN rụọ ọtụtụ igwe mebere dịpụrụ adịpụ na ngalaba njikwa eletrọnịkị, dashboards, sistemụ ozi ụgbọ ala, ngwaọrụ IoT ndị ahịa na teknụzụ ndị ọzọ agbakwunyere;
    • N'ụdị onye ọrụ Linux gbakwunyere Ụdị njem oge, nke na-enye gị ohere iji nwayọọ ma ọ bụ mee ka oge dị ngwa na gburugburu UML mebere iji mee ka ọ dịrị gị mfe ịmegharị koodu oge. Na mgbakwunye, etinyela paramita
      oge-njem-mmalite, nke na-enye ohere ka usoro elekere malite site na oge a kapịrị ọnụ na usoro epoch;

    • Nhọrọ ahịrị iwu kernel ọhụrụ “init_on_alloc” na “init_on_free” agbakwunyere, mgbe akọwapụtara ya, a na-eme ka ị nweta ebe nchekwa ekenye na nke ewepụtara n'efu (na-ejuputa na zeros maka malloc na n'efu), nke na-enye ohere maka nchekwa ka ukwuu n'ihi mbido mbido ọzọ;
    • agbakwunyere ọkwọ ụgbọ ala ọhụrụ virtio-iommu na mmejuputa atumatu paravirtualized nke na-enye gị ohere izipu arịrịọ IOMMU dị ka ATTACH, DETACH, MAP na UNMAP n'elu ụgbọ njem virtio na-enweghị iṅomi tebụl ebe nchekwa;
    • agbakwunyere ọkwọ ụgbọ ala ọhụrụ virtio-pmem, na-anọchite anya ịnweta ngwaọrụ nchekwa nke e debere na oghere adreesị anụ ahụ, dị ka NVDIMM;
    • Tinyere ikike ijikọ igodo cryptographic na onye ọrụ ma ọ bụ aha netwọkụ (igodo na-aghọ enweghị ike ịnweta na mpụga aha aha ahọpụtara), yana chekwaa igodo iji ACL;
    • Maka subsystem nke crypto agbakwunyere nkwado maka ngwa ngwa hashing algọridim na-abụghị cryptographic xhash, ọsọ nke na-adabere na arụmọrụ ebe nchekwa;
  • Sistemụ netwọkụ
    • Kwanyere nhazi adreesị IPv4 n'ogo 0.0.0.0/8, nke adịbughị maka ojiji. Okwu mmalite nke subnet a ga-ekwe kesaa adreesị IPv16 nde 4 ọzọ;
    • Na Netfilter maka nftables agbakwunyere nkwado maka usoro ngwa ngwa ngwaike maka nzacha ngwugwu site na iji ndị ọkwọ ụgbọala agbakwunyere API ngọngọ Flow. Enwere ike idobe tebụl dum nke iwu nwere agbụ niile n'akụkụ ihe nkwụnye netwọkụ. Emere ikike site na ijikọ ọkọlọtọ NFT_TABLE_F_HW na tebụl. Na-akwado metadata protocol Layer 3 dị mfe na Layer 4, nabata / jụ omume, eserese site na IP na ọdụ ụgbọ mmiri onye na-ezipụ / nnata na ụdị protocol;
    • agbakwunyere nkwado nsochi njikọ arụnyere maka àkwà mmiri netwọkụ, nke na-achọghị iji br_netfilter emulating oyi akwa;
    • Na nf_tables agbakwunyere nkwado maka SYNPROXY modul, nke na-emegharị ọrụ yiri nke ahụ site na iptables, na ikike ịlele iwu maka nhọrọ onye ọ bụla na nkụnye eji isi mee IPv4;
    • Agbakwunyere ikike ijikọ mmemme BPF na oku sistemu setsockopt() na getsockopt(), nke dịka ọmụmaatụ, na-enye gị ohere itinye ndị na-ahụ maka ohere gị na oku ndị a. Na mgbakwunye, agbakwunyere ebe oku (nko) ọhụrụ, nke ị nwere ike ịhazi oku na mmemme BPF otu ugboro maka oge RTT ọ bụla (oge njem, oge ping);
    • Maka IPv4 na IPv6 gbakwunyere Usoro nchekwa nchekwa data ụzọ nexthop ọhụrụ bụ nke a chọrọ n'ịbawanye scalability nke tebụl ngagharị. Ule gosiri na mgbe ị na-eji usoro ọhụrụ ahụ, a na-ebunye otu ụzọ puku 743 n'ime kernel n'ime naanị 4.3 sekọnd;
    • Maka Bluetooth emejuputa atumatu arụ ọrụ achọrọ iji kwado LE ping;
  • Ngwa
    • agbakwunyere nkwado maka ụlọ ọrụ x86-dakọtara processors Zhaoxin, mepụtara n'ihi ọrụ nkwonkwo n'etiti VIA Teknụzụ na Obodo Shanghai. Ewubere ezinụlọ ZX CPU na ụlọ x86-64 Isaiah, na-aga n'ihu na mmepe nke teknụzụ VIA Centaur;
    • DRM (Direct Rendering Manager) subsystem, yana amdgpu na ndị ọkwọ ụgbọ ala i915, agbakwunyela nkwado maka ịkọwapụta, nhazi na izipu metadata HDR (oke ike dị elu) site na ọdụ ụgbọ mmiri HDMI, na-enye ohere iji HDR panel na ihuenyo nwere ike. na-egosipụta oke nchapụta ndị ọzọ;
    • Onye ọkwọ ụgbọ ala amdgpu agbakwunyela nkwado mbụ maka AMD NAVI GPU (RX5700), nke gụnyere onye ọkwọ ụgbọ ala, koodu mmekọrịta ihuenyo (DCN2), GFX na nkwado gbakọọ (GFX10),
      SDMA 5 (Sistemụ DMA0), njikwa ike na ọtụtụ ihe mkpuchi / decoders (VCN2). amdgpu na-akwalitekwa nkwado maka kaadị dabere na Vega12 na Vega20 GPUs, nke agbakwunyere ebe nchekwa na ikike njikwa ike;

    • Nkwado agbakwunyere maka kaadị dabere na VegaM GPUs na onye ọkwọ ụgbọ ala amdkfd (maka GPU pụrụ iche, dị ka Fiji, Tonga, Polaris);
    • Na onye ọkwọ ụgbọ ala DRM maka kaadị vidiyo Intel maka ibe Icelake emejuputa atumatu ụdị mgbazi gamma ọtụtụ akụkụ ọhụrụ. Agbakwunyere ike iwepụta site na DisplayPort na usoro YCbCr4: 2: 0. agbakwunyere firmware ọhụrụ GuC maka SKL, BXT, KBL, GLK na ICL. E tinyela ikike ịgbanyụ ọkụ ihuenyo na ọnọdụ asynchronous. agbakwunyere nkwado maka ịchekwa na iweghachi ọnọdụ ntụgharị maka Ironlake (gen5) na gen4 (Broadwater - Cantiga), nke na-enye gị ohere iweghachi steeti GPU site na ohere onye ọrụ mgbe ị na-esi n'otu ọrụ batch gaa na nke ọzọ;
    • Onye ọkwọ ụgbọ ala Nouveau na-enye nchọpụta NVIDIA Turing TU116 chipset;
    • Ike nke onye ọkwọ ụgbọ ala DRM/KMS maka ndị na-eme ngwa ngwa ihuenyo ARM Komeda (Mali D71) agbasawanye, nkwado maka scaling, kewaa / jikota n'ígwé, ntụgharị, ide echere, AFBC, SMMU na ụdị ntinye agba Y0L2, P010, YUV420_8/10BIT nwere. a gbakwunyere;
    • Onye ọkwọ ụgbọ ala MSM na-agbakwụnye nkwado maka usoro A540 GPU Adreno ejiri na Qualcomm processors, yana nkwado maka MSM8998 DSI njikwa maka Snapdragon 835;
    • Ndị ọkwọ ụgbọala agbakwunyere maka akụkụ LCD Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS,
      Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 na VXT VL050-8048NT-C01;

    • agbakwunyere onye ọkwọ ụgbọ ala maka ime ka nhọpụta ngwa ngwa ngwa ngwa
      vidiyo dị na Amlogic Meson SoC;

    • Na onye ọkwọ ụgbọ ala v3d (maka Broadcom Video Core V GPU eji na Raspberry Pi) pụtara nkwado na-eziga shaders mgbako;
    • agbakwunyere ọkwọ ụgbọ ala maka ahụigodo SPI na trackpad ejiri na ụdị Apple MacBook na laptọọpụ MacBookPro ọgbara ọhụrụ;
    • agbakwunyere Nchekwa ọzọ maka oku ioctl jikọtara ya na onye ọkwọ ụgbọ ala floppy, yana onye ọkwọ ụgbọ ala n'onwe ya ka edobere dị ka ihe anaghị echekwa ya.
      (“ụmụ mgbei”), nke na-egosi nkwụsị ule ya. A ka na-echekwa ọkwọ ụgbọ ala n'ime kernel, mana anaghị ekwe nkwa ọrụ ya nke ọma. A na-ewere onye ọkwọ ụgbọ ala ahụ ihe mgbe ochie, ebe ọ bụ na ọ na-esiri ike ịchọta akụrụngwa na-arụ ọrụ maka ịnwale ya - draịva mpụga niile dị ugbu a, dịka iwu, jiri interface USB.

    • agbakwunyere cpufreq ọkwọ ụgbọ ala maka bọọdụ Raspberry Pi, nke na-enye gị ohere ijikwa mgbanwe mgbanwe na ugboro ugboro;
    • Nkwado agbakwunyere maka ọhụrụ ARM SoC Mediatek mt8183 (4x Cortex-A73 + 4x Cortex-A53), TI J721E (2x Cortex-A72 + 3x Cortex-R5F + 3 DSPs + MMA) na Amlogic G12B (4x Cortex-A73 + 2x Cortex- A53), yana bọọdụ:
      • Purism Librem5,
      • Aspeed BMC,
      • Microsoft Olympus BMC,
      • Kontron SMRC,
      • Novtech Meerkat96 (i.MX7),
      • ST Micro Avenger96,
      • Google Cheza (Qualcomm SDM845),
      • Qualcomm Dragonboard 845c (Qualcomm SDM845),
      • Igbe Hugsun X99 TV (Rockchip RK3399),
      • Khadas Edge/Edge-V/Captain (Rockchip RK3399),
      • HiHope RZ/G2M,
      • NXP LS1021A-TSN.

N'otu oge ahụ, Latin American Free Software Foundation kpụrụ
nhọrọ kernel n'efu kpamkpam 5.3 - Linux-liber 5.3-gnu, kpochapuru nke ngwa ngwa na ihe ọkwọ ụgbọ ala nwere ihe ndị na-abụghị nke efu ma ọ bụ ngalaba koodu, nke onye nrụpụta na-ejedebe oke ya. Na ntọhapụ ọhụrụ a, agbanyụrụ ibunye blob na qcom, hdcp drm, allegro-dvt na meson-vdec ọkwọ ụgbọala.
Koodu nhicha blob emelitere na ndị ọkwọ ụgbọ ala na subsystems amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, ọkwọ ụgbọ ala maka skylake, yana na akwụkwọ microcode.

isi: opennet.ru

Tinye a comment