Linuxi tuuma versioon 5.1 vÀljaandmine

PĂ€rast kahte kuud arendust Linus Torvalds esitles ydinversioon Linux 5.1. Oluliste muudatuste hulka kuuluvad: uus liides asĂŒnkroonsesse sisend-/vĂ€ljundisse io_uring, NVDIMM-i kasutamine RAM-ina, Nouveau toetab jagatud virtuaalset mĂ€lu, vĂ€ga suurte FS-ide skaleeritava jĂ€lgimise toetamist fanotify kaudu, Btrfs-is Zstd tihendustaseme seadistamise vĂ”imalus, uus cpuidle TEO töötleja, sĂŒsteemikĂ”nede rakendamine 2038. aasta probleemi lahendamiseks, seadme-mappimise seadmest kĂ€ivitamise vĂ”imalus ilma initramfs-ta, LSM-module SafeSetID, toimetamine kombineeritud live-patchidega.

Peamised uuendused:

  • DiskisĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
    • Uus liides asĂŒnkroonsesse sisend-/vĂ€ljundisse on io_uring, mis on mĂ€rkimisvÀÀrne, kuna see toetab sisend-/vĂ€ljundi pollingut ja vĂ”imaldab töötada nii vahemĂ€luga kui ka ilma. Meeldetuletuseks, et eelnevalt pakutud asĂŒnkroonse sisend-/vĂ€ljundi mehhanism „aio“ ei toetanud vahemĂ€luga sisend-/vĂ€ljundit, vĂ”is töötada ainult O_DIRECT reĆŸiimis (ilma vahemĂ€luta ja vahemĂ€lu ĂŒmbersuunamisega), esines probleeme blokeerimisega, kuna oodi metainformatsiooni kĂ€ttesaadavust, ja sellel olid suuremad kulud andmete kopeerimise tĂ”ttu mĂ€lus.

      API raames
      io_uring ĂŒritasid arendajad kĂ”rvaldada vana aio liidese puudujÀÀke. Juhul kui tĂ”hususest io_uring on vĂ€ga lĂ€hedane SPDK ja ulatub oluliselt libaio-st ette pollinguga töötamisel. io_uring-i kasutamiseks kasutajaruumi lĂ”pprakendustes on ette valmistatud raamatukogu liburing, mis pakub kĂ”rgetasemelist kilet kernel liidesele;

    • FSe asjade jĂ€lgimise mehhanismis fanotify() lisatud toetab superbloki ja struktuuri dirent (kaustade loomine, kustutamine ja liigutamine). Esitatud vĂ”imalused aitavad lahendada skaleerimisprobleeme, mis tekivad vĂ€ga suurte FS-ide muutuste rekursiivse jĂ€lgimise puhul inotify mehhanismi kaudu (varem oli direnti muudatusi vĂ”imalik jĂ€lgida vaid inotify kaudu, kuid
      rekursiivse jĂ€lgimise tĂ”husus suurte pesakastide osas jĂ€ttis soovida). NĂŒĂŒd on sellist jĂ€lgimist vĂ”imalik tĂ”husalt lĂ€bi viia fanotify kaudu;
    • Btrfs failisĂŒsteemis lisatud vĂ”imalus seadistada zstd algoritmi kompressiooni taset, mis vĂ”ib olla optimaalne kompromiss kiire, kuid ebaefektiivse lz4 ja aeglase, kuid hĂ€sti kompaktse xz vahel. Sarnaselt sellele, kuidas sai varem zlibi kasutamisel mÀÀrata kompressiooni taset, on zstd toetusesse lisatud monteerimisvalik «-o compress=zstd:level». Testimisel pakkus minimaalne esimene tase 2.658-kordset andmete kompressiooni kiirusel 438.47 MB/s, dekompressioonikiirus oli 910.51 MB/s ja mĂ€lu tarbimine 780 MB, samas kui maksimaalne 15. tase suutis saavutada 3.126-kordse kompressiooni, kuid kompressioonikiirus oli vaid 37.30 MB/s, dekompressioonikiirus 878.84 MB/s ja mĂ€lu tarbimine 2547 MB;
    • Lisatud vĂ”imalus kĂ€ivituda failisĂŒsteemilt, mis paikneb device-mapper seadmel, ilma initramfs rakendamata. Alates kĂ€esolevast seadme kerneliversioonist on device-mapperit vĂ”imalik otse bootimisel kasutada, nĂ€iteks ega juur FS jaotises. Jaotise seadistamine toimub bootimise parameetri «dm-mod.create» abil. Ka lubatud moodulid device-mapperile, mis on lubatud kĂ€ivitamiseks: «crypt», «delay», «linear», «snapshot-origin» ja «verity»;
    • Flash-mĂ€lule suunatud failisĂŒsteemile F2FS on lisatud lipp F2FS_NOCOW_FL, mis vĂ”imaldab keelata copy-on-write reĆŸiimi kindla faili jaoks;
    • Kernalilt on eemaldatud failisĂŒsteem Exofs, mis on ext2 variandina kohandatud OSD (objektipĂ”hise salvestusseadmestiku) jaoks. Samuti on eemaldatud SCSI protokolli tugi selliste objektide salvestusseadmete jaoks;
  • Virtualiseerimine ja turvalisus
    • prctl() on lisatud vĂ”imalus PR_SPEC_DISABLE_NOEXEC, et hallata spekuleerivat kĂ€ivitamist valitud protsessile. Uus vĂ”imalus vĂ”imaldab valikuliselt keelata spekuleerivat kĂ€ivitamist protsessidele, mis vĂ”ivad olla potentsiaalselt rĂŒnnatud Spectre tĂŒĂŒpi rĂŒnnakutega. Keelamine kehtib kuni esimese exec() kutsumiseni;
    • Realiseeritud on LSM-moodul SafeSetID, mis vĂ”imaldab sĂŒsteemiteenustel kasutajaid ohutult hallata, ilma privileegide tĂ”stmiseta (CAP_SETUID) ja juur kasutaja volitusi saamata. Privilegiumide mÀÀramine toimub securityfs reeglite mÀÀratlemise kaudu, mis pĂ”hinevad lubatud sidumiste valgel maal (kujule «UID1:UID2»);
    • Lisatud madalamate tasemete muudatused, mis on vajalikud turvamoodulite (LSM) laadimise virnastamise korraldamiseks. Tutvustatud tuumalaadimise parameetrit «lsm», mis vĂ”imaldab hallata, milliseid mooduleid laaditakse ja millises jĂ€rjekorras;
    • AuditisĂŒsteemi on lisatud failide nimede nimede tugi;
    • Laienevad GCC-pistiku structleak vĂ”imalused, mis vĂ”imaldavad blokeerida potentsiaalseid mĂ€lulekkeid. Tagatud on igasuguste muutuja algatamine, mida kasutatakse koodis viitega, kas viitena vĂ”i kuskil mujal;
  • VĂ”rgusĂŒsteem
    • Sokettide jaoks rakendatud uus valik «SO_BINDTOIFINDEX», mis sarnaneb
      «SO_BINDTODEVICE», kuid vÔtab argumendina vÔrguliidese indeksinumbri, mitte liidese nime;
    • MAC80211 virnastikku on lisatud vĂ”imalus mÀÀrata ĂŒhele seadmele mitu BSSID (MAC-aadressi). WiFi jĂ”udluse optimeerimise projekti raames on MAC80211 virnastikku lisatud eetriaja jaotuse arvestamine ning vĂ”imalus jaotada eetriaega mitme jaama vahel (juurdepÀÀsupunkti reĆŸiimis vĂ€iksema aja eraldamine aeglastele WiFi jaamadele, mitte aja ĂŒhtlane jaotamine kĂ”ikide jaamade vahel);
    • Lisatud mehaanika «devlink health«, mis annab teateid probleemide ilmnemisel vĂ”rguliidese puhul;
  • MĂ€lu ja sĂŒsteemiteenused
    • TC39 pĂ€rand RegExp funktsioonid JavaScriptis signaalide turvaline saatmine, arvestades PID-i taaskasutamise vĂ”imalust. NĂ€iteks kill-kutse teostamisel vĂ”is varem tekkida olukord, kus kohe pĂ€rast signaali saatmist sihtimiseks vĂ”idakse PID vabastada protsessi lĂ”petamise tĂ”ttu ja seda vĂ”is kasutada teine protsess, mille tulemusena signaal saadeti teisele protsessile. Selliste olukordade vĂ€listamiseks on lisatud uus sĂŒsteemikutse pidfd_send_signal, mis kasutab failikirjeid /proc/pid-st, et tagada stabiilne seotus protsessiga. Isegi kui PID vĂ”etakse töötluse ajal uuesti kasutusele, ei muutu failikirje ja seda on ohutu kasutada signaali saatmiseks protsessile;
    • Lisatud vĂ”imalust kasutada pĂŒsiva mĂ€lu seadmeid (persistent-memory, nĂ€iteks NVDIMM-i.) RAM. Varem on sarnased seadmed tuumasse toetatud salvestusseadmestena, kuid nĂŒĂŒd saab neid kasutada ka tĂ€iendava operatiivmĂ€lu nii nagu need on. See vĂ”imalus on rakendatud kasutajate soovide vastuseks, kes on valmis leppima jĂ”udluse mahajÀÀmusega ja soovivad kasutada Linuxi tuuma mĂ€luhalduse API-d, selle asemel, et kasutada olemasolevaid kasutajaruumi mĂ€luhaldussĂŒsteeme, mis töötavad ĂŒle mmap dax-faili jaoks;
    • Uus CPU jĂ”udeoleku töötleja (cpuidle) on lisatud, mis otsustab, millal vĂ”ib CPU sĂŒgavale energiakaupluse reĆŸiimidesse viia, sĂŒgavam reĆŸiim pakub suuremat kokkuhoidu, kuid vĂ€ljumiseks kulub rohkem aega — TEO (Timer Events Oriented Governor). Kuni praeguseni pakuti kahte cpuidle töötlejat — "menu" ja "ladder", mis erinevad heuristikast. "Menu" töötlejal on tuntud probleeme heuristiliste otsuste vastuvĂ”tmisega, seetĂ”ttu otsustati luua uus töötleja. TEO positsioneeritakse "menu" töötleja alternatiivina, mis vĂ”imaldab saavutada kĂ”rgemat jĂ”udlust samal energiatootmise tasemel.
      Uut töötlejat saab aktiveerida laadimisparameetri "cpuidle.governor=teo" abil;
    • Töös on kĂ”rvaldamine 2038 aasta probleemi, mis on tingitud 32-bitise time_t tĂŒĂŒbi ĂŒletĂ€itumisest, on sĂŒsteemikutsed, mis pakuvad 32-bitiste arhitektuuride jaoks 64-bitiseid ajaloode. Selle tulemusel saab 64-bitist time_t struktuuri nĂŒĂŒd rakendada kĂ”igis arhitektuurides. Sarnased muudatused on tehtud ka vĂ”rgu alamsĂŒsteemis valikute jaoks timestamp vĂ”rgusokkide;
    • Keenis on kuumade plaastrite sĂŒsteem (live patching) lisatud vĂ”imalus „Atomic Replace“ rakendada atomaarset seeriat muudatustest ĂŒhele funktsioonile. Antud vĂ”imalus vĂ”imaldab levitada kokkuvĂ”tlikke plaastrid, mis katavad korraga mitu muudatust, selle asemel et tegeleda keerulise etapiviisilise live-plaastreid rakendamise protsessiga kindlas jĂ€rjekorras. Kui varem pidi iga jĂ€rgmine muudatus sĂ”ltuma eelmisest muudatusest lĂ€htuvast funktsiooni olekust, siis nĂŒĂŒd on vĂ”imalik levitada kohe mitmeid muudatusi, mis on seotud ĂŒhe algse olekuga (st hooldajad saavad toetada ĂŒhte kokkuvĂ”tlikku plaastrit aluseks olevast tuumast, mitte sĂ”ltuvate plaastrite jadana);
    • KĂ€ideldud a.out tĂ€itmisfaili formaadi tugi on eemaldatud ja
      eemaldatud a.out formaadis core-failide genereerimise kood, mis on saadud vananenud seisundis. Formaat a.out ei ole ammu kasutuses Linuxi sĂŒsteemides ja a.out failide genereerimist ei toetata enam kaasaegsete tööriistade poolt vaikimisi Linuxi konfiguratsioonides. Lisaks vĂ”ib a.out failide laadija olla tĂ€ielikult kasutajaruumi rakendatud;
    • BPF-programmide valideerimise mehanismi on lisatud vĂ”imalus mÀÀrata ja eemaldada kasutamata kood. Tuuma on lisatud ka plaastrid spinlocki toe jaoks BPF-alamsĂŒsteemis, mis pakuvad tĂ€iendavaid vĂ”imalusi BPF-programmide paralleelse tĂ€itmise haldamiseks;
  • Varustus
    • Nouveau draiveris lisatud heterogeense mĂ€lu juhtimise tugi, mis vĂ”imaldab CPU-l ja GPU-l pÀÀseda juurde jagatud sĂŒnkroonitud mĂ€lu aladele. Jagatud virtuaalse mĂ€lusĂŒsteem (SVM, shared virtual memory) on rakendatud HMM (heterogeense mĂ€lu halduse) alamsĂŒsteemi baasil, mis vĂ”imaldab kasutada seadmeid, millel on oma mĂ€lu haldamise blokid (MMU, memory management unit), mis saavad juurdepÀÀsu pĂ”himenetlusele. Sealhulgas saab HMM abil korraldada ĂŒhise aadressiruumi GPU ja CPU vahel, kus GPU-l on juurdepÀÀs protsessi pĂ”himenetlusele. SVM tugi on hetkel aktiveeritud ainult Pascali perekonna GPU-de jaoks, kuigi tugi on tagatud ka Volta ja Turing GPU-de jaoks. Lisaks, Nouveau on lisatud uus ioctl protsesside mĂ€lupiirkondade migratsiooni juhtimiseks GPU mĂ€llu;
    • Intel DRM-draiver GPU-de jaoks Skylake ja uuemad (gen9+) on lisatud vaikimisi on fastboot-reĆŸiim, mis vĂ€listab ĂŒleliigsed reĆŸiimivahetused kĂ€ivitamise ajal. Lisatud uued seadme tuvastajad mikroarhitektuuridel Coffelake ja Ice Lake. Coffelake'i kiipide jaoks lisatud GVT toetamine (GPU virtualiseerimine). Virtuaalsete GPU-de jaoks rakendatud VFIO EDIDi toetamine. MIPI/DSI LCD-paneelide jaoks lisatud ACPI/PMIC elementide tuki. Rakendatud uued TV-reĆŸiimid 1080p30/50/60 TV;
    • Draiverisse amdgpu on lisatud tugi GPU-dele Vega10/20 BACO. Teostatud on vĂ€ikese energiatarbimise haldamise vahendid Vega 10/20 jaoks ja jahutuse juhtimise tabelid Vega 10. Uued PCI seadme tuvastajad GPU Picasso jaoks on lisatud. Lisatud planeeritud sĂ”ltuvuste juhtimise liides vastastikuste blokeeringute vĂ€ltimiseks;
    • Lisatud DRM/KMS draiver ekraanide operatsioonide kiirendamiseks ARM Komeda (Mali D71);
    • Lisatud toetus Toppoly TPG110, Sitronix ST7701, PDA 91-00156-A0, LeMaker BL035-RGB-002 3.5 ja Kingdisplay kd097d04 ekraanipaneelidele;
    • Lisatud toetus helikoodikatele Rockchip RK3328, Cirrus Logic CS4341 ja CS35L36, MediaTek MT6358, Qualcomm WCD9335 ja Ingenic JZ4725B, samuti heliplatvormile Mediatek MT8183;
    • Lisatud toetus NAND-mĂ€lukontrolleritele Flash STMicroelectronics FMC2, Amlogic Meson;
    • Lisatud toetus kiirenditele Habana AI masinĂ”ppimiseks;
    • Lisatud toetus gigabiti Ethernet kontrolleritele NXP ENETC ja traadita liidesetele MediaTek MT7603E (PCIe) ja MT76x8.

Samas Latiino-Ameerika Vaba Tarkvara Fond kujundas
variant tĂ€iesti vaba tuum 5.1 — Linux-libre 5.1-gnu, millest on puhastatud kĂ”ik mittevabad elemendid ja draiverid, mis sisaldavad tootja piiratud kasutusega komponente vĂ”i koodilĂ”ike. Uues versioonis on keelatud blobide laadimine draiverites mt7603 ja goya. Uuendatud on blobide puhastamise kood draiverites ja alamsĂŒsteemides wilc1000, iwlwifi, soc-acpi-intel, brcmfmac, mwifiex, btmrvl, btmtk ja touchscreen_dmi. Blobide puhastamine lantiqi xrx200 alglaadimisprogrammis on lĂ”petatud, kuna see on eemaldatud tuumast.

Allikas: opennet.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster