Utgivningen av Linux-kÀrnan 5.2

Efter tvÄ mÄnaders utveckling presenterade Linus Torvalds Är kÀrnlansering Linux 5.2. Bland de mest mÀrkbara förÀndringarna finns: Ext4-lÀget utan hÀnsyn till bokstavsstorlek, separata systemanrop för montering av filsystem, drivrutiner för GPU Mali 4xx/6xx/7xx, möjligheten att hantera förÀndringar av sysctl-vÀrden i BPF-program, modul för device-mapper dm-dust, skydd mot MDS-attacker, stöd för Sound Open Firmware för DSP, optimering av BFQ-prestanda, och att underhÄllsundersystemet PSI (Pressure Stall Information) har nÄtt en anvÀndbar nivÄ i Android.

I den nya versionen har 15100 korrigeringar gjorts av 1882 utvecklare,
patchstorleken Àr 62 MB (Àndringarna berör 30889 filer, med 625094 kodrader tillagda och 531864 rader borttagna). Cirka 45 % av de presenterade Àndringarna i 5.2
Àr relaterade till enhetsdrivrutiner, medan ungefÀr 21 % av Àndringarna har
att göra med uppdatering av kod specifik för hÄrdvaruarkitekturer, 12 %
kopplas till nĂ€tverksstacken, 3 % – filsystem och 3 % till interna
sammanhang relaterade till kĂ€rnans undersystem. 12,4 % av alla Ă€ndringar har förberetts av 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.

