Linux 5.2 nga pagpagawas sa kernel

Pagkahuman sa duha ka bulan nga pag-uswag, si Linus Torvalds gipaila pagpagawas sa kernel Linux 5.2. Lakip sa labing namatikdan nga mga pagbag-o: Ext4 operating mode mao ang case-insensitive, bulag nga sistema nga tawag alang sa pag-mount sa file system, mga drayber alang sa GPU Mali 4xx/ 6xx/7xx, ang abilidad sa pagdumala sa mga kausaban sa sysctl values ​​​​sa BPF programs, device-mapper module dm-dust, proteksyon batok sa mga pag-atake sa MDS, suporta alang sa Sound Open Firmware para sa DSP, pag-optimize sa performance sa BFQ, pagdala sa PSI (Pressure Stall Information) subsystem sa posibilidad sa paggamit sa Android.

Ang bag-ong bersyon naglakip sa 15100 nga mga pag-ayo gikan sa 1882 nga mga developer,
gidak-on sa patch - 62 MB (mga pagbag-o nga nakaapekto sa 30889 nga mga file, 625094 nga linya sa code ang gidugang, 531864 nga linya ang gitangtang). Mga 45% sa tanan nga gipresentar sa 5.2
Ang mga pagbag-o adunay kalabotan sa mga driver sa aparato, gibana-bana nga 21% sa mga pagbag-o adunay
kinaiya sa pag-update sa code nga espesipiko sa mga arkitektura sa hardware, 12%
nga may kalabutan sa network stack, 3% sa mga sistema sa file ug 3% sa internal
mga subsystem sa kernel. Ang 12.4% sa tanan nga mga pagbag-o giandam sa Intel, 6.3% sa Red Hat, 5.4% sa Google, 4.0% sa AMD, 3.1% sa SUSE, 3% sa IBM, 2.7% sa Huawei, 2.7% sa Linaro, 2.2% sa ARM , 1.6 % - Oracle.

nag-unang mga inobasyon:

  • Disk Subsystem, I/O ug File Systems
    • Gidugang para sa Ext4 pagsuporta pagtrabaho nga walay pag-ila sa kaso sa mga karakter sa mga ngalan sa file, nga gi-aktibo lamang kalabot sa indibidwal nga walay sulod nga mga direktoryo gamit ang bag-ong hiyas nga "+F" (EXT4_CASEFOLD_FL). Kung kini nga hiyas gibutang sa usa ka direktoryo, ang tanan nga mga operasyon nga adunay mga file ug mga subdirektoryo sa sulod himuon nga wala’y konsiderasyon sa kaso sa mga karakter, lakip ang kaso dili ibalewala kung mangita ug magbukas sa mga file (pananglitan, ang mga file Test.txt, test.txt ug test.TXT sa maong mga direktoryo pagaisipon nga pareho). Sa kasagaran, ang file system nagpadayon nga case-sensitive, gawas sa mga direktoryo nga adunay "chattr + F" nga hiyas;
    • Ang mga gimbuhaton alang sa pagproseso sa mga karakter sa UTF-8 sa mga ngalan sa file, nga gigamit sa paghimo sa pagtandi sa string ug mga operasyon sa normalisasyon, nahiusa;
    • Ang XFS nagdugang sa imprastraktura alang sa pag-monitor sa kahimsog sa sistema sa file ug usa ka bag-ong ioctl alang sa pagpangutana sa kahimtang sa kahimsog. Usa ka eksperimento nga bahin ang gipatuman aron masusi ang mga superblock counter online.
    • Gidugang bag-ong module device-mapper "dm-abug", nga nagtugot kanimo sa pagsundog sa dagway sa dili maayo nga mga bloke sa media o mga sayup kung nagbasa gikan sa disk. Gitugotan ka sa module nga pasimplehon ang pag-debug ug pagsulay sa mga aplikasyon ug lainlaing mga sistema sa pagtipig atubangan sa posible nga mga kapakyasan;
    • Gibuhat Mahinungdanon nga pag-optimize sa pasundayag alang sa BFQ I/O scheduler. Sa mga kondisyon sa taas nga I/O load, gihimo ang mga pag-optimize tugoti Bawasan ang oras sa mga operasyon sama sa paglansad sa mga aplikasyon hangtod sa 80%.
    • Nagdugang usa ka serye sa mga tawag sa sistema alang sa pag-mount sa mga sistema sa file: fsopen(), open_tree(), fspick(), fsmount(), fsconfig() и move_mount(). Kini nga mga tawag sa sistema nagtugot kanimo sa paglainlain nga pagproseso sa lainlaing mga yugto sa pag-mount (pagproseso sa superblock, pagkuha kasayuran bahin sa file system, pag-mount, pag-attach sa punto sa pag-mount), nga kaniadto gihimo gamit ang sagad nga mount() system call. Ang bulag nga mga tawag naghatag og abilidad sa paghimo sa mas komplikado nga mga sitwasyon sa pag-mount ug paghimo sa lain nga mga operasyon sama sa pag-configure pag-usab sa superblock, pagpagana sa mga opsyon, pag-ilis sa mount point, ug pagbalhin ngadto sa laing namespace. Dugang pa, ang bulag nga pagproseso nagtugot kanimo nga tukma nga mahibal-an ang mga hinungdan sa output sa mga error code ug magtakda daghang mga gigikanan alang sa mga sistema sa file nga multi-layer, sama sa mga overlay;
    • Usa ka bag-ong operasyon nga IORING_OP_SYNC_FILE_RANGE ang gidugang sa interface para sa asynchronous nga I/O io_uring, nga naghimo sa mga aksyon nga katumbas sa usa ka tawag sa sistema sync_file_range(), ug gipatuman usab ang katakus sa pagparehistro sa eventfd sa io_uring ug pagdawat mga pahibalo bahin sa pagkompleto sa mga operasyon;
    • Para sa CIFS file system, ang FIEMAP ioctl gidugang, nga naghatag og episyente nga pagmapa sa gilapdon, ingon man suporta alang sa SEEK_DATA ug SEEK_HOLE mode;
    • Sa FUSE subsystem gisugyot API alang sa pagdumala sa data caching;
    • Gi-optimize sa Btrfs ang pagpatuman sa qgroups ug gipauswag ang katulin sa pagpatuman sa fsync alang sa mga file nga adunay daghang mga hard link. Ang data integrity check code gipauswag, nga karon nagkonsiderar sa posibleng kadaot sa impormasyon sa RAM sa dili pa i-flush ang data ngadto sa disk;
    • Ang CEPH midugang og suporta alang sa pag-eksport sa mga snapshot pinaagi sa NFS;
    • Ang pagpatuman sa NFSv4 mounting sa "humok" nga mode gipauswag (kung adunay usa ka sayup nga mahitabo sa pag-access sa server sa "humok" nga mode, usa ka tawag nga ibalik dayon ang usa ka error code, ug sa "lisud" nga pagkontrol sa mode dili ihatag hangtod ang FS ang pagkaanaa o timeout gipahiuli). Ang bag-ong pagpagawas naghatag og mas tukma nga timeout handling, mas paspas nga crash recovery, ug usa ka bag-ong "softerr" mount option nga nagtugot kanimo sa pag-usab sa error code (ETIMEDOUT) nga gibalik kung adunay timeout;
    • Ang nfsdcld API, nga gidesinyo sa pagsubay sa kahimtang sa mga kliyente sa NFS, nagtugot sa NFS server sa husto nga pagsubay sa kahimtang sa kliyente sa pag-reboot. Sa ingon, ang nfsdcld daemon mahimo na nga molihok ingon usa ka tigdumala sa nfsdcltrack;
    • Para sa AFS gidugang emulation sa byte range lock sa mga file (Pag-lock sa Byte Range);
  • Virtualization ug Security
    • Gihimo ang pagtrabaho aron mawagtang ang mga lugar sa kernel nga nagtugot sa pagpatuman sa code gikan sa mga lugar nga naa sa pagsulat nga gipakita sa memorya, nga nagtugot sa pag-ali sa mga potensyal nga mga lungag nga mahimong mapahimuslan sa panahon sa pag-atake;
    • Usa ka bag-ong kernel command line parameter nga "mitigations=" ang gidugang, nga naghatag og usa ka gipayano nga paagi aron makontrol ang pagpagana sa pipila ka mga teknik aron mapanalipdan batok sa mga kahuyangan nga nalangkit sa espekulatibo nga pagpatuman sa mga instruksyon sa CPU. Ang pagpasa sa "mitigations = off" dili makapugong sa tanan nga kasamtangan nga mga pamaagi, ug ang default mode nga "mitigations = auto" makapahimo sa proteksyon apan dili makaapekto sa paggamit sa Hyper Threading. Ang "mitigations=auto,nosmt" mode dugang nga nagpugong sa Hyper Threading kung gikinahanglan sa paagi sa pagpanalipod.
    • Gidugang suporta alang sa electronic digital signature sumala sa GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3), naugmad Vitaly Chikunov gikan sa Basalt SPO. Gidugang nga suporta alang sa AES128-CCM sa lumad nga pagpatuman sa TLS. Gidugang nga suporta alang sa mga algorithm sa AEAD sa crypto_simd module;
    • Sa Kconfig gidugang usa ka bulag nga seksyon nga "pagpagahi sa kernel" nga adunay mga kapilian aron mapauswag ang proteksyon sa kernel. Sa pagkakaron, ang bag-ong seksyon naglangkob lamang sa mga setting alang sa pagpagana sa GCC check-enhancing plugins;
    • Ang kernel code hapit na gihatud gikan sa non-breaking case statements sa switch (walay pagbalik o break human sa matag case block). Nagpabilin kini aron ayohon ang 32 sa 2311 nga mga kaso sa ingon nga paggamit sa switch, pagkahuman mahimo’g magamit ang mode nga "-Wimplicit-fallthrough" sa pagtukod sa kernel;
    • Alang sa arkitektura sa PowerPC, gipatuman ang suporta alang sa mga mekanismo sa hardware alang sa paglimit sa dili gusto nga mga agianan sa pag-access sa kernel ngadto sa datos sa luna sa user;
    • Gidugang blocking code mga pag-atake MDS (Microarchitectural Data Sampling) nga klase sa mga processor sa Intel. Mahimo nimong susihon kung ang usa ka sistema huyang sa mga kahuyangan pinaagi sa variable nga SysFS "/sys/devices/system/cpu/vulnerabilities/mds". Anaa na duha ka mode sa pagpanalipod: puno, nga nagkinahanglan og updated nga microcode, ug bypass, nga dili hingpit nga garantiya sa paghawan sa CPU buffers sa diha nga ang kontrol gibalhin ngadto sa user space o sa bisita nga sistema. Aron makontrol ang mga mode sa pagpanalipod, ang parameter nga "mds=" gidugang sa kernel, nga mahimo’g makuha ang mga kantidad nga "puno", "puno, nosmt" (+ disable ang Hyper-Threads) ug "off";
    • Sa mga sistema sa x86-64, ang proteksyon sa "stack guard-page" gidugang alang sa IRQ, mga mekanismo sa pag-debug ug mga tigdumala sa eksepsiyon, ang esensya niini mao ang pag-ilis sa mga panid sa panumduman sa utlanan sa stack, ang pag-access nga mosangpot sa henerasyon sa usa ka eksepsiyon (panid-sayup);
    • Gidugang ang sysctl setting vm.unprivileged_userfaultfd, nga nagkontrol sa katakus sa mga proseso nga wala’y pribilehiyo nga magamit ang userfaultfd() nga tawag sa sistema;
  • Subsystem sa network
    • Gidugang IPv6 gateway nga suporta alang sa IPv4 nga mga ruta. Pananglitan, mahimo nimong itakda ang mga lagda sa ruta sama sa "ip ro add 172.16.1.0/24 pinaagi sa inet6 2001:db8::1 dev eth0";
    • Alang sa ICMPv6, ang ioctl nagtawag sa icmp_echo_ignore_anycast ug icmp_echo_ignore_multicast gipatuman aron dili ibalewala ang ICMP ECHO alang sa anycast ug
      multicast nga mga adres. Gidugang ang abilidad sa paglimite sa intensity sa ICMPv6 packet processing;

    • Alang sa BATMAN (Better Approach To Mobile Adhoc Networking) mesh protocol, nga nagtugot sa paghimo sa mga desentralisadong network diin ang matag node konektado pinaagi sa silingang mga node, gidugang suporta alang sa pagsibya gikan sa multicast ngadto sa unicast, ingon man ang abilidad sa pagkontrol pinaagi sa sysfs;
    • Sa ethtool gidugang usa ka bag-o nga Fast Link Down parameter, nga nagtugot kanimo sa pagpakunhod sa oras nga gikinahanglan aron makadawat og impormasyon bahin sa usa ka link down nga panghitabo alang sa 1000BaseT (ubos sa normal nga mga kondisyon ang paglangan hangtod sa 750ms);
    • Nagpakita oportunidad pagbugkos sa mga tunnel sa Foo-Over-UDP sa usa ka piho nga adres, interface sa network o socket (kaniadto ang pagbugkos gihimo lamang sa usa ka komon nga maskara);
    • Sa wireless stack gihatag posibilidad sa pagpatuman sa mga handler
      OWE (Opportunistic Wireless Encryption) sa user space;

    • Sa Netfilter, ang suporta alang sa pamilya sa inet address gidugang ngadto sa nat chains (pananglitan, mahimo nimong gamiton ang usa ka lagda sa paghubad sa pagproseso sa ipv4 ug ipv6, nga walay pagbulag sa mga lagda alang sa ipv4 ug ipv6);
    • Sa netlink gidugang ang rehimen estrikto alang sa higpit nga pag-verify sa pagkahusto sa tanan nga mga mensahe ug mga hiyas, diin ang gipaabot nga gidak-on sa mga hiyas dili gitugotan nga molapas ug ang pagdugang sa dugang nga datos sa katapusan sa mga mensahe gidili;
  • Mga serbisyo sa memorya ug sistema
    • Ang CLONE_PIDFD nga bandila gidugang sa clone() nga tawag sa sistema, kung gitakda, ang file descriptor nga "pidfd" nga giila sa gibuhat nga proseso sa bata ibalik sa proseso sa ginikanan. Kini nga file descriptor, pananglitan, mahimong gamiton sa pagpadala sa mga signal nga walay kahadlok sa pagdagan ngadto sa usa ka kahimtang sa lumba (diha-diha dayon human sa pagpadala sa signal, ang target nga PID mahimong gawasnon tungod sa proseso sa pagtapos ug okupar sa laing proseso);
    • Alang sa ikaduhang bersyon sa cgroups, ang freezer controller functionality gidugang, diin mahimo nimong hunongon ang pagtrabaho sa usa ka cgroup ug temporaryo nga magpagawas sa pipila ka mga kahinguhaan (CPU, I/O, ug posibleng memorya pa) aron mahimo ang ubang mga buluhaton. Ang pagdumala gihimo pinaagi sa cgroup.freeze ug cgroup.events control files sa cgroup tree. Ang entry 1 sa cgroup.freeze nag-freeze sa mga proseso sa kasamtangan nga cgroup ug sa tanang grupo sa bata. Tungod kay ang pagyelo nagkinahanglan og pipila ka panahon, usa ka dugang nga cgroup.events file ang gihatag diin imong mahibal-an ang mahitungod sa pagkompleto sa operasyon;
    • Gisiguro pag-eksport sa mga hiyas sa panumduman nga gilakip sa matag node sa sysfs, nga nagtugot kanimo sa pagtino gikan sa wanang sa tiggamit sa kinaiya sa pagproseso sa mga bangko sa panumduman sa mga sistema nga adunay heterogeneous memory;
    • Ang subsystem sa PSI (Pressure Stall Information) gipauswag, nga nagtugot kanimo sa pag-analisar sa kasayuran bahin sa oras sa paghulat alang sa pagdawat sa lainlaing mga kapanguhaan (CPU, memorya, I/O) alang sa pipila nga mga buluhaton o mga set sa mga proseso sa usa ka cgroup. Gamit ang PSI, mas tukma nga mabanabana sa mga tigdumala sa wanang sa gumagamit ang lebel sa load sa sistema ug mga pattern sa paghinay kumpara sa Average nga Load. Ang bag-ong bersyon naghatag og suporta alang sa pagtakda sa sensitivity threshold ug ang abilidad sa paggamit sa poll() nga tawag aron makadawat og pahibalo nga ang gitakda nga mga threshold na-trigger sa usa ka piho nga yugto sa panahon. Gitugotan sa kini nga bahin ang Android nga ma-monitor ang mga kakulangan sa memorya sa sayo nga yugto, mahibal-an ang gigikanan sa mga problema ug tapuson ang dili hinungdanon nga mga aplikasyon nga wala’y hinungdan sa mga problema nga mamatikdan sa tiggamit. Kung ang pagsulay sa stress, ang mga gamit sa pag-monitor sa konsumo sa memorya nga nakabase sa PSI nagpakita sa 10 ka beses nga mas gamay nga mga sayup nga positibo kung itandi sa mga istatistika sa vmpressure;
    • Ang code alang sa pagsusi sa mga programa sa BPF na-optimize, nga nagtugot sa pagsusi hangtod sa 20 ka beses nga mas paspas alang sa dagkong mga programa. Ang pag-optimize nagpaposible sa pagpataas sa limitasyon sa gidak-on sa mga programa sa BPF gikan sa 4096 ngadto sa usa ka milyon nga mga instruksyon;
    • Para sa mga programa sa BPF gihatag ang abilidad sa pag-access sa global nga datos, nga nagtugot kanimo sa paghubit sa mga global variable ug mga constant sa mga programa;
    • Gidugang API, nga nagtugot kanimo sa pagpugong sa mga pagbag-o sa sysctl nga mga parameter gikan sa mga programa sa BPF;
    • Alang sa MIPS32 nga arkitektura, usa ka JIT compiler alang sa eBPF virtual machine ang gipatuman;
    • Alang sa 32-bit nga arkitektura sa PowerPC, gidugang ang suporta alang sa KASan (Kernel address sanitizer) debugging tool, nga makatabang sa pag-ila sa mga sayup kung nagtrabaho uban ang memorya;
    • Sa x86-64 nga mga sistema, ang pagdili sa pagbutang sa state dumps atol sa kernel crash (crash-dump) sa memorya nga mga lugar nga labaw sa 896MB gikuha na;
    • Alang sa s390 nga arkitektura, ang suporta alang sa kernel address space randomization (KASLR) ug ang abilidad sa pag-verify sa digital nga mga pirma sa dihang nagkarga sa kernel pinaagi sa kexec_file_load() gipatuman;
    • Para sa PA-RISC nga arkitektura, dugang suporta para sa kernel debugger (KGDB), jump mark ug kprobes;
  • Kagamitan
    • Lakip ang drayber Lima alang sa Mali 400/450 GPU, nga gigamit sa daghang mga daan nga chips base sa ARM nga arkitektura. Para sa mas bag-ong Mali GPUs, ang Panfrost driver gidugang, nagsuporta sa mga chips base sa Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) ug Bifrost (Mali G3x, G5x, G7x) microarchitectures;
    • Gidugang nga suporta alang sa mga audio device gamit ang bukas nga firmware SoundOpen Firmware (SOF). Bisan pa sa pagkaanaa sa bukas nga mga drayber, ang firmware code alang sa mga sound chips nagpabilin nga sirado ug gihatag sa binary nga porma. Ang proyekto sa Sound Open Firmware gimugna sa Intel aron makahimo og bukas nga firmware alang sa DSP chips nga may kalabutan sa pagproseso sa audio (ang Google sa ulahi miapil usab sa kalamboan). Sa pagkakaron, ang proyekto nakaandam na sa pagdiskobre sa firmware alang sa sound chips sa Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake ug IceLake nga mga plataporma;
    • Ang drayber sa Intel DRM (i915) nagdugang suporta alang sa mga chips
      Elkhartlake (Gen11). Gidugang ang mga PCI ID alang sa Comet Lake (Gen9) chips. Ang suporta alang sa Icelake chips gipalig-on, diin ang dugang nga PCI device identifier gidugang usab.
      Gipasiga
      mode sa asynchronous switching tali sa duha ka buffer sa video memory (async flip) sa diha nga sa pagbuhat sa pagsulat operasyon pinaagi sa mmio, nga kamahinungdanon nagdugang sa performance sa pipila 3D aplikasyon (pananglitan, performance sa 3DMark Ice Storm pagsulay misaka sa 300-400%). Gidugang nga suporta sa teknolohiya HDCP2.2 (High-bandwidth Digital Content Protection) para sa pag-encrypt sa mga signal sa video nga gipasa pinaagi sa HDMI;

    • Ang drayber sa amdgpu alang sa Vega20 GPU gidugang suporta para sa RAS (Reliability, Availability, Serviceability) ug eksperimento nga suporta para sa SMU 11 subsystem, nga mipuli sa Powerplay nga teknolohiya. Alang sa GPU Vega12 gidugang suporta alang sa BACO mode (Bus Active, Chip Off). Gidugang inisyal nga suporta alang sa XGMI, usa ka high-speed bus (PCIe 4.0) alang sa GPU interconnection. Gidugang ang nawala nga mga identifier alang sa mga kard nga gibase sa Polaris10 GPU sa amdkfd driver;
    • Ang drayber sa Nouveau nagdugang suporta alang sa mga tabla base sa NVIDIA Turing 117 chipset (TU117, gigamit sa GeForce GTX 1650). SA
      kconfig gidugang pag-set sa pag-disable sa mga karaan nga mga gimbuhaton nga wala na gigamit sa karon nga pagpagawas sa libdrm;

    • Ang suporta alang sa "timeline" nga mga butang sa pag-synchronize gidugang sa DRM API ug sa amdgpu driver, nga nagtugot kanimo sa pagbuhat nga walay classic blocking.
    • Ang vboxvideo driver alang sa VirtualBox virtual GPU gibalhin gikan sa staging branch ngadto sa main structure;
    • Gidugang aspeed driver alang sa GFX SoC ASPEED chip;
    • Gidugang nga suporta alang sa ARM SoC ug Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, , Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi ) mga tabla 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).

Sa samang higayon, ang Latin American Free Software Foundation naporma
kapilian bug-os nga libre nga kernel 5.2 - Linux-libre 5.2-gnu, gitangtang sa firmware ug mga elemento sa drayber nga adunay dili libre nga mga sangkap o mga seksyon sa code, nga ang sakup niini limitado sa tiggama. Ang bag-ong pagpagawas naglakip sa pag-upload sa file
Sound Open Firmware. Ang pagkarga sa mga blobs sa mga drayber gi-disable
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp ug ucsi_ccg. Ang blob cleaning code sa ixp4xx, imx-sdma, amdgpu, nouveau ug goya drivers ug subsystems, ingon man sa microcode documentation, gi-update. Gihunong ang paglimpyo sa mga blobs sa drayber sa r8822be tungod sa pagtangtang niini.

Source: opennet.ru

Idugang sa usa ka comment