Lëshimi i kernelit Linux 5.2

Pas dy muajsh zhvillimi, Linus Torvalds paraqiti lëshimi i kernelit Projekti Debian publikoi një distribucion për shkollat — Debian-Edu 10. Ndër ndryshimet më të dukshme janë: funksioni i sistemit Ext4 pa marrë parasysh rastësinë e karaktereve, thirrjet e ndara të sistemit për montimin e FS, drejtuesit për GPU Mali 4xx/6xx/7xx, mundësia për të përpunuar ndryshimet e vlerave sysctl në programet BPF, moduli device-mapper dm-dust, mbrojtja nga sulmet MDS, mbështetje për Sound Open Firmware për DSP, optimizimi i performancës BFQ, përmirësimi i nën-sistemit PSI (Pressure Stall Information) deri në mundësinë e përdorimit në Android.

Në versionin e ri janë pranuar 15100 rregullime nga 1882 zhvillues
, madhësia e patch-it është 62 MB (ndryshimet prekin 30889 dosje, janë shtuar 625094 rreshta kodi, të fshirë 531864 rreshta). Rreth 45% e të gjithë ndryshimeve të paraqitura në 5.2
lidhen me drejtuesit e pajisjeve, rreth 21% e ndryshimeve kanë
të bëjnë me përditësimin e kodit specifik për arkitekturat harduerike, 12%
lidhen me grykën e rrjetit, 3% - me sistemet e skedarëve dhe 3% - me nën-sistemet
e kernelit. 12.4% e të gjitha ndryshimeve janë përgatitur nga kompania Intel, 6.3% - Red Hat, 5.4% - Google, 4.0% - AMD, 3.1% - SUSE, 3% - IBM, 2.7% - Huawei, 2.7% - Linaro, 2.2% - ARM, 1.6% - Oracle.

Main innovations:

  • Sistemi i disqeve, hyrja/ dalje dhe sistemet e skedarëve
    • Për Ext4 është shtuar поддержка funksioni i punës pa dallim raste të karaktereve në emrat e skedarëve, i cili aktivizohet vetëm në lidhje me katalogët e veçantë bosh përmes atributit të ri ‘+F’ (EXT4_CASEFOLD_FL). Kur ky atribut vendoset në një katalog, të gjitha operacionet me skedarët dhe nënkatalogët brenda do të kryhen pa marrë parasysh rastësinë e karaktereve, duke përfshirë se rasti do të injorohet gjatë operacioneve të kërkimit dhe hapjes së skedarëve (për shembull, skedarët Test.txt, test.txt dhe test.TXT në katalogët e tillë do të konsiderohen identikë). Sipas parasë, FS vazhdon të jetë e ndjeshme ndaj rastit, përveç katalogëve me atributin ‘chattr +F’;
    • Funksionet e trajtimit të karaktereve UTF-8 në emrat e skedarëve janë unifikuar, të cilat aplikohen gjatë kryerjes së operacioneve të krahasimit dhe normalizimit të vargjeve;
    • Në XFS është shtuar një infrastrukturë për ndjekjen e shtetit të sistemit të skedarëve dhe një ioctl e re për kërkesën e statusit të funksionalitetit. Është realizuar një mundësi eksperimentale për të verifikuar në mënyrë të drejtpërdrejtë (online scrub) numrat e superblokut.
    • Shtuar një modul të ri të device-mapper ‘dm-dust«, duke lejonë të simulojnë shfaqjen e bllokimeve të këqija në media ose gabimeve gjatë leximit nga disku. Moduli lehtëson depurimin dhe testimin e aplikacioneve dhe sistemeve të ndryshme të ruajtjes në kushte të mundshme të shfaqjes së defekteve;
    • Është bërë optimizohet ndjeshëm performanca e planifikuesit të hyrje/daljes BFQ. Nën ngarkesa të larta në hyrje/dalje, optimizimet e bëra lejojnë të reduktojnë deri në 80% kohën e operacioneve të tilla si fillimi i aplikacioneve;
    • Shtuar një seri thirrjesh sistematike për montimin e sistemeve të skedarëve: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() dhe move_mount(). Këto thirrje sistematike lejojnë trajtimin e veçantë të fazave të ndryshme të montimit (trajtojnë super Bllokun, marrin informacionin mbi FS, montojnë, bashkëngjisin në pikën e montimit), të cilat më parë kryheshin përmes thirrjes së përgjithshme sistematike mount(). Thirrjet e veçanta ofrojnë mundësi për të kryer skenarë më të komplikuar montimi dhe për të realizuar veprime të veçanta si rikonfigurimi i super Bllokut, aktivizimi i opsioneve, ndryshimi i pikës së montimit dhe transferimi në një hapësirë tjetër emri. Për më tepër, trajtimi i veçantë lejon përcaktimin e saktë të shkaqeve të kodëve të gabimeve dhe caktimin e burimeve të shumta për FS shumë-nivëshe, siç është overlayfs;
    • Në ndërfaqen për hyrje/dalje asinkronio_uring, është shtuar një veprim i ri IORING_OP_SYNC_FILE_RANGE, që ekzekuton veprime ekuivalente me thirrjen sistematike sync_file_range(), si dhe është realizuar mundësia e regjistrimit të eventfd me io_uring dhe marrjes së njoftimeve për përfundimin e operacioneve;
    • Për sistemin e skedarëve CIFS është shtuar ioctl FIEMAP, që siguron mapim efikas të ekstensioneve, si dhe mbështetje për modalitetet SEEK_DATA dhe SEEK_HOLE;
    • Në nënstrukturën FUSE suggested API për menaxhimin e memorie së dhënave;
    • Në Btrfs është kryer optimizimi i zbatimit të qgroups dhe është rritur shpejtësia e realizimit të fsync për skedarët me disa lidhje të ngurta. E koduar kontrolli i integritetit të të dhënave, tani merr parasysh dëmtimin e mundshëm të informacioneve në RAM para se të shuhen të dhënat në disk;
    • Në CEPH është shtuar mbështetje për eksportimin e snapshot-eve përmes NFS;
    • Përmirësimi i implementimit të montimit NFSv4 në modalitetin "soft" (në rast të një gabimi të qasjes në serverin në modalitetin "soft", thirrja menjëherë kthen kodin e gabimit, ndryshe nga modaliteti "hard" ku kontrolli nuk kthehet deri në rinovimin e qasjes në sistemin e skedarëve ose deri në skadimin e kohës). Në këtë version të ri, është siguruar një trajtim më i saktë i skadimit të kohës, është acceleruar rikuperimi pas dështimit dhe është shtuar një opsion i ri montimi "softerr", i cili lejon ndryshimin e kodit të gabimit (ETIMEDOUT) që kthehet kur ndodh një skadim i kohës;
    • Në API nfsdcld, e cila është menduar për ndjekjen e gjendjes së klientëve NFS, është siguruar mundësia e ndjekjes korrekte të gjendjes së klientit nga serveri NFS gjatë rinisjes. Kështu, demoni nfsdcld tani mund të funksionojë si një përpunues i nfsdcltrack;
    • Për AFS është shtuar simulimi i bllokimeve të intervaleve të bytes në skedarë (Bllokimi i Intervalit të Bytes);
  • Virtualizimi dhe siguria
    • Është punuar për të eliminuar vendet në bërthamë që lejojnë ekzekutimin e kodit nga zonat e memories të shkrimi, duke bllokuar kështu mundësitë përmanipulimin gjatë goditjeve;
    • Shtuar një parametrin të ri të komandës së bërthamës "mitigations=", i cili ofron një mënyrë të thjeshtë për të menaxhuar aktivizimin e teknikave mbrojtëse nga dobësitë që lidhen me ekzekutimin spekulativ të instrukcioneve në CPU. Dërgimi i "mitigations=off" deaktivizon të gjitha metodat e disponueshme, ndërsa modaliteti "mitigations=auto" aktivizon mbrojtjen, pa ndikuar në përdorimin e Hyper Threading. Modaliteti "mitigations=auto,nosmt" gjithashtu çaktivizon Hyper Threading, nëse metoda e mbrojtjes e kërkon.
    • Shtuar mbështetje për nënshkrimin dixhital sipas GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), e zhvilluar nga Vitali Chikunov nga "Bazalt SPO". Në implementimin e integruar të TLS është shtuar mbështetja për AES128-CCM. Në modulin crypto_simd është shtuar mbështetje për algoritmet AEAD;
    • Në Kconfig është shtuar ekziston një seksion i veçantë "forcimi i bërthamës" me opsione për përmirësimin e mbrojtjes së bërthamës. Aktualisht, në këtë seksion të ri janë grumbulluar vetëm rregullimet për aktivizimin e kontrollimeve përforcuese të GCC-plugjinave;
    • Kodi i bërthamës është pothuajse i liruar nga shprehjet e përsëritura të paqetë në switch (pa return ose break pas çdo blloku case). Mbetet të rregullohen 32 nga 2311 raste të këtij përdorimi të switch, pas së cilës, gjatë ndërtimit të bërthamës, mund të aplikohet modaliteti "-Wimplicit-fallthrough";
    • Për arkitekturën PowerPC, është implementuar mbështetje për mekanizmat harduerikë që kufizojnë rrugët e padëshiruara të aksesit të bërthamës në të dhëna në hapësirën e përdoruesit;
    • Kodi për bllokimin është shtuar e sulmeve klasës MDS (Microarchitectural Data Sampling) në procesorët Intel. Mund të kontrolloni nëse sistemi është i prekshëm nga kjo mundësi përmes ndryshore SysFS «/sys/devices/system/cpu/vulnerabilities/mds». I disponueshëm dy modulet e mbrojtjes: një i plotë, që kërkon prani të mikrokodit të azhurnuar, dhe një anësore, e cila nuk garanton plotësisht pastrimin e tamponëve të CPU gjatë kalimit të kontrollit në hapësirën e përdoruesit ose sistemin mik; Për të menaxhuar modulet e mbrojtjes, në bërthamë është shtuar parametrin «mds=», i cili mund të marrë vlera «full», «full,nosmt» (+ fikja e Hyper-Threads) dhe «off»;
    • Në sistemet x86-64 për IRQ, mekanizmat e depajtim dhe trajtuesit e përjashtimeve është shtuar mbrojtja «stack guard-page», që qëndron në vendosjen e një seksioni në kufirin e stack-ut të pagesave të memories, të cilat, kur aksesohen, gjenerojnë një përjashtim (page-fault);
    • Shtuar konfigurimi sysctl vm.unprivileged_userfaultfd, që kontrollon mundësinë e përdorimit të thirrjes sistemike userfaultfd() nga proceset e paaftë;
  • Sistemi rrjetor
    • Shtuar mbështetje për kalimin IPv6 për rruge IPv4. Për shembull, tani mund të specifikoni rregulla rrugëzimi si «ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0»;
    • Për ICMPv6 janë implementuar thirrjet ioctl icmp_echo_ignore_anycast dhe icmp_echo_ignore_multicast për të injoruar ICMP ECHO për anycast dhe
      adresa multicast. Shtuar mundësia për të kufizuar intensitetin e përpunimit të paketave ICMPv6;
    • Për protokollin mesh B.A.T.M.A.N. («Better Approach To Mobile Adhoc Networking»), që mundëson krijimin e rrjeteve të decentralizuara ku çdo nyje është e lidhur përmes nyjave fqinje, është shtuar mbështetje për kalimin nga multicast në unicast, si dhe mundësia e menaxhimit përmes sysfs;
    • Në ethtool është shtuar është shtuar parametri i ri Fast Link Down, që mundëson të shkurtosh kohën e informimit për ngjarjen e shkëputjes së linjës për 1000BaseT (në kushte normale, vonesa arrin deri në 750ms);
    • Ka kaluar mundësia lidhet të tunelëve Foo-Over-UDP në një adresë të caktuar, ndërfaqe rrjeti ose soket (më parë lidhja bëhej vetëm sipas një maske të përgjithshme);
    • Në rrjetin pa tela është siguruar mundësia për të zbatuar trajtuesit
      OWE (Opportunistic Wireless Encryption) në hapësirën e përdoruesit;
    • Në Netfilter, në zinxhirët nat është shtuar mbështetje për grupin e adresave inet (për shembull, tani mund të përdorni një rregull të vetëm për kalimin për përpunimin e ipv4 dhe ipv6, pa ndarë rregullat për ipv4 dhe ipv6);
    • Në netlink është shtuar režim strict për kontroll të rreptë të saktësisë së të gjitha mesazheve dhe atributeve, ku nuk lejohet tejkalimi i madhësisë së pritur të atributeve dhe ndalimi i shtimit të të dhënave shtesë në fund të mesazheve;
  • Memorie dhe shërbime sistemike
    • Në thirrjen sistemike clone() është shtuar flagu CLONE_PIDFD, duke treguar se prindit i kthehet një descriptor i skedarit "pidfd", i identifikuar me procesin e krijuar fëmijor. Ky descriptor skedari, për shembull, mund të përdoret për dërgimin e sinjaleve pa frikën e përballjes me gjendjen e garës (menjëherë pas dërgimit të sinjalit, PID-i i synuar mund të lirohet për shkak të përfundimit të procesit dhe të merret nga një proces tjetër);
    • Për versionin e dytë të cgroups është shtuar funksionaliteti i kontrollit freezer, me anë të cilit mund të ndalet puna në cgroup dhe përkohësisht të lirohen disa burime (CPU, input/output dhe potencialisht edhe memorie) për të kryer detyra të tjera. Menaxhimi bëhet përmes skedarëve menaxhues cgroup.freeze dhe cgroup.events në pemën e cgroup. Shkresa 1 në cgroup.freeze ngrin proceset në cgroup aktual dhe të gjitha grupet fëmijore. Duke qenë se ngrirja kërkon një kohë të caktuar, gjithashtu është propozuar skedari cgroup.events për të mësuar për përfundimin e operacionit;
    • është siguruar eksporti i atributeve të memories, të lidhura me secilin nyje në sysfs, që lejon nga hapësira e përdoruesit të përcaktojë natyrën e përpunimit të bankave të memories në sistemet me memorie heterogjene;
    • Sistemi PSI (Informacioni për Ngarkesën e Presionit) është përmirësuar, i cili lejon analizimin e informacionit mbi kohën e pritjes për marrjen e burimeve të ndryshme (CPU, memorie, hyrje/ dalje) për detyra të caktuara ose grupe procesesh në cgroup. Me PSI, menaxherët në hapësirën e përdoruesit mund të vlerësojnë më saktë nivelin e ngarkesës së sistemit dhe natyrën e ngadalësimit të punës, krahasuar me Load Average. Në versionin e ri është siguruar mbështetje për konfigurimin e pragjeve të ndjeshmërisë dhe mundësia për të përdorur thirrjen poll() për të marrë njoftime mbi kalimin e pragjeve të caktuara brenda një periudhe të caktuar. Kjo mundësi lejon organizimin e monitorimit të mungesës së memories në Android në një fazë të hershme, për të identifikuar burimin e problemeve dhe për të mbyllur aplikacionet e parëndësishme, pa sjellë probleme të dukshme për përdoruesin. Gjatë testeve të stresit, mjetet për monitorimin e konsumit të memories të bazuara në PSI treguan deri në 10 herë më pak alarme false krahasuar me statistikën vmpressure;
    • Kodi për verifikimin e programeve BPF është optimizuar, i cili për programet e mëdha filloi të kryejë kontrollin deri në 20 herë më shpejt. Optimizimi lejoi rritjen e kufirit të madhësisë për programet BPF nga 4096 në një milion instruksione;
    • Për programet BPF kanë përfituar mundësia e qasjes në të dhënat globale, e cila lejon përcaktimin e variablave dhe konstantave globale në programe;
    • Shtuar API, duke lejuar kontrollin nga programet BPF mbi ndryshimet e parametrave sysctl;
    • Për arkitekturën MIPS32 është realizuar një kompilator JIT për makinën virtuale eBPF;
    • Për arkitekturën 32-bit PowerPC është shtuar mbështetje për mjetin e debuggimit KASan (Kernel address sanitizer), që siguron identifikimin e gabimeve gjatë punës me memorien;
    • Në sistemet x86-64 është hequr kufizimi për vendosjen e dump-eve të situatës gjatë rrëzimit të bërthamës (crash-dump) në hapësira memorjeje mbi 896MB;
    • Për arkitekturën s390 është realizuar mbështetje për randomizimin e hapësirës adresore të bërthamës (KASLR) dhe mundësinë e verifikimit të nënshkrimeve digjitale gjatë ngarkimit të bërthamës përmes kexec_file_load();
    • Për arkitekturën PA-RISC është shtuar mbështetje për debugguesin e bërthamës (KGDB), etiketat e kalimit dhe kprobes;
  • Pajisje
    • Në përbërje është përfshirë drejtuesi është kryer puna në sjelljen në formë kanonike të operacioneve të paketimit të instruksioneve dhe në një ripunim të plotë të disasembler-it, për një përfaqësim më të saktë të arkitekturës së setit të komandave të GPU-së Bifrost dhe përputhshmërisë me terminologjinë e pranuar në ARM. për GPU Mali 400/450, i përdorur në shumë çipa të vjetër të bazuar në arkitekturën ARM. Për GPU-të më të reja Mali është shtuar drejtori Panfrost, i cili mbështet çipat e bazuar në mikroarkitekturën Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) dhe Bifrost (Mali G3x, G5x, G7x);
    • Shtuar mbështetje për pajisjet audio që përdorin firmware të hapur Sound Open Firmware (SOF). Megjithëse ekzistojnë drejtues të hapur, kodi i firmware për çipat audio vazhdon të mbetet i mbyllur dhe ofrohet në format binar. Projekti Sound Open Firmware është zhvilluar nga Intel për krijimin e firmware të hapur për çipat DSP që lidhen me përpunimin e tingullit (më vonë Google iu bashkua zhvillimit). Aktualisht, në kuadër të projektit janë përgatitur firmware të hapur për çipat audio të platformave Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake dhe IceLake;
    • Në drejtuesin DRM të Intel (i915) është shtuar mbështetje për çipat
      Elkhartlake (Gen11). Shtuar identifikues PCI për çipat Comet Lake (Gen9). Stabilizuar mbështetja për çipat Icelake, për të cilët janë shtuar gjithashtu identifikues të tjerë PCI të pajisjeve.
      Aktivizuar
      režimi i ndërrimit asinkron midis dy tamponëve në kujtesën video (async flip) gjatë kryerjes së operacioneve të shkruajta përmes mmio, që ka lejuar të rritet ndjeshëm performanca e disa aplikacioneve 3D (për shembull, performanca në testin 3DMark Ice Storm u rrit me 300-400%). Shtuar mbështetje për teknologjinë HDCP2.2 (Mbrotja e Përmbajtjes Digitale me Bandë të Lartë) për enkriptimin e sinjalit video që dërgohet përmes HDMI;
    • Në drejtuesin amdgpu për GPU Vega20 është shtuar mbështetje RAS (Reliability, Availability, Serviceability) dhe mbështetje eksperimentale për nën-sistemin SMU 11, e ardhur në vend të teknologjisë Powerplay. Për GPU Vega12 është shtuar mbështetje për modus BACO (Bus Active, Chip Off). Shtuar mbështetje fillestare për XGMI, një autobuz me shpejtësi të lartë (PCIe 4.0) për lidhjen e GPU-ve. Në drejtuesin amdkfd janë shtuar identifikuesit e munguar për kartat e bazuara në GPU Polaris10;
    • Në drejtuesin Nouveau është shtuar mbështetje për platformat e bazuara në çipsetin NVIDIA Turing 117 (TU117, e përdorur në GeForce GTX 1650). Në
      kconfig është shtuar konfigurimi për të çaktivizuar funksionalitetet e vjetra që nuk përdoren më në lëshimet aktuale të libdrm;
    • Në API DRM dhe drejtuesin amdgpu është shtuar mbështetje për objektet e sinkronizimit «timeline», që lejojnë shmangien e bllokimeve klasike.
    • Nga dega staging është transferuar drejtuesi vboxvideo në përbërjen kryesore për GPU-në virtuale VirtualBox;
    • Shtuar drejtuesin aspeed për çipin GFX SoC ASPEED;
    • Shtesa për ARM SoC dhe pllaka Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST Micro (stm32mp157a, stm32mp157c), NXP (
      Eckelmann ci4x10 (i.MX6DL),

      i.MX8MM EVK (i.MX8MM),

      ZII i.MX7 RPU2 (i.MX7),

      ZII SPB4 (VF610),

      Zii Ultra (i.MX8M),

      TQ TQMa7S (i.MX7Solo),

      TQ TQMa7D (i.MX7Dual),

      Kobo Aura (i.MX50),

      Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210).

Në të njëjtën kohë, Fondi Latinoamerikan i Software-it të Lirë formoi
një variant në thelb të lirë, bërthama 5.2Linux-libre 5.2-gnu, i pastruar nga elemente të firmuerve dhe drejtuesve që përmbajnë komponente ose kode të padëshiruara, përdorimi i të cilave është i kufizuar nga prodhuesi. Në këtë publikim të ri është përfshirë ngarkimi i skedarëve
Sound Open Firmware. Është çaktivizuar ngarkimi i blob-eve në drejtuesit
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp dhe ucsi_ccg. Kodi për pastrimin e blob-eve në drejtues dhe në nënsistemat ixp4xx, imx-sdma, amdgpu, nouveau dhe goya është përditësuar, ashtu si dhe dokumentacioni i mikrokodit. Ndërpritet pastrimi i blob-eve në drejtuesin r8822be për shkak të heqjes së tij.

Burimi: opennet.ru

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster