Serbestberdana kernel Linux 5.12

Piştî du mehan pêşveçûnê, Linus Torvalds serbestberdana kernel Linux 5.12 pêşkêş kir. Di nav guhertinên herî berbiçav de: piştgirî ji bo cîhazên blokê yên di Btrfs de, şiyana nexşeya nasnameyên bikarhêner ji bo pergala pelan, paqijkirina mîmarên ARM-ya mîras, moda nivîsandinê ya "hêzdar" di NFS de, mekanîzmaya LOOKUP_CACHED ji bo destnîşankirina riyên pelan ji cache. , piştgirî ji bo rêwerzên atomê yên di BPF de, pergalek debugkirinê KFENCE ji bo tespîtkirina xeletiyan dema ku bi bîranînê re dixebitin, moda dengdanê ya NAPI-yê ku di xêzek kernelê ya cihêreng de di stûyê torê de dimeşe, hîpervisorê ACRN, şiyana guheztina modela pêşîlêgirtinê bi lez di peywirê de. plansazker û piştgirî ji bo xweşbîniyên LTO dema ku di Clang de çêdibe.

Guhertoya nû 14170 (di guhertoya berê 15480 de) sererastkirinên ji pêşdebirên 1946 (1991) vedihewîne, mezinahiya patchê 38 MB e (guhertinên ku bandor li 12102 (12090) pelan kirine, 538599 (868025) xetên kodê hatine zêdekirin, 333377 (261456) rêz hatin jêbirin). Nêzîkî 43% ji hemî guhertinên ku di 5.12-an de hatine destnîşan kirin bi ajokarên cîhazê ve girêdayî ne, nêzîkê 17% guheztin bi nûvekirina koda taybetî ya mîmarên hardware ve girêdayî ne, 12% bi stûna torê ve, 5% bi pergalên pelan ve girêdayî ne, û 4% bi bine pergalên kernelê yên navxweyî ve girêdayî ne.

