Serbestberdana kernel Linux 5.3

Piştî du mehan pêşveçûnê, Linus Torvalds danasîn berdana kernel Linux 5.3. Di nav guheztinên herî berbiçav de: piştgirî ji bo AMD Navi GPU, pêvajoyên Zhaoxi û teknolojiya rêveberiya hêzê ya Intel Speed ​​Hilbijêre, şiyana karanîna rêwerzên umwait-ê ku bêyî karanîna çerxan li bendê bimîne,
moda 'bikaranîna kelandinê' ji bo CPU-yên asîmetrîk înteraktîfiyê zêde dike, banga pergala pidfd_open, şiyana karanîna navnîşanên IPv4 ji jêrtora 0.0.0.0/8, îhtîmala lezkirina hardware nftables, piştgiriya HDR di bine-pergala DRM de, yekbûna ACRN. hypervisor.

В daxûyanî serbestberdana nû, Linus qaîdeya sereke ya pêşkeftina kernelê bi bîr xist hemû pêşdebiran - parastina heman tevgerê ji bo pêkhateyên cîhê bikarhêner. Guhertinên li kernelê divê bi tu awayî serlêdanên jixwe ve têne xebitandin neşkînin an jî di asta bikarhêner de rê li ber paşveçûnê venekin. Di vê rewşê de, binpêkirina behrê dikare ne tenê bibe sedema guhertinek di ABI de, rakirina koda kevnar, an xuyangkirina xeletiyan, lê di heman demê de bandorek nerasterast a başkirinên kêrhatî yên ku bi rengek rast dixebitin jî çêdike. Wek mînakek berbiçav hebû avêtin bikartê xweşbînîkirin di koda Ext4 de, ku ji bo daxwazên piçûk ên I/O bi neçalakkirina xwendina pêş-xwendina tabloya inode-yê jimara gihîştina ajokerê kêm dike.

Optîmîzekirin bû sedem ku, ji ber kêmbûna çalakiya dîskê, entropiya ji bo jeneratorê hejmarên bêserûber getrandom() hêdî hêdî dest pê kir û di hin veavakirinan de, di bin hin mercan de, di dema barkirinê de sarbûn çêdibe heya ku hewza entropiyê were dîtin. dagirtî. Ji ber ku optimîzasyon bi rastî bikêr e, nîqaşek di nav pêşdebiran de derket ku tê de hate pêşniyar kirin ku pirsgirêk çareser bikin bi neçalakkirina moda astengkirina xwerû ya banga getrandom() û lê zêdekirina ala vebijarkî ku li benda entropiyê bimîne, lê guhertinek weha dê bandorê li ser qalîteya hejmarên rasthatî di qonaxa destpêkê ya barkirinê de.

Guhertoya nû 15794 rastkirinên ji 1974 pêşdebiran vedihewîne,
Mezinahiya patch - 92 MB (guhertin bandor li 13986 pelan kir, 258419 rêzikên kodê lê zêde kirin,
599137 rêz hatin rakirin). Nêzîkî 39% ji hemî di 5.3 de hatî pêşkêş kirin
Guhertin bi ajokarên cîhazê ve girêdayî ne, bi qasî 12% ji guhertinan hene
helwesta li hember nûvekirina koda taybetî ji bo mîmarên hardware, 11%
bi stoka torê ve girêdayî ye, 3% ji pergalên pelan re û 3% ji hundurê
bine sîstemên kernel.

sereke nûbûnên:

  • Xizmetên bîr û pergalê
    • Berdewamkirina pêşkeftina fonksiyona 'pidfd' ji bo ku alîkariya rewşên ji nû ve karanîna PID-ê bike (pidfd bi pêvajoyek taybetî ve girêdayî ye û nayê guheztin, dema ku PID dikare bi pêvajoyek din re têkildar be piştî ku pêvajoya heyî ya ku bi wê PID re bi dawî dibe). Ew berê li kernelê hate zêdekirin
      gazîkirina pergalê pidfd_send_signal() û ala CLONE_PIDFD di klone() de bang dike da ku pidfdek ji bo karanîna di idfd_send_signal() de bistînin. Bikaranîna klone() bi ala CLONE_PIDFD re dikare bibe sedema pirsgirêkan bi rêvebirên karûbarê an pergala qedandina hêza derveyî-bîra ya platforma Android-ê re. Di vê rewşê de, bangek fork () an klon () bêyî CLONE_PIDFD ji bo destpêkirinê tê bikar anîn.

      Kernel 5.3 banga pergalê destnîşan kir pidfd_open(), ku destûrê dide te ku hûn ji bo pêvajoyek heyî ya keyfî ya ku bi bangkirina klone() bi ala CLONE_PIDFD nehatiye afirandin, pidfdek kontrolkirî bistînin. Di heman demê de piştgirî ji bo rapirsîna pidfd bi karanîna anketê () û epoll () ve zêde kir, ku rê dide rêvebirên pêvajoyê ku ger PID ji pêvajoyek nû re were tayîn kirin bidawîbûna pêvajoyên keyfî bêyî tirsa ji rewşek nijadê bişopînin. Mekanîzmaya agahdarkirina ku pêvajoyek ku bi pidfd-ê ve girêdayî ye qediya ye, heman wekî agahdarkirina ku pêvajoyek zarokê wê qediya ye;

    • Piştgiriya ji bo mekanîzmaya pînekirina barkirinê li nexşerêya peywirê hate zêdekirin (Kêmkirina karanîna), dihêle hûn li gorî peywirên ku li ser CPU-yê çalak in, li gorî rêzikên frekansa herî kêm an herî zêde tevbigerin. Mekanîzmaya pêşkêşkirî karên ku rasterast bandorê li ser kalîteya ezmûna bikarhêner dike bi xebitandina van karan bi kêmî ve di dawiya jêrîn a frekansa "daxwaz" de bilez dike. Karên kêm-pêşeng ên ku bandorê li xebata bikarhêner nakin, bi karanîna sînorê jorîn a frekansa "destûr" têne destpêkirin. Sînor bi riya taybetmendiyên sched_uclamp_util_min û sched_uclamp_util_max di banga pergala sched_setattr() de têne danîn.
    • Piştgiriyek ji bo teknolojiya rêveberiya enerjiyê zêde kir Intel Speed ​​Hilbijêre, li ser serverên hilbijartî yên bi pêvajoyên Intel Xeon hene. Ev teknoloj dihêle hûn mîhengên performansê û dabeşkirinê ji bo corên CPU yên cihêreng bicîh bikin, ku dihêle hûn performansê ji bo karên ku li ser hin core têne kirin pêşîn bidin, û performansa li ser bingehên din bikin qurban;
    • Pêvajoyên di cîhê bikarhêner de pêşkêş kirin şiyana ku meriv ji bo demek kurt bêyî karanîna lûpkan bi karanîna rêwerza umwait-ê li bendê bimîne. Ev rêwerz, ligel rêwerzên umonitor û tpause, dê di çîpên "Tremont" yên pêşerojê yên Intel de were pêşkêş kirin, û dê destûrê bide pêkanîna derengiyên ku enerjiyê bikêr in û bandorê li performansa mijarên din nakin dema ku Hyper Threading bikar tînin;
    • Ji bo mîmariya RISC-V, piştgirî ji bo rûpelên bîranîna mezin hatine zêdekirin;
    • Mekanîzmaya şopandina kprobes şiyana veqetandina nîşangirên kernelê li cîhê bikarhêner zêde kiriye, ku dikare were bikar anîn, mînakî, ji bo nirxandina naveroka strukturên ku ji bangên pergalê re derbas dibin. Her weha şiyana sazkirina kontrolên di qonaxa bootkirinê de jî zêde bûye.
    • Vebijarka PREEMPT_RT li pelê veavakirinê ji bo xebata rast-ê zêde kir. Koda bixwe ya ku moda rast-dem-ê piştgirî dike hîna li kernelê nehatiye zêdekirin, lê xuyangkirina vebijarkê nîşanek baş e ku destana demdirêj e. pêxistinî Pelên Realtime-Preempt nêzîkê qedandinê ne;
    • Banga pergalê clone3 () bi pêkanîna guhertoyek berfirehtir a pêveka klonê () ve zêde kir, ku destûrê dide jimareyek mezin a alayan diyar bike;
    • Rêvebirê bpf_send_signal() lê zêde kir, rê dide bernameyên BPF ku ji pêvajoyên keyfî re sînyalan bişînin;
    • Ji bo bûyerên perf ên di hawîrdora hîpervisorê KVM de, mekanîzmayek fîlterkirina bûyerê ya nû hate zêdekirin, ku rê dide rêvebir ku cûreyên bûyerên ku ji bo çavdêrîkirina li ser milê pergala mêvan têne destûr kirin an destûr nayên destnîşan kirin;
    • Ger pêkanîna lûkê sînordar be û nekare rê li derbasbûna sînorê herî zêde ya talîmatan bigire, şiyana pêvajokirina bernameyan bi lûkan li mekanîzmaya verastkirina serîlêdana eBPF hate zêdekirin;
  • Disk Subsystem, I/O û Pergalên Pelê
    • Pergala pelê ya XFS naha guheztina inode ya pir-mijarî piştgirî dike (mînakî, dema ku kotayan kontrol dike). ioctlên nû BULKSTAT û INUMBERS hatine zêdekirin, ku gihîştina taybetmendiyên ku di çapa pêncemîn a formata FS-ê de xuya bûne peyda dikin, wek mînak dema jidayikbûna inode û şiyana danîna parametreyên BULKSTAT û INUMBERS ji bo her komek AG (Grûpên Veqetandinê);
    • Li Ext4 piştgirî zêde kirin valahiyên di pelrêçan de (blokên negirêdayî).
      Processing pêşkêş kirin ala "i" (neguhêrbar) ji bo pelên vekirî (nivîsandin di rewşek de qedexe ye ku ala di demek ku pel jixwe vekirî bû hatî danîn);

    • Btrfs pênasekirina pêkanîna bilez a crc32c li ser hemî mîmarî peyda dike;
    • Di CIFS de, koda ji bo piştgiriya smbdirect wekî pêşkeftina ceribandinê hate rakirin. SMB3 şiyana karanîna algorîtmayên krîptografî di moda GCM de zêde kir. Vebijarkek mountê ya nû lê zêde kir ku parametreyên modê ji navnîşên ACE (Têketina Kontrola Gihîştinê) derxe. Performansa banga vekirî() optimîze kir;
    • Vebijarkek li F2FS zêde kir da ku berhevkarê çopê dema ku di moda nuqteya kontrolê de dixebitîne sînordar bike. ioctl lê zêde kir da ku rêzikên blokê ji F2FS rake, ku rê dide verastkirinên mezinahiya dabeşkirinê yên li ser-firînê. Kapasîteya danîna pelek guheztinê li F2FS zêde kir da ku rasterast I/O peyda bike. Piştgiriyek ji bo pinpêkirina pelê û veqetandina blokan ji bo pelên wekhev ji bo hemî bikarhêneran zêde kir;
    • Piştgiriya ji bo operasyonên asynchronous sendmsg () û recvmsg () ji bo navberê ji bo têketin/derketina asynchron io_uring;
    • Piştgiriya berhevkirinê bi karanîna algorîtmaya zstd û şiyana verastkirina wêneyên FS yên îmzekirî li pergala pelê UBIFS hatî zêdekirin;
    • Ceph FS naha ji bo pelan etîketên ewlehiyê yên SELinux piştgirî dike;
    • Ji bo NFSv4, vebijarkek nû ya mount "nconnect =" hate bicîh kirin, ku hejmara girêdanên ku bi serverê re hatine saz kirin diyar dike. Trafîka di navbera van girêdanan de dê bi karanîna hevsengiya barkirinê were dabeş kirin. Wekî din, servera NFSv4 naha pelrêçek /proc/fs/nfsd/mişterî bi agahdariya li ser xerîdarên heyî, tevî agahdariya pelên ku wan vekirine, diafirîne;
  • Virtualization û Ewlekariya
    • Kernel ji bo cîhazên pêvekirî hîpervisorek vedigire ACRN, ku bi çavek amadebûna ji bo karên rast-dem û guncanbûna ji bo karanîna di pergalên mîsyonê-krîtîk de hatî nivîsandin. ACRN sermaya hindiktirîn peyda dike, dema ku bi amûran re têkilî daynin derengiya kêm û bersivdana têr garantî dike. Virtualîzasyona çavkaniyên CPU, I/O, binepergala torê, grafîk û operasyonên deng piştgirî dike. ACRN dikare were bikar anîn da ku gelek makîneyên virtual yên veqetandî di yekîneyên kontrolê yên elektronîkî, panelên amûran, pergalên agahdariya otomotîkê, cîhazên IoT yên xerîdar û teknolojiyên din ên pêvekirî de bimeşînin;
    • Di Linux-Moda Bikarhêner de zêde kirin Moda rêwîtiya demê, ya ku dihêle hûn di hawîrdorek UML-ya virtual de wextê hêdî bikin an bilez bikin da ku hêsankirina koda têkildar bi demê re hêsantir bike. Wekî din, pîvanek hate zêdekirin
      dem-rêwîtî-destpêk, ku dihêle demjimêra pergalê di forma serdemê de ji demek diyarkirî dest pê bike;

    • Vebijarkên rêza fermana kernelê yên nû "init_on_alloc" û "init_on_free" hatine zêdekirin, dema ku were destnîşan kirin, sifirkirina deverên bîranînê yên veqetandî û azadkirî tê çalak kirin (ji bo malloc û belaş bi sifiran dagirtin), ku ji ber sermaya destpêkirina zêde ya zêde ewlehiyê dihêle;
    • Ajokarê nû lê zêde kir virtio-iommu bi pêkanîna amûrek paravirtualîzekirî ya ku destûrê dide te ku hûn daxwazên IOMMU yên wekî ATTACH, DETACH, MAP û UNMAP li ser veguheztina virtio bişînin bêyî ku tabloyên rûpelê bîranînê bişopînin;
    • Ajokarê nû lê zêde kir virtio-pmem, nûnertiya gihîştina amûrên hilanînê yên ku ji cîhê navnîşana laşî re hatine nexşe kirin, wekî NVDIMM;
    • Kêmasiya girêdana bişkojkên krîptografî bi bikarhênerek an cîhê navek torê re bicîh kir (bişkok li derveyî cîhê navên hilbijartî neçar dibin), û her weha bi karanîna ACL-yê bişkojan biparêzin;
    • Ji bine pergala krîptoyê zêde kirin piştgirî ji bo algorîtmayek haşkirina ne-cryptographic pir bilez xxhash, leza ku bi performansa bîranînê ve girêdayî ye;
  • Subsystem Network
    • Pêvajoya çalakkirî ya navnîşanên IPv4 di rêza 0.0.0.0/8 de, ku berê ji bo karanîna ne amade bû. Danasîna vê subnet dê destûrê bide 16 mîlyon navnîşanên IPv4 yên din belav bikin;
    • Di Netfilterê de ji bo nftables zêde kirin piştgirî ji bo mekanîzmayên bilezkirina hardware ji bo fîlterkirina pakêtê bi karanîna ajokarên zêdekirî Flow Block API. Tevahiya tabloyên qaîdeyan bi hemî zincîran re dikarin li kêleka adapterên torê werin danîn. Çalakkirin bi girêdana ala NFT_TABLE_F_HW bi tabloyê ve tê kirin. Piştgiriya metadata protokola Layer 3 û Layer 4-ê hêsan dike, kiryaran qebûl / red dike, nexşeyên ji hêla IP-ê û portên torê yên şander / wergir û celebê protokolê;
    • Zêde kirin Piştgiriya şopandina pêwendiya çêkirî ya ji bo pirên torê, ku hewcedariya karanîna qata emûlkerê br_netfilter nake;
    • Di nf_tabloyan de zêde kirin piştgirî ji bo modula SYNPROXY, ku fonksiyonên wekhev ji iptables dubare dike, û şiyana kontrolkirina qaîdeyên ji bo vebijarkên kesane yên di sernavê IPv4 de jî tête bicîh kirin;
    • Kapasîteya girêdana bernameyên BPF bi bangên pergalê yên setsockopt() û getsockopt() re zêde kir, ku, mînakî, dihêle hûn rêwerzên gihîştina xwe bi van bangan ve girêbidin. Digel vê yekê, xalek bangewaziyek nû (hûk) hate zêdekirin, ku pê re hûn dikarin ji bo her navberek RTT (dema gera-dor, dema ping) carekê bangek ji bernameya BPF re saz bikin;
    • Ji bo IPv4 û IPv6 zêde kirin mekanîzmaya hilanîna daneya rêvekirina nexthop-ê ya nû ku armanc ew e ku mezinbûna tabloyên rêwîtiyê zêde bike. Testan nîşan da ku dema ku pergala nû bikar tîne, komek ji 743 hezar rêçikan tenê di 4.3 çirkeyan de li kernelê hatine barkirin;
    • Ji bo Bluetooth pêkanîn fonksiyona ku ji bo piştgiriya LE ping hewce dike;
  • Amûr
    • Zêde kirin piştgiriya ji bo pêvajoyên x86-lihevhatî yên pargîdanî Zhaoxin, di encama projeyeke hevpar a di navbera VIA Technologies û Şaredariya Şanghayê de pêk hat. Malbata ZX CPU li ser mîmariya x86-64 Isaiah hatî çêkirin, pêşveçûna teknolojiyê didomîne. VIA Centaur;
    • Binepergala DRM (Rêveberê Ragihandina Rasterê) û her weha ajokarên grafîkê yên amdgpu û i915, ji bo parskirin, pêvajokirin û şandina metadata HDR (navbera dînamîkî ya bilind) bi riya porta HDMI-yê piştgirî zêde kiriye, ku destûrê dide panelên HDR û ekranên ku dikarin bikar bînin. nîşankirina rêzikên ronahiya zêde;
    • Ajokarê amdgpu piştgirîya destpêkê ji bo AMD NAVI GPU (RX5700) zêde kiriye, ku tê de ajokara bingehîn, koda danûstendina ekranê (DCN2), GFX û piştgirîya hesabkirinê (GFX10) heye,
      SDMA 5 (Sîstema DMA0), rêveberiya hêzê û şîfreker / dekoderên multimedia (VCN2). amdgpu di heman demê de piştgirî ji bo qertên li ser bingeha GPU-yên Vega12 û Vega20 çêtir dike, ku ji bo wan kapasîteyên bîranîn û rêveberiya hêzê yên din hatine zêdekirin;

    • Piştgiriya ji bo qertên li ser bingeha GPU-yên VegaM-ê ji ajokera amdkfd re zêde kir (ji bo GPU-yên veqetandî, wek Fiji, Tonga, Polaris);
    • Di ajokera DRM-ê de ji bo qertên vîdyoyê yên Intel-ê ji bo çîpên Icelake pêkanîn moda rastkirina gama ya pir-beş a nû. Kapasîteya derketinê bi riya DisplayPort di forma YCbCr4: 2: 0 de zêde kir. Firmware nû lê zêde kirin GuC ji bo SKL, BXT, KBL, GLK û ICL. Kapasîteya qutkirina hêza ekranê di moda asynchronous de hate bicîh kirin. Zêde kirin piştgirî ji bo hilanîn û nûvekirina çarçoweya renderkirinê ji bo çîpên Ironlake (gen5) û gen4 (Broadwater - Cantiga), ku dihêle hûn dema ku ji yek operasyonê berbi ya din veguhezînin rewşa GPU ji cîhê bikarhêner vegerînin;
    • Ajokarê Nouveau tespîtkirina chipset NVIDIA Turing TU116 peyda dike;
    • Kapasîteyên ajokera DRM/KMS-ê ji bo bilezkerên ekrana ARM Komeda (Mali D71) hatine berfireh kirin, piştgirî ji bo pîvandinê, qatên perçekirin/hevgirtinê, zivirandin, nivîsandina paşverû, AFBC, SMMU û formên kodkirina rengîn Y0L2, P010, YUV420_8/10BIT heye. hat zêdekirin;
    • Ajokarê MSM piştgirî ji bo rêzikên A540 GPU Adreno yên ku di pêvajoyên Qualcomm de têne bikar anîn, û her weha piştgirî ji bo kontrolkerê MSM8998 DSI ji bo Snapdragon 835 zêde dike;
    • Ji bo panelên LCD Samsung S6E63M0, Armadeus ST0700, EDT ETM0430G0DH6, OSD101T2045-53TS ajokarên zêde kirin,
      Evervision VGG804821, FriendlyELEC HD702E, KOE tx14d24vm1bpa, TFC S9700RTWV43TR-01B, EDT ET035012DM6 û VXT VL050-8048NT-C01;

    • Zêde kirin ajokar ji bo çalakkirina amûrên lezkirinê yên deşîfrekirinê
      vîdyoyên ku di Amlogic Meson SoC de hene;

    • Di ajokera v3d de (ji bo Broadcom Video Core V GPU-ya ku di Raspberry Pi de tê bikar anîn) xuya bû alîkarî şandina şaderên hesabker;
    • Zêde kirin ajokera klavyeyên SPI û trackpadên ku di modelên nûjen ên laptopên Apple MacBook û MacBookPro de têne bikar anîn;
    • Zêde kirin parastina zêde ji bo bangên ioctl yên ku bi ajokera floppy ve girêdayî ne, û ajokar bixwe wekî neparêz tê nîşankirin
      ("sêwî"), ku tê wateya bidawîbûna ceribandina wê. Ajokar hîn jî di kernelê de tê hilanîn, lê xebata wê ya rast ne garantî ye. Ajokar kevnar tê hesibandin, ji ber ku dijwar e ku meriv alavên xebatê ji bo ceribandina wê bibîne - hemî ajokarên derveyî yên heyî, bi gelemperî, pêwendiya USB-ê bikar tînin.

    • Zêde kirin ajokera cpufreq ji bo panelên Raspberry Pi, ku dihêle hûn bi dînamîk guheztinên di frekansa pêvajoyê de kontrol bikin;
    • Piştgiriya nû ya ARM SoC Mediatek mt8183 (4x Cortex-A73 + 4x Cortex-A53), TI J721E (2x Cortex-A72 + 3x Cortex-R5F + 3 DSP + MMA) û Amlogic G12B (4x Cortex-A73-) zêde kir. A2), û her weha panel:
      • Purism Librem5,
      • Aspeed BMC,
      • Microsoft Olympus BMC,
      • Kontron SMARC,
      • Novtech Meerkat96 (i.MX7),
      • ST Micro Avenger96,
      • Google Cheza (Qualcomm SDM845),
      • Qualcomm Dragonboard 845c (Qualcomm SDM845),
      • Hugsun X99 TV Box (Rockchip RK3399),
      • Khadas Edge / Edge-V / Captain (Rockchip RK3399),
      • HiHope RZ/G2M,
      • NXP LS1021A-TSN.

Di heman demê de, Weqfa Nermalava Azad a Amerîkaya Latîn ava kirin
dibe kernel bi tevahî belaş 5.3 - Linux-libre 5.3-gnu, ji hêmanên firmware û ajokerê yên ku hêmanên ne-azad an beşên kodê hene, ku çarçoweya wan ji hêla çêker ve sînorkirî ye, paqij kirin. Di serbestberdana nû de, barkirina blob di ajokarên qcom, hdcp drm, allegro-dvt û meson-vdec de neçalak e.
Koda paqijkirina blobê ya nûvekirî di ajokar û bine pergalên amdgpu, i915, netx, r8169, brcmfmac, rtl8188eu, adreno, si2157, pvrusb2, touchscreen_dmi, ajokera deng ji bo skylake, û her weha di belgeya mîkrokodê ​​de.

Source: opennet.ru

Add a comment