Linuxi kÀrn 5.8 vÀljaanne

PĂ€rast kahte kuud arendust Linus Torvalds esitles ydinversioon Linux 5.8. KĂ”ige silmapaistvamad muutused: KCSANi tĂ”rkeotsingu detektor, universaalne teavituste edastamise mehhanism kasutajaruumi, inline-krĂŒpteerimise seadmete tugi, tĂ€iendavad kaitsemehhanismid ARM64 jaoks, Venemaa protsessori Baikal-T1 tugi, vĂ”imalus eraldi monteerida procfs instantsid, ARM64-le rakendatud Shadow Call Stack ja BTI kaitsemehhanismid.

Kernel 5.8 on seni suurim muudatuste hulk, mis on toimunud projekti ajaloo jooksul. Need muudatused ei ole seotud ĂŒhegi konkreetse sĂŒsteemiga, vaid katavad erinevaid tuuma osi ja on peamiselt seotud sisemiste ĂŒmberkorralduste ja puhastamisega. Enamasti on muudatused nĂ€htavad draiverites. Uude versiooni on kaasatud 17606 parandust 2081 arendajalt, mis on mĂ”jutanud umbes 20% tuumakoodi hoidlast. Patchesi suurus on 65 MB (muudatused on puudutanud 16180 faili, lisatud 1043240 koodirida, eemaldatud 489854 rida). VĂ”rdluseks, 5.7 haru juures viidi lĂ€bi 15033 parandust, patchi suurus oli 39 MB. Umbes 37% kĂ”igist 5.8 muudatustest on seotud seadme draiveritega, umbes 16% muudatusi on seotud riistvaraarhitektuurile spetsiifilise koodi vĂ€rskendamisega, 11% on seotud vĂ”rgu protokolliga, 3% -ga failisĂŒsteemide ja 4% tuuma sisemiste sĂŒsteemidega.

