PĂ€rast kahte kuud arendusteline Linus Torvalds tugevdamise sĂŒdamik . KĂ”ige tĂ€helepanuvÀÀrsemad muudatused on: KCSANi riigiuuringute detektor, universaalne hoiatusmehhanism kasutajaruumi, riistvara toetus inline-krĂŒptimiseks, tĂ€iustatud kaitsemehhanismid ARM64 jaoks, Venemaa Baikal-T1 protsessoritoe olemasolu, vĂ”imalus eraldi mountida procfs eksemplare, ARM64 jaoks varjatud kĂ”nekogumite ja BTI kaitsemehhanismide rakendamine.
Kernel 5.8 has become the largest in terms of the number of changes in the history of the project. These changes are not tied to a single subsystem but cover various parts of the kernel, primarily related to internal refinements and cleanup. The most significant changes are observed in drivers. The new version includes 17,606 fixes from 2,081 developers, which affected approximately 20% of all files in the kernel code repository. The patch size is 65 MB (the changes affected 16,180 files, with 1,043,240 lines of code added and 489,854 lines removed). For comparison, in the 5.7 branch, 15,033 fixes were made, and the patch size was 39 MB. About 37% of all changes presented in 5.8 are related to device drivers, approximately 16% pertain to updates related to hardware-specific code, 11% is related to the networking stack, 3% to file systems, and 4% to the kernel's internal subsystems.
:
- Virtualiseerimine ja turvalisus
- Kernemoodulite laadimise blokeerimine on tagatud, kus korraga on seatud nii kÀivitus- kui ka kirjutuslubade bitid. Muudatus on ellu viidud suurema projekti raames, et vabaneda mÀlulehtedest, mis lubavad samaaegset kÀivitamist ja kirjutamist.
- On lisandunud vĂ”imalus luua eraldi procfs eksemplare, mis vĂ”imaldavad kasutada mitmeid procfs montaaĆŸipunkte, millel on erinevad valikud, kuid mis peegeldavad sama protsessi identifikaatorite (pid namespace) nimiruumi. Varasemalt peegeldasid kĂ”ik procfs montaaĆŸipunktid vaid ĂŒhte sisemist esitlemist ning montaaĆŸiparametrite muutmine mĂ”jutas kĂ”iki teisi selle nimiruumi kuuluvate montaaĆŸipunktide seoseid. Erinevate valikutega montaaĆŸimine on vajalik nĂ€iteks kergete isolatsioonide rakendamiseks sisseehitatud sĂŒsteemides, kus saab peita procfs teatud tĂŒĂŒpi protsesse ja teavet.
- ARM64 platvormile on rakendatud mehhanismi tugi.
, mida Clang kompilaator pakub, et kaitsta tagasipöördumise aadressi kirjelduste ĂŒlekirjutamise eest funktsioonist, kui toimub virna ĂŒlevool. Kaitsestrateegia seisneb tagasipöördumise aadressi salvestamises eraldi «varjatud» virnas pĂ€rast kontrolli andmist funktsioonile ning selle aadressi vĂ€lja toomises funktsiooni lĂ”petamisel. - ARM64 platvormile on lisatud kĂ€sku (Branch Target Indicator), et kaitsta teatud juhiste kogumi tĂ€itmist, kuhu ei tohiks suunata hargnemiste korral. Suunamiste blokeerimine juhuslikesse koodiosi on ellu viidud, et vastanduda gadgetâide loomisele eksploitides, mis kasutavad tagasipöördumise orienteeritud programmeerimise (ROP â Return-Oriented Programming) tehnikaid, kus rĂŒndaja ei ĂŒrita oma koodi mĂ€llu paigutada, vaid opereerib juba olemasolevate masiinijuhiste tĂŒkitegudega, mis lĂ”ppevad tagasipöördumise kĂ€suga, millest moodustatakse kutsungite ahel vajalikku funktsionaalsust saavutamiseks.
- Toetatakse varustust inline-blokiseadmete krĂŒpteerimiseks (). Inline-ĆĄifreerimise seadmed on tavaliselt sisseehitatud mĂ€llu, kuid loogiliselt asetatakse need sĂŒsteemimĂ€lu ja ketta vahele, pakkudes lĂ€bipaistvat krĂŒpteerimist ja dekrĂŒpteerimist sisendi/vĂ€ljundi pĂ”hjal, kasutades tuumakoonduse vĂ”tmeid ja krĂŒpteerimisalgoritmi.
- Lisatud tuuma kĂ€surea parameeter 'initrdmem', mis vĂ”imaldab mÀÀrata initrd fĂŒĂŒsilise aadressi mĂ€lu asukohas, kui alglaadimise pilti paigutatakse RAM-i.
- Uued Ă”igused: CAP_PERFMON, mis annab juurdepÀÀsu perf-alamsĂŒsteemile ning vĂ”imaldab jĂ”udluse jĂ€lgimist. , mis lubab teatud toimingute sooritamist BPF-iga (nĂ€iteks BPF-programmide laadimist), mis varem nĂ”udis CAP_SYS_ADMIN Ă”igusi (nĂŒĂŒd on CAP_SYS_ADMIN Ă”igused jagatud kombinatsiooniks CAP_BPF, CAP_PERFMON ja CAP_NET_ADMIN).
- uus virtio-mem seade, vĂ”imaldades kuumĂŒhendust ja -lahkumist mĂ€lu kĂŒlge virtuaalmasinates.
- Tehtud mappimise tĂŒhistamine /dev/mem, kui seadme draiver kasutab kattuvaid mĂ€lupiirkondi.
- Lisatud kaitse haavatavuse , mis vÔimaldab taastada mÔnede kÀskude tÀitmise tulemusi, mis viidi lÀbi teisel CPU tuumal.
- MĂ€lu ja sĂŒsteemiteenused
- Dokumendis, mis mÀÀratleb koodi vormistamise reeglid, on soovitused kaasava terminoloogia kasutamiseks. Arendajatele ei soovitata kasutada termineid âmaster / slaveâ ja âblacklist / whitelistâ, samuti eraldi sĂ”na âslaveâ. Soovitused kehtivad ainult nende terminite uue kasutamise kohta. Juba olemasolevad viidatud sĂ”nad tuumas jÀÀvad muutmata. Uues koodis on nimetatud terminite kasutamine lubatud, kui see on vajalik, et sĂ€ilitada API ja ABI, mis antakse kasutajale, ning ka olemasoleva riistvara vĂ”i protokollide toe uuendamise puhul, kui spetsifikatsioonid nĂ”uavad teatud terminite kasutamist.
- Kompassi sisaldab silumisvahend (Kernel Concurrency Sanitizer), mis on mĂ”eldud dĂŒnaamiliseks tĂ”rgete tuvastamiseks sĂŒdamiku sees. KCSAN-i kasutamine on toetatud GCC ja Clang-i koostamisel ning nĂ”uab kompilatsioonietapis spetsiaalsete modifikatsioonide lisamist mĂ€lu juurdepÀÀsu jĂ€lgimiseks (rakendatakse peatuspunkte, mis aktiveeruvad mĂ€lu lugemise vĂ”i muutmise korral). KCSAN-i arendamisel on peamine tĂ€helepanu pööratud valehĂ€irete vĂ€ltimisele, skaleeritavusele ja kasutusmugavusele.
- Lisatud teavituste edastamine kernel'ist kasutajaruumi. Mehhanism pĂ”hineb tavapĂ€rasel pipe draiveril ja vĂ”imaldab tĂ”husalt jaotada teateid kernel'ist kasutajaruumi avatud kanalitesse. Teadete vastuvĂ”tukohad on pipe'id, mis on avatud spetsiaalses reĆŸiimis ja vĂ”imaldavad koguda kernel'ist tulevaid sĂ”numeid ringpufferisse. Lugemist teostatakse tavalise funktsiooniga read(). Kanali omanik mÀÀrab, milliseid allikaid kernel'is peab jĂ€lgima, ja saab mÀÀrata filtri teatud tĂŒĂŒpi sĂ”numite ja sĂŒndmuste ignoreerimiseks. Hetkel toetatakse ainult vĂ”tmetega seotud toimingute sĂŒndmusi, nagu vĂ”tmete lisamine/kustutamine ja nende atribuutide muutmine. Nimetatud sĂŒndmusi plaanitakse kasutada GNOME'is.
- JĂ€tkatud on 'pidfd' funktsionaalsuse arendust, mis aitab hallata olukordi, kus PID-id koostatakse uuesti (pidfd on seotud konkreetse protsessiga ja ei muutu, samal ajal kui PID vĂ”ib pĂ€rast jooksva protsessi lĂ”petamist olla seotud teise protsessiga, mis on seotud selle PID-ga). Uues versioonis on lisatud tugi pidfd kasutamiseks protsessi kinnitamiseks nimekiri ruumide (on lubatud nĂ€idata pidfd sĂŒsteemi sĂŒsteemi kutsumise setns teostamisel). Pidfd rakendamine vĂ”imaldab ĂŒhe kutsumisega hallata protsessi kinnitamist mitmetele nimekirjadele, oluliselt vĂ€hendades vajalikku sĂŒsteemi kutsumiste arvu ja viies ellu kinnitamise aatomreĆŸiimis (kui kinnitamisel tekib tĂ”rge ĂŒhes nimekirjas, ei kinnitata ka teisi).
- Uus sĂŒsteemi kutsumine faccessat2() on lisatud, mis erineb
lisanduva argumendiga lippudega, mis vastavad POSIX-i soovitustele (varem simuleeriti neid lippusid C-raamatukogus, kuid uus faccessat2 vĂ”imaldab neid rakendada tuumas). - Cgroup memory.swap.high seadistuse, mida saab kasutada liiga palju ruumi hĂ”ivavate ĂŒlesannete aeglustamiseks.
- asĂŒnkroonse sisendi/vĂ€ljundi liides sĂŒsteemi kutse tee() toimetamine on lisatud.
- Lisatud mehhanism â, mis on mĂ”eldud kerneri struktuuride sisu kasutajaruumi vĂ€ljundiks.
- vÔime kasutada ringpuhvrit andmevahetuseks BPF-programmide vahel.
- Mehhanismi , mille eesmĂ€rk on korraldada kernelis ĂŒlesannete paralleelset tĂ€itmist, on lisatud mitme lĂ”ime toetamine koormuse tasakaalustamisega.
- Mehanism pstore, mis vÔimaldab salvestada tÔrke pÔhjuse seadistatud mÀlu infost, mis ei kao taaskÀivituste vahel, tagumine, et salvestada teavet plokkseadmetele.
- PREEMPT_RT tuumavÀlistest harudest kohalikud lukustuste teostus.
- uus puhversĂŒsteemi API (AF_XDP), mis keskendub XDP (eXpress Data Path) toe jĂ€tkusuutlikuma vĂ”rgu draiverite kirjutamise lihtsustamisele.
- RISC-V arhitektuurile on rakendatud kernelika komponentide silumise tugi KGDB abil.
- Enne versiooni 4.8 on suurenenud GCC versiooni nĂ”uded, mida saab kasutada tuuma koostamiseks. Ăhes jĂ€rgmises vĂ€ljaandes plaanitakse tĂ”sta nĂ”ue GCC 4.9 peale.
- Disski alamsĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
- Seadme kaardistamises on uus töötleja dm-ebs (emuleerib ploki suurust), mida saab kasutada vÀiksema loogilise ploki suuruse emuleerimiseks (nÀiteks 512-baidiste sektorite emuleerimiseks 4K sektoritega ketastel).
- F2FS failisĂŒsteemis on lisatud LZO-RLE algoritmi kasutav kokkusurumise toetamine.
- dm-cryptis on lisatud krĂŒpteeritud vĂ”tmete tugi.
- Btrfs-is on parandatud otse sisende/vÀljunde toimingute töötlemist. Mountimisel kontrollitakse eemaldatud alamjaotisi ja katalooge, mis on jÀÀnud ilma vanemast.
- CIFS-is on lisatud parameeter 'nodelete', mis vÔimaldab serveri Ôiguste tavapÀraste kontrollide tegemist, keelates kliendil failide vÔi kataloogide kustutamise.
- Ext4-s on paranenud vea töötlemine mitme lÔime kasutamisel. xattr-is on lisatud gnu.* nimede ruumi tugi, mida kasutatakse GNU Hurd-is.
- Ext4 ja XFS toetavad DAX (otse pÀÀs failisĂŒsteemile, möödaminnes lehevahemikest ilma plokiseadmestikku rakendamata) toimingute kasutamist eraldi failide ja kataloogide jaoks.
- SĂŒsteemi kutses lisatud lipp , mille, mille, mille hoitavat DAX-mekanismin avulla.
- EXFAT-sisÀÀn kÀynnistysalueen varmennustuki.
- FAT-kielellÀ ennakoiva tiedostojÀrjestelmÀn lataus. Kokeilu hitaalla 2TB USB-tikulla osoitti testauksen keston lyhyemmÀksi 383 sekunnista 51 sekuntiin.
- VĂ”rgu alamsĂŒsteem
- verkkosiltateknologian ohjauskoodissa protokollatuki (Media Redundancy Protocol), joka mahdollistaa vikasietoisuuden useiden Ethernet-kytkimien kytkemisen.
- liikenteen ohjausjÀrjestelmÀÀn (Tc) uutena toimena "gate", joka mahdollistaa aikavÀlin mÀÀrittÀmisen tiettyjen pakettien kÀsittelyyn ja hylkÀÀmiseen.
- ydinjÀrjestelmÀÀn ja ethtool-työkaluun on lisÀtty verkkokaapelin liitÀnnÀn testaus- ja itsediagnostiikkatoimintoja.
- IPv6-pinossa on lisÀtty tuki MPLS-algoritmille (Multiprotocol Label Switching), joka ohjaa paketteja kÀyttÀmÀllÀ moniprotokollaista merkkikommunikointia (IPv4:ssÀ tuki MPLS:lle oli jo aiemmin).
- tuki IKE (Internet Key Exchange) ja IPSec -pakettien siirtoon TCP:n pÀÀllÀ () UDP-estojen kiertÀmiseksi.
- vÔrgupÔhine blokeerimisseade rnbd, mis vÔimaldab korraldada kaugjuurdepÀÀsu blokeerimisseadmele RDMA (InfiniBand, RoCE, iWARP) transpordi ja RTRS protokolli kaudu.
- TCP-stekis toetamine vastuste erakorraliste kinnituste (selective acknowledgment, SACK) vahemike kokkusurumiseks.
- IPv6 jaoks toetamine TCP-LD (, pikad ĂŒhenduse katkemised).
- Seadmed
- i915 DRM-draiveris Intel videokaartidele on vaikimisi aktiveeritud Intel Tiger Lake (GEN12) kiipide tugi, mille puhul samuti on vĂ”imalik kasutada SAGV (System Agent Geyserville) sĂŒsteemi dĂŒnaamiliseks sageduse ja pingetootmise kohandamiseks energiatootmise vĂ”i jĂ”udluse nĂ”uete jĂ€rgi.
- amdgpu draiverisse on lisatud FP16 piksliformaadi tugi ja rakendatud vÔimalus töötada ƥifreeritud puhverdatud videomÀlus (TMZ, Trusted Memory Zone).
- lisatud tugi AMD Zen ja Zen2 protsessorite energia tarbimise sensoritele ning AMD Ryzen 4000 Renoir temperatuuri sensoritele. AMD Zen ja Zen2 puhul on tagatud energia tarbimise teabe hankimine (Running Average Power Limit) kaudu.
- Nouveau draiverisse on lisatud NVIDIA-modifikaatorite formaadi tugi. gv100 jaoks on rakendatud vÔimalus kasutada vaheldumisi skannereid. Lisatud on vGPU mÀÀratlemine.
- MSM (Qualcomm) draiverisse on lisatud GPU Adreno A405, A640 ja A650 tugi.
- sisemine raamistik DRM (Direct Rendering Manager) ressursside haldamiseks.
- Lisatud on tugi nutitelefonidele Xiaomi Redmi Note 7 ja Samsung Galaxy S2, samuti sĂŒlearvutitele Elm/Hana Chromebook.
- LCD-paneelide draiverid on lisatud: ASUS TM5P5 NT35596, Starry KR070PE2T, Leadtek LTK050H3146W, Visionox rm69299, Boe tv105wum-nw0.
- Lisatud on armplatvormide ja Renesas RZ/G1H, Realtek RTD1195, Realtek RTD1395/RTD1619, Rockchip RK3326, AMLogic S905D, S905X3, S922XH, Olimex A20-OLinuXino-LIME-eMMC, Check Point L-50, tugi.
, Beacon i.MX8m-Mini, Qualcomm SDM660/SDM630, Xnano X5 TV Box, Stinger96, Beaglebone-AI. - Loongson-2K MIPS-protsessori (lĂŒhendatud Loongson64) tugi on lisatud. Loongson 3 CPU-le on lisatud virtualiseerimise tugi KVM hĂŒperviisori abil.
-
Venemaa Baikal-T1 protsessori ja selle pĂ”hjal loodud sĂŒsteemi tugi. . Baikal-T1 protsessor sisaldab kahte super-skalaarset P5600 MIPS 32 r5 tuuma, mis töötavad 1,2 GHz sagedusel. Kiibil on L2 vahemĂ€lu (1 MB), DDR3-1600 ECC mĂ€lukontroller, 1 10Gb Ethernet port, 2 1Gb Ethernet porti, PCIe Gen.3 x4 kontroller, 2 SATA 3.0 porti, USB 2.0, GPIO, UART, SPI, I2C. Protsessor pakub riistvaralist virtualiseerimise tuge, SIMD juhiseid ja integreeritud riistvaralist krĂŒptograafiliste operatsioonide kiirendajat, mis toetab ĐĐĐĄĐą 28147-89. Kiip on vĂ€lja töötatud Imagination Technologies'i litsentseeritud MIPS32 P5600 Warrior protsessori tuuma pĂ”hjal.
Samas Ladina-Ameerika tasuta tarkvara fond
variant â , puhastatud kĂ”ikidest pĂŒsivara ja draiverite elementidest, millel on erakasutuse komponendid vĂ”i koodilĂ”igud, mille kasutusala on tootja poolt piiratud. Uues vĂ€ljaandes on blokeeritud blobide laadimine Atom ISP Video, MediaTek 7663 USB/7915 PCIe, Realtek 8723DE WiFi, Renesas PCI xHCI, HabanaLabs Gaudi, Enhanced Asynchronous Sample Rate Converter, Maxim Integrated MAX98390 kĂ”larivĂ”imendi, Microsemi ZL38060 Connected Home Audio Processor ja I2C EEPROM Slave draiverites. Draiverite ja alamliideste blobide puhastamise kood on vĂ€rskendatud Adreno GPU, HabanaLabs Goya, x86 puutetundlik, vt6656 ja btbcm.
Allikas: opennet.ru
