Serbestberdana kernel Linux 5.6

Piştî du mehan pêşveçûnê, Linus Torvalds danasîn berdana kernel Linux 5.6. Di nav guheztinên herî berbiçav de: entegrasyona pêwendiya WireGuard VPN, piştgirî ji bo USB4, cîhên navan ji bo demê, şiyana afirandina rêwerzên tevliheviya TCP-ê bi karanîna BPF, piştgiriya destpêkê ji bo MultiPath TCP, paqijkirina kernel ji pirsgirêka 2038, mekanîzmaya "bootconfig". , ZoneFS.

Guhertoya nû 13702 rastkirinên ji 1810 pêşdebiran vedihewîne,
Mezinahiya patch - 40 MB (guhertin bandor li 11577 pelan kir, 610012 rêzikên kodê lê zêde kirin,
294828 rêz hatin rakirin). Nêzîkî 45% ji hemî di 5.6 de hatî pêşkêş kirin
Guhertin bi ajokarên cîhazê ve girêdayî ne, bi qasî 15% ji guhertinan hene
helwesta li hember nûvekirina koda taybetî ji bo mîmarên hardware, 12%
bi stoka torê ve girêdayî ye, 4% bi pergalên pelan û 3% bi hundurê ve girêdayî ye
bine sîstemên kernel.

sereke nûbûnên:

  • Subsystem Network
    • Zêde kirin pêkanîna pêwendiyek VPN WireGuard, ku li ser bingeha rêbazên şîfrekirinê yên nûjen (ChaCha20, Poly1305, Curve25519, BLAKE2s) tête bicîh kirin, karanîna wê hêsan e, bê tevlihevî ye, xwe di gelek pêkanînên mezin de îspat kiriye û performansa pir bilind peyda dike (3,9 carî zûtir ji OpenVPN-ê di warê ya rêwiyan). WireGuard têgeha rêvekirina mifteya şîfrekirinê bikar tîne, ku tê de kilîtek taybet bi her navbeynkariya torê ve girêdide û wê bikar tîne da ku bişkojkên giştî ve girêbide. Bişkojkên gelemperî têne guheztin da ku pêwendiyek bi rengek mîna SSH-ê saz bikin. Ji bo xebatê WireGuard primitives krîptografîk hewce ne Ev bû birin ji pirtûkxaneyê Çingo wekî beşek ji standard Crypto API û tê de nav core 5.5.
    • dest pê kir entegrasyona hêmanên ku ji bo piştgirîkirina MPTCP (MultiPath TCP) hewce ne, dirêjkirina protokola TCP-ê ji bo organîzekirina xebata pêwendiyek TCP-ê digel radestkirina pakêtan bi hevdemî li ser çend rêgezan bi navgînên torê yên cihêreng ên ku bi navnîşanên IP-yê yên cihê ve girêdayî ne. Ji bo serîlêdanên torê, pêwendiyek wusa berhevkirî mîna pêwendiyek TCP-ya birêkûpêk xuya dike, û hemî mantiqa veqetandina herikînê ji hêla MPTCP ve tête kirin. TCP-ya Multipath dikare hem ji bo zêdekirina hilber û hem jî zêdekirina pêbaweriyê were bikar anîn. Mînakî, MPTCP dikare were bikar anîn da ku veguheztina daneyê li ser têlefonek bi hevdemî bi karanîna girêdanên WiFi û 4G birêxistin bike, an jî ji bo kêmkirina lêçûnên bi girêdana serverek bi karanîna çend girêdanên erzan li şûna yek biha bikar bîne.
    • Zêde kirin piştgirî ji bo dîsîplîna hilberandina dorê torê sch_ets (Hilbijartina Veguheztinê ya Pêşkeftî, IEEE 802.1Qaz), ku şiyana belavkirina berfê di navbera çînên cihê yên trafîkê de peyda dike. Ger barkirina li ser çînek seyrûsefera taybetî li jêr firehiya bandê ya veqetandî be, wê hingê ETS rê dide çînên trafîkê yên din ku bandêra berdest (nebikaranîn) bikar bînin. Qdisc sch_ets wekî dîsîplînek PRIO-yê hatî mîheng kirin û dersên trafîkê bikar tîne da ku sînorên berfê yên hişk û hevpar destnîşan bike. ETS wekî berhevokek dîsîplînan dixebite YA PÊŞÎ и DRR - heke dersên trafîkê bi tundî sînorkirî hebin, PRIO tê bikar anîn, lê heke di rêzê de seyrûsefer tune be, ew mîna DRR dixebite.
    • Cûreyek nû ya bernameyên BPF zêde kir BPF_PROG_TYPE_STRUCT_OPS, ya ku destûrê dide te ku hûn bi navgîniya BPF-ê rêvebirên fonksiyona kernel bicîh bikin. Heya nuha, ev taybetmendî dikare jixwe were bikar anîn da ku algorîtmayên kontrolkirina tevliheviya TCP-ê di forma bernameyên BPF de bicîh bîne. Wek nimûne pêşniyar kirin Bernameya BPF bi pêkanîna algorîtmayê DCTCP.
    • Di bingehê de qebûl kirin guhertin, amûrên wergerandinê ethtool bi ioctl() bikar bînin pêwendiya netlink. Navbera nû lê zêdekirina pêvekan hêsantir dike, birêvebirina xeletiyan baştir dike, dihêle ku dema ku rewş diguhezîne agahdarî bêne şandin, danûstendina di navbera kernel û cîhê bikarhêner de hêsan dike, û hejmara navnîşên binavkirî yên ku divê werin hevdem kirin kêm dike.
    • Zêdekirina pêkanîna algorîtmaya rêveberiya dorê ya torê FQ-PIE (Flow Queue PIE), ku bi mebesta kêmkirina bandora neyînî ya tamponkirina pakêtê ya navîn li ser alavên torê yên derî (bufferbloat). FQ-PIE dema ku di pergalên bi modemên kabloyê de tê bikar anîn de bertekek bilind nîşan dide.
  • Disk Subsystem, I/O û Pergalên Pelê
    • Ji bo pergala pelê Btrfs zêde kirin pêkanîna asynkron a operasyona DISCARD (nîşankirina blokên azadkirî yên ku êdî hewce ne bi fîzîkî bêne hilanîn). Di destpêkê de, operasyonên DISCARD bi hevdemî hatin kirin, ku dikare bibe sedema têkçûna performansê ji ber ajokarên ku li benda qedandina fermanên têkildar in. Pêkanîna asînkron rê dide we ku hûn li bendê nemînin ku ajoker DISCARD temam bike û vê operasyonê di paşerojê de pêk bînin.
    • Di XFS de çîbecî bû Paqijkirina koda ku jimarkerên wextê 32-bit kevn bikar tîne (tîpa time_t bi time64_t veguherî), dibe sedema pirsgirêka 2038. Xeletî û xerabûna bîra ku li ser platformên 32-bit qewimîne rast kirin. Kod ji nû ve hatî xebitandin ku bi taybetmendiyên berfireh re bixebite.
    • Ji bo pergala pelê ext4 destnîşan kir Optimîzasyonên performansê yên têkildarî hilgirtina girtina inode di dema karûbarên xwendin û nivîsandinê de ne. Performansa ji nû ve nivîsandinê di moda I/O Direct de çêtir kirin. Ji bo hêsankirina tespîtkirina pirsgirêkan, kodên xeletiya yekem û paşîn di superblokê de têne hilanîn.
    • Li ser pergala pelê F2FS pêkanîn şiyana hilanîna daneyan di forma pêçandî de. Ji bo pel an peldankek kesane, kompresyon dikare bi karanîna fermana "pelê chattr +c" an "chattr +c dir" were çalak kirin; dir/pelê bixin. Ji bo berhevkirina tevahiya dabeşkirinê, hûn dikarin vebijarka "-o compress_extension=ext" di amûra mountê de bikar bînin.
    • Kernel pergala pelan dihewîne ZoneFS, ku bi amûrên hilanînê yên zonî re xebata nizm hêsan dike. Dîskên zoned tê wateya amûrên li ser dîskên magnetîkî yên hişk an NVMe SSD, cîhê hilanînê ku tê de di nav deverên ku komên blokan an sektoran pêk tînin de tê dabeş kirin, ku tê de tenê lêzêdekirina daneya rêzkirî destûr e, nûvekirina tevahiya koma blokan. FS ZoneFS ji hêla Western Digital ve hatî pêşve xistin û her herêmek di ajokê de bi pelek veqetandî ve girêdide ku dikare were bikar anîn da ku daneyan di moda xav de bêyî manîpulasyonê di asta sektor û blokê de hilîne, yanî. Destûrê dide sepanan ku API-ya pelê bikar bînin li şûna ku rasterast bi karanîna ioctl bigihîjin cîhaza blokê.
    • Di NFS de, sazkirina dabeşan li ser UDP ji hêla xwerû ve neçalak e. Piştgiriyek ji bo kapasîteya kopîkirina rasterast pelan di navbera serveran de, ku di taybetmendiya NFS 4.2 de hatî destnîşan kirin, zêde kir. Vebijarkek nû ya mount "softreval" lê zêde kir, ku dihêle ku nirxên taybetmendiya cached di rewşa têkçûna serverê de werin bikar anîn. Mînakî, dema ku vê vebijarkê diyar dike, piştî ku server tunebe, gengaz e ku meriv li ser rêyên di dabeşkirina NFS-ê de bimeşe û bigihîje agahdariya ku di cache-yê de bicîh bûye.
    • Çîbecî bû xweşbînkirina performansa mekanîzmaya fs-verity, ku ji bo şopandina yekbûn û rastkirina pelên kesane tê bikar anîn. Bi saya karanîna dara hash Merkle leza xwendina rêzdar zêde kir. Performansa FS_IOC_ENABLE_VERITY dema ku di cacheyê de dane tune be xweştir bûye (xwendina pêşîlêgirtina rûpelên bi daneyan hate sepandin).
  • Virtualization û Ewlekariya
    • Kapasîteya neçalakkirina modula SELinux di dema xebitandinê de hate betal kirin, û rakirina SELinux-ek jixwe aktîfkirî dê di pêşerojê de were qedexe kirin. Ji bo neçalakkirina SELinux divê hûn li ser rêzika fermanê ya kernel parametreya "selinux=0" derbas bikin.
    • Zêde kirin Piştgiriya cîhên navan ji bo demê (cihên navên demê), dihêle hûn rewşa demjimêra pergalê bi konteynerê ve girêdin (CLOCK_REALTIME,
      CLOCK_MONOTONIC, CLOCK_BOOTTIME), dema xwe ya di konteynerê de bikar bînin û, dema ku konteynerê berbi mêvandarek din veguhezînin, piştrast bikin ku xwendinên CLOCK_MONOTONIC û CLOCK_BOOTTIME neguhêrbar bimînin (wextê piştî barkirinê, bi an bêyî hesibandina ku di moda xewê de ye bigire ber çavan. ).

    • Hewza astengkirina /dev/random hat rakirin. Tevgera /dev/random di warê astengkirina astengkirina entropiyê piştî destpêkirina hewzê de dişibihe /dev/urandom.
    • Kernelê ya bingehîn ajokerek vedihewîne ku destûrê dide pergalên mêvan ên ku VirtualBox-ê dimeşînin da ku pelrêçayên ku ji hêla hawîrdora mêvandar ve têne derxistin (Peldanka Parvekirî ya VirtualBox) girêdin.
    • Komek paçeyan li binpergala BPF hate zêdekirin (belavkirina BPF), dema ku mekanîzmaya Retpoline bikar tîne da ku li dijî êrişên pola Specter V2 biparêze, ew dihêle hûn gava ku bûyerên bi wan re têkildar dibin karbidestiya bangkirina bernameyên BPF zêde bikin (mînak, ew gengaz dike ku dema ku pakêta torê tê).
    • Ajokarek zêde kir ku piştgirî bide TEE (Jîngehek Birêvebir a pêbawer) ku di APU-yên AMD de hatî çêkirin.
  • Xizmetên bîr û pergalê
    • BPF ji bo fonksiyonên gerdûnî piştgirî zêde kiriye. Pêşveçûn wekî beşek ji însiyatîfek tête kirin ku piştgirî ji bo pirtûkxaneyên fonksiyonên ku dikarin di bernameyên BPF de cih bigirin zêde bikin. Pêngava paşîn dê piştgirîkirina dirêjkirinên dînamîkî be ku dihêle fonksiyonên gerdûnî werin barkirin, di nav de cihgirtina fonksiyonên gerdûnî yên heyî dema ku ew têne bikar anîn. Binepergala BPF di heman demê de piştgirî ji bo guhertoyek operasyona nexşeyê (ji bo hilanîna daneya domdar tê bikar anîn) zêde dike, ku înfazê di moda hevîrê de piştgirî dike.
    • Zêde kirin Amûra "cpu_cooling" destûrê dide te ku hûn CPU-ya zêde germkirî sar bikin û wê ji bo demên kurt di rewşa bêkar de bihêlin.
    • Banga pergalê lê zêde kir openat2(), ku komek alayên din pêşkêşî dike da ku çareseriya riya pelê bisînor bike (qedexekirina derbaskirina xalên çiyê, girêdanên sembolîk, girêdanên sêrbaz (/proc/PID/fd), pêkhateyên "../").
    • Ji bo pergalên heterojen ên li ser bingeha mîmariya big.LITTLE, ku navikên CPU-ê yên bi enerjiyê yên hêzdar û kêmtir bikêrhatî di yek çîpê de berhev dikin, dema ku karên rast-dem têne bicîh kirin, parametreya uclamp_min tête danîn (derket holê di kernel 5.3 de mekanîzmayek ji bo ewlekirina barkirinê heye). Ev parametre piştrast dike ku dê peywir ji hêla plansazker ve li ser bingehek CPU-ya ku performansa têr heye were danîn.
    • Kernel ji azad dibe pirsgirêkên 2038. Veguheztinên paşîn ên mayî, yên ku tîpa 32-bit (int îmzekirî) time_t bikar anîn ji bo jimarvana dema serdemê, ku, li gorî rapora 1970-an, divê di sala 2038-an de biherike.
    • Pêşveçûna domdar a pêwendiya I/O ya asynchronous io_uringdi nav de pêşkêş kirin piştgirî ji bo operasyonên nû: IORING_OP_FALLOCATE (veqetandina deverên vala), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE (vekirin û girtina pelan),
      IORING_OP_FILES_UPDATE (zêdekirin û rakirina pelan ji navnîşa gihîştina bilez),
      IORING_OP_STATX (daxwaza agahdariya pelê),
      IORING_OP_READ,
      IORING_OP_WRITE (analogên sadekirî yên IORING_OP_READV û IORING_OP_WRITEV),
      IORING_OP_FADVISE,
      IORING_OP_MADVISE (guhertoyên asynkron ên bangên posix_fadvise û madvise), IORING_OP_SEND,
      IORING_OP_RECV (daneyên torê dişîne û distîne),
      IORING_OP_EPOLL_CTL (xebatên li ser ravekerên pelê epoll pêk bîne).

    • Banga pergalê lê zêde kir pidfd_getfd(), destûrê dide pêvajoyek ku ji pêvajoyek din re ravekerek pelê ji bo pelek vekirî bikişîne.
    • Pêk anîn mekanîzmaya "bootconfig", ku dihêle, ji bilî vebijarkên rêzika fermanê, pîvanên kernelê bi pelek mîhengan ve diyar bike. Ji bo ku pelên weha li wêneya initramfs zêde bikin, amûra bootconfig tê pêşniyar kirin. Ev taybetmendî dikare were bikar anîn, bo nimûne, ji bo mîhengkirina kprobes di dema bootkirinê de.
    • Ji nû ve xebitandin mekanîzmayek ji bo benda nivîsandin û xwendina daneyan di boriyên bênav de. Guhertinê mimkun kir ku bilezkirina karên wekî berhevkirina paralel a projeyên mezin. Lêbelê, xweşbînkirin dikare bibe sedema rewşek nijadî di çêkirina GNU de ji ber xeletiyek di berdana 4.2.1 de, ku di guhertoya 4.3 de hate rast kirin.
    • Alaya PR_SET_IO_FLUSHER li prctl() lê zêde kir, ku dikare were bikar anîn da ku pêvajoyên bê-bîr nîşan bide ku dema ku pergalê di bîra kêm de ye divê nekeve bin sînoran.
    • Li ser bingeha pergala belavkirina bîranîna ION-ê ya ku di Android-ê de tê bikar anîn, binepergalek hate bicîh kirin dma-buf heaps, ku dihêle hûn veqetandina tamponên DMA-yê ji bo parvekirina deverên bîranînê di navbera ajokar, serîlêdan û bine pergalên cihêreng de kontrol bikin.
  • mîmarî Hardware
    • Piştgiriyek ji bo dirêjkirina E0PD, ku di ARMv8.5 de xuya bû, lê zêde kir û destûrê dide parastinê li hember êrişên têkildarî darvekirina spekulatîf a rêwerzên li ser CPU. Parastina li ser bingeha E0PD ji parastina KPTI (Kernel Page Table Isolation) sermayê kêmtir encam dide.
    • Ji bo pergalên ku li ser bingeha mîmariya ARMv8.5-ê ne, piştgirî ji bo rêwerziya RNG-ê hatî zêdekirin, ku gihîştina hilberînerek jimareya pseudo-random a hardware peyda dike. Di kernelê de, talîmata RNG ji bo hilberîna entropiyê dema destpêkirina hilberînerê hejmarên pseudo-random ku ji hêla kernel ve hatî peyda kirin tê bikar anîn.
    • Piştgiriya ji bo MPX (Pêvekirinên Parastina Bîrê) ku di kernelê de hatine zêdekirin rakirin 3.19 û destûrê dide we ku hûn kontrolkirina nîşanan organîze bikin da ku hûn pê ewle bin ku sînorên deverên bîranînê têne rêz kirin. Ev teknolojî bi berfirehî di berhevkeran de nehat bikar anîn û ji GCC hate derxistin.
    • Ji bo mîmariya RISC-V, piştgirî ji bo KASan (Paqijkera navnîşana Kernel) amûra debugkirinê hatîye bicîh kirin, ku di dema xebitandina bîranînê de alîkariya tespîtkirina xeletiyan dike.
  • Amûr
    • Piştgiriya Specification pêk hat 4.0 USB, ku li ser bingeha protokola Thunderbolt 3-ê ye û heya 40 Gbps rêgezê peyda dike, di heman demê de lihevhatina paşverû ya bi USB 2.0 û USB 3.2 re diparêze. Bi analogî bi Thunderbolt Têkiliya USB 4.0 dihêle hûn protokolên cihêreng li ser yek kabloyek bi girêdanek tune bikin Type-C, di nav de PCIe, Display Port û USB 3.x, û her weha pêkanînên nermalava protokolan, mînakî, ji bo organîzekirina girêdanên torê di navbera mêvandaran de. Pêkanîn li ser ajokera Thunderbolt-ê ya ku berê di nav kernel Linux-ê de tê de ye ava dike û wê adapte dike ku bi hoste û cîhazên lihevhatî USB4 re bixebite. Guhertin di heman demê de piştgirî ji bo cîhazên Thunderbolt 3 li pêkanîna nermalava Gerînendeyê Girêdanê jî zêde dikin, ku berpirsiyarê çêkirina tunelan e ji bo girêdana pir amûran bi yek girêdanê.
    • Di ajokerê amdgpu de zêde kirin piştgiriya destpêkê ji bo HDCP 2.x (High-bandwidth Parastina naveroka dîjîtal) teknolojiya parastina kopî. Piştgiriyek ji bo çîpa AMD Pollock ASIC ya li ser bingeha Raven 2 zêde kir. Ji bo malbatên Renoir û Navi şiyana vesazkirina GPU-yê pêk anî.
    • Ajokera DRM ji bo kartên vîdyoyê yên Intel zêde kirin Piştgiriya DSI VDSC ji bo çîpên li ser bingeha mîkroarchitektura Gola Ice û Gola Tiger, LMEM mmap (bîra herêmî ya cîhazê) hate bicîh kirin, parskirina VBT (Tabloya BIOS-ê ya Vîdyoyê) hate baştir kirin, piştgiriya HDCP 2.2 ji bo çîpên Gola Kawa hate bicîh kirin.
    • Xebat li ser yekkirina koda ajokerê amdkfd (ji bo GPU-yên veqetandî, wek Fiji, Tonga, Polaris) bi ajokera amdgpu re berdewam kir.
    • Ajokara k10temp ji nû ve hatî xebitandin, piştgirî ji bo nîşandana pîvanên voltaj û heyî yên ji bo CPU-yên AMD Zen, û her weha agahdariya berfireh ji senzorên germahiyê yên ku di CPU-yên Zen û Zen 2 de têne bikar anîn zêde kir.
    • Di ajokerê nouveau de zêde kirin piştgirî ji bo moda barkirina firmware ya pejirandî ya ji bo GPU-yên NVIDIA-ya ku li ser bingeha mîkroarchitektura Turing (GeForce RTX 2000) ye, ku ev gengaz kir ku piştgirî ji bo lezkirina 3D-ê ji bo van qertan çalak bike (dakêşana firmwareya fermî ya bi îmzeya dîjîtal NVIDIA hewce ye). Piştgiriya ji bo motora grafîkê TU10x zêde kir. Pirsgirêkên bi HD Audio re hatine çareser kirin.
    • Dema ku bi rêya DisplayPort MST (Veguhestina Pir-Stream) ve tê veguheztin piştgirî ji bo berhevkirina daneyê zêde kir.
    • Ajokarek nû lê zêde kir "ath11k»ji bo çîpên bêtêl Qualcomm ku 802.11ax piştgirî dikin.
      Ajokar li ser stacka mac80211-ê ye û modên xala gihîştinê, qereqola xebatê û girêka torê ya mesh piştgirî dike.

    • Bi navgîniya sysfs-ê, gihîştina xwendinên senzora germahiyê yên ku li ser dîskên hişk û SSD-yên nûjen têne bikar anîn tê peyda kirin.
    • Pêşkêş kirin guhertinên girîng di pergala dengê ALSA de, bi mebesta derxistina kodê pirsgirêkên 2038 (dûrxistina karanîna tîpa time_t ya 32-bit di navberên snd_pcm_mmap_status û snd_pcm_mmap_control de). Piştgiriyek ji bo kodekên dengî yên nû zêde kir
      Qualcomm WCD9340 / WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770.

    • Zêde kirin ajokarên ji bo panelên LCD Logic PD 28, Jimax8729d MIPI-DSI, igenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM, GiantPlus GPM
      BOE NV140FHM-N49,
      Satoz SAT050AT40H12R2,
      Sharp LS020B1DD01D.

    • Zêde kirin piştgirî ji bo panelên ARM û platformên Gen1 Amazon Echo (based OMAP3630), Samsung Galaxy S III mini (GT-I8190), Allwinner Emlid Neutis, Libre Computer ALL-H3-IT, PineH64 Model B, Aibretech Amlogic GX PC,
      Armada SolidRun Clearfog GTR, NXPGateworks GW59xx,
      Xwendevanê eBookê Tolino Shine 3,
      Hunermendên Embedded COM (i.MX7ULP), SolidRun Clearfog CX/ITX û HoneyComb (LX2160A), Google Coral Edge TPU (i.MX8MQ),
      Rockchip Radxa Dalang Carrier, Radxa Rock Pi N10, VMARC RK3399Pro SOM
      ST Ericsson HREF520, Inforce 6640, SC7180 IDP, Atmel/Microchip AM9X60 (ARM926 SoC, Kizboxmini), ST stm32mp15, AM3703 / AM3715 / DM3725, ST Ericsson ab8505, QuSCal9863mSCA, Unis Piştgiriya ji bo kontrolkerê PCIe ku di Raspberry Pi 7180 de tê bikar anîn zêde kir.

Di heman demê de, Weqfa Nermalava Azad a Amerîkaya Latîn ava kirin
dibe kernel bi tevahî belaş 5.6 - Linux-libre 5.6-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. Daxuyaniya nû barkirina blobê di ajokarên AMD TEE, ATH11K û Mediatek SCP de asteng dike. Di AMD PSP, amdgpu û ajokar û binesîstemên koda paqijkirina blobê de nûve kirin.

Source: opennet.ru

Add a comment