Linux kernelaren bertsioa 5.1

Bi hilabeteko garapenaren ondoren, Linus Torvalds aurkeztu nukleoa askatzea Linux 5.1. Aldaketa aipagarrienen artean: I/O io_uring asinkronorako interfaze berria, NVDIMM RAM gisa erabiltzeko gaitasuna, Nouveau-n memoria birtual partekaturako euskarria, fitxategi-sistema oso handien monitorizazio eskalagarrirako laguntza fanotify bidez, Zstd konpresioa konfiguratzeko gaitasuna. mailak Btrfs-en, cpuidle TEO kudeatzaile berri bat, 2038 arazoa konpontzeko sistema-deiak ezartzea, initramfs gabe gailu-mapper gailuetatik abiarazteko gaitasuna, SafeSetID LSM modulua, zuzeneko adabaki konbinatuen laguntza.

Nagusia berrikuntzak:

  • Disko azpisistema, I/O eta fitxategi sistemak
    • Interfaze berri bat inplementatu da I/O asinkronoetarako - io_uring, hau da, I/O galdeketaren laguntzagatik eta bufferarekin edo gabe lan egiteko gaitasunagatik. Gogora dezagun aurrez proposatutako β€œaio” I/O mekanismo asinkronoak ez zuela buffer-eko I/O onartzen, O_DIRECT moduan bakarrik funtzionatu zezakeela (bufferrarik gabe eta cachea saihestu gabe), blokeatzeko arazoak zituela metadatuen erabilgarritasunaren zain egoteagatik, eta memorian datuak kopiatzeagatik gastu orokorrak handiak izan zituen.

      APIaren barruan
      io_uring garatzaileak aio interfaze zaharraren gabeziak kentzen saiatu ziren. Nork produktibitatea io_uring oso gertu dago SPDK eta libaioaren aurretik nabarmen dago bozketa gaituta lan egitean. Liburutegi bat prestatu da erabiltzailearen espazioan exekutatzen diren azken aplikazioetan io_uring erabiltzeko libratzea, maila altuko marko bat eskaintzen duena nukleoaren interfazearen gainean;

    • Gertaeren jarraipenaren mekanismoan FS fanotify() gehitu superblokea eta egitura aldaketa egoeren jarraipena egiteko laguntza dirent (direktorioak sortzeko, ezabatzeko eta mugitzeko gertaerak). Aurkeztutako ezaugarriek inotify mekanismoa erabiliz aldaketa errekurtsiboen jarraipena sortzean sortzen diren eskalagarritasun-arazoak konpontzen laguntzen dute fitxategi-sistema handietan (lehen aldaketak inotify bidez soilik jarraitu zitezkeen, baina
      habiaratutako direktorio handien jarraipen errekurtsiboaren baldintzetan errendimenduak asko utzi zuen nahia). Orain, jarraipen hori modu eraginkorrean egin daiteke fanotify bidez;

    • Btrfs fitxategi-sisteman gehitu zstd algoritmorako konpresio-maila pertsonalizatzeko gaitasuna, lz4 azkar baina eraginkortasunik gabekoaren eta xz konpresio motel baina onaren arteko konpromiso optimotzat har daitekeena. zlib erabiltzean lehen konpresio-maila ezartzea posible zenaren analogia eginez, "-o compress=zstd:level" muntatzeko aukeraren laguntza gehitu da zstd-entzat. Probetan, gutxieneko lehen mailak datuen konpresioa 2.658 aldiz eman zuen, 438.47 MB/s-ko konpresio-abiadurarekin, 910.51 MB/s-ko deskonpresio-abiadurarekin eta 780 MB-ko memoria-kontsumoarekin, eta 15 gehienezko mailak 3.126 aldiz eman zuen, baina konpresio batekin. 37.30 MB/s-ko abiadura, 878.84 MB/s deskonprimitzea eta memoria-kontsumoa 2547 MB;
    • Gehituta gailu-mapper gailuan kokatutako fitxategi-sistema batetik abiarazteko gaitasuna, initramfs erabili gabe. Egungo nukleoaren bertsiotik hasita, gailu-mapatzaile gailuak zuzenean erabil daitezke abio-prozesuan, adibidez, root fitxategi-sistemaren partizio gisa. Partizioa "dm-mod.create" abio-parametroa erabiliz konfiguratzen da. Kargatzeko baimendutako gailu-mapatzaileen moduluak honako hauek dira: "kripta", "atzerapena", "lineala", "snapshot-jatorria" eta "benetakoa";
    • F2FS_NOCOW_FL bandera gehitu da F2FS fitxategi sisteman Flash unitateetara zuzenduta, eta horri esker, fitxategi jakin baterako kopia-idazketa modua desgaitu dezakezu;
    • Fitxategi-sistema nukleotik kendu da Exofak, hau da, ext2-ren aldaera bat, OSD (Object-based Storage Device) objektuen biltegiekin lan egiteko egokitua. Horrelako objektuak biltegiratzeko gailuetarako SCSI protokoloaren euskarria ere kendu da;
  • Birtualizazioa eta segurtasuna
    • PR_SPEC_DISABLE_NOEXEC aukera gehitu da prctl()-ri, hautatutako prozesurako instrukzioen exekuzio espekulatiboa kontrolatzeko. Aukera berri batek exekuzio espekulatiboa modu selektiboan desgaitu dezakezu Spectreren eraso batek eraso litezkeen prozesuetarako. Blokeoak exec(-ra) lehen deialdira arte irauten du;
    • LSM modulua inplementatu da SafeSetID, sistema-zerbitzuei esker, erabiltzaileak modu seguruan kudeatzeko pribilegioak handitu gabe (CAP_SETUID) eta root pribilegioak lortu gabe. Pribilegioak segurtasun-fs-en arauak definituz esleitzen dira baliozko loturen zerrenda zuri batean oinarrituta (Β«UID1:UID2Β» forman);
    • Segurtasun moduluen (LSM) pilan oinarritutako kargatzeko beharrezkoak diren maila baxuko aldaketak gehitu dira. "lsm" nukleoaren abiarazte-aukera sartu du zein modulu kargatzen diren eta zein ordenatan kontrolatzeko;
    • Fitxategien izen-espazioetarako euskarria gehitu da auditoretza azpisisteman;
    • Zabaldua GCC plugin-aren structleak-aren gaitasunak, memoria-edukien ihesak blokeatzeko aukera ematen duena.Kodean erabiltzen diren aldagaien hasieratzea pilako erreferentzia-sarbidearen bidez ematen da;
  • Sarearen azpisistema
    • Entxufeetarako ezarrita aukera berria "SO_BINDTOIFINDEX" antzekoa
      "SO_BINDTODEVICE", baina argumentutzat hartuz sare-interfazearen indize-zenbakia interfazearen izenaren ordez;

    • mac80211 pilak BSSID (MAC helbidea) anitz esleitzeko gaitasuna gehitu du gailu bati. WiFi errendimendua optimizatzeko proiektu baten barruan, mac80211 pilak aire-denboraren kontabilitatea eta aire-denbora hainbat geltokiren artean banatzeko gaitasuna gehitu du (sarbide-puntu moduan funtzionatzen duenean, transmisio-denbora gutxiago esleitu hari gabeko geltoki geldoei, denbora denen artean uniformeki banatu beharrean. geltokiak);
    • Mekanismoa gehitu da "devlink osasuna", sareko interfazearekin arazoak gertatzen direnean jakinarazpenak ematen dituena;
  • Memoria eta sistema zerbitzuak
    • Inplementatua PID berrerabiltzea ahalbidetzen duen seinalearen banaketa segurua. Esaterako, aurretik kill deitzean, egoera bat sor liteke, non, seinale bat bidali eta berehala, xede PID askatu liteke prozesuaren amaiera dela-eta eta beste prozesu batek okupatu, eta seinalea beste prozesu batera igaroko litzateke. Horrelako egoerak ezabatzeko, pidfd_send_signal sistema dei berri bat gehitu da, /proc/pid-eko fitxategi-deskribatzaileak erabiltzen dituena prozesuen lotura egonkorra bermatzeko. PID sistema-deien prozesamenduan zehar berrerabili arren, fitxategi-deskribatzailea ez da aldatuko eta segurtasunez erabil daiteke prozesuari seinale bat bidaltzeko;
    • Gehituta memoria iraunkorreko gailuak erabiltzeko gaitasuna (memoria iraunkorra, adibidez NVDIMM) RAM gisa. Orain arte, kernelak biltegiratze gailu gisa onartzen zituen gailuak, baina orain RAM gehigarri gisa ere erabil daitezke. Ezaugarri hau errendimenduaren atzerapena jasan nahi duten eta Linux kernel memoria kudeatzeko APIa erabili nahi duten erabiltzaileen nahiei erantzuteko ezartzen da, dax-erako mmap-en gainean exekutatzen diren erabiltzaile-espazio memoria esleitzeko sistemak erabili beharrean. fitxategia;
    • PUZaren inaktibo kudeatzaile berri bat gehitu da (cpuidle-k, PUZa energia aurrezteko modu sakonetan noiz jar daitekeen erabakitzen du; zenbat eta modu sakonagoa izan, orduan eta aurrezpen handiagoa izango da, baina baita modutik irteteko denbora gehiago behar da) - TEO (Tenporizadorearen Gertaerak Orientatutako Governor) ). Orain arte, bi cpuidle kudeatzaile proposatu dira: "menua" eta "eskailera", heuristiko desberdina. "Menu" kudeatzaileak arazoak ezagutzen ditu erabaki heuristikoak hartzeko, eta hori kentzeko kudeatzaile berri bat prestatzea erabaki zen. TEO "menu" kudeatzailearen alternatiba gisa kokatzen da, errendimendu handiagoa ahalbidetuz, energia-kontsumo maila berdina mantenduz.
      Kudeatzaile berria aktibatu dezakezu "cpuidle.governor=teo" abio-parametroa erabiliz;

    • Desagerrarazteko lanaren baitan 2038ko arazoak, 32 biteko time_t motako gainezkatze batek eragindakoa, 32 biteko arkitekturarako 64 biteko denbora-kontagailuak eskaintzen dituzten sistema-deiak biltzen ditu. Ondorioz, 64 biteko time_t egitura orain arkitektura guztietan erabil daiteke. Sareko azpisisteman ere antzeko aldaketak ezarri dira aukeren kasuan denbora-marka sareko entxufeak;
    • Nukleorako adabaki beroko sisteman (zuzeneko adabakia) gehitu "Ordeztu atomikoa" funtzioa funtzio bakar bati aldaketa sorta atomikoki aplikatzeko. Ezaugarri honek hainbat aldaketa biltzen dituzten laburpen adabakiak aldi berean banatzeko aukera ematen du, zuzeneko adabakiak fasez etapa aplikatzeko prozesuaren ordez, mantentzea nahiko zaila den ordena zehatz batean. Lehen aldaketa bakoitza azken aldaketaren ondoren funtzioaren egoeran oinarritu behar zen arren, orain posible da hasierako egoera bati lotuta hainbat aldaketa hedatzea aldi berean (hau da, mantentzaileek adabaki bateratu bat mantendu dezakete oinarrizko nukleoarekiko ordez. bata bestearen menpe dauden adabaki kate bat );
    • Iragarri a.out fitxategi exekutagarriaren formatuaren euskarri zaharkitua eta
      ezabatu da a.out formatuan oinarrizko fitxategiak sortzeko kodea, abandonatuta dagoen egoeran. A.out formatua ez da Linux sistemetan erabiltzen denbora luzez, eta a.out fitxategien sorrera aspalditik ez dute onartzen tresna modernoek Linux konfigurazio lehenetsietan. Gainera, a.out fitxategien kargatzailea guztiz inplementa daiteke erabiltzailearen espazioan;

    • Erabiltzen ez den kodea identifikatu eta kentzeko gaitasuna gehitu zaio BPF programaren egiaztapen-mekanismoari. Nukleoak BPF azpisistemarako spinlock euskarria duten adabakiak ere baditu, BPF programen exekuzio paraleloa kudeatzeko gaitasun gehigarriak eskainiz;
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Nouveau gidarian gehitu memoria heterogeneoaren kudeaketarako euskarria, CPU eta GPU-k memoria sinkronizatuko gune komunetara sartzeko aukera emanez. Partekatutako memoria birtualaren sistema (SVM, partekatutako memoria birtuala) HMM (Heterogeneous memory management) azpisisteman oinarritzen da, zeinak memoria kudeatzeko unitate propioak dituzten gailuak erabiltzeko aukera ematen baitu (MMU, memoria kudeatzeko unitatea), zeinak sar daitezkeen. memoria nagusia. Bereziki, HMM erabiliz, GPUaren eta CPUren artean helbide-espazio partekatu bat antola dezakezu, eta bertan GPUak prozesuaren memoria nagusia atzi dezake. SVM euskarria gaur egun Pascal familiako GPUetarako soilik gaituta dago, nahiz eta Volta eta Turing GPUetarako laguntza eskaintzen den. Gainera, Nouveau-n gehitu du ioctl berria prozesuko memoria eremuen GPU memoriarako migrazioa kontrolatzeko;
    • Intel DRM kontrolatzailean GPU Skylake-rako eta geroago (gen9+) barne Lehenespenez, fastboot moduak abiaraztean beharrezkoak ez diren modu aldaketak ezabatzen ditu. Gehituta Π½ΠΎΠ²Ρ‹Π΅ Coffelake eta Ice Lake mikroarkitekturan oinarritutako gailu-identifikatzaileak. Coffelake patata frijituak egiteko gehitu GVT laguntza (GPU birtualizazioa). GPU birtualetarako ezarrita VFIO EDID euskarria. LCD paneletarako MIPI/DSI gehitu ACPI/PMIC elementuen euskarria. Inplementatua telebista modu berriak 1080p30/50/60 telebista;
    • Amdgpu kontrolatzaileari Vega10/20 BACO GPUrako euskarria gehitu zaio. Vega 10/20 energia-kudeaketa eta Vega 10 freskoagoen kontrol-taulak ezarri dira. PCI gailu-identifikatzaile berriak gehitu dira Picasso GPUetarako. Gehituta menpekotasun programagarriak kudeatzeko interfazea blokeoak saihesteko;
    • Gehituta Pantaila azeleragailuetarako DRM/KMS kontrolatzailea ARM Komeda (Mali D71);
    • Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 eta Kingdisplay kd097d04 pantaila paneletarako laguntza gehitu da;
    • Rockchip RK3328, Cirrus Logic CS4341 eta CS35L36, MediaTek MT6358, Qualcomm WCD9335 eta Ingenic JZ4725B audio-kodeketarako laguntza gehitu da, baita Mediatek MT8183 audio plataformarako ere;
    • NAND kontrolagailuentzako laguntza gehitu da Flash STMicroelectronics FMC2, Amlogic Meson;
    • Habana AI hardware sistemetarako azeleragailuaren euskarria gehitu da;
    • NXP ENETC gigabit Ethernet kontrolagailuetarako eta MediaTek MT7603E (PCIe) eta MT76x8 haririk gabeko interfazeetarako laguntza gehitu da.

Aldi berean, Latinoamerikako Software Librearen Fundazioa eratu
aukera guztiz doako nukleoa 5.1 - Linux-libre 5.1-gnu, doakoak ez diren osagaiak edo kode atalak dituzten firmware eta kontrolatzaileen elementuak garbitu ditu, fabrikatzaileak mugatzen baitu horien esparrua. Bertsio berrian, blob kargatzea desgaituta dago mt7603 eta goya kontrolatzaileetan. Blob garbiketa-kode eguneratua kontrolatzaile eta azpisistemetan wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifiex, btmrvl, btmtk eta touchscreen_dmi. Lantiq xrx200 firmware-kargatzailean blob garbiketa gelditu egin da nukleotik kentzeagatik.

Iturria: opennet.ru

Gehitu iruzkin berria