Huvud nyheter:

  • Disksubsystem, in- och utmatning och filsystem
    • För Ext4 har stöd för stöd för att arbeta utan hĂ€nsyn till bokstavsstorlek i filnamn lagts till, vilket aktiveras endast i koppling till specifika tomma kataloger med hjĂ€lp av den nya attributen ‘+F’ (EXT4_CASEFOLD_FL). NĂ€r detta attribut har stĂ€llts in pĂ„ en katalog kommer alla operationer med filer och underkataloger inuti att utföras utan hĂ€nsyn till bokstavsstorlek, inklusive att storleken ignoreras vid sök- och öppningsoperationer (till exempel kommer filerna Test.txt, test.txt och test.TXT i sĂ„dana kataloger att betraktas som identiska). Som standard förblir filsystemet kĂ€nsligt för större och mindre bokstĂ€ver, förutom i kataloger med attributet ‘chattr +F’;
    • Behandlingsfunktionerna för UTF-8-tecken i filnamn har enhetliggjorts, vilket tillĂ€mpas vid jĂ€mförelse- och normaliseringsoperationer;
    • I XFS har en infrastruktur för övervakning av filsystemets tillstĂ„nd lagts till och en ny ioctl för att begĂ€ra status för systemets funktionalitet. En experimentell funktion för att kontrollera pĂ„ flyg (online scrub) superblockets rĂ€knare har implementerats.
    • En ny device-mapper-modul ‘dm-dust’ har lagts till, vilket gör det möjligt att simulera utseendet av dĂ„liga block pĂ„ mediet eller fel vid lĂ€sning frĂ„n disken. Modulen förenklar felsökning och testning av applikationer och olika lagringssystem under potentiella fel.
    • Genomfört Betydande prestandaoptimering av BFQ I/O-schemat. Under hög belastning pĂ„ I/O har de föreslagna optimeringarna att kontrollera enhetens funktionalitet: de testar övergĂ„ngsprocesserna, stackar för samtal, minska tiden för operationer som att starta applikationer med upp till 80%;
    • En serie systemanrop för montering av filsystem har lagts till: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() och move_mount(). Dessa systemanrop möjliggör separat hantering av olika faser av montering (hantera superblock, hĂ€mta information om FS, montera, fĂ€sta vid monteringspunkt), som tidigare utfördes med det allmĂ€nna systemanropet mount(). Separata anrop ger möjlighet att utföra mer komplexa monteringsscenarier och att utföra sĂ„dana operationer som omkonfigurering av superblock, aktivering av alternativ, Ă€ndra monteringspunkt och flyttning till ett annat namnrymd. Dessutom möjliggör separat behandling en exakt bestĂ€mning av orsakerna till felkoder och att ange flera kĂ€llor för flerlagers FS, som overlayfs;
    • En ny operation IORING_OP_SYNC_FILE_RANGE har lagts till i grĂ€nssnittet för asynkron I/O io_uring, vilket utför Ă„tgĂ€rder motsvarande systemanropet sync_file_range(), samt möjligheten att registrera eventfd med io_uring och fĂ„ meddelanden om slutförda operationer;
    • För filsystemet CIFS har ioctl FIEMAP lagts till, vilket möjliggör effektiv matchning av omrĂ„den samt stöd för lĂ€gena SEEK_DATA och SEEK_HOLE;
    • I FUSE-subsystemet föreslagen API för hantering av datacaching;
    • I Btrfs har implementeringen av qgroups optimerats och hastigheten för fsync-funktionerna för filer med flera hĂ„rda lĂ€nkar har ökat. Koden för dataintegritetskontroll har förbĂ€ttrats, vilket nu tar hĂ€nsyn till potentiell skada pĂ„ information i RAM innan data skrivs till disk;
    • I CEPH har stöd för export av snapshots via NFS lagts till;
    • Implementeringen av NFSv4-montering i "soft" lĂ€ge har förbĂ€ttrats (vid fel pĂ„ serverĂ„tkomst i "soft" lĂ€ge returneras felkoden omedelbart, medan i "hard" lĂ€ge styrningen inte Ă„tergĂ„r förrĂ€n FS:en blir tillgĂ€nglig igen eller tidsgrĂ€nsen gĂ„r ut). I den nya utgĂ„van har en mer exakt hantering av tidsgrĂ€nser sĂ€kerstĂ€llts, Ă„terstĂ€llningen efter fel har pĂ„skyndats och en ny monteringsoption "softerr" har lagts till, vilket tillĂ„ter att Ă€ndra felkoden (ETIMEDOUT) som returneras vid tidsgrĂ€nsövertrĂ€delser;
    • I API nfsdcld, utformat i för att spĂ„ra statusen pĂ„ NFS-kunder, finns möjligheten att korrekt övervaka statusen av en NFS-server vid omstart. PĂ„ sĂ„ sĂ€tt kan demon nfsdcld nu fungera som hanterare för nfsdcltrack;
    • För AFS har lagts till emulering av byte range-lĂ„s i filer (Byte Range Locking);
  • Virtualisering och sĂ€kerhet
    • Arbete har gjorts för att Ă„tgĂ€rda platser i kĂ€rnan som tillĂ„ter exekvering av kod frĂ„n skrivbara reflekterande minnesomrĂ„den, vilket möjliggör blockering av potentiella sĂ„rbarheter som kan utnyttjas vid angrepp;
    • En ny parameter för kĂ€rnkommandoraden "mitigations=", som ger ett förenklat sĂ€tt att hantera aktiveringen av olika skyddstekniker mot sĂ„rbarheter relaterade till spekulativ exekvering av instruktioner i CPU. Genom att ange "mitigations=off" stĂ€nger man av alla tillgĂ€ngliga metoder, medan standardlĂ€get "mitigations=auto" aktiverar skydd, men pĂ„verkar inte anvĂ€ndningen av Hyper Threading. LĂ€get "mitigations=auto,nosmt" stĂ€nger dessutom av Hyper Threading om det krĂ€vs av skyddstekniken.
    • Tillagd stöd för elektronisk digital signatur enligt GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), utvecklad av Vitaly Chikunov frĂ„n "Bazalt SPO". I den inbyggda implementationen av TLS har stöd för AES128-CCM lagts till. Stöd för AEAD-algoritmer har lagts till i crypto_simd-modulen;
    • I Kconfig har lagts till finns en separat sektion "kernel hardening" med alternativ för att förstĂ€rka skyddet av kĂ€rnan. För nĂ€rvarande har den nya sektionen endast instĂ€llningar för att aktivera förstĂ€rkningskontroller via GCC-plugin-moduler;
    • Koden i kĂ€rnan Ă€r nĂ€stan Ă€r befriad frĂ„n oavbrutna uttryck i switch (utan return eller break efter varje case-block). Det Ă„terstĂ„r att Ă„tgĂ€rda 32 av 2311 fall av denna anvĂ€ndning av switch, efter vilket det kommer att vara möjligt att anvĂ€nda lĂ€get "-Wimplicit-fallthrough" vid kompilering av kĂ€rnan;
    • För PowerPC-arkitekturen har stöd implementerats för hĂ„rdvaruanordningar som begrĂ€nsar oönskade Ă„tkomstvĂ€gar frĂ„n kĂ€rnan till data i anvĂ€ndarutrymmet;
    • Kod för att blockera attacker klassen MDS (Microarchitectural Data Sampling) i Intel-processorer har lagts till. För att kontrollera systemets sĂ„rbarhet kan man via SysFS-variabeln "/sys/devices/system/cpu/vulnerabilities/mds". TillgĂ€ngligt TvĂ„ skyddsmetoder: en fullstĂ€ndig, som krĂ€ver en uppdaterad mikroprogramvara, och en alternativ, som inte fullt ut garanterar rensning av CPU:ns buffertar vid överföring av kontroll till anvĂ€ndarutrymme eller gĂ€stsystem. För att hantera skyddsmetoder har en parameter "mds=" lagts till i kĂ€rnan, som kan ta vĂ€rdena "full", "full,nosmt" (med avstĂ€ngning av Hyper-Threading) och "off";
    • PĂ„ x86-64-system har skyddet "stack guard-page" lagts till för IRQ, felsökningsmekanismer och undantagshanterare, vilket innebĂ€r att en ersĂ€ttning pĂ„ grĂ€nsen till stacken i minnessidor sĂ€tts in, dĂ€r Ă„tkomst leder till att ett undantag (page-fault) genereras;
    • En sysctl-instĂ€llning vm.unprivileged_userfaultfd har lagts till, för att styra anvĂ€ndningen av systemanropet userfaultfd() av icke-privilegierade processer;
  • NĂ€tverkssystemet
    • Tillagd stöd för IPv6-gateways för IPv4-rutter. Till exempel kan nu routingregler av typen "ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0" anges;
    • För ICMPv6 har ioctl-anropen icmp_echo_ignore_anycast och icmp_echo_ignore_multicast implementerats för att ignorera ICMP ECHO för anycast och
      multicastadresser. Tillagd möjlighet att begrÀnsa intensiteten för hantering av ICMPv6-paket;
    • För mesh-protokollet B.A.T.M.A.N. ("Better Approach To Mobile Adhoc Networking"), som möjliggör skapandet av decentraliserade nĂ€tverk dĂ€r varje nod Ă€r kopplad genom nĂ€rliggande noder, har lagts till stöd för översĂ€ttning frĂ„n multicast till unicast, samt möjlighet att styra genom sysfs;
    • I ethtool tillagd har en ny parameter Fast Link Down lagts till, som möjliggör att tiden för mottagning av information om hĂ€ndelsen av lĂ€nkavbrott för 1000BaseT minskas (under normala förhĂ„llanden kan fördröjningen vara upp till 750 ms);
    • Det har kommit att bindning av Foo-Over-UDP-tunnlar till en specifik adress, nĂ€tverksgrĂ€nssnitt eller socket (tidigare gjordes bindning endast baserat pĂ„ en gemensam mask);
    • I det trĂ„dlösa stacken Ă€r möjligheten att implementera hanterare
      OWE (Opportunistic Wireless Encryption) i anvÀndarutrymmet;
    • I Netfilter har stöd för adressfamiljen inet lagts till i nat-kedjor (till exempel kan nu en enda översĂ€ttningsregel anvĂ€ndas för att hantera ipv4 och ipv6, utan att separera regler för ipv4 och ipv6);
    • I netlink tillagd vĂ€xellĂ€ge strict för noggrann kontroll av alla meddelanden och attribut, dĂ€r överskridande av förvĂ€ntad storlek pĂ„ attribut Ă€r oacceptabelt och det Ă€r förbjudet att lĂ€gga till extra data i slutet av meddelandena;
  • Minne och systemtjĂ€nster
    • I systemanropet clone() har flaggan CLONE_PIDFD lagts till, vilket innebĂ€r att förĂ€ldraprocessen fĂ„r en filbeskrivare "pidfd", som Ă€r kopplad till den skapade barnprocessen. Denna filbeskrivare kan till exempel anvĂ€ndas för att skicka signaler utan att riskera en kapplöpning (omedelbart efter att signalen har skickats kan den mĂ„linriktade PID:n frigöras pĂ„ grund av att processen avslutas och upptas av en annan process);
    • Den andra versionen av cgroups har fĂ„tt funktionalitet i fryskontrollern, vilket gör det möjligt att stoppa arbetet i cgroup och tillfĂ€lligt frigöra vissa resurser (CPU, I/O och potentiellt Ă€ven minne) för att utföra andra uppgifter. Hantering sker genom kontrollfilerna cgroup.freeze och cgroup.events i cgroup-trĂ€det. Att skriva 1 i cgroup.freeze fryser processerna i den aktuella cgroup och alla barngrupper. Eftersom frysningen krĂ€ver lite tid, har filen cgroup.events föreslagits för att fĂ„ reda pĂ„ nĂ€r operationen Ă€r klar;
    • SĂ€kerstĂ€lld export av minnesattribut knutna till varje nod i sysfs, vilket gör det möjligt att frĂ„n anvĂ€ndarutrymmet bestĂ€mma hur minnesbankerna hanteras i system med heterogen minne;
    • PSI (Pressure Stall Information)-subsystemet har förbĂ€ttrats, vilket gör det möjligt att analysera information om vĂ€ntetider för att fĂ„ tillgĂ„ng till olika resurser (CPU, minne, I/O) för specifika uppgifter eller processuppsĂ€ttningar i cgroup. Genom PSI kan anvĂ€ndarutrymmets hanterare bĂ€ttre bedöma systemets belastningsnivĂ„ och arten av eventuell nedgĂ„ng i prestanda jĂ€mfört med Load Average. Den nya versionen har stöd för att stĂ€lla in kĂ€nslighetströsklar och möjlighet att anvĂ€nda anropet poll() för att fĂ„ meddelande om att de uppsatta tröskelvĂ€rdena har nĂ„tts under en viss tidsperiod. Denna möjlighet möjliggör övervakning av minnesbrist i Android i ett tidigt skede, identifiering av problemm kĂ€llor och avslutning av oviktiga applikationer innan synliga problem uppstĂ„r för anvĂ€ndaren. Vid stresstester har övervakningsverktygen för minnesanvĂ€ndning baserade pĂ„ PSI visat sig ha 10 gĂ„nger fĂ€rre falska positiva jĂ€mfört med statistiken frĂ„n vmpressure;
    • Kodoptimering har genomförts för att kontrollera BPF-program, vilket gör att stora program nu kan kontrollera upp till 20 gĂ„nger snabbare. Optimeringen har möjliggjort att grĂ€nsen för storleken pĂ„ BPF-program har höjts frĂ„n 4096 till en miljon instruktioner;
    • För BPF-program har beviljats möjligheten att fĂ„ tillgĂ„ng till globala data, vilket gör det möjligt att definiera globala variabler och konstanter i programmen;
    • Tillagd API, vilket gör det möjligt att kontrollera Ă€ndringar av sysctl-parametrar frĂ„n BPF-program;
    • För MIPS32-arkitekturen har en JIT-kompilator implementerats för eBPF virtuella maskin;
    • För 32-bitars PowerPC-arkitekturen har stödet för felsökningsverktyget KASan (Kernel address sanitizer) lagts till, vilket möjliggör upptĂ€ckten av minnesfel;
    • PĂ„ x86-64-system har begrĂ€nsningen för att placera crash-dumps pĂ„ minnesomrĂ„den över 896 MB tagits bort;
    • För s390-arkitekturen har stöd för randomisering av kĂ€rnans adressutrymme (KASLR) och möjligheten att verifiera digitala signaturer vid kĂ€rnstart via kexec_file_load() implementerats;
    • För PA-RISC-arkitekturen har stöd för kĂ€rnfelsökaren (KGDB), brytpunkter och kprobes lagts till;
  • Utrustning
    • I paketet ingĂ„r drivrutinen Lima för GPU Mali 400/450, som anvĂ€nds i mĂ„nga Ă€ldre chip baserade pĂ„ ARM-arkitekturen. För nyare GPU:er har en Panfrost-drivrutin lagts till, som stöder chip baserade pĂ„ mikroarkitekturerna Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) och Bifrost (Mali G3x, G5x, G7x);
    • Stöd för ljudenheter som anvĂ€nder öppna firmware har lagts till Sound Open Firmware (SOF). Trots att öppna drivrutiner finns kvar har firmware-koden för ljudchip fortfarande varit stĂ€ngd och levererats i binĂ€r form. Projektet Sound Open Firmware har utvecklats av Intel för att skapa öppna firmware för DSP-chip kopplade till ljudbehandling (senare anslöt sig Ă€ven Google till utvecklingen). För nĂ€rvarande har projektet redan förberett öppna firmware för ljudchip pĂ„ plattformar frĂ„n Intel: Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake och IceLake;
    • I Intel DRM-drivrutinen (i915) har stöd för chip
      Elkhartlake (Gen11) lagts till. PCI-identifikatorer för chip frÄn Comet Lake (Gen9) har lagts till. Stödet för chip frÄn Icelake har stabiliserats, och ytterligare PCI-enhetsidentifierare har lagts till.
      Aktiverad
      asynkron vÀxlingslÀge mellan tvÄ buffrar i videominne (async flip) vid skrivoperationer via mmio, vilket avsevÀrt förbÀttrade prestandan för vissa 3D-applikationer (till exempel ökade prestandan i 3DMark Ice Storm med 300-400%). Stöd för teknologin HDCP2.2 (High-bandwidth Digital Content Protection) för kryptering av videosignal som överförs via HDMI;
    • I drivrutinen amdgpu för GPU Vega20 har lagts till stöd för RAS (Reliability, Availability, Serviceability) och experimentellt stöd för SMU 11-systemet, som ersatte Powerplay-teknologin. För GPU Vega12 har lagts till stöd för BACO-lĂ€ge (Bus Active, Chip Off). Inledande stöd för XGMI, en hög hastighetsbuss (PCIe 4.0) för att koppla samman GPU:er. I drivrutinen amdkfd har saknade identifieringsnummer för grafikkort baserade pĂ„ GPU Polaris10 lagts till;
    • I drivrutinen Nouveau har stöd lagts till för kort baserade pĂ„ NVIDIA Turing 117-chipsetet (TU117, anvĂ€nds i GeForce GTX 1650). I
      kconfig har lagts till instÀllning för att stÀnga av förÄldrade funktioner som inte lÀngre anvÀnds i aktuella versioner av libdrm;
    • I API:et DRM och drivrutinen amdgpu har stöd lagts till för synkroniseringsobjekt "timeline", vilket möjliggör att undvika klassiska lĂ„s.
    • FrĂ„n staging-grenen har drivrutinen vboxvideo för den virtuella GPU:n VirtualBox överförts till huvudgrenen;
    • En drivrutin för aspeed har lagts till för GFX-chipet SoC ASPEED;
    • Stöd har lagts till för ARM SoC och Intel Agilex-kort (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).

Samtidig Latinamerikansk Stiftelse för Fritt Programvara skapat
en variant fullt fritt kĂ€rna 5.2 — Linux-libre 5.2-gnu, rensad frĂ„n firmware och drivrutiner som innehĂ„ller icke-fria komponenter eller kodbitomrĂ„den som Ă€r begrĂ€nsade av tillverkaren. I den nya utgĂ„van har laddning av filer
Sound Open Firmware. Laddning av blobbar har stÀngts av i drivrutinerna
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp och ucsi_ccg. Koden för att rensa blobbar i drivrutiner och subsystems ixp4xx, imx-sdma, amdgpu, nouveau och goya har uppdaterats, liksom dokumentationen för mikroprogrammet. Rensning av blobbar i drivrutinen r8822be har avslutats pÄ grund av dess borttagning.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster