Linux kernelaren bertsioa 5.8

Bi hilabeteko garapenaren ondoren, Linus Torvalds aurkeztu nukleoa askatzea Linux 5.8. Aldaketa aipagarrienen artean: KCSAN lasterketa-baldintzen detektagailua, jakinarazpenak erabiltzaileen espaziora bidaltzeko mekanismo unibertsala, lineako enkriptatzeko hardware-laguntza, ARM64-rako segurtasun-mekanismo hobetuak, Errusiako Baikal-T1 prozesadorerako euskarria, procfs instantziak bereizita muntatzeko gaitasuna. , ARM64 Call Stack eta BTIrako Shadow segurtasun mekanismoak ezartzea.

Kernel 5.8 proiektuaren existentzia osoan zehar nukleo guztien aldaketa kopuruari dagokionez handiena bihurtu zen. Gainera, aldaketak ez daude inongo azpisistema batekin lotuta, baina nukleoaren zati desberdinak hartzen dituzte eta batez ere barne birmoldaketa eta garbiketarekin lotzen dira. Aldaketa handienak gidarietan ikusten dira. Bertsio berriak 17606 garatzaileren 2081 konponketa zituen, eta horrek nukleoko kode biltegiko fitxategi guztien % 20ari eragin zion gutxi gorabehera. Adabakiaren tamaina 65 MB da (aldaketek 16180 fitxategiri eragin zioten, 1043240 kode lerro gehitu ziren, 489854 lerro ezabatu ziren). Alderatuz, 5.7 adarrak 15033 konponketa eta 39 MB-ko adabaki tamaina zituen. 37an sartutako aldaketa guztien % 5.8 inguru gailu kontrolatzaileei dagozkie, aldaketen % 16 gutxi gorabehera hardware-arkitekturen kode espezifikoa eguneratzearekin lotuta dago, % 11 sareko pilari dagokio, % 3 fitxategi-sistemei dagokie eta % 4. nukleo barneko azpisistemekin lotuta daude.

