Linuxi 5.6 tuuma versioon

Pärast kahte kuud arendusteline Linus Torvalds esitles tugevdamise südamik Linux 5.6. Peamised muudatused: WireGuard VPN-liidese integreerimine, USB4 tugi, ajaruumi nimed, TCP ülekande käsitlejate loomise võimalus BPF abil, algtoetuse MultiPath TCP, 2038. aasta probleemi eemaldamine, „bootconfig“ mehhanism, ZoneFS failisüsteem.

Uude versiooni on lisatud 13702 parandust 1810 arendajalt,
patchi suurus on 40 MB (muudatused mõjutavad 11577 faili, lisatud 610012 koodirida,
kustutatud 294828 rida). Umbes 45% kõigist 5.6 versioonis
tehtud muudatustest on seotud seadme draiveritega, ligikaudu 15% muudatustest puudutab
seadmestiku spetsiifilise koodi värskendamist, 12% on
seotud võrgu protokollidega, 4% — failisüsteemidega ning 3% — sisemiste
tuumasüsteemide.

Peamised uuendused:

  • Võrgu alamsüsteem
    • Lisatud VPN-liidese rakendustega. WireGuard, mis on rakendatud kaasaegsete krüptimismeetodite (ChaCha20, Poly1305, Curve25519, BLAKE2s) baasil, on lihtne kasutada, ilma keerukusteta, ja on tõestanud end mitmetes suurtes rakendustes, pakkudes väga kõrget jõudlust (3,9 korda ületab OpenVPN-i läbilaskevõimet). WireGuardis rakendatakse krüptimisvõtmete põhist marsruutimise kontseptsiooni, mille kohaselt on iga võrguinterfaaniga seotud privaatvõti ja avalike võtmete sidumine toimub. Avalike võtmete vahetus ühenduse loomise jaoks toimub sarnaselt SSH-le. WireGuardi toimimiseks vajalikud krüptograafilised primitivid oli on kantud raamatukogust Zinc Crypto API sisse on lisatud tuuma 5.5.
    • Alustati MPTCP (Multipath TCP) toetamiseks vajalike komponentide integreerimine, TCP protokolli laiendamine, et korraldada TCP-ühenduse tööd, edastades pakette samal ajal mitme marsruudi kaudu erinevate võrguliidestega, mis on seotud erinevate IP-aadressidega. Võrgurakenduste jaoks näeb selline ühendus välja nagu tavaline TCP-ühendus, samas kui kogu voogude jagamise loogikat teostab MPTCP. Multipath TCP-d saab kasutada nii läbilaskevõime suurendamiseks kui ka usaldusväärsuse tõstmiseks. Näiteks saab MPTCP-d rakendada andmete edastamiseks nutitelefonis, kasutades samaaegselt WiFi ja 4G ühendusi, või kulude vähendamiseks, ühendades serveri mitme odava ühenduse kaudu ühe kallima asemel.
    • Lisatud võrgureadade töötlemise distsipliini sch_ets toetus (Täpsem edastusvalik, IEEE 802.1Qaz), mis annab võimaluse ribalaiuse jaotamiseks erinevate liiklustüüpide vahel. Kui ühe liiklustüübi koormus on madalam kui ettenähtud ribalaius, võimaldab ETS teistel liiklustüüpidel kasutada vaba (kasutamata) ribalaiust. Qdisc sch_ets konfigureeritakse kui PRIO distsipliin ja kasutab liiklustüüpe, et määrata rangelt ja ühiselt jagatud ribalaiuse piirangud. ETS töötab nagu distsipliinide kombinatsioon. PRIO ja DRR — kui rangelt piiratud liiklustüüpe on olemas, kasutatakse PRIO-d, kuid kui liiklusjärjekorras ei ole liiklust, töötab see nagu DRR.
    • Lisatud uus BPF-programmide tüüp BPF_PROG_TYPE_STRUCT_OPS, mis võimaldab rakendada tuumafunktsioonide käsitlejaid BPF kaudu. Praegu on seda võimalust võimalik kasutada TCP ülekormuse kontrollimise algoritmide rakendamiseks BPF-programmidena. Näiteks pakutakse BPF-programm, millel on rakendatud algoritm DCTCP.
    • Tuuma on vastu võetud muudatused, muutes tööriistu ethtool ioctl() kasutamiselt netlinki liidese kasutamisele.. Uus kasutajaliides lihtsustab laiendite lisamist, parandab veakäsitlust, võimaldab saatmist teateid oleku muutumisel, muudab tuuma ja kasutajaruumi vahelise suhtlemise lihtsamaks ning vähendab sünkroonitavate nimetatud loendite arvu.
    • Lisatud FQ-PIE (Flow Queue PIE) võrgujärjekordade juhtimise algoritmi teostus, mille eesmärk on vähendada vahepealsete pakettide puhverdamise negatiivset mõju piiriäärsetes võrgu seadmetes (bufferbloat). FQ-PIE näitab suurt tõhusust kaabelmodemite süsteemides.
  • Disski alamsüsteem, sisend/väljund ja failisüsteemid
    • Btrfs failisüsteemi jaoks on lisatud asünkroonse DISCARD operatsiooni rakendamine (vabade blokknimede märkimine, mida ei ole enam füüsiliselt vaja salvestada). Algselt viidi DISCARD operatsioonid läbi sünkroonselt, mis võis põhjustada jõudluse langust, kuna pidid ootama vastavaid käske andmekandjatelt. Asünkroonse teostuse kaudu ei pea ootama DISCARDi lõpetamist andmekandja poolt ning saab teostada seda operatsiooni taustal.
    • XFS toimus koodi puhastamine, kus kasutati vanu 32-bitiseid ajaloendurite välja (type time_t asendatud time64_t), mis põhjustavad 2038. aasta probleemi. Parandatud on vigasid ja mälukahjustusi, mis ilmusid 32-bitistes platvormides. Kood on ümber töötatud, et töötada laiendatud atribuutidega.
    • failisüsteemi ext4 tehtud jõudluse optimeerimine, mis on seotud inode'i lukustamise töötlemisega lugemise ja kirjutamise operatsioonide käigus. Suurenenud on otse sisendi/väljundi (Direct I/O) kirjutamise jõudlus. Probleemide diagnoosimise lihtsustamiseks on tagatud, et superplokis salvestatakse esimene ja viimane veakood.
    • failisüsteemis F2FS on rakendatud andmete hoidmine kokkupressitud vormis. Üksiku faili või katalooge saab kompressioon sisse lülitada käsu „chattr +c file” või „chattr +c dir; touch dir/file” abil. Terve partitsiooni kompressiooniks saab mount utiliidi abil kasutada valikut „-o compress_extension=ext”.
    • tuumikusse on võetud failisüsteem ZoneFS, lihtsustades madala taseme töö tegemist jaotatud salvestusseadmetega. Jaotatud seadmed viitavad kõvakettadele või NVMe SSD-dele, kus salvestusruum on jagatud piirkondadeks, mis koosnevad plokkide või sektorite rühmadest, kuhu lubatakse andmete järjestikune lisamine, uuendades kogu plokigruppi korraga. ZoneFS failisüsteem on välja töötatud Western Digitali poolt ja seob iga jao salvestisse eraldi failiga, mida saab kasutada toorandmete salvestamiseks ilma sektorite ja plokkidega tegelemiseta, st võimaldab rakendustel kasutada failide API-d asemel otse pöördumist plokiseadmese poole kasutades ioctl.
    • NFS-is on vaikimisi välja lülitatud UDP kaudu partitsioonide mountimise. Lisatud on toetus NFS 4.2 spetsifikatsioonis määratletud võimele, mis võimaldab otse serverite vahel faile kopeerida. Lisa uus mountimisvalik "softreval", mis võimaldab serveri tõrke korral kasutada vahemällu salvestatud atribuutide väärtusi. Näiteks määrates selle valiku, säilib võimalus liikuda NFS-partitsiooni teede järgi ja pääseda juurde teabele, mis on mällu jäänud, kui server muutub kättesaamatuks.
    • Tehtud Optimeeritud on fs-verity mehhanismi jõudlust, mis on mõeldud üksikute failide terviklikkuse ja ehtsuse kontrollimiseks. Järjekindla lugemise kiirus on suurenenud Merkle'i häshedree suurendamise tõttu. FS_IOC_ENABLE_VERITY jõudlus on optimeeritud, kui vahemälu andmed puuduvad (rakendatud on eelprojekteerimine andmete lehekülgede lugemiseks).
  • Virtualiseerimine ja turvalisus
    • SELinuxi mooduli töö ajal keelamine on kuulutatud aegunuks, ning tulevikus keelatakse juba aktiveeritud SELinuxi laadimine välja. SELinuxi keelamiseks tuleb edastada parameeter "selinux=0" kernel'i käsurea kaudu.
    • Lisatud aegade nimede tugi (time namespaces), mis võimaldab siduda konteineriga süsteemi kellade oleku (CLOCK_REALTIME,
      CLOCK_MONOTONIC, CLOCK_BOOTTIME), kasutada konteineris oma aega ning tagada konteineri migreerimisel teisele hostile muutumatud CLOCK_MONOTONIC ja CLOCK_BOOTTIME väärtused (arvesse võttes ja/või arvestamata unerežiimi).
    • Blokeeritud järjekord \/dev\/random on eemaldatud. \/dev\/random käitumine sarnaneb \/dev\/urandom-ile, mis takistab entropia ummistumist pärast järjekorra initsialiseerimist.
    • Tuuma põhikoosseisu on lisatud draiver, mis võimaldab külalis süsteemidel, mis töötavad VirtualBoxi all, monteerida host-keskkonna poolt eksporditud kaustu (VirtualBoxi jagatud kaust).
    • BPF-alamsüsteemi on lisatud patchide kogum (BPF dispatcher), mis kasutab Retpoline mehhanismi Spectre V2 klassi rünnakute kaitsmiseks, võimaldades suurendada BPF-programmide väljakutse efektiivsust seonduvates olukordades (näiteks kiirus XDP-protsessorite väljakutsumise kiirusena võrgupaketi vastuvõtmisel).
    • Lisatud draiver, et toetada AMD APU-sse integreeritud TEE (Trusted Execution Environment) keskkondi.
  • Mälu ja süsteemiteenused
    • BPF-i on lisatud toetus globaalsele funktsionaalsusele. Arendus toimub funktsioonide raamatukogude lisamise algatuse raames, mida saab BPF-programmidesse inteerida. Järgmine samm on dünaamiliste laienduste toetamisse kaasamine, mis võimaldavad globaalseid funktsioone laadida ja isegi olemasolevaid globaalseid funktsioone nende kasutamise ajal asendada. BPF-alamsüsteemi on samuti lisatud map-imi operatsiooni variant (kasutatakse püsivate andmete säilitamiseks), mis toetab partiirežiimis täitmist.
    • Lisatud seade «cpu_cooling», mis võimaldab ülekuumenenud CPU-d jahutada, viies selle lühikesteks ajavahemikeks seisundisse (idle).
    • Lisatud süsteemikutsumine openat2(), mis pakub täiendavate lippude kogumit failitee lahendamise piiramiseks (moodulpunktide, sümboolsete linkide, magic-linkide (/proc/PID/fd) ja komponentide «..» ületamise takistamine).
    • Heterogeensete big.LITTLE arhitektuuril põhinevate süsteemide jaoks, mis kombineerivad ühel kiibil võimsad ja vähem võimekad energiatõhusad CPU tuumad, on reaalajas ülesannete täitmisel tagatud uclamp_min parameetri seadistamine.ilmunud tuum 5.3 koormuse kinnitamise mehhanism). Antud parameeter tagab, et ülesanne paigutatakse ajakava koostaja poolt CPU tuumale, millel on piisav jõudlus.
    • Tuum on vabastatud 2038. aasta probleemidest. Viimased allesjäänud töötlejate osad, kus ajapikenduse arvestuseks kasutati 32-bitist (signed int) time_t tüüpi, mis koos alates 1970. aastast tehtud arvetega peaks 2038. aastal üle voolama, on asendatud.
    • Jätkus asünkroonse sisendi/väljundi liidese täiustamine io_uring, milles tagatud toetatakse uusi tehinguid: IORING_OP_FALLOCATE (tühi alade reserveerimine), IORING_OP_OPENAT,
      IORING_OP_OPENAT2,
      IORING_OP_CLOSE (failide avamine ja sulgemine),
      IORING_OP_FILES_UPDATE (failide kiirelt ligipääsetavast loendist lisamine ja eemaldamine),
      IORING_OP_STATX (faili teabe küsimine),
      IORING_OP_READ,
      IORING_OP_WRITE (lihtsustatud versioonid IORING_OP_READV ja IORING_OP_WRITEV),
      IORING_OP_FADVISE,
      IORING_OP_MADVISE (asünkroonsed versioonid posix_fadvise ja madvise kutsest), IORING_OP_SEND,
      IORING_OP_RECV (andmete saatmine ja vastuvõtmine võrgus),
      IORING_OP_EPOLL_CTL (failides deskriptorite epolliga toimingute teostamine).
    • Lisatud süsteemikutsumine pidfd_getfd(), mis annab protsessile võimaluse välja võtta mõnest teisest protsessist avatud faili deskriptor.
    • Tehtud bootconfig mehhanism, mis võimaldab lisaks käskude rida valikutele määrata tuuma töö parameetreid seadetefaili kaudu. Selliste failide lisamiseks initramfs pildile on pakutud utiliiti bootconfig. Antud võimalust saab kasutada näiteks kprobes seadistamiseks laadimise ajal.
    • Ümber kujundatud andmete kirjutamise ja lugemise oote mehhanism nimeta kanalites (pipe). Muudatus on võimaldanud kiirendada selliste ülesannete täitmist nagu suurte projektide paralleelne koostamine. Samas võib optimeerimine põhjustada GNU make'i võistlusolukorra, mis on põhjustatud versiooni 4.2.1 veast, mis on kõrvaldatud versioonis 4.3.
    • prctl() on lisatud lipp PR_SET_IO_FLUSHER, mida saab kasutada mäluhaldusprotsesside märkimiseks, millele ei tohiks rakendada piiranguid süsteemis mälupuuduse olukordades.
    • Androidis kasutatava mälujaotussüsteemi ION põhjal on rakendatud alamsüsteem dma-buf heaps, mis võimaldab hallata DMA-puhvrid mälestuse eraldamist draiverite, rakenduste ja erinevate alamsüsteemide jagamiseks.
  • Riistvaraarhitektuurid
    • Lisatud E0PD laienduse tugi, mis ilmus ARMv8.5-s ja võimaldab kaitsta spekulatiivsete käskude täitmisega seotud rünnakute eest CPU-s. E0PD põhine kaitse toob endaga vähem kulusid kui KPTI (Kernel Page Table Isolation) kaitse.
    • ARMv8.5 arhitektuuriga süsteemidele lisatakse RNG käskluse tugi, mis annab juurdepääsu riistvaralisele pseudo-juhuslike arvu generaatorile. Kerneli sees kasutatakse RNG käsku entropia genereerimiseks, kui algatada kernelilt saadud pseudo-juhuslike arvu generaatorit.
    • MPX (Memory Protection Extensions) laienduste tugi on kärbitud, mis oli lisatud kerneli. 3.19 ja võimaldas korraldada näidikute kontrollimist mälu piirkondade piiride järgimise osas. Antud tehnoloogia ei leidnud laiemat kasutust kompilaatorites ega olnud GCC-sse kaasatud.
    • RISC-V arhitektuuri jaoks on rakendatud KASan (Kernel address sanitizer) silumise tööriistu, mis tagavad mälu vigu tuvastamise.
  • Seadmed
    • Selle spetsifikatsiooni tugi on rakendatud. USB 4.0, mis põhineb Thunderbolt 3 protokollil ja tagab kuni 40 Gbit/s andmeedastuskiirus, säilitades samas ühilduvuse USB 2.0 ja USB 3.2-ga. Sarnaselt Thunderbolt USB 4.0 liides võimaldab ühe kaabli kaudu erinevate protokollide tunneldamist, mille ühendus on Type-C, sealhulgas PCIe, Display Port ja USB 3.x, samuti tarkvaraline protokollide rakendus, näiteks võrkude loomise jaoks hostide vahel. Rakendus põhineb juba Linuxi kerneli sisseehitatud Thunderbolt draiveril ja kohandab selle toimimist USB4 ühilduvate hostide ja seadmetega. Muudatused sisaldavad ka Thunderbolt 3 seadmete toe lisamist ühenduste haldamise (Connection Manager) tarkvararakendusse, mis vastutab tunnelite loomise eest mitme seadme ühendamiseks ühe pistiku kaudu.
    • Draiveris amdgpu on lisatud on algne tugi HDCP 2.x (High-bandwidth Digital Content Protection) kaitsetehnoloogia jaoks. Lisatud support ASIC-kiibile AMD Pollock, mis põhineb Raven 2-l. On ellu viidud GPU taaskäivitamise võimalus Renoir ja Navi peredele.
    • Intel'i graafikakaartide DRM-draiveris on lisatud DSI VDSC toetus jäämälu arhitektuuril Ice Lake ja Tiger Lake kiipidele, rakendatud on LMEM mmap (seadmepõhine mälu), parendatud VBT (Video BIOS Table) parsimine, HDCP 2.2 tugi Coffee Lake kiipidele.
    • Tööd jätkatakse amdkfd draiveri (diskreetsete GPU-de, nagu Fiji, Tonga, Polaris) ja amdgpu draiveri koodi ühtlustamiseks.
    • Kohandatud k10temp draiver, mis toetab AMD Zen CPU-de pinget ja vooluandurite väljundeid ning annab laiemat teavet Zen ja Zen 2 CPU-de temperatuurianduritelt.
    • Draiveris nouveau on lisatud on toetatud kinnitatud laeboolide laadimise režiim NVIDIA Turing arhitektuuriga GPU-dele (GeForce RTX 2000), mis võimaldab nende kaartide 3D-kiirenduse kasutamist (nõuab ametlike, digitaalsete allkirjadega NVIDIA laeboolide laadimist). Lisatud TU10x graafikamootoritugi. Lahendatud HD Audio probleemid.
    • Lisatud andmete kompressiooni tugi DisplayPort MST (Multi-Stream Transport) kaudu edastamisel.
    • Uus draiver "ath11k" Qualcommi 802.11ax toega traadita kiipidele.
      Draiver põhineb mac80211 kihil ja toetab juurdepääsupunkti, tööjaama ja Mesh-võrgu sõlme režiime.
    • Sysfs kaudu on saadaval lugemisvõimalused temperatuurisensorite andmete jaoks, mida kasutatakse kaasaegsetes kõvakettades ja SSD-des.
    • Muudetud olulisi muudatusi ALSA heli süsteemis, mis on suunatud koodi vabastamisele 2038. aasta probleemidest (32-bitise time_t tüübi kasutamise lõpetamine snd_pcm_mmap_status ja snd_pcm_mmap_control liidestes). Lisatud uute helikodekite tugi
      Qualcomm WCD9340/WCD9341, Realtek RT700, RT711, RT715, RT1308, Ingenic JZ4770.
    • Lisatud LCD-paneelide draiverid, Logic PD 28, Jimax8729d MIPI-DSI, Ingenic JZ4770, Sony acx424AKP, Leadtek LTK500HD1829, Xinpeng XPP055C272, AUO B116XAK01, GiantPlus GPM940B0,
      BOE NV140FHM-N49,
      Satoz SAT050AT40H12R2,
      Sharp LS020B1DD01D.
    • Lisatud toetatakse ARM-plaatide ja Gen1 Amazon Echo (OMAP3630 baasil) platvorme, Samsung Galaxy S III mini (GT-I8190), Allwinner Emlid Neutis, Libre Computer ALL-H3-IT, PineH64 Model B, Aibretech Amlogic GX PC,
      Armada SolidRun Clearfog GTR, NXPGateworks GW59xx,
      Tolino Shine 3 eBook reader,
      Embedded Artists COM (i.MX7ULP), SolidRun Clearfog CX/ITX ja HoneyComb (LX2160A), Google Coral Edge TPU (i.MX8MQ),
      Rockchip Radxa Dalang Carrier, Radxa Rock Pi N10, VMARC RK3399Pro SOM
      ST Ericsson HREF520, Inforce 6640, SC7180 IDP, Atmel/Microchip AM9X60 (ARM926 SoC, Kizboxmini), ST stm32mp15, AM3703/AM3715/DM3725, ST Ericsson ab8505, Unisoc SC9863A, Qualcomm SC7180. Lisatud toetus PCIe-kontrollerile, mida kasutatakse Raspberry Pi 4-s.

Samas Ladina-Ameerika tasuta tarkvara fond vormis
variant täiesti avatud kernel 5.6Linux-libre 5.6-gnu, puhastatud tootja poolt piiratud kasutamisega programmi- ja draiverielementidest, mis sisaldavad vabavaraga mittesobivaid komponente või koodilõike. Uues versioonis on keelatud AMD TEE, ATH11K ja Mediatek SCP draiverites blobe laadimine. On uuendatud blobe puhastamise koodi AMD PSP, amdgpu ja nouveau draiverites ja alam süsteemides.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster