Linux kernelaren bertsioa 5.7

Bi hilabeteko garapenaren ondoren, Linus Torvalds aurkeztu nukleoa askatzea Linux 5.7. Aldaketa aipagarrienen artean: exFAT fitxategi-sistemaren inplementazio berria, UDP tunelak sortzeko bareudp modulua, ARM64rako erakusleen autentifikazioan oinarritutako babesa, LSM kudeatzaileei BPF programak eransteko gaitasuna, Curve25519-ren inplementazio berri bat, zatiketa bat. blokeo-detektagailua, BPF bateragarritasuna PREEMPT_RT-rekin, kodean 80 karaktereko lerro-tamainaren muga kentzea, PUZaren tenperatura-adierazleak zereginen programatzailean kontuan hartuta, clone() erabiltzeko gaitasuna beste cgroup batean prozesuak sortzeko, idazketaren aurkako babesa memoriara userfaulfd erabiliz.

Bertsio berriak 15033 garatzaileren 1961 konponketa biltzen ditu,
adabakiaren tamaina - 39 MB (aldaketek 11590 fitxategiri eragin diete, 570560 kode lerro gehitu dituzte,
297401 errenkada kendu dira). 41an aurkeztutako guztien %5.7 inguru
aldaketak gailu kontrolatzaileekin lotuta daude, aldaketen %16 gutxi gorabehera
Hardware-arkitekturari dagokion kodea eguneratzeko jarrera, %13.
sareko pilari lotutakoak, %4 fitxategi-sistemei eta %4 barnekoak
nukleoaren azpisistemak.