Nûvekirinên sereke:

  • Disk Subsystem, I/O û Pergalên Pelê
    • Kapasîteya nexşeya nasnameyên bikarhêneran ji bo pergalên pelan ên siwarkirî hate bicîh kirin (hûn dikarin pelên bikarhênerek li ser dabeşek biyanî ya siwarkirî bi bikarhênerek din re li ser pergala heyî nexşînin). Nexşe ji bo pergalên pelan FAT, ext4 û XFS piştgirî ye. Fonksiyona pêşniyarkirî parvekirina pelan di navbera bikarhênerên cihêreng û li ser komputerên cihê de hêsantir dike, tevî nexşeyê dê di mekanîzmaya pelrêça malê ya portable systemd-homed de were bikar anîn, rê dide bikarhêneran ku pelrêçikên xaniyê xwe biguhezînin medyaya derveyî û wan li ser komputerên cûda bikar bînin, nexşeyê. Nasnameyên bikarhêner ên ku li hev nakin. Serlêdanek din a kêrhatî organîzekirina peydakirina gihîştina hevpar a pelan ji mêvandarek derveyî ye, bêyî ku bi rastî daneyên di derheqê xwediyên pelan de di pergala pelan de biguhezîne.
    • Pelên LOOKUP_CACHED di kernelê de hatine pejirandin, ku destûrê dide operasyonan ku rêyek pelê ji cîhê bikarhêner bêyî astengkirinê diyar bikin, tenê li ser bingeha daneyên ku di cache de peyda dibin. Moda LOOKUP_CACHED di bangewaziya openat2() de bi derbaskirina ala RESOLVE_CACHED ve tê çalak kirin, ku tê de dane tenê ji cache-ê tê servîs kirin, û ger destnîşankirina rê hewce bike ku bigihîje ajokerê, xeletiya EAGAIN tê vegerandin.
    • Pergala pelê Btrfs ji bo cîhazên blokên zonî piştgirîya destpêkê zêde kiriye (cîhazên li ser dîskên magnetîkî yên hişk an SSD-yên NVMe, cîhê hilanînê ku tê de dabeş dibe nav deverên ku komên blokan an sektoran pêk tînin, ku tenê lêzêdekirina daneyan a rêzdar destûr e). nûvekirina tevahiya koma blokan). Di moda tenê xwendinê de, piştgirî ji bo blokên bi metadata û daneya ji rûpelek (binrûpel) piçûktir tê bicîh kirin.
    • Di pergala pelê F2FS de, şiyana hilbijartina algorîtma û asta berhevkirinê hate zêdekirin. Ji bo algorîtmaya LZ4 ji bo berhevkirina asta bilind piştgirî lê zêde kir. Vebijarka sazkirinê ya checkpoint_merge pêk anî.
    • Fermanek ioctl ya nû FS_IOC_READ_VERITY_METADATA hate bicîh kirin ku metadata ji pelên ku bi fs-verity hatine parastin bixwînin.
    • Muwekîlê NFS moda nivîsandinê ya "hêzdar" pêk tîne (dinivîse = dilxwaz), dema ku were çalak kirin, operasyonên nivîsandinê yên pelê tavilê ji serverê re têne veguheztin, kaşê rûpelê derbas dike. Vê modê dihêle hûn xerckirina bîranînê kêm bikin, agahdariya tavilê di derbarê dawiya cîhê belaş di pergala pelê de werdigire, û di hin rewşan de gengaz dike ku meriv performansa zêde bi dest bixe.
    • Vebijarkên nû yên çîyayê li CIFS (SMB) hatine zêdekirin: acregmax ji bo kontrolkirina cachkirina pelan û acdirmax ji bo kontrolkirina cachkirina metadata pelrêçê.
    • Di XFS-ê de, moda kontrolkirina kotaya pir-mijarî hate çalak kirin, darvekirina fsync hate bilez kirin, û koda growfs ji bo pêkanîna fonksiyona kêmkirina mezinahiya pergala pelê hatî amadekirin.
  • Xizmetên bîr û pergalê
    • Binepergala DTMP (Rêveberiya Hêza Germiya Dînamîk) hate zêdekirin, ku dihêle hûn bi dînamîk xerckirina hêzê ya cîhazên cihêreng li ser bingeha sînorên germahiya giştî yên destnîşankirî bi rêkûpêk bikin.
    • Kapasîteya avakirina kernelê bi karanîna berhevkarê Clang bi tevlêbûna xweşbîniyên di qonaxa girêdanê de (LTO, Optimîzasyona Dema Girêdanê) hate bicîh kirin. Optimîzasyonên LTO bi girtina rewşa hemî pelên ku di pêvajoya çêkirinê de têkildar in cûda dibin, dema ku modên xweşbîniyê yên kevneşopî her pelê ji hev cihê xweştir dikin û şert û mercên bangkirina fonksiyonên ku di pelên din de hatine destnîşan kirin nahesibînin. Mînakî, bi LTO re, vekirina hundurîn ji bo fonksiyonên ji pelên din mimkun e, koda nekarandî di pelê darvekirinê de nayê girtin, kontrolkirina celeb û xweşbîniya gelemperî di asta projeyê de bi tevahî têne kirin. Piştgiriya LTO niha bi mîmarên x86 û ARM64 ve sînorkirî ye.
    • Di qonaxa bootkirinê de (preempt=tune/bi dilxwazî/temam) an jî dema ku di nav debugf-an de dixebitin (/debug/sched_debug), heke mîhenga PREEMPT_DYNAMIC di dema avakirina kernelê de hatibe destnîşan kirin, gengaz e ku meriv modên pêşîgirtinê (PREEMPT) di nexşerêya peywirê de hilbijêrin. Berê, moda derxistinê tenê di asta pîvanên civînê de dikare were danîn. Guhertin destûrê dide belavkirinan ku bi moda PREEMPT çalakkirî dereng bişînin, ku ji bo sermaseyan derengiya hindiktirîn peyda dike bi lêçûna cezayek piçûktir, û ger hewce bike vegere PREEMPT_VOLUNTARY (modeyek navîn ji bo sermaseyan) an PREEMPT_NONE (ji bo pêşkêşkeran karûbarê herî zêde peyda dike) .
    • Piştgiriya ji bo operasyonên atomî BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG û BPF_CMPXCHG li jêrpergala BPF hate zêdekirin.
    • Ji bernameyên BPF re jêhatî tê dayîn ku bi karanîna nîşankerên bi guhêrbar ve bigihîjin daneyên li ser stikê. Mînakî, heke berê we dikaribû tenê pêdekek hêmanek domdar bikar bînin da ku bigihîjin rêzek li ser stikê, naha hûn dikarin yekek guhêrbar bikar bînin. Kontrola gihîştinê tenê di nav sînorên heyî de ji hêla verastkerê BPF ve tête kirin. Ev taybetmendî ji ber fikarên li ser îstismarkirina qelsiyên darvekirina koda spekulatîf tenê ji bernameyên îmtiyaz re heye.
    • Kapasîteya girêdana bernameyên BPF bi xalên şopî yên tazî yên ku bi şopandina bûyerên ku di cîhê bikarhêner de xuya dibin re têkildar nînin zêde kir (parastina ABI ji bo xalên şopên weha ne garantî ye).
    • Piştgiriya ji bo otobusa CXL 2.0 (Compute Express Link) hate bicîh kirin, ku ji bo organîzekirina danûstendina bilez a di navbera CPU û cîhazên bîranînê de tê bikar anîn (destûrê dide we ku hûn amûrên bîranîna derveyî wekî beşek RAM an bîranîna daîmî bikar bînin, mîna ku ev bîranîn bikar bînin. bi navgîniya kontrolkerek bîra standard a di CPU de hatin girêdan).
    • Ajokarê nvmem lê zêde kir da ku daneyan ji deverên bîranînê yên bi firmware veqetandî yên ku rasterast bi Linux-ê re negihîjin bistînin (mînak, bîranîna EEPROM ku bi fizîkî tenê ji firmware-yê re tê gihîştin, an daneyên ku tenê di qonaxa destpêkê ya bootkirinê de tê gihîştin) vedigire.
    • Piştgiriya ji bo pergala profîla "oprofilê" hate rakirin, ku bi berfirehî nehat bikar anîn û ji hêla mekanîzmaya perf-a nûjen ve hatî veguheztin.
    • Têkiliya I/O ya asynkron a io_uring bi cgroupên ku karanîna bîranînê kontrol dikin re entegrasyonê peyda dike.
    • Mîmariya RISC-V pergalên NUMA, û her weha mekanîzmayên kprobes û uprobes piştgirî dike.
    • Hêza karanîna banga pergala kcmp () bêyî guheztina fonksiyona dîmenên rewşa pêvajoyê (xala kontrolê / vegerandin) lê zêde kir.
    • Makroyên EXPORT_UNUSED_SYMBOL() û EXPORT_SYMBOL_GPL_FUTURE() ku bi salan e di pratîkê de nehatine bikaranîn, hatin rakirin.
  • Virtualization û Ewlekariya
    • Mekanîzmaya parastinê ya KFence (Kernel Electric Fence) lê zêde kir, ku dema ku bi bîranînê re dixebite xeletiyan digire, wek girtina tampon û gihîştina piştî azadkirina bîranînê. Berevajî mekanîzmaya xeletkirina KASAN, bine-pergala KFence bi leza xebitandinê ya bilind û sermaya kêm ve tête diyar kirin, ku dihêle hûn xeletiyên bîranînê yên ku tenê li ser pergalên xebitandinê an di dema xebata demdirêj de xuya dibin bigirin.
    • Piştgiriyek ji bo hîpervisorê ACRN-ê zêde kir, 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î yên di yekîneyên kontrolê yên elektronîkî, panelên amûran, pergalên agahdariya otototîkê, cîhazên IoT yên xerîdar û teknolojiyên din ên pêvekirî de bimeşînin. ACRN du celeb pergalên mêvan piştgirî dike - VM-yên Karûbarê îmtiyaz, ku ji bo birêvebirina çavkaniyên pergalê (CPU, bîranîn, I/O, hwd.) têne bikar anîn, û VM-yên Bikarhêner ên xwerû, ku dikarin belavkirinên Linux, Android û Windows-ê bimeşînin.
    • Di binepergala IMA (Mîmariya Pîvana Yekgirtî) de, ku ji bo kontrolkirina yekparebûna pelan û metadaneyên têkildar databasek hash diparêze, naha gengaz dibe ku meriv rastbûna daneyên kernel bixwe kontrol bike, mînakî, şopandina guhertinên di qaîdeyên SELinux de. .
    • Qebûlbûna navberkirina hîperbangên Xen û şandina wan ji emulatora ku di cîhê bikarhêner de dixebite li hîpervisorê KVM hatî zêdekirin.
    • Hêza karanîna Linux-ê wekî hawîrdora root ji bo hypervisor Hyper-V zêde kir. Jîngeha root rasterast xwedan hardware ye û ji bo xebitandina pergalên mêvanan tê bikar anîn (di Xen-ê de Dom0-a analog). Heya nuha, Hyper-V (Microsoft Hypervisor) Linux tenê di hawîrdorên mêvanan de piştgirî dikir, lê hypervisor bixwe ji hawîrdorek Windows-ê hate kontrol kirin.
    • Piştgiriyek ji bo şîfrekirina hundurîn a ji bo kartên eMMC zêde kir, ku dihêle hûn mekanîzmayên şîfrekirinê yên ku di kontrolkera ajokerê de hatine çêkirin bikar bînin ku bi zelalî I/O şîfre û deşîfre dike.
    • Piştgiriya ji bo RIPE-MD 128/256/320 û Tiger 128/160/192 hashes, ku di bingehê de nayên bikar anîn, û her weha şîfreya stream Salsa20, ku ji algorîtmaya ChaCha20 ve hatî veguheztin, ji nav hatî rakirin. binpergala krîpto. Ji bo pêkanîna blake2s algorîtmaya blake2 hate nûve kirin.
  • Subsystem Network
    • Kapasîteya guheztina hilbera dengdanê ya NAPI-yê ji bo cîhazên torê li mijarek kernelê ya cihêreng zêde kir, ku rê dide performansa çêtir ji bo hin celeb bargiraniya xebatê. Berê, anket di çarçoweya softirqê de dihat kirin û ji hêla nexşerêya peywirê ve nehat vegirtin, ku ji bo bidestxistina performansa herî zêde pêkanîna xweşbîniyên hûrgelî dijwar dikir. Bicîhkirin di mijarek kernelê ya cihêreng de dihêle ku rêvebirê dengdanê ji cîhê bikarhêner were temaşe kirin, bi navgînên CPU yên takekesî ve were girêdan û dema ku guheztina peywirê plansaz dike were hesibandin. Ji bo çalakkirina moda nû ya di sysfs de, pîvana /sys/class/net//threaded tê pêşniyar kirin.
    • Yekbûnek nav bingeha MPTCP (MultiPath TCP), 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êreng ve girêdayî ne. Daxuyaniya nû şiyana danasîna pêşîniyê ji hin mijaran re zêde dike, ku rê dide, mînakî, organîzekirina xebata mijarên paşvekişandinê yên ku bi tenê heke di mijara bingehîn de pirsgirêk hebin vebibe.
    • IGMPv3 ji bo mekanîzmaya EHT (Şopandina Hostê ya Eşkere) piştgirî zêde dike.
    • Motora fîlterkirina pakêtê ya Netfilter şiyana xwedîkirina hin tabloyan peyda dike da ku kontrola taybetî bi dest bixe (mînak, pêvajoyek dîwarê paşîn dikare xwediyê hin tabloyan bibe, rê li ber destêwerdana kesek din bi wan re bigire).
  • Amûr
    • Me platformên ARM yên kevnar û neparastkirî paqij kirin. Koda platformên efm32, picoxcell, prima2, tango, u300, zx û c6x, û her weha ajokarên wan ên têkildar, hatine rakirin.
    • Ajokarê amdgpu şiyana zêdekirina kartên (OverDrive) li ser bingeha GPU-ya Sienna Cichlid (Navi 22, Radeon RX 6xxx) peyda dike. Piştgiriya ji bo formata pixel FP16 ji bo DCE (motora kontrolkerê nîşandanê) ji nifşa 8-an heya 11-an zêde kir. Ji bo GPU Navy Flounder (Navi 21) û APU Van Gogh, şiyana vesazkirina GPU-yê hate bicîh kirin.
    • Ajokera i915 ji bo kartên grafikên Intel-ê parametreya i915.mitigations bicîh tîne da ku mekanîzmayên îzolasyon û parastinê ji bo performansa çêtir neçalak bike. Ji bo çîpên ku ji Gola Tiger dest pê dikin, piştgirî ji bo mekanîzmaya VRR (Nûvekirina Rêjeya Guherbar) tê de heye, ku dihêle hûn bi adapteyî rêjeya nûvekirina çavdêriyê biguhezînin da ku di dema lîstikan de bêkêmasî û bê kêmasî peyda bikin. Piştgiriya teknolojiya Intel Clear Color ji bo rastbûna rengê çêtir tê de heye. Piştgiriya DP-HDMI 2.1 zêde kir. Kapasîteya kontrolkirina ronahiya paşîn a panelên eDP-ê hate bicîh kirin. Ji bo GPU-yên Gen9-ê yên bi LSPCON (Guherkera Astê û Veguhezkarê Protokolê) piştgirî, piştgiriya HDR-ê çalak e.
    • Ajokarê nouveau piştgiriya destpêkê ji bo GPU-yên NVIDIA li ser bingeha mîmariya GA100 (Ampere) zêde dike.
    • Ajokera msm piştgirî ji bo Adreno 508, 509 û 512 GPU-yên ku di çîpên SDM (Snapdragon) 630, 636 û 660 de têne bikar anîn zêde dike.
    • Piştgiriyek ji bo kartên dengê Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s û Pioneer DJM-750 zêde kir. Piştgiriya ji bo binepergala bihîstwerî ya Intel Alder Lake PCH-P zêde kir. Piştgiriya ji bo simulasyona nermalavê ya girêdan û veqetandina girêdanek bihîstwerî ji bo debugkirina rêkarên li cîhê bikarhêner hatî bicîh kirin.
    • Piştgiriyek zêde kir ji bo konsolên lîstikê Nintendo 64 ku ji 1996-an heya 2003-an hatî çêkirin (hewldanên berê yên ji bo porta Linux-ê ji Nintendo 64-ê re nehatin qedandin û wekî Vaporware hatin veqetandin). Motivasyona afirandina portek nû ji bo platformek kevnar, ku hema hema bîst sal e ku nehatiye berdan, xwestek e ku pêşveçûna emulatoran teşwîq bike û barkirina lîstikan hêsan bike.
    • Ji bo kontrolkera lîstika Sony PlayStation 5 DualSense ajokarek zêde kir.
    • Piştgiriya ji bo panel, cîhaz û platformên ARM zêde kir: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MXnoP Nano,
    • Ji bo Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, Samsung GT-I9070 piştgirî zêde kirin.
    • Ajokarê bcm-vk ji bo panelên bilezkerê Broadcom VK (mînak, panelên Valkyrie û Viper PCIe) hate zêdekirin, ku dikare were bikar anîn da ku operasyonên hilberandina deng, vîdyoyê û wêneyê, û her weha operasyonên bi şîfrekirinê, li amûrek cihêreng dakêşin.
    • Piştgiriyek ji bo platforma Lenovo IdeaPad bi şiyana kontrolkirina şarjkirina domdar û ronahiya paşîn a klavyeyê zêde kir. Di heman demê de piştgirî ji bo profîla ACPI ya platforma ThinkPad-ê bi şiyana kontrolkirina modên xerckirina hêzê jî tê peyda kirin. Ji bo binepergala Lenovo ThinkPad X1 Tablet Gen 2 HID ajokarek zêde kir.
    • Ajokarê ov5647 bi piştgiriya modula kamerayê ji bo Raspberry Pi zêde kir.
    • Piştgiriyek ji bo panelên RISC-V SoC FU740 û HiFive Unleashed zêde kir. Ji bo çîpa Kendryte K210 ajokerek nû jî hat zêdekirin.

Source: opennet.ru

Add a comment