Peamised uuendused:

  • Virtualiseerimine ja turvalisus
    • On tagatud tuumamoodulite laadimise blokeerimine, millel on koodisektsioonid, millel on samaaegselt lubatud tĂ€itmise ja kirjutamise bitid. Muudatus on ellu viidud suurema projekti raames, mille eesmĂ€rk on eemaldada tuumast mĂ€lulehtede kasutamine, mis lubavad samaaegselt tĂ€itmist ja kirjutamist.
    • On vĂ”imalik luua eraldi procfs eksemplare, mis vĂ”imaldavad kasutada mitut erinevat mount-punkti procfs, mis on monteeritud erinevate valikutega, kuid peegeldavad ĂŒhte protsesside identifikaatori ruumi (pid namespace). Varem peegeldasid kĂ”ik procfs montaaĆŸipunktid ĂŒhe sisemise esitluse, ja iga montaaĆŸiseadete muutmine mĂ”jutas kĂ”iki teisi montaaĆŸipunkte, mis olid seotud sama protsesside identifikaatori ruumiga. Erinevates valdkondades, kus vĂ”ib olla nĂ”udlus erinevate seadete montaaĆŸi jĂ€rele, tuleks mĂ€rkida kerge isoleerimise rakendamine integreeritud sĂŒsteemides, vĂ”imaldades teatud tĂŒĂŒpi protsesside ja teabe sĂ”lmede peitmisse procfs.
    • ARM64 platvormile on sisse viidud toe mehhanism
      Shadow-Call Stack, mille pakub Clang kompilaator, et kaitsta funktsiooni tagastamise aadressi ĂŒlekirjutamise eest, juhul kui puhver ĂŒletab oma piire. Kaitse olemus on see, et pĂ€rast juhtimise andmist funktsiooni kĂ€tkeb tagastamise aadress eraldi 'vari' stackis ja see aadress saadakse enne funktsioonist vĂ€ljumist.
    • ARM64 platvormile on lisatud toetus kĂ€skudele ARMv8.5-BTI (Branch Target Indicator) tĂ€histamiseks, et kaitsta kĂ€skude hulkade tĂ€itmist, millele ei tohiks haru vĂ”tmise korral ĂŒleminekud toimuda. Üleminekute peatamine juhuslike koodiplokkide peale on rakendatud, et takistada gadĆŸettide loomist eksploiteerimistes, mis kasutavad tagasipööramise suunamisprogrammeerimise (ROP — Return-Oriented Programming) tehnikat, kus rĂŒndaja ei pĂŒĂŒa oma koodi mĂ€lu paigutada, vaid opereerib juba olemasolevate masiinakĂ€skude tĂŒkkidega, mis lĂ”ppevad juhtimise tagastamise kĂ€suga, millest moodustatakse kutse ahel vajaliku funktsionaalsuse saavutamiseks.
    • Toetatakse seadmeid vaikimisi krĂŒpteerimise blockchain-seadmete jaoks (Inline Encryption). Inline-krĂŒpteerimise seadmed on tavaliselt integreeritud salvestusse, kuid loogiliselt asetatakse need sĂŒsteemi mĂ€lu ja ketta vahele, teostades lĂ€bipaistvat krĂŒpteerimist ja dekrĂŒpteerimist sisendi / vĂ€ljundi pĂ”hjal, kasutades tuuma mÀÀratud vĂ”tmeid ja krĂŒpteerimise algoritmi.
    • Lisatud on tuuma kĂ€surida parameeter «initrdmem», mis vĂ”imaldab nĂ€idata initrd fĂŒĂŒsilist aadressi mĂ€lus alglaadimisfaili paigutamisel RAM-i.
    • Lisatud uued capability: CAP_PERFMON, mis vĂ”imaldab juurdepÀÀsu perf-alamĂŒsteemile ja jĂ”udluse jĂ€lgimist. CAP_BPF, mis vĂ”imaldab teatud toimingute teostamist BPF-iga (nĂ€iteks BPF-programmide laadimist), mis varem nĂ”udis Ă”igusi CAP_SYS_ADMIN (nĂŒĂŒd on powers CAP_SYS_ADMIN jagatud kombinatsiooniks CAP_BPF, CAP_PERFMON ja CAP_NET_ADMIN).
    • omadus uus seade virtio-mem, mis vĂ”imaldab kuuma mĂ€lu ĂŒhendamist ja lahtiĂŒhendamist kĂŒlalissĂŒsteemide jaoks.
    • Teostatakse mappimise operatsioonide tagasivĂ”tmine /dev/mem, kui seadme draiver kasutab kattuvaid mĂ€lupiirkondi.
    • Lisatud kaitse haavatavuse CROSSTalk/SRBDS, mis vĂ”imaldab taastada teatud kĂ€skluste tĂ€itmise tulemusi, mis on tĂ€idetud teisel CPU tuumal.
  • MĂ€lu ja sĂŒsteemiteenused
    • Dokumenti, mis mÀÀratleb koodi vormistamise reeglid, on vĂ”etud soovitused kaasava terminoloogia kasutamiseks. Arendajatele ei soovitata kasutada sidemeid 'master/slave' ja 'blacklist/whitelist', samuti eraldi sĂ”na 'slave'. Soovitused kehtivad ainult nende terminite uue kasutamise osas. Varasemad alused ja viidatud sĂ”nad jÀÀvad muutmata. Uues koodis on lubatud mĂ€rkida terminite kasutamine, kui see on vajalik kasutajaliidese API ja ABI sĂ€ilitamiseks ning olemasolevate seadmete vĂ”i protokollide toe tasandamiseks, mis nĂ”uavad teatud terminite kasutamist.
    • Komplekti on lisatud silumisvahend KCSAN (Kernel Concurrency Sanitizer), mis on mĂ”eldud dĂŒnaamiliseks raundide tuvastamiseks ringide olekute tuvastamiseks kernelis. KCSANi kasutamine toetub GCC ja Clangi koostamisele ning nĂ”uab spetsiaalsete muudatuste tegemist kompileerimise etapis, et jĂ€lgida mĂ€lujuurdepÀÀsu (kasutatakse katkestuspunktide, mis aktiveeruvad mĂ€lurakenduse lugemisel vĂ”i muutmisel). KCSANi arendamise peamine tĂ€helepanu on valehĂ€irete, skaleeritavuse ja kasutusmugavuse vĂ€ltimine.
    • Lisatud ĂŒldine mehhanism teavituste edastamine tuumast kasutajaruumi. Mehhanism pĂ”hineb standardsel pipe-draiveril ja vĂ”imaldab tĂ”husalt jaotada teateid tuumast kanalitele, mis on avatud kasutajaruumi. Teate vastuvĂ”tupunktid on pipe'id, mis on avatud spetsiaalses reĆŸiimis ja vĂ”imaldavad ringpuhvrisse koguda tuumast tulevaid sĂ”numeid. Lugemine toimub tavalise funktsiooniga read(). Kanalite omanik mÀÀrab, milliseid tuumallikaid tuleb jĂ€lgida ja vĂ”ib mÀÀrata filtri, et ignoreerida teatud tĂŒĂŒpi sĂ”numeid ja sĂŒndmusi. Praegu toetatakse sĂŒndmusi ainult vĂ”tmete operatsioonidega, nagu vĂ”tmete lisamine/esisandmine ja nende atribuutide muutmine. Need sĂŒndmused on planeeritud kasutamiseks GNOME'is.
    • On jĂ€tkatud 'pidfd' funktsionaalsuse arendamist, mis aitab kĂ€sitleda juhtumeid, kus PID-i korduvkasutamine toimub (pidfd on seotud konkreetselt protsessiga ja ei muutu, samas kui PID vĂ”ib olla seotud teise protsessiga pĂ€rast praeguse protsessi lĂ”ppemist, mis on seotud selle PID-iga). Uues versioonis on lisatud toetust pidfd kasutamiseks protsessi kinnitamiseks nimede ruumidesse (pidfd mÀÀramine on lubatud sĂŒsteemi vĂ€ljakutse setns tĂ€itmisel). Pidfd kasutamine vĂ”imaldab ĂŒhe vĂ€ljakutsega hallata protsessi kinnitamist mitme nimede ruumi tĂŒĂŒbi juurde, vĂ€hendades oluliselt vajalike sĂŒsteemi vĂ€ljakutsete arvu ja viies kinnitamise ellu aatomireĆŸiimis (kui kinnitamise kĂ€igus mĂ”nes nimede ruumis ilmneb tĂ”rge, siis ei kinnitata ka teisi).
    • Lisatud uus sĂŒsteemi vĂ€ljakutse faccessat2(), mis erineb
      faccessat() tÀiendava argumendi ja lippudega, mis vastavad POSIX-i soovitustele (varem simuleeriti neid lippe C-raamatukogus, kuid uus faccessat2 vÔimaldab neid ellu viia tuumas).
    • Cgroup'is lisatud mÀÀrang memory.swap.high, mida saab kasutada ĂŒlesannete aeglustamiseks, mis vĂ”tavad liiga palju ruumi vahetusfailis.
    • AsĂŒnkroonse sisendi/vĂ€ljundi io_uring lisatud toetust sĂŒsteemi vĂ€ljakutsele tee().
    • Lisatud mehaanika «BPF iteratoor, mis on ette nĂ€htud tuumastruktuuride sisu edastamiseks kasutajaruumi.
    • Pakkuv vĂ”imalus kasutada ringpuhverdatud andmevahetust BPF-programmide vahel.
    • Mehhanism padata, mis on mĂ”eldud ĂŒheaegsete ĂŒlesannete tĂ€itmise organiseerimiseks tuumas, on lisatud mitme lĂ”ime ĂŒlesannete toetamine koormuse jaotamisega.
    • pstore mehhanism, mis vĂ”imaldab salvestada tĂ”rke pĂ”hjuse silumise teavet mĂ€lus, mis ei kao taaskĂ€ivituste vahel, on lisatud tagasi, et salvestada teavet plokkseadmetesse.
    • PREEMPT_RT tuumaharust ĂŒleviidud lokaliseeritud lukustuste teostamiseks.
    • Lisatud uus puhverdamise API (AF_XDP), mis on suunatud vĂ”rgu draiverite kirjutamise lihtsustamiseks XDP (eXpress Data Path) toe jaoks.
    • RISC-V arhitektuuri jaoks on rakendatud tuuma komponentide tĂ”rkeotsingu toetust KGDB kaudu.
    • Enne 4.8 versiooni vĂ€ljalaskmist on tĂ”stetud GCC versiooninĂ”udeid, mida vĂ”ib tuuma kompileerimiseks kasutada. Üks jĂ€rgmistest versioonidest plaanib nĂ”utud versiooni tĂ”sta GCC 4.9 peale.
  • DiskisĂŒsteem, sisend/vĂ€ljund ja failisĂŒsteemid
    • Seadme kaardistajas on lisatud on lisatud uus töötleja dm-ebs (simuleerib ploki suurust), mida saab kasutada vĂ€iksema loogilise ploki suuruse simuleerimiseks (nĂ€iteks 512-baiti sektorite simuleerimiseks 4K sektoriga ketastel).
    • F2FS failisĂŒsteemis on lisatud LZO-RLE algoritmi abil survestamise tugi.
    • dm-cryptis lisatud on lisatud toetust krĂŒpteeritud vĂ”tmete jaoks.
    • Btrfis on parendatud otse sisendi/ vĂ€ljundi lugemisoperatsioonide töötlemist. Mountimisel kiirendatud kontrollitakse eemalolevaid alamkatalooge ja katalooge, mis on jÀÀnud ilma vanemateta.
    • CIFS-sse on lisatud parameeter 'nodelete', mis vĂ”imaldab tavapĂ€raseid Ă”iguste kontrollimisi serveris, kuid keelab kliendil faile vĂ”i kataloogide kustutamise.
    • Ext4-s on parendatud veateate töötlemist ENOSPC mitme lĂ”ime kasutamise ajal. Xattris on lisatud gnu.* nimiruumitoe, mida kasutatakse GNU Hurd'is.
    • Ext4 ja XFS jaoks on sisse lĂŒlitatud DAX operatsioonide toetamine (otsejuurdepÀÀs failisĂŒsteemile otse lehe vahemĂ€lu kaudu ilma plokk-seadmete tasemele rakendamiseta) konkreetsete failide ja kataloogide jaoks.
    • SĂŒsteemi kĂ”nes statx() lisatud lipp STATX_ATTR_DAX, mille mÀÀramisel teave vĂ€ljastatakse DAX mehhanismi kaudu.
    • EXFAT-s lisatud on lisatud algusala kontrollimise tugi.
    • FAT-s parendatud failisĂŒsteemi elementi ette laadimise toetamine. Aeglasel 2TB USB-mĂ€luseadmel lĂ€bi viidud test nĂ€itas testi lĂ€bimise aja vĂ€henemist 383-lt 51 sekundi peale.
  • VĂ”rgusĂŒsteem
    • VĂ”rgu sillatöötluse koodis lisatud protokolli tugi MRP (Media Redundancy Protocol), mis vĂ”imaldab tagada tĂ”rkekindluse, ĂŒhendades mitu Etherneti lĂŒlitit.
    • Liikluse juhtimise sĂŒsteemis (Tc) on lisatud uus tegevus «gate», mis vĂ”imaldab mÀÀrata ajalised intervallid teatud paketide töötlemiseks ja filtreerimiseks.
    • Kernelisse ja tööriistasse ethtool on lisatud tugi ĂŒhendatud vĂ”rkaablite testimise ja vĂ”rgiseadmete enesediagnoosimise funktsioonide jaoks.
    • IPv6-stekis on lisatud tugi MPLS (Multiprotocol Label Switching) algoritmile, et suunata pakette, kasutades mitme protokolli sildamist (IPv4 MPLS-i tugi oli juba varem olemas).
    • Lisatud tugi IKE (Internet Key Exchange) ja IPSec pakettide edastamiseks TCP kaudu (RFC 8229) UDP vĂ”imalikest blokeeringutest möödumiseks.
    • omadus vĂ”rgublock-seade rnbd, mis vĂ”imaldab korraldada kaugjuurdepÀÀsu bloki seadmele RDMA (InfiniBand, RoCE, iWARP) ja RTRS protokolli kaudu.
    • TCP-steigis lisatud on lisatud tugi vahevalikute (selective acknowledgment, SACK) reageerimise ressursside tihendamiseks.
    • IPv6 jaoks rakendatud on lisatud tugi TCP-LD (RFC 6069, Pikk ĂŒhenduse katkestamine).
  • Varustus
    • i915 DRM-draiveris Intel GPU-de jaoks on vaikimisi lisatud tugi Intel Tiger Lake (GEN12) kiipidele, mille jaoks on samuti rakendatud vĂ”imalus kasutada SAGV (System Agent Geyserville) sĂŒsteemi sageduse ja pinge dĂŒnaamiliseks kohandamiseks sĂ”ltuvalt energiatarbimise vĂ”i jĂ”udluse nĂ”uetest.
    • amdgpu draiverisse on lisatud tugi piksliformaadile FP16 ja rakendatud vĂ”imalus töötada krĂŒpteeritud puhversĂŒsteemidega videomĂ€lus (TMZ, Trusted Memory Zone).
    • Lisatud tugi AMD Zen ja Zen2 protsessorite energiatarbimise anduritele, samuti AMD Ryzen 4000 Renoir temperatuurianduritele. AMD Zen ja Zen2 jaoks on tagatud tugi energiatarbimise teabe vĂ€ljavĂ”tmiseks liidese kaudu RAPL (Running Average Power Limit).
    • Nouveau draiverisse on lisatud tugi NVIDIA muutmisformaadi jaoks. gv100 jaoks on rakendatud vĂ”imalus kasutada pealiskaudseid skanneerimise reĆŸiime. Lisatud vGPU mÀÀratlemine.
    • MSM (Qualcomm) draiverisse on lisatud tugi GPU Adreno A405, A640 ja A650 jaoks.
    • Lisatud DRM (Direct Rendering Manager) ressursside haldamise sisemine raamistik.
    • Lisatud tugi Xiaomi Redmi Note 7 ja Samsung Galaxy S2 nutitelefonidele, samuti Elm/Hana Chromebook sĂŒlearvutitele.
    • LCD-paneelide draiverite lisamine: ASUS TM5P5 NT35596, Starry KR070PE2T, Leadtek LTK050H3146W, Visionox rm69299, Boe tv105wum-nw0.
    • ARM-plaatide ja Renesas «RZ/G1H», Realtek RTD1195, Realtek RTD1395/RTD1619, Rockchips RK3326, AMLogic S905D, S905X3, S922XH, Olimex A20-OLinuXino-LIME-eMMC, Check Point L-50,
      , Beacon i.MX8m-Mini, Qualcomm SDM660/SDM630, Xnano X5 TV Box, Stinger96, Beaglebone-AI toetus.
    • Laialt on lisatud Loongson-2K (lĂŒhendatud Loongson64) MIPS-protsessori tugi. CPU Loongson 3 puhul on lisatud virtuaalsete masinate toimetamise tugi KVM hĂŒperviisori kasutamisega.
    • Lisatud
      Venemaa Baikal-T1 protsessori ja selle pĂ”hjal loodud sĂŒsteemi toimetamise tugi BE-T1000. Baikal-T1 protsessor sisaldab kahte superkaalutud P5600 MIPS 32 r5 tuuma, mis töötavad 1,2 GHz sagedusel. Kiip sisaldab L2 vahemĂ€lu (1 MB), DDR3-1600 ECC mĂ€lukontrollerit, 1 x 10Gb Ethernet porti, 2 x 1Gb Ethernet porti, PCIe Gen.3 x4 kontrollerit, 2 x SATA 3.0 porti, USB 2.0, GPIO, UART, SPI ja I2C. Protsessor pakub riistvaralist toetust virtualiseerimisele, SIMD kĂ€ske ja integreeritud riistvara krĂŒptograafiliste operatsioonide kiirendit, mis toetab GOST 28147-89. Kiip on vĂ€lja töötatud Imagination Technologies litsentseeritud MIPS32 P5600 Warrior protsessorituuma abil.

Samas LÔuna-Ameerika Vaba Tarkvara Fond kujundas
variant tĂ€iesti vaba 5.8 tuum — Linux-libre 5.8-gnu, kust on eemaldatud kĂ”ik firmware ja draiverid, mis sisaldavad mittevabu komponente vĂ”i koodijuppe, mille kasutusala on tootja poolt piiratud. Uues vĂ€ljaandes on keelatud 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. On uuendatud blobide puhastuskoode draiverites ja Adreno GPU, HabanaLabs Goya, x86 puuteekraanide, vt6656 ja btbcm alamsĂŒsteemides.

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