Rilaxx tal-kernel Linux 5.1

Wara xahrejn ta 'żvilupp, Linus Torvalds daħħal rilaxx tal-qalba Linux 5.1. Fost l-aktar bidliet notevoli: interface ġdid għal io_uring I/O mhux sinkroniku, il-kapaċità li tuża NVDIMM bħala RAM, appoġġ għal memorja virtwali kondiviża f'Nouveau, appoġġ għal monitoraġġ skalabbli ta 'sistemi ta' fajls kbar ħafna permezz ta 'fanotify, il-kapaċità li tikkonfigura kompressjoni Zstd livelli f'Btrfs, handler ġdid ta 'cpuidle TEO, implimentazzjoni ta' sejħiet tas-sistema biex issolvi l-problema 2038, l-abbiltà li boot minn apparati mapper-apparat mingħajr initramfs, modulu SafeSetID LSM, appoġġ għal garżi ħajjin magħquda.

Il-prinċipali innovazzjonijiet:

  • Sottosistema tad-disk, I/O u sistemi ta' fajls
    • Implimenta interface ġdid għal I/O mhux sinkroniku - io_uring, li hija notevoli għall-appoġġ tagħha għall-i/O polling u l-abbiltà li taħdem bi jew mingħajr buffering. Ejja nfakkru li l-mekkaniżmu I/O asinkroniku propost qabel “aio” ma appoġġax I/O buffered, seta’ jopera biss fil-mod O_DIRECT (mingħajr buffering u jinjora l-cache), kellu problemi bl-illokkjar minħabba stennija għad-disponibbiltà tal-metadata, u wera spejjeż ġenerali kbar minħabba l-ikkupjar tad-data fil-memorja.

      Fi ħdan l-API
      L-iżviluppaturi io_uring ppruvaw jeliminaw in-nuqqasijiet tal-interface aio antik. Permezz produttività io_uring huwa qrib ħafna SPDK u huwa ferm qabel il-libaio meta jaħdem bil-votazzjoni attivata. Ġiet ippreparata librerija għall-użu ta' io_uring f'applikazzjonijiet finali li jaħdmu fl-ispazju tal-utent liburing, li jipprovdi qafas ta 'livell għoli fuq l-interface tal-kernel;

    • Fil-każ mekkaniżmu ta 'traċċar fl-FS fanotify() miżjud appoġġ għall-intraċċar ta 'superlock u sitwazzjonijiet ta' tibdil fl-istruttura dirent (avvenimenti ta' ħolqien, tħassir u ċaqliq ta' direttorji). Il-karatteristiċi ppreżentati jgħinu biex isolvu l-problemi ta’ skalabbiltà li jinqalgħu meta jinħoloq traċċar tal-bidliet rikorsiv f’sistemi ta’ fajls kbar ħafna bl-użu tal-mekkaniżmu inotify (bidliet diretti preċedentement setgħu jiġu ssorveljati biss permezz ta’ inotify, iżda
      prestazzjoni f’kundizzjonijiet ta’ traċċar rikorsiv ta’ direttorji kbar imnaqqsa ħalliet ħafna x’jixtieq). Issa tali monitoraġġ jista 'jsir b'mod effettiv permezz fanotify;

    • Fuq is-sistema tal-fajls Btrfs miżjud l-abbiltà li tippersonalizza l-livell ta 'kompressjoni għall-algoritmu zstd, li jista' jitqies bħala kompromess ottimali bejn l-lz4 veloċi iżda ineffettiv u l-kompressjoni bil-mod iżda tajba xz. B'analoġija ma 'kif qabel kien possibbli li jiġi stabbilit il-livell ta' kompressjoni meta jintuża zlib, ġie miżjud appoġġ għall-għażla tal-muntaġġ "-o compress=zstd:level" għal zstd. Matul l-ittestjar, l-ewwel livell minimu pprovda kompressjoni tad-dejta b'2.658 darbiet b'veloċità ta 'kompressjoni ta' 438.47 MB/s, veloċità ta 'dekompressjoni ta' 910.51 MB/s u konsum ta 'memorja ta' 780 MB, u l-livell massimu 15 ipprovda 3.126 darbiet, iżda b'kompressjoni veloċità ta' 37.30 MB/s, tħollija 878.84 MB/s u konsum tal-memorja 2547 MB;
    • Miżjud l-abbiltà li boot minn sistema ta 'fajls li tinsab fuq it-tagħmir tal-mapper tal-apparat, mingħajr ma tuża initramfs. Nibdew bir-rilaxx attwali tal-kernel, apparati tal-mapper tal-apparat jistgħu jintużaw direttament matul il-proċess tal-ibbutjar, pereżempju, bħala partizzjoni mas-sistema tal-fajl tal-għeruq. Il-partizzjoni hija kkonfigurata bl-użu tal-parametru tal-boot "dm-mod.create". Il-moduli tal-mapper tal-apparat permessi għat-tagħbija jinkludu: “kripto”, “dewmien”, “lineari”, “snapshot-origin” u “verity”;
    • Il-bandiera F2FS_NOCOW_FL ġiet miżjuda mas-sistema tal-fajls F2FS orjentata lejn drajvs tal-Flash, li jippermettilek li tiddiżattiva l-modalità tal-kopja fuq il-kitba għal fajl partikolari;
    • File system imneħħija mill-qalba Exofs, li huwa varjant ta 'ext2, adattat biex jaħdem ma' ħażniet ta 'oġġetti OSD (Apparat ta' Ħażna bbażata fuq l-Oġġetti). Tneħħa wkoll l-appoġġ għall-protokoll SCSI għal tali tagħmir għall-ħażna tal-oġġetti;
  • Virtualization u Sigurtà
    • Miżjud għażla PR_SPEC_DISABLE_NOEXEC għal prctl() biex tikkontrolla l-eżekuzzjoni spekulattiva tal-istruzzjonijiet għall-proċess magħżul. Għażla ġdida tippermettilek li tiddiżattiva b'mod selettiv l-eżekuzzjoni spekulattiva għal proċessi li potenzjalment jistgħu jiġu attakkati minn attakk Spectre. Il-lock idum sa l-ewwel sejħa għall-exec();
    • Modulu LSM implimentat SafeSetID, li tippermetti li s-servizzi tas-sistema jimmaniġġjaw l-utenti b'mod sigur mingħajr ma jeskalaw il-privileġġi (CAP_SETUID) u mingħajr ma jiksbu privileġġi tal-għeruq. Il-privileġġi huma assenjati billi jiġu definiti regoli fis-sigurtàfs ibbażati fuq lista bajda ta’ rbit validi (fil-forma “UID1:UID2”);
    • Miżjud bidliet ta 'livell baxx meħtieġa għat-tagħbija bbażata fuq stack ta' moduli tas-sigurtà (LSMs). Introduċiet l-għażla tal-boot tal-kernel "lsm" biex tikkontrolla liema moduli huma mgħobbija u f'liema ordni;
    • L-appoġġ għall-ispazji tal-ismijiet tal-fajls ġie miżjud mas-subsistema tal-awditjar;
    • Estiża il-kapaċitajiet tal-GCC plugin structleak, li jippermettilek li timblokka tnixxijiet potenzjali tal-kontenut tal-memorja.Inizjalizzazzjoni ta 'kwalunkwe varjabbli li huma użati fil-kodiċi permezz ta' aċċess ta 'referenza fuq il-munzell hija pprovduta;
  • Subsistema tan-netwerk
    • Għal sokits implimentati għażla ġdida "SO_BINDTOIFINDEX" simili għal
      "SO_BINDTODEVICE", iżda tieħu bħala argument in-numru tal-indiċi tal-interface tan-netwerk minflok l-isem tal-interface;

    • Il-munzell mac80211 żied il-kapaċità li tassenja BSSIDs multipli (indirizzi MAC) għal apparat wieħed. Bħala parti minn proġett biex tiġi ottimizzata l-prestazzjoni tal-WiFi, il-munzell mac80211 żied il-kontabilità tal-ħin tal-ajru u l-abbiltà li jqassam il-ħin tal-ajru fost stazzjonijiet multipli (meta jopera fil-modalità tal-punt ta 'aċċess, jalloka inqas ħin ta' trażmissjoni għal stazzjonijiet bla fili bil-mod, minflok iqassam il-ħin b'mod uniformi fost kulħadd stazzjonijiet);
    • Mekkaniżmu miżjud "devlink is-saħħa", li jipprovdi notifiki meta jseħħu problemi bl-interface tan-netwerk;
  • Servizzi ta' memorja u sistema
    • Implimentati twassil sigur tas-sinjal li jippermetti l-użu mill-ġdid tal-PID. Pereżempju, meta ssejjaħ kill qabel, tista 'tqum sitwazzjoni fejn, immedjatament wara li jintbagħat sinjal, il-PID fil-mira jista' jiġi meħlus minħabba t-terminazzjoni tal-proċess u okkupat minn proċess ieħor, u s-sinjal jispiċċa jiġi mgħoddi għal proċess ieħor. Biex jiġu eliminati sitwazzjonijiet bħal dawn, ġiet miżjuda sistema ġdida ta' sejħa pidfd_send_signal, li tuża deskritturi tal-fajl minn /proc/pid biex tiżgura rabta stabbli tal-proċess. Anke jekk il-PID jerġa 'jintuża waqt l-ipproċessar tas-sejħa tas-sistema, id-deskrittur tal-fajl mhux se jinbidel u jista' jintuża b'mod sikur biex jibgħat sinjal lill-proċess;
    • Miżjud l-abbiltà li tuża apparati tal-memorja permanenti (memorja persistenti, pereżempju NVDIMMs) bħala RAM. Sa issa, il-qalba appoġġa tali apparati bħala tagħmir ta 'ħażna, iżda issa jistgħu jintużaw ukoll bħala RAM addizzjonali. Il-karatteristika hija implimentata bi tweġiba għax-xewqat ta 'utenti li huma lesti li jġorru dewmien fil-prestazzjoni u jridu jużaw l-API nattiva tal-ġestjoni tal-memorja tal-kernel Linux minflok jużaw sistemi eżistenti ta' allokazzjoni tal-memorja tal-ispazju tal-utent li jaħdmu fuq mmap għad-dax. fajl;
    • Miżjud CPU idle handler ġdid (cpuidle, jiddeċiedi meta s-CPU jista 'jitqiegħed f'modi profondi ta' ffrankar ta' enerġija; aktar ma tkun profonda l-modalità, akbar ikun l-iffrankar, iżda wkoll iktar ikun hemm bżonn biex toħroġ mill-modalità) - TEO (Timer Events Oriented Governor) ). Sa issa, ġew proposti żewġ cpuidle handlers - "menu" u "sellum", li jvarjaw fl-euristika. L-immaniġġjar tal-"menu" għandu problemi magħrufa biex jieħu deċiżjonijiet euristiċi, biex jeliminahom ġie deċiż li jitħejja handler ġdid. TEO huwa pożizzjonat bħala alternattiva għall-handler "menu", li jippermetti prestazzjoni ogħla filwaqt li jinżamm l-istess livell ta 'konsum tal-enerġija.
      Tista 'tattiva l-handler il-ġdid billi tuża l-parametru tal-boot "cpuidle.governor=teo";

    • Bħala parti mill-ħidma biex jiġu eliminati problemi tal-2038, ikkawżat minn overflow tat-tip time_t 32-bit, jinkludi sejħiet tas-sistema li joffru time counters 32-bit għal arkitetturi 64-bit. Bħala riżultat, l-istruttura time_t 64-bit issa tista 'tintuża fuq l-arkitetturi kollha. Bidliet simili ġew implimentati wkoll fis-subsistema tan-netwerk għall-għażliet timestamp Sokits tan-netwerk;
    • Fis-sistema ta 'patching sħun għall-qalba (patching ħaj) miżjud Karatteristika "Atomic Replace" għall-applikazzjoni atomika ta 'serje ta' bidliet għal funzjoni waħda. Din il-karatteristika tippermettilek tqassam irqajja sommarji li jkopru diversi bidliet f'daqqa, minflok il-proċess ta 'applikazzjoni stadju b'stadju ta' garżi ħajjin f'ordni strettament definita, li huwa pjuttost diffiċli biex tinżamm. Billi qabel kull bidla sussegwenti kellha tkun ibbażata fuq l-istat tal-funzjoni wara l-aħħar bidla, issa huwa possibbli li jiġu propagati diversi bidliet marbuta ma’ stat inizjali wieħed f’daqqa (jiġifieri, dawk li jżommu jistgħu jżommu garża konsolidata waħda relattiva għall-qalba bażi minflok). ta’ katina ta’ garżi li jiddependu minn xulxin );
    • Imħabbar appoġġ deprecated għall-format tal-fajl eżekutibbli a.out u
      imneħħija kodiċi għall-ġenerazzjoni ta 'fajls ewlenin f'format a.out, li jinsab fi stat abbandunat. Il-format a.out ma ntużax fuq sistemi Linux għal żmien twil, u l-ġenerazzjoni ta 'fajls a.out ilha mhux appoġġjata minn għodod moderni f'konfigurazzjonijiet Linux default. Barra minn hekk, il-loader għall-fajls a.out jista 'jiġi implimentat għal kollox fl-ispazju tal-utent;

    • Il-kapaċità li jiġi identifikat u mneħħi kodiċi mhux użat ġiet miżjuda mal-mekkaniżmu ta 'verifika tal-programm BPF. Il-qalba tinkludi wkoll garża b'appoġġ spinlock għas-subsistema BPF, li tipprovdi kapaċitajiet addizzjonali għall-ġestjoni tal-eżekuzzjoni parallela tal-programmi BPF;
  • Оборудование
    • In Nouveau xufier miżjud appoġġ għall-ġestjoni tal-memorja eteroġenja, li tippermetti lis-CPU u l-GPU jaċċessaw żoni komuni ta 'memorja sinkronizzata. Is-sistema ta 'memorja virtwali kondiviża (SVM, memorja virtwali kondiviża) hija implimentata fuq il-bażi tas-subsistema HMM (Ġestjoni tal-memorja eteroġenea), li tippermetti l-użu ta' apparati bl-unitajiet ta 'ġestjoni tal-memorja tagħhom stess (MMU, unità ta' ġestjoni tal-memorja), li jistgħu jaċċessaw memorja ewlenija. B'mod partikolari, billi tuża HMM, tista 'torganizza spazju ta' indirizz kondiviż bejn il-GPU u s-CPU, li fih il-GPU tista 'taċċessa l-memorja ewlenija tal-proċess. L-appoġġ SVM bħalissa huwa attivat biss għall-GPUs tal-familja Pascal, għalkemm l-appoġġ huwa pprovdut għall-GPUs Volta u Turing ukoll. Barra minn hekk, f'Nouveau miżjud ioctl ġdid biex jikkontrolla l-migrazzjoni taż-żoni tal-memorja tal-proċess għall-memorja tal-GPU;
    • Fis-sewwieq Intel DRM għal GPU Skylake u aktar tard (gen9+) inklużi B'mod awtomatiku, il-modalità fastboot telimina bidliet mhux meħtieġa fil-mod waqt il-boot. Miżjud новые identifikaturi tal-apparat ibbażati fuq mikroarkitetturi Coffelake u Ice Lake. Għal ċipep Coffelake miżjud Appoġġ GVT (Virtualization GPU). Għal GPUs virtwali implimentati Appoġġ VFIO EDID. Għal pannelli LCD MIPI/DSI miżjud appoġġ għall-elementi ACPI/PMIC. Implimentati modi ġodda tat-TV 1080p30/50/60 TV;
    • Appoġġ miżjud għal Vega10/20 BACO GPU lis-sewwieq amdgpu. Implimentaw il-ġestjoni tal-enerġija Vega 10/20 u t-tabelli tal-kontroll tal-apparat li jkessaħ Vega 10. Miżjuda identifikaturi ġodda tal-apparat PCI għal GPU Picasso. Miżjud interface għall-ġestjoni tad-dipendenzi skedabbli biex jiġu evitati deadlocks;
    • Miżjud Driver DRM/KMS għall-aċċeleraturi tal-iskrin ARM Komeda (Mali D71);
    • Appoġġ miżjud għall-pannelli tal-iskrin Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 u Kingdisplay kd097d04;
    • Appoġġ miżjud għal Rockchip RK3328, Cirrus Logic CS4341 u CS35L36, MediaTek MT6358, Qualcomm WCD9335 u Ingenic JZ4725B codecs awdjo, kif ukoll pjattaforma awdjo Mediatek MT8183;
    • Appoġġ miżjud għall-kontrolluri NAND Flash STMicroelectronics FMC2, Amlogic Meson;
    • Miżjud appoġġ aċċeleratur għas-sistemi tal-ħardwer Habana AI;
    • Appoġġ miżjud għall-kontrolluri NXP ENETC gigabit Ethernet u l-interfaces mingħajr fili MediaTek MT7603E (PCIe) u MT76x8.

Fl-istess ħin, il-Fondazzjoni tas-Software Ħieles tal-Amerika Latina iffurmat
għażla għadma kompletament ħielsa 5.1 - Linux-libre 5.1-gnu, imneħħi minn elementi tal-firmware u tas-sewwieq li jkun fihom komponenti mhux ħielsa jew sezzjonijiet tal-kodiċi, li l-ambitu tagħhom huwa limitat mill-manifattur. Fir-rilaxx il-ġdid, it-tagħbija blob hija diżattivata fis-sewwieqa mt7603 u goya. Kodiċi aġġornat tat-tindif blob fis-sewwieqa u sottosistemi wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifiex, btmrvl, btmtk u touchscreen_dmi. It-tindif tal-blob fil-loader tal-firmware lantiq xrx200 twaqqaf minħabba t-tneħħija tiegħu mill-qalba.

Sors: opennet.ru

Żid kumment