PĂ€rast kahte kuud arendust Linus Torvalds ydinversioon . 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.
:
- DiskisĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
- Uus liides asĂŒnkroonsesse sisend-/vĂ€ljundisse on , 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 io_uring on vĂ€ga lĂ€hedane ja ulatub oluliselt libaio-st ette pollinguga töötamisel. io_uring-i kasutamiseks kasutajaruumi lĂ”pprakendustes on ette valmistatud raamatukogu , mis pakub kĂ”rgetasemelist kilet kernel liidesele; - FSe asjade jĂ€lgimise mehhanismis fanotify() toetab superbloki ja struktuuri (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 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;
- 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 , mis on ext2 variandina kohandatud OSD (objektipĂ”hise salvestusseadmestiku) jaoks. Samuti on eemaldatud SCSI protokolli tugi selliste objektide salvestusseadmete jaoks;
- Uus liides asĂŒnkroonsesse sisend-/vĂ€ljundisse on , 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.
- 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 , 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;
- 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 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 ««, mis annab teateid probleemide ilmnemisel vÔrguliidese puhul;
- Sokettide jaoks uus valik «SO_BINDTOIFINDEX», mis sarnaneb
- MĂ€lu ja sĂŒsteemiteenused
- 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;
- vĂ”imalust kasutada pĂŒsiva mĂ€lu seadmeid (persistent-memory, nĂ€iteks ) 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 , 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 vĂ”rgusokkide;
- Keenis on kuumade plaastrite sĂŒsteem (live patching) 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);
- a.out tÀitmisfaili formaadi tugi on eemaldatud ja
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 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 uus ioctl protsesside mĂ€lupiirkondade migratsiooni juhtimiseks GPU mĂ€llu;
- Intel DRM-draiver GPU-de jaoks Skylake ja uuemad (gen9+) vaikimisi on fastboot-reĆŸiim, mis vĂ€listab ĂŒleliigsed reĆŸiimivahetused kĂ€ivitamise ajal. seadme tuvastajad mikroarhitektuuridel Coffelake ja Ice Lake. Coffelake'i kiipide jaoks GVT toetamine (). Virtuaalsete GPU-de jaoks VFIO EDIDi toetamine. MIPI/DSI LCD-paneelide jaoks ACPI/PMIC elementide tuki. 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. planeeritud sÔltuvuste juhtimise liides vastastikuste blokeeringute vÀltimiseks;
- DRM/KMS draiver ekraanide operatsioonide kiirendamiseks (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
variant â , 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