Nagusia berrikuntzak:

  • Birtualizazioa eta segurtasuna
    • Exekuzioa eta idazketa ahalbidetzen duten bitak aldi berean ezartzen diren kodedun atalak dituzten nukleoko moduluen karga ematen da. Aldaketa proiektu handiago baten barruan ezarri zen nukleoa aldibereko exekuzioa eta idazketa ahalbidetzen duten memoria-orrien erabilera kentzeko.
    • Orain posible da procfs instantzia bereiziak sortzea, procfs muntaketa-puntu anitz erabiltzea ahalbidetuz, aukera ezberdinekin muntatuta, baina prozesu-identifikatzaile izen-espazio bera islatzen duena (pid namespace). Aurretik, procfs muntaketa-puntu guztiek barneko irudikapen bakarra islatzen zuten, eta muntatze-parametroetan egindako aldaketak prozesu-ID izen-espazio berdinarekin lotutako beste muntatze-puntu guztiei eragiten zien. Aukera ezberdinekin muntatzea eska daitekeen arloen artean, sistema txertatuetarako isolamendu arina ezartzea dago, prozesu mota batzuk eta informazio-nodoak procfs-etan ezkutatzeko gaitasuna dutenak.
    • Mekanismorako euskarria ezarri da ARM64 plataformarako
      Itzal-deien pila, Clang konpilatzaileak emandako funtzio baten itzulera-helbidea gainidaztearen aurka babesteko pila-buffer gainezka dagoenean. Babesaren funtsa itzulera helbidea aparteko "itzal" pila batean gordetzea da, kontrola funtzio batera transferitu eta helbide hori berreskuratu ondoren funtziotik irten aurretik.

    • ARM64 plataformarako jarraibideen laguntza gehitu da ARMv8.5-BTI (Branch Target Indicator) adarkatu behar ez diren argibide multzoen exekuzioa babesteko. Kode-atal arbitrarioetarako trantsizioak blokeatzea inplementatzen da itzulera bideratutako programazio-teknikak erabiltzen dituzten ustiapenetan tramankuluak sortzea saihesteko (ROP - Return-Oriented Programming; erasotzailea ez da saiatzen bere kodea memorian jartzen, baina lehendik dauden piezetan jarduten du). itzulera kontrolatzeko instrukzio batekin amaitzen diren makinen instrukzioen, eta bertatik dei-kate bat eraikitzen da nahi den funtzionaltasuna lortzeko).
    • Bloke gailuen lineako enkriptatzeko hardware laguntza gehitu da (Lineako enkriptatzea). Inlinep enkriptatzeko gailuak normalean unitatean sartzen dira, baina logikoki sistemaren memoria eta diskoaren artean kokatzen dira, gardenki enkriptatzen eta deszifratzen I/O nukleoan zehaztutako gakoetan eta enkriptazio-algoritmo batean oinarrituta.
    • "initrdmem" nukleoaren komando-lerroaren aukera gehitu da, initrd-aren memoria fisikoaren helbidea zehaztea ahalbidetzeko hasierako abiarazte-irudia RAM-n jartzerakoan.
    • Gaitasun berria gehitu da: CAP_PERFMON perf azpisistemara sartzeko eta errendimenduaren jarraipena egiteko. CAP_BPF, lehen CAP_SYS_ADMIN eskubideak (CAP_SYS_ADMIN eskubideak CAP_BPF, CAP_PERFMON eta CAP_NET_ADMIN konbinazio batean banatzen dira) zenbait BPF eragiketa ahalbidetzen dituena (adibidez, BPF programak kargatzea).
    • -k gehitua virtio-mem gailu berri bat, sistema gonbidatuetan memoria bero-konexioa eta beroa konektatzeko aukera ematen duena.
    • /dev/mem-en mapa-eragiketak gogoratzea inplementatu da gailuaren kontrolatzaileak gainjarritako memoria-eremuak erabiltzen baditu.
    • Ahultasunen babesa gehitu da CROSSTalk/SRBDS, PUZaren beste nukleo batean exekutatutako zenbait instrukzioren emaitzak berreskuratzeko aukera ematen duena.
  • Memoria eta sistema zerbitzuak
    • Kodea formateatzeko arauak definitzen dituen dokumentuan, onartua terminologia inklusiboa erabiltzeko gomendioak. Garatzaileei ez zaie gomendatzen "master/slave" eta "blacklist/whitelist" konbinazioak erabiltzea, baita "slave" hitza bereizita. Gomendioak termino hauen erabilera berriei soilik dagozkie. Muinean jada existitzen diren zehaztutako hitzen aipamenak ukitu gabe geratuko dira. Kode berrian, markatutako terminoak erabiltzea baimentzen da erabiltzaileen espazioan agerian dauden API eta ABI onartzeko beharrezkoa bada, baita kodea eguneratzen denean lehendik dauden hardware edo protokoloak onartzeko, zeinen zehaztapenek baldintza jakin batzuk erabiltzea eskatzen duten.
    • Arazketa tresna barne KCSAN (Kernel Concurrency Sanitizer), detekzio dinamikorako diseinatua lasterketa baldintzak muinaren barruan. KCSAN erabiltzea onartzen da GCC eta Clang-en eraikitzean, eta konpilazio garaian aldaketa bereziak behar dira memoriaren sarbidearen jarraipena egiteko (memoria irakurtzen edo aldatzen denean abiarazten diren eten-puntuak erabiltzen dira). KCSANen garapenaren ardatza positibo faltsuen prebentzioa, eskalagarritasuna eta erabiltzeko erraztasuna izan zen.
    • Gehituta mekanismo unibertsala jakinarazpenak kerneletik erabiltzaileen espaziora bidaltzea. Mekanismoa kanalizazio-gidari estandarrean oinarritzen da eta nukleotik jakinarazpenak modu eraginkorrean banatzeko aukera ematen du erabiltzaileen espazioan irekitako kanaletan. Jakinarazpenak jasotzeko puntuak modu berezi batean irekitzen diren kanalizazioak dira eta nukleotik jasotako mezuak eraztun-buffer batean pilatzea ahalbidetzen dute. Irakurketa ohiko read() funtzioak egiten du. Kanalaren jabeak zehazten du nukleoko zein iturburu kontrolatu behar diren eta iragazki bat definitu dezake mezu eta gertaera mota batzuei jaramonik egiteko. Gertaeren artean, gakoak dituzten eragiketak soilik onartzen dira gaur egun, esate baterako, gakoak gehitzea/kentzea eta haien atributuak aldatzea. Gertaera hauek GNOMEn erabiltzeko aurreikusita dago.
    • 'pidfd' funtzionalitatearen etengabeko garapena PID berrerabilpen egoerak kudeatzen laguntzeko (pidfd prozesu zehatz batekin lotuta dago eta ez da aldatzen, PID bat beste prozesu batekin lotu daiteke, berriz, PID horrekin lotutako uneko prozesua amaitu ondoren). Bertsio berriak pidfd erabiltzeko laguntza gehitzen du izen-espazioei prozesu bat eransteko (setns sistema-deia exekutatzen denean pidfd zehaztea ahalbidetzen du). Pidfd erabiliz, prozesu baten izen-eremu mota batzuei dei batekin kontrolatzeko aukera ematen dizu, beharrezkoak diren sistema-deien kopurua nabarmen murriztuz eta eranskina modu atomikoan ezarriz (izen-espazioetako batean eranskinak huts egiten badu, besteak ez dira konektatuko). .
    • Faccessat2() sistema-dei berri bat gehitu da, ez dena
      faccessat() argumentu gehigarri bat POSIXen gomendioak betetzen dituzten flagekin (lehen bandera hauek C liburutegian emulatzen ziren, eta faccessat2 berriak nukleoan inplementatzeko aukera ematen du).

    • Cgroup-en gehitu truke-leku gehiegi hartzen duten zereginak moteltzeko erabil daitekeen memoria.swap.altua ezarpena.
    • I/O interfaze asinkronora io_uring tee() sistema deirako laguntza gehitu du.
    • Mekanismoa gehitu da "BPF iteratzailea, kernel-egituren edukia erabiltzaileen espaziora ateratzeko diseinatua.
    • Emanda BPF programen arteko datuak trukatzeko eraztun-buffer bat erabiltzeko gaitasuna.
    • Mekanismoan sartu padata, nukleoan zereginen exekuzio paraleloa antolatzeko diseinatua, hari anitzeko zereginetarako laguntza gehitu zuen karga orekatzeko.
    • Pstore mekanismoan, berrabiarazi bitartean galtzen ez diren memoria-eremuetan hutsegitearen arrazoiari buruzko arazketa-informazioa gordetzeko aukera ematen duena, gehitu du gailuak blokeatzeko informazioa gordetzeko backend.
    • PREEMPT_RT nukleoaren adarretik mugitu tokiko blokeoak ezartzea.
    • Gehituta Buffer esleitzeko API berria (AF_XDP), XDP (eXpress Data Path) euskarria duten sareko kontrolatzaileen idazketa erraztera zuzendua.
    • RISC-V arkitekturarako, KGDB erabiliz nukleoaren osagaiak arazketarako laguntza inplementatu da.
    • 4.8 bertsioaren aurretik, nukleoa eraikitzeko erabil daitekeen GCC bertsioaren baldintzak areagotu egin dira. Hurrengo bertsioetako batean GCC 4.9ra muga igotzea aurreikusten da.
  • Disko azpisistema, I/O eta fitxategi sistemak
    • Gailuen mapatzailean gehitu du dm-ebs (bloke-tamaina emulatu) kudeatzaile berria, bloke logiko-tamaina txikiagoa emulatzeko erabil daitekeena (adibidez, 512K sektore-tamainako diskoetan 4 byteko sektoreak emulatzeko).
    • F2FS fitxategi-sistemak konpresioa onartzen du orain LZO-RLE algoritmoa erabiliz.
    • dm-crypt-en gehitu enkriptatutako gakoentzako laguntza.
    • Btrfs-ek irakurketa-eragiketen kudeaketa hobetu du I/O modu zuzenean. Muntatzerakoan azeleratua ezabatutako azpiatalak eta gurasorik gabe utzitako direktorioak egiaztatzea.
    • "Nodelete" parametro bat gehitu da CIFS-ra, zerbitzarian baimen arruntak egiaztatzea ahalbidetuz, baina bezeroari fitxategiak edo direktorioak ezabatzea debekatuz.
    • Ext4-k erroreen kudeaketa hobetu du ENOSPC multithreading erabiltzean. xattr-ek GNU Hurd-en erabiltzen den gnu.* izen-espaziorako laguntza gehitu du.
    • Ext4 eta XFS-etarako, DAX eragiketetarako euskarria gaituta dago (fitxategi-sistemarako sarbide zuzena, orriaren cachea saihestuz blokeo gailu-maila erabili gabe) fitxategi eta direktorio indibidualei dagokienez.
    • Sistema deian statx() bandera gehitu da STATX_ATTR_DAX, zehazten denean, DAX motorra erabiliz informazioa berreskuratzen duena.
    • EXFAT gehitu abio eremua egiaztatzeko laguntza.
    • GAINEAN hobetu FS elementuen karga proaktiboa. 2TBko USB disko motel bat probatzeak probak burutzeko denbora 383 segundotik 51 segundora murriztea erakutsi zuen.
  • Sarearen azpisistema
    • Sare-zubien funtzionamendua kontrolatzeko kodean gehitu protokoloaren laguntza MRP (Media Redundancy Protocol), akatsen tolerantzia ahalbidetzen duena Ethernet etengailu bat baino gehiago looping bidez.
    • Trafikoa kontrolatzeko sistemara (Tc) gehitu "ate" ekintza berria, zenbait pakete prozesatzeko eta baztertzeko denbora-tarteak definitzea ahalbidetzen duena.
    • Konektatutako sareko kablea eta sareko gailuen autodiagnostikoa probatzeko laguntza gehitu da nukleoan eta ethtool utilitatean.
    • MPLS (Multiprotocol Label Switching) algoritmoaren euskarria gehitu da IPv6 pilara paketeak bideratzeko etiketa aldaketa erabiliz (lehen MPLS onartzen zen IPv4rako).
    • IKE (Internet Key Exchange) eta IPSec paketeak TCP bidez transmititzeko laguntza gehitu da (RFC 8229) UDP blokeo posibleak saihesteko.
    • -k gehitua network block device rnbd, RDMA garraioa (InfiniBand, RoCE, iWARP) eta RTRS protokoloa erabiliz blokeatutako gailu baterako urruneko sarbidea antolatzeko aukera ematen duena.
    • TCP pilan gehitu Onarpen selektiboaren (SACK) erantzunetan barrutiaren konpresioaren laguntza.
    • IPv6rako ezarrita TCP-LD euskarria (RFC 6069, Konektibitate eten luzeak).
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Intel bideo-txartelen i915 DRM kontrolatzaileak Intel Tiger Lake (GEN12) txipetarako onartzen du lehenespenez, eta horretarako ezarrita SAGV (System Agent Geyserville) sistema erabiltzeko gaitasuna maiztasuna eta tentsioa dinamikoki doitzeko potentzia-kontsumoaren edo errendimendu-baldintzen arabera.
    • Amdgpu kontrolatzaileak FP16 pixel formatuaren euskarria eta bideo-memorian (TMZ, Trusted Memory Zone) buffer enkriptatutakoekin lan egiteko gaitasuna gehitu du.
    • AMD Zen eta Zen2 prozesadoreentzako potentzia sentsoreentzako laguntza gehitu da, baita AMD Ryzen 4000 Renoirentzako tenperatura sentsoreentzako ere. Interfazearen bidez energia-kontsumoaren informazioa berreskuratzeko laguntza eskaintzen da AMD Zen eta Zen2-rentzat RAPL (Batez besteko potentzia-muga).
    • NVIDIA aldatzailearen formatuaren euskarria gehitu zaio Nouveau kontrolatzaileari. gv100-rako, gurutzatutako eskaneatzeko moduak erabiltzeko gaitasuna ezarri da. vGPU hautematea gehitu da.
    • Adreno A405, A640 eta A650 GPUetarako euskarria gehitu zaio MSM (Qualcomm) kontrolatzaileari.
    • Gehituta DRM (Direct Rendering Manager) baliabideak kudeatzeko barne markoa.
    • Xiaomi Redmi Note 7 eta Samsung Galaxy S2 telefonoetarako laguntza gehitu da, baita Elm/Hana Chromebook ordenagailu eramangarrietarako ere.
    • LCD paneletarako kontrolatzaileak gehitu dira: ASUS TM5P5 NT35596, Starry KR070PE2T, Leadtek LTK050H3146W, Visionox rm69299, Boe tv105wum-nw0.
    • ARM plaka eta plataformetarako laguntza gehitu da Renesas "RZ/G1H", Realtek RTD1195, Realtek RTD1395/RTD1619, Rockchips RK3326, AMLogic S905D, S905X3, S922XH, Olimex A20-OLinuXino-LIME, Check Point-eMMC, Check Point-e50
      , Beacon i.MX8m-Mini, Qualcomm SDM660/SDM630, Xnano X5 TV Box, Stinger96, Beaglebone-AI.

    • MIPS prozesadorerako Loongson-2K (Loongson64 laburtua) laguntza gehitu da. CPU Loongson 3-rako, KVM hipervisorea erabiliz birtualizaziorako laguntza gehitu da.
    • Gehituta
      Errusiako Baikal-T1 prozesadorerako eta horretan oinarritutako sistema-n-txiperako laguntza BE-T1000. Baikal-T1 prozesadoreak bi P5600 MIPS 32 r5 nukleo supereskalar ditu 1.2 GHz-n funtzionatzen dutenak. Txipak L2 cachea (1 MB), DDR3-1600 ECC memoria kontrolatzailea, 1Gb Ethernet ataka 10, 2Gb Ethernet ataka 1, PCIe Gen.3 x4 kontrolagailua, 2 SATA 3.0 ataka, USB 2.0, GPIO, UART, SPI, I2C ditu. Prozesadoreak birtualizaziorako hardware laguntza eskaintzen du, SIMD argibideak eta GOST 28147-89 onartzen duen hardware kriptografiko azeleragailu integratua. Txipa Imagination Technologies-en lizentziadun MIPS32 P5600 Warrior prozesadore-unitatea erabiliz garatzen da.

Aldi berean, Latinoamerikako Software Librearen Fundazioa eratu
aukera guztiz doako nukleoa 5.8 - Linux-libre 5.8-gnu, doakoak ez diren osagaiak edo kode atalak dituzten firmware eta kontrolatzaileen elementuak garbitu ditu, fabrikatzaileak mugatzen baitu horien esparrua. Bertsio berriak desgaitu egiten du Atom ISP Video, MediaTek 7663 USB/7915 PCIe, Realtek 8723DE WiFi, Renesas PCI xHCI, HabanaLabs Gaudi, Lagin-tasa asinkronoaren bihurgailu hobetua, Maxim Integrated MAX98390 Bozgorailu Amplifizer, Home Microsemi ZL38060 Audio Prozesadorea, kontrolatzaileetan blob kargatzea. eta I2C EEPROM esklaboa. Adreno GPU, HabanaLabs Goya, x86 ukipen-pantailan, vt6656 eta btbcm kontrolatzaile eta azpisistemetan blob garbiketa-kode eguneratua.

Iturria: opennet.ru

Gehitu iruzkin berria