Nagusia berrikuntzak:

  • Disko azpisistema, I/O eta fitxategi sistemak
    • exFAT kontrolatzaileen inplementazio berria gehitu da, sortua Samsung-ek bere Android telefonoetarako garatu duen egungo "sdfat" (2.x) kode oinarrian oinarrituta. Aurretik nukleoan gehitutako kontrolatzailea Samsung-eko kode zaharrean oinarritzen zen (1.2.9 bertsioa) eta errendimenduan kontrolatzaile berriaren %10 inguru atzetik zegoen. Gogora dezagun nukleoari exFAT euskarria gehitzea posible izan zela Microsoft-en ondoren argitaratuko zehaztapen publikoak eta exFAT patenteak eskuragarri jarri zituen Linux-en eskubiderik gabe erabiltzeko.
    • Btrfs ioctl() komando berri bat inplementatzen du - BTRFS_IOC_SNAP_DESTROY_V2, zeinak bere identifikatzailearen arabera azpiatal bat ezabatzeko aukera ematen duena. Lineako hedapenak klonatzeko laguntza osoa eskaintzen da. Birbanaketa-eragiketetarako baliogabetze-puntu kopurua zabaldu egin da, eta horrek itxaronaldi luzeak murriztu ditu 'balantzea ezeztatu' komandoa exekutatzean. Atzerako esteken neurrien zehaztapena bizkortu egin da (adibidez, probako script-a exekutatzeko denbora ordu batetik minutu batzuetara murriztu da). Fitxategien hedadurak zuhaitz baten inodo bakoitzean eransteko gaitasuna gehitu da. Azpipartizioetan idaztean eta NOCOW baztertzean erabiltzen den blokeo-eskema berriro diseinatu da. fsync exekuzioaren eraginkortasuna hobetu da barrutietarako.
    • XFS-k metadatuen egiaztapena eta fsck hobetu ditu partizio aktiboetarako. Liburutegi bat proposatu da btree egiturak berreraikitzeko, etorkizunean xfs_repair birlantzeko eta partizioa desmuntatu gabe berreskuratzeko aukera ezartzeko erabiliko dena.
    • SMB3 biltegietan truke-partizioa jartzeko laguntza esperimentala gehitu da CIFS-era. Readdir-rako POSIX luzapenak inplementatu dira, SMB3.1.1 zehaztapenean definituta. Idazketa-errendimendua hobetu da 64KB-ko orrialdeetarako cache=modu zorrotza gaituta dagoenean eta 2.1+ protokolo-bertsioak erabiltzen direnean.
    • FS EXT4 bmap eta iopoll-etik iomap erabiltzera transferitu da.
    • F2FS-k aukerako laguntza eskaintzen du datuak konpresiorako zstd algoritmoa erabiliz. Lehenespenez, LZ4 algoritmoa erabiltzen da konpresiorako. "chattr -c commit" komandoaren euskarria gehitu da. Muntatzeko denboraren bistaratzea eskaintzen da. Ioctl F2FS_IOC_GET_COMPRESS_BLOCKS gehitu da konprimitutako bloke kopuruari buruzko informazioa lortzeko. Konpresioaren datuen irteera gehitu da statx bidez.
    • Ceph fitxategi-sistemak fitxategiak sortzeko eta ezabatzeko eragiketak lokalean egiteko gaitasuna gehitu du (deslokatu) zerbitzariaren erantzunaren zain egon gabe (modu asinkronoan lan egiten du). Aldaketak, adibidez, nabarmen hobetu dezake errendimendua rsync utilitatea exekutatzen denean.
    • OVERLAYFS-i virtiofs goi-mailako fitxategi-sistema gisa erabiltzeko gaitasuna gehitu da.
    • Berridatzia bidearen zeharkako kodea VFS-n, esteka sinbolikoen analisiaren kodea berritu da eta muntatze-puntuaren zeharkaldia bateratu da.
    • Scsi azpisisteman pribilegiorik gabeko erabiltzaileei onartzen ZBC komandoen exekuzioa.
    • dm_writecache-n ezarrita cachea pixkanaka garbitzeko gaitasuna max_age parametroan oinarrituta, bloke baten gehieneko iraupena ezartzen duena.
    • dm_integrity-n gehitu "baztertu" eragiketaren laguntza.
    • null_blk atalean gehitu Akatsak ordezkatzeko laguntza proban zehar hutsegiteak simulatzeko.
    • Gehituta gailuen tamaina aldaketei buruz udev jakinarazpenak bidaltzeko gaitasuna.
  • Sarearen azpisistema
    • Netfilter barne aldaketak, partida-zerrenda handien (nftables multzoak) prozesatzea nabarmen bizkortuz, azpisareen, sareko ataken, protokoloaren eta MAC helbideen konbinazioa egiaztatzea eskatzen dutenak.
      Optimizazioak sartu nft_set_pipapo (PIle PAcket POlicies) moduluan, pakete baten edukiak iragazketa arauetan erabiltzen diren eremu-egoera-barruti arbitrarioekin parekatzeko arazoa konpontzen du, hala nola IP eta sareko atakeen barrutiak (nft_set_rbtree eta nft_set_hash-ek tarteen bat etortzea eta balioen isla zuzena manipulatzea). ). AMD Epyc 256 prozesadorearekin sistema batean 2 biteko AVX7402 instrukzioak erabiliz pipapo bektorizatutako bertsioak % 420ko errendimendua handitu zuen 30 mila erregistro analizatzean, portu-protokolo konbinazioak barne. 1000 erregistro analizatzean azpisare baten eta ataka-zenbakiaren konbinazioa alderatzean igoera % 87koa izan zen IPv4rako eta % 128koa IPv6rako.

    • Gehituta bareudp modulua, L3 hainbat protokolo, hala nola MPLS, IP eta NSH, UDP tunel batean kapsulatzeko aukera ematen duena.
    • Jarraitu egin da MPTCP (MultiPath TCP) osagaien integrazioa, TCP konexio baten funtzionamendua antolatzeko TCP protokoloaren luzapena, paketeak aldi berean bidaltzeko hainbat ibilbidetan zehar IP helbide ezberdinei lotuta dauden sare-interfaze ezberdinen bidez.
    • Gehituta Ethernet markoak 802.11 (Wi-Fi) enkapsulatzeko hardware azelerazio mekanismoetarako laguntza.
    • Gailu bat sareko izen-espazio batetik bestera mugitzean, sysfs-en dagozkien fitxategien sarbide-eskubideak eta jabetza doitzen dira.
    • Root ez diren erabiltzaileentzat SO_BINDTODEVICE bandera erabiltzeko gaitasuna gehitu da.
    • Adabakien hirugarren zatia onartu da, ethtool toolkit ioctl()-tik netlink interfazea erabiltzera bihurtuz. Interfaze berriak luzapenak gehitzea errazten du, erroreen kudeaketa hobetzen du, egoera aldatzen denean jakinarazpenak bidaltzeko aukera ematen du, nukleoaren eta erabiltzailearen espazioaren arteko elkarrekintza errazten du eta sinkronizatu behar diren izendun zerrenda kopurua murrizten du.
    • Hardware azeleragailu bereziak erabiltzeko gaitasuna gehitu da konexioen jarraipena egiteko eragiketak egiteko.
    • netfilter-en gehitu du Irteerako paketeen sailkatzaileak konektatzeko kako bat (irteera), sarrerako paketeen (sarrera) aurretik zegoen amua osatzen zuena.
  • Birtualizazioa eta segurtasuna
    • Erakuslearen autentifikazioaren hardware inplementazioa gehitu da (Erakusleen autentifikazioa), zeinak ARM64 CPU instrukzio espezializatuak erabiltzen dituen erasoetatik babesteko itzulera bideratutako programazioa (ROP) teknikak erabiliz, non erasotzailea ez den bere kodea memorian jartzen saiatzen, baina kargatutako liburutegietan dagoeneko eskuragarri dauden makina-argibideekin funtzionatzen du, amaitzen dena. kontrol-itzulera instrukzio batekin. Segurtasuna kernel mailan itzultzeko helbideak egiaztatzeko sinadura digitalak erabiltzean datza. Sinadura erakuslearen beraren goiko bitetan gordetzen da. Softwarearen inplementazioek ez bezala, sinadura digitalak sortzea eta egiaztatzea PUZaren argibide bereziak erabiliz egiten da.
    • Gehituta memoria-eremu bat userfaultfd() sistema-deia erabiliz idaztetik babesteko gaitasuna, orrialdeen akatsak (esleitu gabeko memoria-orrietarako sarbidea) kudeatzeko diseinatua erabiltzailearen espazioan. Ideia userfaultfd() erabiltzea da, bai idazketa-babes gisa markatutako orrietarako sarbide-urraketak detektatzeko, bai idazketa-saiakerei erantzun diezaiekeen kudeatzaile bati deitzeko (adibidez, exekutatzen diren prozesuen zuzeneko irudiak sortzean aldaketak kudeatzeko, egoera, egoera). memoria iraulketak diskora botatzean, memoria partekatua ezartzean, memoriako aldaketen jarraipena). Funtzionalitatea baliokidea mprotect() erabiliz SIGSEGV seinale-kudeatzailearekin batera, baina nabarmen azkarrago funtzionatzen du.
    • SELinux-ek "checkreqprot" parametroa zaharkitu du, arauak prozesatzen dituzunean memoria babesteko egiaztapenak desgaitzeko aukera ematen duena (memoria exekutagarrien eremuak erabiltzea ahalbidetuz, arauetan zehaztutako arauak kontuan hartu gabe). Kernfs esteka sinbolikoek beren direktorio nagusien testuingurua heredatzeko baimena dute.
    • Konposizioa barne modulua KRSI, eta horrek BPF programak nukleoko edozein LSM kakoetara eransteko aukera ematen du. Aldaketak LSM moduluak (Linux Security Module) BPF programen moduan sortzeko aukera ematen du, auditoretza-arazoak eta derrigorrezko sarbide-kontrola konpontzeko.
    • Egindako /dev/random-en errendimendua optimizatzen du CRNG balioak batuz, RNG argibideak banan-banan deitu beharrean. Getrandom eta /dev/random-en errendimendua hobetu da ARM64 sistemetan RNG argibideak ematen dituztenak.
    • Kurba eliptiko baten ezarpena Kurba25519 ordezkatu liburutegiko aukerarako HACL, zeinentzat emana fidagarritasun formalaren egiaztapenaren froga matematikoa.
    • Gehituta memoria libreko orriei buruz informatzeko mekanismoa. Mekanismo hori erabiliz, sistema gonbidatuek jada erabiltzen ez diren orriei buruzko informazioa igor diezaiokete sistema ostalariari, eta ostalariak orriaren datuak berreskura ditzake.
    • vfio/pci-n gehitu SR-IOV (Single-Root I/O Birtualizazioa) laguntza.
  • Memoria eta sistema zerbitzuak
    • 80 karakteretik 100 karaktere handitu sorburu-testuetako gehienezko lerroaren luzera mugatzea. Aldi berean, garatzaileei gomendatzen zaie lerro bakoitzeko 80 karaktere baino gutxiago egotea, baina hori jada ez da muga gogorra. Horrez gain, lerroaren tamainaren muga gainditzeak orain eraikitze-abisua ekarriko du checkpatch '--strict' aukerarekin exekutatzen bada soilik. Aldaketak garatzaileei arretarik ez desbideratzea ahalbidetuko du manipulazioa zuriuneekin eta askeago sentitu kodea lerrokatzean, baita eragotziko du gehiegizko lerro haustea, kezkagarria kodearen ulermena eta bilaketa.
    • Gehituta EFI abiarazte-modu mistorako laguntza, 64 biteko kernel bat 32 biteko CPU batean exekutatzen den 64 biteko firmwaretik kargatzeko aukera ematen baitu abio-kargatzaile espezializaturik erabili gabe.
    • Barneratuta zatitutako blokeoak identifikatzeko eta arazketarako sistema ("zatitu blokeoa"), memorian lerrokatu gabeko datuak atzitzean gertatzen dena, instrukzio atomiko bat exekutatzen denean datuek CPUko cache-lerro bi zeharkatzen dituztelako. Blokeo horrek errendimendu arrakasta handia eragiten du (cache lerro batean erortzen diren datuen eragiketa atomiko bat baino 1000 ziklo motelagoa). "split_lock_detect" abiarazte-parametroaren arabera, nukleoak halako blokeoak berehala detektatu ditzake eta abisuak eman edo SIGBUS seinale bat bidal dezake blokeoa eragiten duen aplikaziora.
    • Zereginen programatzaileak tenperatura sentsoreen jarraipena eskaintzen du (Presio termikoa) eta zereginak jartzean gainberotzea kontuan hartuta ezarri da. Emandako estatistikak erabiliz, gobernadore termikoak gehiegi berotzen denean CPUaren maiztasun maximoa doi dezake, eta zereginen programatzaileak orain konputazio potentziaren murrizketa kontuan hartzen du maiztasunaren murrizketa horren ondorioz zereginak exekutatzeko programatzean (lehen, programatzaileak aldaketei erantzuten zien). maiztasunez atzerapen jakin batekin, erabilgarri dauden baliabide informatikoei buruzko hipotesi puztuetan oinarritutako erabakiak hartzeko denbora batez).
    • Zereginen programatzaileak barne hartzen ditu adierazle aldaezinak kargaren jarraipena, karga zuzen kalkulatzeko aukera ematen dizu, uneko PUZaren funtzionamendu-maiztasuna edozein dela ere. Aldaketak zehaztasun handiagoz aurreikusteko aukera ematen du zereginen portaera tentsioaren eta CPUaren maiztasunaren aldaketa dinamikoen baldintzetan. Adibidez, CPU baliabideen 1/3 1000 MHz-an kontsumitzen zuen zeregin batek baliabideen 2/3 kontsumituko ditu maiztasuna 500 MHz-ra jaisten denean, eta horrek aurretiaz gaitasun osoz exekutatzen ari zelako hipotesi faltsu bat sortu zuen (hau da, zereginak agertu ziren). handiagoa da programatzailearentzat maiztasuna murriztuz soilik, eta horrek schedutil cpufreq governor-en erabaki okerrak hartzea ekarri zuen).
    • Errendimendu moduak hautatzeko ardura duen Intel P-state kontrolatzailea erabiltzeko aldatu da egutegia.
    • Nukleoa denbora errealean exekutatzen ari denean BPF azpisistema erabiltzeko gaitasuna (PREEMPT_RT) inplementatu da. Aurretik, PREEMPT_RT gaituta zegoenean, BPF desgaitu behar zen.
    • BPF programa mota berri bat gehitu da - BPF_MODIFY_RETURN, nukleoko funtzio bati erantsi eta funtzio honek itzultzen duen balioa alda daitekeena.
    • Gehituta aukera Clone3() sistema-deia erabiliz, cgroup gurasoaren desberdina den cgroup batean prozesu bat sortzeko, prozesu gurasoari murrizketak aplikatzeko eta kontabilitatea gaitzeko prozesu edo hari berri bat sortu eta berehala. Adibidez, zerbitzu-kudeatzaileak zuzenean zerbitzu berriak esleitu ditzake cgroup bereizietara, eta prozesu berriak, "izoztutako" taldeetan jartzen direnean, berehala geldituko dira.
    • Kbuild-en gehitu "LLVM=1" ingurune aldagaiaren euskarria Clang/LLVM tresna-kit batera aldatzeko nukleoa eraikitzean. Binutils bertsioaren eskakizunak planteatu dira (2.23).
    • /sys/kernel/debug/kunit/ atala gehitu da debugfs-i kunit proben emaitzekin.
    • Nukleoaren abiarazte-parametroa pm_debug_messages gehitu da (/sys/power/pm_debug_messages-ren analogoa), potentzia kudeatzeko sistemaren funtzionamenduari buruzko arazketa-informazioa ateratzea ahalbidetzen duena (hibernazio eta egonean moduko arazoak arazketarako erabilgarria).
    • I/O interfaze asinkronora io_uring laguntza gehitu da juntura () ΠΈ buffer atomikoa hautatzea.
    • Cgroup profila hobetu da perf toolkit erabiliz. Aurretik, perf-ek cgroup zehatz bateko zereginak profilatu zituen soilik eta ezin izan zuen uneko lagina zein cgroupri dagokion aurkitu. perfek orain cgroup informazioa jasotzen du lagin bakoitzarentzat, eta cgroup bat baino gehiago profila dezakezu eta arabera ordenatzeko aukera ematen dizu
      cgroup txostenetan.

    • cgroupfs, cgroups kudeatzeko sasi-FS batek, atributu hedatuen (xattrs) euskarria gehitu du, eta horrekin, adibidez, kudeatzaileentzako informazio gehigarria utzi dezakezu erabiltzaileen espazioan.
    • cgroup memoria kontrolagailuan gehitu dueta "memory.low" balioaren babes errekurtsiborako euskarria, taldekideei ematen zaien RAM gutxieneko kopurua arautzen duena. "memory_recursiveprot" aukerarekin cgroup hierarkia bat muntatzean, beheko nodoetarako ezarrita dagoen "memory.low" balioa automatikoki banatuko da nodo seme guztietara.
    • Gehituta Uacce (Unified/User-space-access-intended Accelerator Framework) CPUaren eta gailu periferikoen artean helbide birtualak (SVA, Shared Virtual Addressing) partekatzeko markoa, hardware-azeleragailuak CPU nagusiko datu-egituretara sartzeko aukera emanez.
  • Hardware arkitekturak
    • ARM arkitekturarako, memoria beroa lortzeko gaitasuna ezartzen da.
    • RISC-V arkitekturari dagokionez, PUZak beroan konektatzeko eta kentzeko laguntza (CPU hotplug) gehitu da. 32 biteko RISC-Vrako, eBPF JIT inplementatzen da.
    • KVM gonbidatuen inguruneak exekutatzeko 32 biteko ARM sistemak erabiltzeko gaitasuna kendu da.
    • S390 arkitekturarako NUMA inplementazio "dummy" ezabatu da, eta horretarako ez da errendimendua hobekuntzak lortzeko erabilera kasurik aurkitu.
    • ARM64rako, AMU (Activity Monitors Unit) luzapenerako euskarria gehitu da, ARMv8.4-n definitua eta zereginen programatzailean maiztasun-eskalako zuzenketa-faktoreak kalkulatzeko erabiltzen diren errendimendu-kontagailuak eskainiz.
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Gehituta virtio zehaztapenak betetzen dituen datuak trukatzeko kanala erabiltzen duten vDPA gailuetarako laguntza. vDPA gailuak fisikoki konektatutako ekipoak edo software emulatutako gailu birtualak izan daitezke.
    • GPIO azpisisteman agertu ioctl() komando berri bat aldaketak kontrolatzeko, edozein GPIO linearen egoeraren aldaketei buruzko prozesuaren berri emateko. Komando berria erabiltzearen adibide gisa proposatu gpio-watch erabilgarritasuna.
    • Intel bideo-txartelen i915 DRM kontrolatzailean barne Tigerlake ("Gen12") txipentzako laguntza lehenetsia eta OLED atzeko argiaren kontrolaren hasierako laguntza gehitu zuen. Ice Lake, Elkhart Lake, Baytrail eta Haswell txipetarako laguntza hobetu da.
    • Amdgpu kontrolatzailean gehitu ASIC-rako USBC txipan firmwarea kargatzeko gaitasuna. AMD Ryzen 4000 "Renoir" txipentzako laguntza hobetua. Orain OLED panelak kontrolatzeko laguntza dago. Firmwarearen egoeraren bistaratzea debugfs-en.
    • Gonbidatuen sistemetan OpenGL 4 erabiltzeko gaitasuna gehitu zaio vmwgfx DRM kontrolatzaileari VMware birtualizazio sistemetarako (lehen OpenGL 3.3 onartzen zen).
    • TI Keystone plataformako bistaratze sistemarako DRM kontrolatzaileen datu berriak gehitu dira.
    • LCD paneletarako kontrolatzaileak gehitu dira: Feixin K101 IM2BA02, Samsung s6e88a0-ams452ef01, Novatek NT35510, Elida KD35T133, EDT, NewEast Optoelectronics WJFH116008A, Rocktech RK101II01D350, Rocktech RK54004IIXNUMXDXNUMX.
    • Energia kudeatzeko sistemara gehitu Atom-en oinarritutako Intel Jasper Lake (JSL) plataformarako laguntza.
    • Rockchip RK3399, Pine64 PineTab tableta eta smartphone-an oinarritutako Pinebook Pro ordenagailu eramangarrirako laguntza gehitu da. Pinoia Allwinner A64-n oinarrituta.
    • Audio kodek eta txip berrientzako laguntza gehitu da:
      Amlogic AIU, Amlogic T9015, Texas Instruments TLV320ADCX140, Realtek RT5682, ALC245, Broadcom BCM63XX I2S, Maxim MAX98360A, Presonus Studio 1810c, MOTU MicroBook IIc.

    • ARM plaka eta plataformetarako laguntza gehitu da Qualcomm Snapdragon 865 (SM8250), IPQ6018, NXP i.MX8M Plus, Kontron "sl28", 11 i.MX6 TechNexion Pico plaka aukerak, Toradex Colibri hiru aukera berri, Samsung S7710 Galaxy Xcover 2 ST-en oinarrituta. -Ericsson u8500, DH Electronics DHCOM SoM eta PDK2, Renesas M3ULCB, Hoperun HiHope, Linutronix Testbox v2, PocketBook Touch Lux 3.

Iturria: opennet.ru

Gehitu iruzkin berria