Linuxi kerneli versioon 5.8 vÀljaanne.

PĂ€rast kahte kuud arendusteline Linus Torvalds esitles tugevdamise sĂŒdamik Linux 5.8. 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.

Peamised uuendused:

  • 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.
      Shadow-Call Stack, 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 ARMv8.5-BTI (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 Encryption). 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. CAP_BPF, 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).
    • Lisatud 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 CROSSTalk/SRBDS, 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 vastu vĂ”etud 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 KCSAN (Kernel Concurrency Sanitizer), mis on mĂ”eldud dĂŒnaamiliseks tĂ”rgete tuvastamiseks vĂ”istlusolukordades 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 universaalne mehhanism 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
      faccessat() lisanduva argumendiga lippudega, mis vastavad POSIX-i soovitustele (varem simuleeriti neid lippusid C-raamatukogus, kuid uus faccessat2 vÔimaldab neid rakendada tuumas).
    • Cgroup on lisatud memory.swap.high seadistuse, mida saab kasutada liiga palju ruumi hĂ”ivavate ĂŒlesannete aeglustamiseks.
    • asĂŒnkroonse sisendi/vĂ€ljundi liides io_uring sĂŒsteemi kutse tee() toimetamine on lisatud.
    • Lisatud mehhanism „BPF iteratsioon, mis on mĂ”eldud kerneri struktuuride sisu kasutajaruumi vĂ€ljundiks.
    • Soodustatud vĂ”ime kasutada ringpuhvrit andmevahetuseks BPF-programmide vahel.
    • Mehhanismi padata, 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, lisatud tagumine, et salvestada teavet plokkseadmetele.
    • PREEMPT_RT tuumavĂ€listest harudest ĂŒle viidud kohalikud lukustuste teostus.
    • Lisatud 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 lisatud 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 on lisatud krĂŒpteeritud vĂ”tmete tugi.
    • Btrfs-is on parandatud otse sisende/vĂ€ljunde toimingute töötlemist. Mountimisel kiirendatud 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 ENOSPC 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 statx() lisatud lipp STATX_ATTR_DAX, mille, mille, mille hoitavat DAX-mekanismin avulla.
    • EXFAT-sisÀÀn on lisatud kĂ€ynnistysalueen varmennustuki.
    • FAT-kielellĂ€ parandusi 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 on lisatud protokollatuki MRP (Media Redundancy Protocol), joka mahdollistaa vikasietoisuuden useiden Ethernet-kytkimien kytkemisen.
    • liikenteen ohjausjĂ€rjestelmÀÀn (Tc) lisatud 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Ă€ (RFC 8229) UDP-estojen kiertĂ€miseksi.
    • Lisatud vĂ”rgupĂ”hine blokeerimisseade rnbd, mis vĂ”imaldab korraldada kaugjuurdepÀÀsu blokeerimisseadmele RDMA (InfiniBand, RoCE, iWARP) transpordi ja RTRS protokolli kaudu.
    • TCP-stekis on lisatud toetamine vastuste erakorraliste kinnituste (selective acknowledgment, SACK) vahemike kokkusurumiseks.
    • IPv6 jaoks on rakendatud toetamine TCP-LD (RFC 6069, pikad ĂŒhenduse katkemised).
  • Seadmed
    • i915 DRM-draiveris Intel videokaartidele on vaikimisi aktiveeritud Intel Tiger Lake (GEN12) kiipide tugi, mille puhul samuti on rakendatud 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 RAPL (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.
    • Lisatud 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.
    • Lisatud
      Venemaa Baikal-T1 protsessori ja selle pĂ”hjal loodud sĂŒsteemi tugi. BE-T1000. 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 vormis
variant tĂ€iesti vabast tuumast 5.8 — Linux-libre 5.8-gnu, 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

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster