Linux kernel release 5.1

Nei twa moannen fan ûntwikkeling, Linus Torvalds yntrodusearre kernel release Linux 5.1. Under de meast opfallende feroarings: in nije ynterface foar asynchronous I / O io_uring, de mooglikheid om te brûken NVDIMM as RAM, stipe foar dielde firtuele ûnthâld yn Nouveau, stipe foar scalable monitoring fan hiel grutte triem systemen fia fanotify, de mooglikheid om te konfigurearjen Zstd kompresje nivo's yn Btrfs, in nije cpuidle TEO-handler, ymplemintaasje fan systeemoproppen om it probleem fan 2038 op te lossen, de mooglikheid om te booten fan apparaat-mapper-apparaten sûnder initramfs, SafeSetID LSM-module, stipe foar kombineare live patches.

haad ynnovaasjes:

  • Skiif subsysteem, I / O en triem systemen
    • Implementearre in nije ynterface foar asynchrone I/O - io_uring, dy't opmerklik is foar syn stipe foar I/O-polling en de mooglikheid om te wurkjen mei of sûnder buffering. Lit ús ûnthâlde dat de earder foarstelde asynchronous I / O meganisme "aio" net stipe buffered I / O, koe allinnich operearje yn O_DIRECT modus (sûnder buffering en omgean de cache), hie problemen mei beskoattelje fanwegen wachtsjen op metadata beskikberens, en eksposearre grutte overheadkosten fanwege it kopiearjen fan gegevens yn it ûnthâld.

      Binnen de API
      io_uring-ûntwikkelders besochten de tekoarten fan 'e âlde aio-ynterface te eliminearjen. Troch produktiviteit io_uring is heul tichtby SPDK en is signifikant foarút fan libaio by it wurkjen mei polling ynskeakele. In bibleteek is taret foar it brûken fan io_uring yn einapplikaasjes dy't rinne yn brûkersromte liburing, dy't in ramt op hege nivo leveret oer de kernel-ynterface;

    • Yn it evenemint tracking meganisme yn de FS fanotify () tafoege stipe foar it folgjen fan superblock- en struktuerferoaringssituaasjes dirent (eveneminten fan it oanmeitsjen, wiskjen en ferpleatse fan mappen). De presinteare funksjes helpe de skalberensproblemen op te lossen dy't ûntsteane by it oanmeitsjen fan rekursive feroarings folgjen yn heul grutte bestânsystemen mei it inotify-meganisme (feroarlike feroarings koene earder allinich wurde folge troch inotify, mar
      prestaasjes yn betingsten fan rekursive folgjen fan grutte nestele mappen lieten folle te winskjen oer). No kin sa'n tafersjoch effektyf dien wurde fia fanotify;

    • Op it Btrfs-bestânsysteem tafoege de mooglikheid om it kompresjenivo oan te passen foar it zstd-algoritme, dat kin wurde beskôge as it optimale kompromis tusken de flugge, mar net effektyf lz4 en de stadige, mar goede kompresje xz. Fergelykber mei hoe't it earder mooglik wie om it kompresjenivo yn te stellen by it brûken fan zlib, is stipe foar de "-o compress=zstd:level" mount-opsje tafoege foar zstd. Tidens testen levere it minimale earste nivo gegevenskompresje troch 2.658 kear mei in kompresjesnelheid fan 438.47 MB ​​/ s, dekompresjesnelheid fan 910.51 MB / s en ûnthâldferbrûk fan 780 MB, en it maksimale nivo 15 levere 3.126 kear, mar mei in kompresje snelheid fan 37.30 MB / s. unpacking 878.84 MB / s en ûnthâld konsumpsje 2547 MB;
    • Added de mooglikheid om te booten fanút in bestânsysteem dat op it apparaat-mapper-apparaat leit, sûnder initramfs te brûken. Begjinnend mei de hjoeddeistige kernel-release kinne apparaat-mapper-apparaten direkt brûkt wurde tidens it bootproses, bygelyks as in partysje mei it rootbestânsysteem. De partysje wurdt konfigurearre mei de bootparameter "dm-mod.create". Device-mapper-modules tastien foar laden omfetsje: "krypt", "fertraging", "lineêr", "snapshot-origin" en "wierheid";
    • De flagge F2FS_NOCOW_FL is tafoege oan it F2FS-bestânsysteem dat rjochte is op Flash-skiven, wêrtroch jo kopiearje-op-skriuwen modus kinne útskeakelje foar in opjûne triem;
    • Triemsysteem fuortsmiten fan kernel Exofs, dat is in fariant fan ext2, oanpast foar wurkjen mei OSD (Object-basearre Storage Device) foarwerp opslach. Stipe foar it SCSI-protokol foar sokke objektopslachapparaten is ek fuortsmiten;
  • Virtualisaasje en feiligens
    • PR_SPEC_DISABLE_NOEXEC-opsje tafoege oan prctl () om spekulative útfiering fan ynstruksjes foar it selektearre proses te kontrolearjen. In nije opsje lit jo spekulative útfiering selektyf útskeakelje foar prosessen dy't mooglik oanfallen wurde kinne troch in Spectre-oanfal. It slot duorret oant de earste oprop oan exec ();
    • Implementearre LSM module SafeSetID, wêrtroch systeemtsjinsten brûkers feilich kinne beheare sûnder eskalearjende privileezjes (CAP_SETUID) en sûnder root-privileges te krijen. Privileezjes wurde tawiisd troch it definiearjen fan regels yn securityfs basearre op in wite list fan jildige bindingen (yn 'e foarm "UID1: UID2");
    • Feroarings op leech nivo tafoege dy't nedich binne foar stapelbasearre laden fan feiligensmodules (LSM's). Yntrodusearre de "lsm" kernel boot opsje om te kontrolearjen hokker modules wurde laden en yn hokker folchoarder;
    • Stipe foar triemnammeromten is tafoege oan it audit subsysteem;
    • Utwreide de mooglikheden fan de GCC plugin structleak, wêrmei jo te blokkearje potinsjele lekken fan ûnthâld ynhâld.Inisjalisaasje fan alle fariabelen dy't brûkt wurde yn de koade troch referinsje tagong op de stack wurdt foarsjoen;
  • Netwurk subsysteem
    • Foar sockets útfierd nije opsje "SO_BINDTOIFINDEX" fergelykber mei
      "SO_BINDTODEVICE", mar nimme as argumint it yndeksnûmer fan it netwurk ynterface ynstee fan de ynterface namme;

    • De mac80211-stapel hat de mooglikheid tafoege om meardere BSSID's (MAC-adressen) oan ien apparaat ta te jaan. As ûnderdiel fan in projekt om WiFi-prestaasjes te optimalisearjen, hat de mac80211-stapel airtime-accounting tafoege en de mooglikheid om luchttiid te fersprieden oer meardere stasjons (by it operearjen yn tagongspuntmodus, minder oerdrachttiid tawize oan trage draadloze stasjons, ynstee fan tiid evenredich oer alle stasjons);
    • Mechanisme tafoege "devlink sûnens", dy't notifikaasjes leveret as problemen foarkomme mei de netwurkynterface;
  • Unthâld en systeem tsjinsten
    • Implementearre feilige sinjaalferliening wêrmei PID werbrûk mooglik makket. Bygelyks, by it oproppen fan kill earder, koe in situaasje ûntstean wêr't, fuort nei it ferstjoeren fan in sinjaal, de doel-PID koe wurde befrijd fanwege prosesbeëiniging en beset troch in oar proses, en it sinjaal soe einigje wurde trochjûn nei in oar proses. Om sokke situaasjes te eliminearjen, is in nije systeemoprop pidfd_send_signal tafoege, dy't triembeskriuwers brûkt fan /proc/pid om stabile prosesbining te garandearjen. Sels as de PID opnij brûkt wurdt tidens systeemopropferwurking, sil de triembeskriuwing net feroarje en kin feilich brûkt wurde om in sinjaal nei it proses te stjoeren;
    • Added de mooglikheid om permaninte ûnthâldapparaten te brûken (bygelyks persistent-ûnthâld NVDIMM) as RAM. Oant no ta stipe de kernel sokke apparaten as opslachapparaten, mar no kinne se ek brûkt wurde as ekstra RAM. De funksje wurdt ymplementearre yn reaksje op 'e winsken fan brûkers dy't ree binne om mei in prestaasjesfertraging te setten en de native Linux kernel-ûnthâldbehear API wolle brûke ynstee fan besteande brûkersromte-ûnthâldallokaasjesystemen te brûken dy't boppe op mmap foar de dax rinne. map;
    • In nije CPU idle handler tafoege (cpuidle, beslút wannear't de CPU yn djippe enerzjybesparjende modi set wurde kin; hoe djipper de modus, hoe grutter de besparring, mar ek hoe langer it duorret om de modus út te gean) - TEO (Timer Events Oriented Governor ). Oant no binne twa cpuidle-handlers foarsteld - "menu" en "ljedder", ferskillend yn heuristyk. De "menu" handler hat bekende problemen mei it meitsjen fan heuristyske besluten, te elimineren dat waard besletten om tariede in nije handler. TEO wurdt gepositioneerd as in alternatyf foar de "menu" handler, wêrtroch hegere prestaasjes mei behâld fan itselde nivo fan enerzjyferbrûk.
      Jo kinne aktivearje de nije handler mei help fan de boot parameter "cpuidle.governor = teo";

    • As ûnderdiel fan it wurk te elimineren problemen fan 2038, feroarsake troch in oerstreaming fan it 32-bit time_t-type, befettet systeemoproppen dy't 32-bit tiidtellers foar 64-bit arsjitektuer oanbiede. As gefolch kin de 64-bit time_t-struktuer no brûkt wurde op alle arsjitektuer. Fergelykbere feroarings binne ek ymplementearre yn it netwurk subsysteem foar opsjes tiidstempel netwurk sockets;
    • Yn it hjitte patchsysteem foar de kearn (live patching) tafoege Funksje "Atomic Replace" foar it atomysk tapassen fan in searje feroarings op ien funksje. Mei dizze funksje kinne jo gearfettingspatches fersprieden dy't ferskate feroarings tagelyk befetsje, ynstee fan it proses fan poadium-foar-poadium tapassing fan live patches yn in strikt definieare folchoarder, wat frijwat lestich te ûnderhâlden is. Wylst earder elke folgjende wiziging basearre wie op 'e tastân fan' e funksje nei de lêste feroaring, is it no mooglik ferskate wizigingen te propagearjen dy't ferbûn binne oan ien begjinsteat tagelyk (d.w.s. ûnderhâlders kinne ynstee ien konsolidearre patch behâlde relatyf oan 'e basiskern fan in keatling fan patches dy't fan elkoar ôfhingje);
    • Oankundige ferâldere stipe foar it a.out útfierbere bestânsformaat en
      fuorthelle koade foar it generearjen fan kearnbestannen yn a.out-formaat, dy't yn in ferlitten steat is. It a.out-formaat is in lange tiid net brûkt op Linux-systemen, en de generaasje fan a.out-bestannen is lang net stipe troch moderne ark yn standert Linux-konfiguraasjes. Derneist kin de loader foar a.out-bestannen folslein yn brûkersromte ymplementearre wurde;

    • De mooglikheid om net brûkte koade te identifisearjen en te ferwiderjen is tafoege oan it BPF-programmaferifikaasjemeganisme. De kearn omfettet ek patches mei spinlock-stipe foar it BPF-subsysteem, en biedt ekstra mooglikheden foar it behearen fan de parallelle útfiering fan BPF-programma's;
  • Wetter - Agrarwetter
    • Yn Nouveau bestjoerder tafoege stipe foar heterogene ûnthâld behear, wêrtroch de CPU en GPU tagong ta mienskiplike syngronisearre ûnthâld gebieten. It dielde firtuele ûnthâldsysteem (SVM, dielde firtuele ûnthâld) wurdt ymplementearre op basis fan it HMM (Heterogene ûnthâldbehear) subsysteem, dat it gebrûk makket fan apparaten mei har eigen ûnthâldbehear-ienheden (MMU, ûnthâldbehear-ienheid), dy't tagong kinne krije wichtichste ûnthâld. Benammen mei HMM kinne jo in dielde adresromte organisearje tusken de GPU en CPU, wêryn de GPU tagong kin ta it haadûnthâld fan it proses. SVM-stipe is op it stuit allinich ynskeakele foar Pascal-famylje GPU's, hoewol stipe wurdt levere foar Volta- en Turing GPU's ek. Boppedat, yn Nouveau tafoege nije ioctl om de migraasje fan prosesûnthâldgebieten nei GPU-ûnthâld te kontrolearjen;
    • Yn Intel DRM-bestjoerder foar GPU Skylake en letter (gen9+) ynbegrepen Standert elimineert fastboot-modus ûnnedige moduswizigingen by it opstarten. Added новые apparaatidentifikatoren basearre op Coffelake en Ice Lake mikroarsjitektueren. Foar Coffelake chips tafoege GVT-stipe (GPU-virtualisaasje). Foar firtuele GPUs útfierd VFIO EDID-stipe. Foar LCD panielen MIPI / DSI tafoege stipe foar ACPI / PMIC eleminten. Implementearre nije TV modes 1080p30/50/60 TV;
    • Stipe tafoege foar Vega10/20 BACO GPU oan de amdgpu-bestjoerder. Implementearre Vega 10/20 macht behear en Vega 10 koeler kontrôle tabellen. Nije PCI apparaat identifiers tafoege foar Picasso GPUs. Added ynterface foar it behearen fan planbere ôfhinklikens om deadlocks te foarkommen;
    • Added DRM / KMS stjoerprogramma foar skerm accelerators ARM Komeda (Mali D71);
    • Stipe tafoege foar Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 en Kingdisplay kd097d04 skermpanielen;
    • Stipe tafoege foar Rockchip RK3328, Cirrus Logic CS4341 en CS35L36, MediaTek MT6358, Qualcomm WCD9335 en Ingenic JZ4725B audio codecs, lykas Mediatek MT8183 audio platfoarm;
    • Stipe tafoege foar NAND-controllers Flash STMicroelectronics FMC2, Amlogic Meson;
    • Tafoege accelerator-stipe foar Habana AI-hardwaresystemen;
    • Stipe tafoege foar NXP ENETC gigabit Ethernet-controllers en MediaTek MT7603E (PCIe) en MT76x8 draadloze ynterfaces.

Tagelyk, de Latin American Free Software Foundation foarme
opsje folslein fergese kernel 5.1 - Linux-libre 5.1-gnu, wiske fan firmware- en stjoerprogramma-eleminten dy't net-frije komponinten as koade-seksjes befetsje, wêrfan de omfang wurdt beheind troch de fabrikant. Yn de nije release, blob laden is útskeakele yn de mt7603 en goya drivers. Bywurke blob skjinmeitsjen koade yn bestjoerders en subsystemen wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifiex, btmrvl, btmtk en touchscreen_dmi. Blob-skjinmeitsjen yn 'e lantiq xrx200 firmware-loader is stoppe fanwegen it fuortheljen fan' e kernel.

Boarne: opennet.ru

Add a comment