Linux 5.8 nga pagpagawas sa kernel

Pagkahuman sa duha ka bulan nga pag-uswag, si Linus Torvalds gipaila pagpagawas sa kernel Linux 5.8. Lakip sa labing inila nga mga pagbag-o: usa ka KCSAN race condition detector, usa ka unibersal nga mekanismo sa paghatud sa mga pahibalo sa wanang sa gumagamit, suporta sa hardware alang sa inline nga pag-encrypt, gipauswag nga mga mekanismo sa seguridad alang sa ARM64, suporta alang sa processor sa Baikal-T1 sa Russia, ang abilidad sa paglainlain nga pag-mount sa mga procfs nga mga higayon. , pagpatuman sa mga mekanismo sa seguridad sa Shadow para sa ARM64 Call Stack ug BTI.

Ang Kernel 5.8 nahimong pinakadako sa mga termino sa gidaghanon sa mga pagbag-o sa tanan nga mga kernel sa tibuok nga paglungtad sa proyekto. Dugang pa, ang mga pagbag-o wala’y kalabotan sa bisan unsang subsystem, apan gisakup ang lainlaing mga bahin sa kernel ug nag-una nga nalangkit sa internal nga pagtrabaho ug paglimpyo. Ang pinakadako nga kausaban makita sa mga drayber. Ang bag-ong bersyon naglakip sa 17606 nga mga pag-ayo gikan sa 2081 nga mga developer, nga nakaapekto sa gibana-bana nga 20% sa tanan nga mga file sa kernel code repository. Ang gidak-on sa patch 65 MB (ang mga pagbag-o nakaapekto sa 16180 nga mga file, 1043240 ka linya sa code ang gidugang, 489854 nga linya ang natangtang). Sa pagtandi, ang 5.7 nga sanga adunay 15033 nga mga pag-ayo ug usa ka gidak-on sa patch nga 39 MB. Mga 37% sa tanan nga mga pagbag-o nga gipaila sa 5.8 adunay kalabutan sa mga driver sa aparato, gibana-bana nga 16% sa mga pagbag-o ang may kalabutan sa pag-update sa code nga espesipiko sa mga arkitektura sa hardware, 11% adunay kalabotan sa network stack, 3% adunay kalabotan sa mga sistema sa file, ug 4% adunay kalabutan sa internal nga mga subsystem sa kernel.

nag-unang mga inobasyon:

  • Virtualization ug Security
    • Ang pagkarga sa mga kernel modules nga adunay mga seksyon nga adunay code diin ang mga bits nga nagtugot sa pagpatuman ug pagsulat dungan nga gihatag. Ang pagbag-o gipatuman isip kabahin sa usa ka mas dako nga proyekto sa pagwagtang sa kernel sa paggamit sa mga pahina sa memorya nga nagtugot sa dungan nga pagpatuman ug pagsulat.
    • Posible na karon ang paghimo og bulag nga procfs nga mga instance, nga gitugotan ang paggamit sa daghang mga procfs mount point, nga gi-mount sa lainlaing mga kapilian, apan nagpakita sa parehas nga namespace sa pagkilala sa proseso (pid namespace). Kaniadto, ang tanan nga mga punto sa pag-mount sa procf nagsalamin lamang sa usa ka internal nga representasyon, ug ang bisan unsang pagbag-o sa mga parameter sa bukid nakaapekto sa tanan nga uban pang mga punto sa pag-mount nga adunay kalabotan sa parehas nga namespace sa ID sa proseso. Lakip sa mga lugar diin ang pag-mount nga adunay lainlaing mga kapilian mahimo’g gipangayo mao ang pagpatuman sa gaan nga pag-inusara alang sa mga naka-embed nga sistema nga adunay katakus sa pagtago sa pipila nga mga matang sa mga proseso ug mga node sa impormasyon sa mga procf.
    • Ang suporta alang sa mekanismo gipatuman alang sa ARM64 nga plataporma
      Shadow-Call Stack, nga gihatag sa Clang compiler aron mapanalipdan batok sa pag-overwrite sa return address sa usa ka function kung adunay usa ka stack buffer overflow. Ang esensya sa proteksyon mao ang pagtipig sa adres sa pagbalik sa usa ka bulag nga "anino" nga stack pagkahuman ibalhin ang kontrol sa usa ka function ug makuha kini nga adres sa wala pa mogawas sa function.

    • Ang suporta sa pagtudlo gidugang alang sa ARM64 nga plataporma ARMv8.5-BTI (Branch Target Indicator) aron mapanalipdan ang pagpatuman sa mga set sa mga instruksyon nga dili angay sanga sa. Ang pagbabag sa mga transisyon sa arbitraryong mga seksyon sa code gipatuman aron mapugngan ang paghimo sa mga gadyet sa mga pagpahimulos nga naggamit sa mga teknik sa pagprograma sa pagbalik-oriented (ROP - Return-Oriented Programming; ang tig-atake wala mosulay sa pagbutang sa iyang code sa memorya, apan naglihok sa anaa na nga mga piraso sa mga instruksyon sa makina nga natapos sa usa ka instruksiyon sa pagkontrol sa pagbalik, diin ang usa ka kutay sa mga tawag gihimo aron makuha ang gitinguha nga gamit).
    • Gidugang nga suporta sa hardware alang sa inline nga pag-encrypt sa mga block device (Inline nga Encryption). Ang inlinep encryption device kasagarang gitukod sa drive, apan lohikal nga nahimutang taliwala sa system memory ug disk, transparent nga pag-encrypt ug pag-decrypt sa I/O base sa kernel-specified keys ug encryption algorithm.
    • Gidugang ang "initrdmem" kernel command line nga kapilian aron tugotan ka nga matino ang pisikal nga panumduman nga adres sa initrd kung ibutang ang inisyal nga boot image sa RAM.
    • Gidugang bag-ong kapabilidad: CAP_PERFMON aron ma-access ang perf subsystem ug ipahigayon ang pagmonitor sa performance. CAP_BPF, nga nagtugot sa pipila ka mga operasyon sa BPF (sama sa pagkarga sa mga programa sa BPF) nga nanginahanglan kaniadto sa mga katungod sa CAP_SYS_ADMIN (mga katungod sa CAP_SYS_ADMIN karon gibahin ngadto sa kombinasyon sa CAP_BPF, CAP_PERFMON, ug CAP_NET_ADMIN).
    • Gindugangan usa ka bag-ong virtio-mem device nga nagtugot kanimo sa hot-plug ug hot-plug memory ngadto sa mga guest system.
    • Gipatuman ang paghinumdom sa mga operasyon sa pagmapa sa /dev/mem kung ang driver sa aparato naggamit sa nagsapaw nga mga lugar sa memorya.
    • Gidugang nga proteksyon sa kahuyang CROSSTalk/SRBDS, nga nagtugot kanimo sa pagpasig-uli sa mga resulta sa pipila ka mga instruksyon nga gipatuman sa laing CPU core.
  • Mga serbisyo sa memorya ug sistema
    • Sa dokumento nga nagpatin-aw sa mga lagda sa pag-format sa code, gidawat mga rekomendasyon alang sa paggamit sa inklusibo nga terminolohiya. Dili girekomenda ang mga developers nga gamiton ang kombinasyon nga 'master / slave' ug 'blacklist / whitelist', ingon man ang pulong nga 'slave' nga gilain. Ang mga rekomendasyon nalangkit lamang sa mga bag-ong paggamit niini nga mga termino. Ang mga paghisgot sa gipiho nga mga pulong nga anaa na sa kinauyokan magpabilin nga dili matandog. Sa bag-ong code, ang paggamit sa gimarkahan nga mga termino gitugotan kung gikinahanglan aron suportahan ang API ug ABI nga gibutyag sa wanang sa gumagamit, ingon man kung gi-update ang code aron suportahan ang naa na nga hardware o protocol kansang mga detalye nanginahanglan paggamit sa pipila nga mga termino.
    • Gilakip ang himan sa pag-debug KCSAN (Kernel Concurrency Sanitizer), gidisenyo alang sa dinamikong pagkakita kahimtang sa lumba sulod sa kinauyokan. Gisuportahan ang paggamit sa KCSAN kung magtukod sa GCC ug Clang, ug nanginahanglan espesyal nga mga pagbag-o sa oras sa pag-compile aron masubay ang pag-access sa memorya (gigamit ang mga breakpoint nga ma-trigger kung gibasa o gibag-o ang memorya). Ang pokus sa pag-uswag sa KCSAN naa sa sayup nga positibo nga pagpugong, pagkadako, ug kadali sa paggamit.
    • Gidugang unibersal nga mekanismo paghatud sa mga pahibalo gikan sa kernel ngadto sa wanang sa tiggamit. Ang mekanismo gibase sa standard nga pipe driver ug nagtugot kanimo sa episyente nga pag-apod-apod sa mga pahibalo gikan sa kernel sa mga channel nga bukas sa user space. Ang mga punto sa pagdawat sa pahibalo mao ang mga tubo nga giablihan sa usa ka espesyal nga mode ug gitugotan ang mga mensahe nga nadawat gikan sa kernel nga matipon sa usa ka ring buffer. Ang pagbasa gihimo sa naandan nga read() function. Gitino sa tag-iya sa channel kung unsang mga gigikanan sa kernel ang kinahanglan nga bantayan ug mahimo’g ipasabut ang usa ka filter aron dili ibalewala ang pipila nga mga klase sa mga mensahe ug panghitabo. Sa mga panghitabo, ang mga operasyon lang nga adunay mga yawe ang gisuportahan karon, sama sa pagdugang/pagtangtang sa mga yawe ug pagbag-o sa ilang mga kinaiya. Kini nga mga panghitabo giplano nga gamiton sa GNOME.
    • Ang padayon nga pag-uswag sa 'pidfd' nga pagpaandar aron makatabang sa pagdumala sa mga sitwasyon sa paggamit pag-usab sa PID (ang pidfd nalangkit sa usa ka piho nga proseso ug dili mausab, samtang ang usa ka PID mahimong i-uban sa laing proseso human ang kasamtangang proseso nga nalangkit sa maong PID matapos). Ang bag-ong bersyon nagdugang suporta sa paggamit sa pidfd aron ilakip ang usa ka proseso sa mga namespaces (gitugotan ang pidfd nga matino kung ipatuman ang setns system call). Ang paggamit sa pidfd nagtugot kanimo nga makontrol ang pagkadugtong sa usa ka proseso sa daghang mga lahi sa mga namespace nga adunay usa ka tawag, nga makunhuran ang gidaghanon sa gikinahanglan nga mga tawag sa sistema ug ipatuman ang pagkadugtong sa atomic mode (kung ang pagkadugtong sa usa sa mga namespace mapakyas, ang uban dili magkonektar) .
    • Gidugang ang usa ka bag-ong sistema sa tawag nga faccessat2(), lahi sa
      faaccessat() usa ka dugang nga argumento nga adunay mga bandera nga nagsunod sa mga rekomendasyon sa POSIX (kaniadto kini nga mga bandera gisundog sa C library, ug ang bag-ong faccessat2 nagtugot kanila nga ipatuman sa kernel).

    • Sa Cgroup gidugang usa ka memory.swap.high setting nga magamit sa pagpahinay sa mga buluhaton nga mokuha ug sobra nga swap space.
    • Ngadto sa asynchronous nga I/O interface io_uring dugang nga suporta alang sa tee() system call.
    • Gidugang nga mekanismo "BPF iterator, gidesinyo sa pag-output sa mga sulud sa mga istruktura sa kernel ngadto sa wanang sa tiggamit.
    • Gihatag ang abilidad sa paggamit sa usa ka singsing buffer alang sa data exchange tali sa BPF mga programa.
    • Sa mekanismo padata, gidesinyo sa pag-organisar sa parallel execution sa mga buluhaton sa kernel, dugang suporta alang sa multi-threaded nga mga buluhaton nga adunay load balancing.
    • Sa mekanismo sa pstore, nga nagtugot kanimo sa pagtipig sa impormasyon sa pag-debug bahin sa hinungdan sa pagkahagsa sa mga lugar sa panumduman nga wala mawala sa taliwala sa mga pag-reboot, gidugang backend alang sa pagtipig sa impormasyon aron babagan ang mga himan.
    • Gikan sa PREEMPT_RT kernel branch mibalhin pagpatuman sa mga lokal nga kandado.
    • Gidugang bag-ong buffer allocation API (AF_XDP), nga nagtumong sa pagpayano sa pagsulat sa mga drayber sa network nga adunay suporta sa XDP (eXpress Data Path).
    • Alang sa arkitektura sa RISC-V, gipatuman ang suporta alang sa pag-debug sa mga sangkap sa kernel gamit ang KGDB.
    • Sa wala pa ipagawas ang 4.8, ang mga kinahanglanon alang sa bersyon sa GCC nga magamit sa pagtukod sa kernel gidugangan. Sa usa sa mga sunod nga pagpagawas giplano nga ipataas ang bar sa GCC 4.9.
  • Disk Subsystem, I/O ug File Systems
    • Sa Device Mapper gidugang bag-ong dm-ebs (emulate block size) handler, nga magamit sa pagsundog sa mas gamay nga lohikal nga block size (pananglitan, aron masundog ang 512-byte nga sektor sa 4K sector-size disks).
    • Ang F2FS file system karon nagsuporta sa compression gamit ang LZO-RLE algorithm.
    • Sa dm-crypt gidugang suporta alang sa naka-encrypt nga mga yawe.
    • Gipauswag sa Btrfs ang pagdumala sa mga operasyon sa pagbasa sa direkta nga I/O mode. Sa diha nga nag-mount gipaspasan pagsusi sa mga natangtang nga subseksyon ug mga direktoryo nga nahabilin nga walay ginikanan.
    • Usa ka parameter nga "nodelete" ang gidugang sa CIFS, nga gitugotan ang normal nga mga pagsusi sa pagtugot sa server, apan gidid-an ang kliyente sa pagtangtang sa mga file o direktoryo.
    • Gipauswag sa Ext4 ang pagdumala sa sayup ENOSPC sa paggamit sa multithreading. Ang xattr midugang og suporta para sa gnu.* namespace nga gigamit sa GNU Hurd.
    • Alang sa Ext4 ug XFS, ang suporta alang sa mga operasyon sa DAX gipalihok (direkta nga pag-access sa file system, pag-bypass sa cache sa panid nga wala gigamit ang block device level) nga may kalabotan sa indibidwal nga mga file ug mga direktoryo.
    • Sa sistema nga tawag statx() gidugang ang bandila STATX_ATTR_DAX, nga kung gipiho, makuha ang impormasyon gamit ang DAX engine.
    • EXFAT gidugang suporta alang sa pag-verify sa boot area.
    • Sa FAT milambo aktibo nga pagkarga sa mga elemento sa FS. Ang pagsulay sa usa ka hinay nga 2TB USB drive nagpakita sa pagkunhod sa oras sa pagkompleto sa pagsulay gikan sa 383 hangtod 51 segundos.
  • Subsystem sa network
    • Sa code alang sa pagpugong sa operasyon sa mga tulay sa network gidugang suporta sa protocol MRP (Media Redundancy Protocol), nga nagtugot sa fault tolerance pinaagi sa pag-loop sa daghang Ethernet switch.
    • Sa sistema sa pagkontrol sa trapiko (Tc) gidugang bag-ong aksyon nga "ganghaan", nga nagpaposible sa paghubit sa mga agwat sa oras alang sa pagproseso ug paglabay sa pipila ka mga pakete.
    • Ang suporta alang sa pagsulay sa konektado nga network cable ug pagdayagnos sa kaugalingon sa mga aparato sa network gidugang sa kernel ug sa ethtool utility.
    • Suporta para sa MPLS (Multiprotocol Label Switching) algorithm gidugang sa IPv6 stack para sa routing packets gamit ang multiprotocol label switching (MPLS kaniadto gisuportahan para sa IPv4).
    • Gidugang nga suporta alang sa pagpadala sa IKE (Internet Key Exchange) ug IPSec packets sa TCP (RFC 8229) sa pag-bypass sa posible nga UDP blocking.
    • Gindugangan network block device rnbd, nga nagtugot kanimo sa pag-organisar sa hilit nga pag-access sa usa ka block device gamit ang RDMA transport (InfiniBand, RoCE, iWARP) ug ang RTRS protocol.
    • Sa TCP stack gidugang suporta alang sa range compression sa selective acknowledgement (SACK) nga mga tubag.
    • Para sa IPv6 gipatuman TCP-LD nga suporta (RFC 6069, Long Connectivity Disruptions).
  • Kagamitan
    • Ang i915 DRM driver alang sa Intel video card naglakip sa suporta alang sa Intel Tiger Lake (GEN12) chips sa default, diin gipatuman ang abilidad sa paggamit sa SAGV (System Agent Geyserville) nga sistema sa dinamikong pag-adjust sa frequency ug boltahe depende sa konsumo sa kuryente o mga kinahanglanon sa performance.
    • Ang drayber sa amdgpu midugang og suporta alang sa FP16 pixel format ug ang abilidad sa pagtrabaho uban sa encrypted buffers sa video memory (TMZ, Trusted Memory Zone).
    • Gidugang nga suporta alang sa mga sensor sa kuryente alang sa mga processor sa AMD Zen ug Zen2, ingon man mga sensor sa temperatura alang sa AMD Ryzen 4000 Renoir. Ang suporta alang sa pagkuha sa impormasyon sa konsumo sa kuryente pinaagi sa interface gihatag alang sa AMD Zen ug Zen2 RAPL (Running Average nga Limitasyon sa Gahum).
    • Gidugang nga suporta alang sa NVIDIA modifier format sa Nouveau driver. Para sa gv100, ang abilidad sa paggamit sa interlaced scanning modes gipatuman. Gidugang ang kahulugan sa vGPU.
    • Gidugang nga suporta alang sa Adreno A405, A640 ug A650 nga mga GPU sa drayber sa MSM (Qualcomm).
    • Gidugang internal nga gambalay alang sa pagdumala sa DRM (Direct Rendering Manager) nga mga kapanguhaan.
    • Gidugang nga suporta alang sa Xiaomi Redmi Note 7 ug Samsung Galaxy S2 smartphones, ingon man Elm/Hana Chromebook laptops.
    • Gidugang nga mga drayber alang sa mga panel sa LCD: ASUS TM5P5 NT35596, Starry KR070PE2T, Leadtek LTK050H3146W, Visionox rm69299, Boe tv105wum-nw0.
    • Gidugang nga suporta alang sa mga ARM boards ug platform Renesas "RZ/G1H", Realtek RTD1195, Realtek RTD1395/RTD1619, Rockchips RK3326, AMLogic S905D, S905X3, S922XH, Olimex A20-OLinuXino-LIME-eMMino-LIME-eMM
      , Beacon i.MX8m-Mini, Qualcomm SDM660/SDM630, Xnano X5 TV Box, Stinger96, Beaglebone-AI.

    • Gidugang nga suporta alang sa MIPS processor nga Loongson-2K (pinamubo nga Loongson64). Alang sa CPU Loongson 3, ang suporta alang sa virtualization gamit ang KVM hypervisor gidugang.
    • Gidugang
      suporta alang sa Russian Baikal-T1 processor ug ang system-on-chip nga gibase niini BE-T1000. Ang Baikal-T1 processor adunay duha ka P5600 MIPS 32 r5 superscalar cores nga naglihok sa 1.2 GHz. Ang chip adunay L2 cache (1 MB), DDR3-1600 ECC memory controller, 1 10Gb Ethernet port, 2 1Gb Ethernet port, PCIe Gen.3 x4 controller, 2 SATA 3.0 ports, USB 2.0, GPIO, UART, SPI, I2C. Naghatag ang processor og suporta sa hardware alang sa virtualization, mga instruksyon sa SIMD ug usa ka integrated hardware cryptographic accelerator nga nagsuporta sa GOST 28147-89. Ang chip gihimo gamit ang MIPS32 P5600 Warrior processor core unit nga lisensyado gikan sa Imagination Technologies.

Sa samang higayon, ang Latin American Free Software Foundation naporma
kapilian bug-os nga libre nga kernel 5.8 - Linux-libre 5.8-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 nagpugong sa pag-load sa blob sa mga drayber alang sa Atom ISP Video, MediaTek 7663 USB/7915 PCIe, Realtek 8723DE WiFi, Renesas PCI xHCI, HabanaLabs Gaudi, Enhanced Asynchronous Sample Rate Converter, Maxim Integrated MAX98390 Speaker Aimplifier, Microsemi Processor ZL38060 Home Connector ug I2C EEPROM Ulipon. Gi-update nga blob cleaning code sa Adreno GPU, HabanaLabs Goya, x86 touchscreen, vt6656 ug btbcm nga mga drayber ug subsystem.

Source: opennet.ru

Idugang sa usa ka comment