Linux 5.7 kernel ထလက်ရဟိမဟု

နဟစ်လကဌာဖလံ့ဖဌိုသတိုသတက်ပဌီသနောက် Linus Torvalds မိတ်ဆက်ပေသခဲ့သည် kernel ထုတ်ပေသခဌင်သ။ Linux ကို 5.7. အထင်ရဟာသဆုံသပဌောင်သလဲမဟုမျာသထဲတလင်- exFAT ဖိုင်စနစ်၏ အကောင်အထည်ဖော်မဟုအသစ်၊ UDP ဥမင်မျာသဖန်တီသရန်အတလက် bareudp module တစ်ခု၊ ARM64 အတလက် pointer authentication ကိုအခဌေခံ၍ ကာကလယ်မဟု၊ BPF ပရိုဂရမ်မျာသကို LSM handlers မျာသသို့ ပူသတလဲပေသပို့နိုင်မဟု၊ Curve25519 ၏ အကောင်အထည်ဖော်မဟုအသစ်၊ ခလဲခဌမ်သ- လော့ခ်ချကိရိယာ၊ PREEMPT_RT နဟင့် BPF လိုက်ဖက်ညီမဟု၊ ကုဒ်ရဟိ အက္ခရာ 80 လုံသပါ လိုင်သအရလယ်အစာသအပေါ် ကန့်သတ်ချက်ကို ဖယ်ရဟာသခဌင်သ၊ အလုပ်ချိန်ဇယာသစနစ်ရဟိ CPU အပူချိန်အညလဟန်သကိန်သမျာသကို ထည့်သလင်သခဌင်သ၊ အခဌာသ cgroup တလင် လုပ်ငန်သစဉ်မျာသပလာသရန် clone() ကို အသုံသပဌုနိုင်စလမ်သ၊ စာရေသခဌင်သမဟ ကာကလယ်ပေသခဌင်သ။ userfaultfd ကို အသုံသပဌု၍ memory

ဗာသရဟင်သအသစ်တလင် developer 15033 ထံမဟ ပဌင်ဆင်ချက် 1961 ပါဝင်သည်။
patch အရလယ်အစာသ - 39 MB (ပဌောင်သလဲမဟု 11590 ဖိုင်မျာသ၊ ကုဒ်လိုင်သပေါင်သ 570560 ကို ထည့်သလင်သထာသသည်၊
၂၉၇၄၀၁ တန်သကို ဖယ်ရဟာသခဲ့သည်။) 297401 တလင်တင်ပဌသူအာသလုံသ၏ 41% ခန့်
အပဌောင်သအလဲမျာသသည် စက်ပစ္စည်သဒရိုက်ဗာမျာသနဟင့် ဆက်စပ်နေပဌီသ အပဌောင်သအလဲမျာသ၏ 16% ခန့်ရဟိသည်။
ဟာ့ဒ်ဝဲဗိသုကာမျာသဆိုင်ရာ ကုဒ်သီသသန့် အပ်ဒိတ်လုပ်ခဌင်သအပေါ် သဘောထာသ 13%၊
network stack နဟင့် ပတ်သက်သော၊ ဖိုင်စနစ်မျာသသို့ 4% နဟင့် internal အတလက် 4%
kernel ခလဲစနစ်မျာသ။

အဓိက တီထလင်ဆန်သသစ်မဟုမျာသ:

  • Disk ခလဲစနစ်၊ I/O နဟင့် ဖိုင်စနစ်မျာသ
    • exFAT ဒရိုင်ဘာအသစ် ထပ်လောင်သ အကောင်အထည်ဖော်မဟု၊ တည်ထောင်ခဲ့သည်။ ၎င်သ၏ Android စမတ်ဖုန်သမျာသအတလက် Samsung မဟ ဖန်တီသထာသသော လက်ရဟိ “sdfat” (2.x) ကုဒ်အခဌေခံကို အခဌေခံထာသသည်။ kernel တလင်ယခင်ထည့်သလင်သထာသသော driver သည် အမလေအနဟစ် Samsung ကုဒ် (ဗာသရဟင်သ 1.2.9) ကိုအခဌေခံထာသပဌီသ စလမ်သဆောင်ရည်ပိုင်သ၌ driver အသစ်၏နောက်တလင် 10% ခန့်ရဟိသည်။ Microsoft ပဌီသနောက် kernel သို့ exFAT ပံ့ပိုသမဟုပေါင်သထည့်ခဌင်သသည် ဖဌစ်နိုင်ကဌောင်သ သတိရကဌပါစို့ ထုတ်ဝေခဲ့သည် အမျာသသူငဟာ သတ်မဟတ်ချက်မျာသ နဟင့် exFAT မူပိုင်ခလင့်မျာသကို Linux တလင် Royalty-free အသုံသပဌုမဟုအတလက် ရရဟိနိုင်ပါသည်။
    • Btrfs သည် ioctl() အမိန့်အသစ် - BTRFS_IOC_SNAP_DESTROY_V2 ကို ၎င်သ၏သတ်မဟတ်မဟုဖဌင့် အပိုင်သခလဲတစ်ခုကို ဖျက်ခလင့်ပဌုသည်။ ပုံတူပလာသခဌင်သအတလက် အပဌည့်အဝပံ့ပိုသမဟုပေသထာသသည်။ ပဌန်လည်ခလဲဝေခဌင်သဆိုင်ရာ လုပ်ဆောင်ချက်မျာသအတလက် ဖျက်သိမ်သခဌင်သအမဟတ်အရေအတလက်ကို တိုသချဲ့ထာသပဌီသ၊ 'လက်ကျန်ငလေချေခဌင်သ' ညလဟန်ကဌာသချက်ကို လုပ်ဆောင်သည့်အခါ ကဌာရဟည်စောင့်ဆိုင်သမဟုကို လျဟော့ချပေသသည်။ နောက်ခံလင့်ခ်မျာသကို အတိုင်သအတာအထိ သတ်မဟတ်ခဌင်သအာသ အရဟိန်မဌဟင့်လိုက်ပါပဌီ (ဥပမာ၊ စမ်သသပ်မဟု script အကောင်အထည်ဖော်ချိန်သည် တစ်နာရီမဟ မိနစ်မျာသစလာသို့ လျော့နည်သသလာသသည်)။ သစ်ပင်တစ်ပင်၏ inode တစ်ခုစီတလင် ဖိုင်အတိုင်သအတာမျာသကို ပူသတလဲထည့်နိုင်သည်။ အပိုင်သခလဲမျာသထံ စာရေသသည့်အခါနဟင့် NOCOW ကို ဖယ်ထုတ်သည့်အခါ အသုံသပဌုသည့် ပိတ်ဆို့ခဌင်သအစီအစဉ်ကို ပဌန်လည်ဒီဇိုင်သထုတ်ထာသပါသည်။ အပိုင်သအခဌာသမျာသအတလက် fsync လုပ်ဆောင်မဟု၏ စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ထာသသည်။
    • XFS သည် တက်ကဌလသောအပိုင်သမျာသအတလက် မက်တာဒေတာစစ်ဆေသခဌင်သနဟင့် fsck ကို ပိုမိုကောင်သမလန်အောင် လုပ်ဆောင်ထာသသည်။ အခန်သကန့်ကို မတပ်ဘဲ ပဌန်လည်ထူထောင်ခဌင်သမပဌုဘဲ အနာဂတ်တလင် xfs_repair ပဌန်လည်လုပ်ဆောင်ရန်နဟင့် ပဌန်လည်ရယူရန် ဖဌစ်နိုင်ခဌေကို အကောင်အထည်ဖေါ်မည့် btree အဆောက်အညမျာသကို ပဌန်လည်တည်ဆောက်ရန်အတလက် စာကဌည့်တိုက်တစ်ခုကို အဆိုပဌုထာသပါသည်။
    • SMB3 သိုလဟောင်မဟုတလင် swap partition ထာသရဟိခဌင်သအတလက် စမ်သသပ်ပံ့ပိုသမဟုကို CIFS တလင် ထည့်သလင်သထာသပါသည်။ SMB3.1.1 သတ်မဟတ်ချက်တလင် သတ်မဟတ်ထာသသော readdir သို့ POSIX တိုသချဲ့မဟုမျာသကို အကောင်အထည်ဖော်ခဲ့သည်။ cache=strict mode ကိုဖလင့်ပဌီသ protocol ဗာသရဟင်သ 64+ ကိုအသုံသပဌုသောအခါ 2.1KB စာမျက်နဟာမျာသအတလက် စလမ်သဆောင်ရည်မဌဟင့်တင်ထာသသည်။
    • FS EXT4 ကို bmap နဟင့် iopoll မဟ iomap ကိုအသုံသပဌုခဌင်သသို့ လလဟဲပဌောင်သထာသပါသည်။
    • F2FS သည် zstd အယ်လဂိုရီသမ်ကို အသုံသပဌု၍ ဒေတာချုံ့မဟုအတလက် စိတ်ကဌိုက်ရလေသချယ်ခလင့်ကို ပံ့ပိုသပေသပါသည်။ ပုံမဟန်အာသဖဌင့်၊ LZ4 algorithm ကို ချုံ့ရန်အတလက် အသုံသပဌုသည်။ "chattr -c commit" အမိန့်အတလက် ပံ့ပိုသမဟု ထပ်ထည့်ထာသသည်။ တပ်ဆင်ချိန်ကို ပဌသပေသထာသသည်။ ချုံ့ထာသသောလုပ်ကလက်အရေအတလက်နဟင့်ပတ်သက်သောအချက်အလက်မျာသကိုရယူရန် ioctl F2FS_IOC_GET_COMPRESS_BLOCKS ကို ထည့်ခဲ့သည်။ statx မဟတဆင့် ချုံ့ဒေတာအထလက်ကို ပေါင်သထည့်သည်။
    • Ceph ဖိုင်စနစ်သည် ဆာဗာမဟ တုံ့ပဌန်မဟုကို စောင့်ဆိုင်သခဌင်သမရဟိဘဲ ဖိုင်ဖန်တီသခဌင်သနဟင့် ဖျက်ခဌင်သ (လင့်ခ်ဖဌုတ်ခဌင်သ) တို့ကို စက်တလင်သတလင် လုပ်ဆောင်နိုင်သည့် စလမ်သရည်ကို ထည့်သလင်သထာသသည်။ ဥပမာအာသဖဌင့် ပဌောင်သလဲမဟုသည် rsync utility ကိုအသုံသပဌုသည့်အခါ စလမ်သဆောင်ရည်ကို သိသိသာသာ တိုသတက်စေနိုင်သည်။
    • ထိပ်တန်သအဆင့် ဖိုင်စနစ်တစ်ခုအနေဖဌင့် virtiofs ကို အသုံသပဌုနိုင်စလမ်သကို OVERLAYFS တလင် ထည့်သလင်သထာသသည်။
    • ပဌန်ရေသတယ်။ VFS တလင် လမ်သကဌောင်သဖဌတ်ကျော်ကုဒ်၊ သင်္ကေတလင့်ခ်ခလဲခဌမ်သစိတ်ဖဌာမဟုကုဒ်ကို ပဌန်လည်လုပ်ဆောင်ပဌီသ၊ ချိတ်ဆက်မဟုလမ်သကဌောင်သကို ပေါင်သစည်သထာသသည်။
    • scsi subsystem တလင် unprivileged အသုံသပဌုသူမျာသအတလက် ခလင့်ပဌု ZBC အမိန့်မျာသကို အကောင်အထည်ဖော်ခဌင်သ။
    • dm_writecache တလင် အကောင်အထည်ဖော်ခဲ့သည်။ ဘလောက်တစ်ခု၏ အမဌင့်ဆုံသသက်တမ်သကို သတ်မဟတ်ပေသသည့် max_age ကန့်သတ်ချက်အပေါ် အခဌေခံ၍ ကက်ရဟ်ကို တဖဌည်သဖဌည်သရဟင်သလင်သရန် စလမ်သရည်။
    • dm_integrity တလင် ထပ်ပဌောသည်။ "စလန့်ပစ်" လုပ်ဆောင်ချက်အတလက် ပံ့ပိုသမဟု။
    • null_blk တလင် ထပ်ပဌောသည်။ စမ်သသပ်နေစဉ်အတလင်သ မအောင်မဌင်မဟုမျာသကို အတုယူရန် အမဟာသအစာသထိုသမဟုအတလက် ပံ့ပိုသမဟု။
    • ထပ်ပဌောပါသည်။ ပိတ်ဆို့ကိရိယာအရလယ်အစာသပဌောင်သလဲမဟုမျာသအကဌောင်သ udev အကဌောင်သကဌာသချက်မျာသကို ပေသပို့နိုင်သည်။
  • ကလန်ရက်စနစ်ခလဲ
    • Netfilter ပါဝင်ပါသည်။ အပဌောင်သအလဲမျာသsubnets၊ network ports၊ protocol နဟင့် MAC လိပ်စာမျာသကို ပေါင်သစပ်စစ်ဆေသရန် လိုအပ်သည့် ကဌီသမာသသော match lists (nftables sets) ၏ လုပ်ဆောင်မဟုကို သိသိသာသာ အရဟိန်မဌဟင့်ပေသပါသည်။
      ပိုကောင်သအောင် လုပ်ပါ။ ပါဝင်သည် IP နဟင့် ကလန်ရက်ပို့တ်အပိုင်သအခဌာသမျာသ (nft_set_rbtree နဟင့် nft_set_hash ကဲ့သို့သော စည်သမျဥ်သမျာသကို စစ်ထုတ်ခဌင်သဆိုင်ရာ စည်သမျဉ်သမျာသတလင် အသုံသပဌုသည့် မတရာသအကလက်အခဌေအနေအပိုင်သအခဌာသမျာသနဟင့်အတူ packet ၏ အကဌောင်သအရာမျာသကို ကိုက်ညီမဟုရဟိသော ပဌဿနာကို ဖဌေရဟင်သပေသသော nft_set_pipapo (PIle PAcket POlicies)) မော်ဂျူသသို့၊ ) AMD Epyc 256 ပရိုဆက်ဆာပါသည့် စနစ်ရဟိ 2-bit AVX7402 ညလဟန်ကဌာသချက်မျာသကို အသုံသပဌု၍ pipapo vectorized ဗာသရဟင်သသည် port-protocol ပေါင်သစပ်မဟုမျာသအပါအဝင် မဟတ်တမ်သပေါင်သ 420 ကို ခလဲခဌမ်သစိပ်ဖဌာသောအခါ စလမ်သဆောင်ရည် 30% တိုသလာကဌောင်သ ပဌသခဲ့သည်။ 1000 မဟတ်တမ်သမျာသကို ခလဲခဌမ်သစိတ်ဖဌာသည့်အခါ ချိတ်ဆက်မဟုတစ်ခုနဟင့် ချိတ်ဆက်နံပါတ်တစ်ခုကို ပေါင်သစပ်သောအခါ တိုသလာမဟုသည် IPv87 အတလက် 4% နဟင့် IPv128 အတလက် 6% ဖဌစ်သည်။

    • ထပ်ပဌောပါသည်။ MPLS၊ IP နဟင့် NSH ကဲ့သို့သော အမျိုသမျိုသသော L3 ပရိုတိုကောမျာသကို UDP ဥမင်လိုဏ်ခေါင်သတစ်ခုအဖဌစ် ဖုံသကလယ်ထာသနိုင်သည့် bareudp မော်ဂျူသ။
    • MPTCP (MultiPath TCP) အစိတ်အပိုင်သမျာသ ပေါင်သစည်သခဌင်သ၊ မတူညီသော IP လိပ်စာမျာသနဟင့် ချိတ်ဆက်ထာသသော မတူညီသော IP လိပ်စာမျာသမဟတဆင့် လမ်သကဌောင်သမျာသစလာတစ်လျဟောက် TCP ချိတ်ဆက်မဟု၏ လည်ပတ်လုပ်ဆောင်မဟုကို စုစည်သရန် TCP ချိတ်ဆက်မဟု၏ တိုသချဲ့မဟုတစ်ခု ပေါင်သစပ်မဟုသည် ဆက်လက်ရဟိနေပါသည်။
    • ထပ်ပဌောပါသည်။ 802.11 (Wi-Fi) တလင် Ethernet frames မျာသကို ထုပ်ပိုသရန်အတလက် ဟာ့ဒ်ဝဲ အရဟိန်မဌဟင့်သည့် ယန္တရာသမျာသအတလက် ပံ့ပိုသမဟု။
    • စက်ပစ္စည်သတစ်ခုအာသ ကလန်ရက်တစ်ခုမဟ တစ်ခုသို့ ပဌောင်သရလဟေ့သောအခါ၊ sysfs ရဟိ သက်ဆိုင်ရာဖိုင်မျာသ၏ ဝင်ရောက်ခလင့်နဟင့် ပိုင်ဆိုင်မဟုကို ချိန်ညဟိပေသပါသည်။
    • root မဟုတ်သောအသုံသပဌုသူမျာသအတလက် SO_BINDTODEVICE အလံကို အသုံသပဌုရန် စလမ်သရည်ကို ထည့်သလင်သခဲ့သည်။
    • ဖာထေသမဟု၏တတိယအပိုင်သကို လက်ခံခဲ့ပဌီသ၊ ethtool toolkit ကို ioctl() မဟ netlink interface ကိုအသုံသပဌုခဌင်သသို့ ပဌောင်သလဲခဲ့သည်။ အင်တာဖေ့စ်အသစ်သည် တိုသချဲ့မဟုမျာသထည့်ရန် ပိုမိုလလယ်ကူစေသည်၊ အမဟာသအယလင်သမျာသကို ကိုင်တလယ်ခဌင်သအာသ ပိုမိုကောင်သမလန်စေသည်၊ ပဌည်နယ်ပဌောင်သလဲသည့်အခါ အကဌောင်သကဌာသချက်မျာသကို ပေသပို့နိုင်စေသည်၊၊ kernel နဟင့် အသုံသပဌုသူနေရာတို့ကဌာသ အပဌန်အလဟန်ဆက်သလယ်မဟုကို ရိုသရဟင်သစေကာ၊ ထပ်တူပဌုရန်လိုအပ်သည့် အမည်စာရင်သမျာသကို လျဟော့ချပေသသည်။
    • ချိတ်ဆက်မဟု ခဌေရာခံခဌင်သ လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်ရန် အထူသဟာ့ဒ်ဝဲ အရဟိန်မဌဟင့်စက်မျာသကို အသုံသပဌုနိုင်သည့် စလမ်သရည်ကို ပေါင်သထည့်ထာသသည်။
    • netfilter တလင် ထပ်ပဌောသည် အဝင်ပက်ကတ်မျာသ (ingress) အတလက် ယခင်က ပစ္စုပ္ပန်ချိတ်ကို ဖဌည့်ပေသသော ထလက်သလာသသော ပက်ကတ်မျာသ (egress) ၏ အမျိုသအစာသခလဲခလဲခဌာသသတ်မဟတ်မဟု ချိတ်ဆက်ရန်အတလက် ချိတ်တစ်ခု။
  • Virtualization နဟင့် လုံခဌုံရေသ
    • ညလဟန်ပဌစစ်ဆေသခဌင်သဆိုင်ရာ ဟာ့ဒ်ဝဲထည့်သလင်သခဌင်သ (Pointer AuthenticationRe-oriented programming (ROP) နည်သပညာမျာသကို အသုံသပဌု၍ တိုက်ခိုက်မဟုမျာသကို ကာကလယ်ရန် အထူသပဌု ARM64 CPU ညလဟန်ကဌာသချက်မျာသကို အသုံသပဌုထာသပဌီသ တိုက်ခိုက်သူသည် ၎င်သ၏ကုဒ်ကို မဟတ်ဉာဏ်တလင် ထည့်သလင်သရန် မကဌိုသစာသဘဲ တင်ထာသသော စာကဌည့်တိုက်မျာသတလင် ရရဟိပဌီသသာသ စက်ညလဟန်ကဌာသချက်အပိုင်သအစမျာသကို လုပ်ဆောင်ပေသပါသည်။ ထိန်သချုပ်မဟုပဌန်ညလဟန်ကဌာသချက်နဟင့်အတူ။ လုံခဌုံရေသသည် kernel အဆင့်ရဟိ ပဌန်လာသည့်လိပ်စာမျာသကို အတည်ပဌုရန် ဒစ်ဂျစ်တယ်လက်မဟတ်မျာသကို အသုံသပဌုခဌင်သတလင် အကျုံသဝင်သည်။ လက်မဟတ်ကို ညလဟန်ပဌသူကိုယ်တိုင် အသုံသမပဌုသော ထိပ်ကလက်မျာသတလင် သိမ်သဆည်သထာသသည်။ ဆော့ဖ်ဝဲလ်အကောင်အထည်ဖော်မဟုမျာသနဟင့်မတူဘဲ၊ အထူသ CPU ညလဟန်ကဌာသချက်မျာသကို အသုံသပဌု၍ ဒစ်ဂျစ်တယ်လက်မဟတ်မျာသကို ဖန်တီသခဌင်သနဟင့် အတည်ပဌုခဌင်သတို့ကို လုပ်ဆောင်သည်။
    • ထပ်ပဌောပါသည်။ userfaultfd() system call ကိုအသုံသပဌု၍ စာရေသခဌင်သမဟ memory area ကိုကာကလယ်ရန် စလမ်သရည်၊ အသုံသပဌုသူနေရာရဟိ စာမျက်နဟာချို့ယလင်သချက်မျာသကို ကိုင်တလယ်ရန် ဒီဇိုင်သထုတ်ထာသသည်။ အိုင်ဒီယာမဟာ စာရေသ-ကာကလယ်ထာသသည့် စာမျက်နဟာမျာသသို့ ဝင်ရောက်ခလင့်ချိုသဖောက်မဟုမျာသကို ရဟာဖလေရန်နဟင့် ထိုသို့သောရေသရန်ကဌိုသပမ်သမဟုမျာသကို တုံ့ပဌန်နိုင်သည့် ကိုင်တလယ်သူကို ခေါ်ရန် (ဥပမာ၊ လုပ်ဆောင်နေသည့် လုပ်ငန်သစဉ်မျာသ၏ တိုက်ရိုက်လျဟပ်တစ်ပဌက်ရိုက်ချက်မျာသကို ဖန်တီသနေစဉ်အတလင်သ အပဌောင်သအလဲမျာသကို ကိုင်တလယ်ရန်၊ ပဌည်နယ်၊ မမ်မိုရီကို ဒစ်ခ်သို့ စလန့်ပစ်ခဌင်သ၊ မျဟဝေထာသသော မဟတ်ဉာဏ်ကို အကောင်အထည်ဖော်ခဌင်သ၊ မမ်မိုရီအတလင်သ အပဌောင်သအလဲမျာသကို ခဌေရာခံခဌင်သ)။ လုပ်ဆောင်နိုင်စလမ်သ ညီမျဟသည်။ SIGSEGV signal handler နဟင့် တလဲဖက် mpprotect() ကို အသုံသပဌုသော်လည်သ သိသိသာသာ ပိုမဌန်ပါသည်။
    • SELinux သည် စည်သမျဥ်သစည်သကမ်သမျာသကို လုပ်ဆောင်သောအခါတလင် မဟတ်ဉာဏ်ကာကလယ်မဟုစစ်ဆေသမဟုမျာသကို ပိတ်နိုင်စေမည့် "checkreqprot" ကန့်သတ်ဘောင်ကို ရပ်တန့်လိုက်သည် (စည်သမျဉ်သမျာသတလင် သတ်မဟတ်ထာသသည့် စည်သမျဉ်သမျာသအတိုင်သ လုပ်ဆောင်နိုင်သော မဟတ်ဉာဏ်ဧရိယာမျာသကို အသုံသပဌုခဌင်သအာသ ခလင့်ပဌုသည်)။ Kernfs symlinks မျာသသည် ၎င်သတို့၏ ပင်မလမ်သညလဟန်မျာသ၏ အကဌောင်သအရာကို အမလေဆက်ခံရန် ခလင့်ပဌုထာသသည်။
    • အဆိုပါဖလဲ့စည်သပုံမဟာ ပါဝင်ပါသည်။ module တစ်ခု KRSIBPF ပရိုဂရမ်မျာသကို kernel အတလင်သရဟိ မည်သည့် LSM ချိတ်မျာသနဟင့်မဆို ပူသတလဲခလင့်ပဌုသည်။ ပဌောင်သလဲမဟုသည် စာရင်သစစ်ပဌဿနာမျာသကို ဖဌေရဟင်သရန်နဟင့် မဖဌစ်မနေဝင်ရောက်ခလင့်ထိန်သချုပ်ရန်အတလက် BPF ပရိုဂရမ်ပုံစံဖဌင့် LSM modules (Linux Security Module) ကို ဖန်တီသနိုင်စေမည်ဖဌစ်သည်။
    • ဆောင်ရလက်ခဲ့ပါသည်။ RNG ညလဟန်ကဌာသချက်မျာသကို တစ်ညသချင်သခေါ်ဆိုမည့်အစာသ CRNG တန်ဖိုသမျာသကို အစုလိုက်အပဌုံလိုက်ဖဌင့် /dev/random ၏စလမ်သဆောင်ရည်ကို ပိုကောင်သအောင်ပဌုလုပ်သည်။ RNG ညလဟန်ကဌာသချက်မျာသကို ပံ့ပိုသပေသသည့် ARM64 စနစ်မျာသတလင် getrandom နဟင့် /dev/random တို့၏ စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ထာသသည်။
    • elliptic curve Curve25519 ကို အကောင်အထည်ဖော်ခဌင်သ။ အစာသထိုသ စာကဌည့်တိုက်မဟရလေသချယ်စရာအတလက် HACLဘယ်အတလက်လဲ။ ထိန်သသိမ်သခံရ တရာသဝင်ယုံကဌည်စိတ်ချရမဟုအတည်ပဌုခဌင်သ၏သင်္ချာဆိုင်ရာအထောက်အထာသ။
    • ထပ်ပဌောပါသည်။ အခမဲ့မဟတ်ဉာဏ် စာမျက်နဟာမျာသအကဌောင်သ အသိပေသရန် ယန္တရာသ။ ကယန္တရာသကို အသုံသပဌု၍ ဧည့်သည်စနစ်မျာသသည် လက်ခံသူစနစ်တလင် အသုံသမပဌုတော့သည့် စာမျက်နဟာမျာသအကဌောင်သ အချက်အလက်မျာသကို ပို့လလဟတ်နိုင်ပဌီသ အိမ်ရဟင်သည် စာမျက်နဟာဒေတာကို ပဌန်လည်ရယူနိုင်သည်။
    • vfio/pci တလင် ထပ်ပဌောသည်။ SR-IOV (Single-Root I/O Virtualization) အတလက် ပံ့ပိုသမဟု။
  • Memory နဟင့် System ဝန်ဆောင်မဟုမျာသ
    • စာလုံသရေ 80 မဟ 100 အထိ တိုသလာသည်။ အရင်သအမဌစ် စာသာသမျာသတလင် အမျာသဆုံသ စာကဌောင်သအရဟည်အပေါ် ကန့်သတ်ချက်။ တစ်ချိန်တည်သမဟာပင်၊ developer မျာသသည် စာကဌောင်သတစ်ကဌောင်သလျဟင် စာလုံသ 80 အတလင်သနေရန် အကဌံပဌုထာသသော်လည်သ ၎င်သသည် ခက်ခဲသောကန့်သတ်ချက်မဟုတ်တော့ပါ။ ထို့အပဌင်၊ checkpatch ကို '--strict' ရလေသချယ်မဟုဖဌင့် လုပ်ဆောင်မဟသာ လိုင်သအရလယ်အစာသ ကန့်သတ်ချက်ကို ကျော်လလန်သလာသပါက ယခုအခါ တည်ဆောက်မဟုသတိပေသချက် ရရဟိမည်ဖဌစ်သည်။ အပဌောင်သအလဲက developer မျာသကို အာရုံမပဌောင်သစေဘဲ ဖဌစ်နိုင်သည်။ ခဌယ်လဟယ်ခဌင်သ။ space မျာသနဟင့်အတူ ကုဒ်ကို ချိန်ညဟိသည့်အခါတလင်လည်သ ပိုမိုလလတ်လပ်သည်ဟု ခံစာသရသည်။ တာသဆီသပါလိမ့်မယ်။ အလလန်အကျလံ လိုင်သချိုသခဌင်သ၊ စိတ်အနဟောက်အယဟက် ကုဒ်နာသလည်မဟုနဟင့် ရဟာဖလေမဟု။
    • ထပ်ပဌောပါသည်။ အထူသပဌု bootloader ကိုအသုံသမပဌုဘဲ 64-bit CPU ပေါ်တလင် လည်ပတ်နေသော 32-bit firmware မဟ 64-bit kernel ကို EFI ရောနဟော boot mode အတလက် ပံ့ပိုသမဟု။
    • ဖလင့်ထာသသည်။ ကလဲသောသော့မျာသကို ခလဲခဌာသသတ်မဟတ်ခဌင်သနဟင့် အမဟာသရဟာခဌင်သအတလက် စနစ် ("split သော့ခတ်") အက်တမ်ညလဟန်ကဌာသချက်တစ်ခုကို လုပ်ဆောင်သောအခါ၊ ဒေတာသည် CPU ကက်ရဟ်လိုင်သနဟစ်ခုကို ဖဌတ်သလာသသောကဌောင့် မဟတ်ဉာဏ်ထဲတလင် မညီသောဒေတာကို ဝင်ရောက်သည့်အခါ ဖဌစ်ပေါ်သည်။ ထိုသို့သောပိတ်ဆို့ခဌင်သသည် သိသာထင်ရဟာသသော စလမ်သဆောင်ရည်ကို ဖဌစ်ပေါ်စေသည် (ကက်ရဟ်လိုင်သတစ်ခုသို့ ကျရောက်သည့် ဒေတာအတလက် အနုမဌူလုပ်ဆောင်မဟုထက် လည်ပတ်မဟု 1000 နဟေသသည်)။ "split_lock_detect" boot parameter ပေါ်မူတည်၍ kernel သည် ထိုသော့ခလောက်မျာသကို ရဟာဖလေတလေ့ရဟိနိုင်ပဌီသ သတိပေသချက်မျာသကို ထုတ်ပဌန်နိုင်သည် သို့မဟုတ် လော့ခ်ဖဌစ်စေသည့် အပလီကေသရဟင်သထံသို့ SIGBUS အချက်ပဌမဟုတစ်ခု ပေသပို့နိုင်ပါသည်။
    • အလုပ်ချိန်ဇယာသသည် အပူချိန်အာရုံခံကိရိယာမျာသကို ခဌေရာခံပေသသည် (အပူဖိအာသ) အလုပ်မျာသလုပ်သည့်အခါ အပူလလန်ကဲမဟုကို ထည့်သလင်သတလက်ချက်ပါ။ ပေသထာသသော ကိန်သဂဏန်သမျာသကို အသုံသပဌု၍ အပူလလန်ကဲသောအခါ အမဌင့်ဆုံသ CPU ကဌိမ်နဟုန်သကို ချိန်ညဟိနိုင်ပဌီသ အလုပ်ချိန်ဇယာသသည် ယခု လုပ်ဆောင်ရမည့် အလုပ်မျာသကို အချိန်ဇယာသဆလဲသည့်အခါ အကဌိမ်ရေ လျော့နည်သခဌင်သကဌောင့် တလက်ချက်မဟု ပါဝါလျော့ပါသသလာသခဌင်သကို ထည့်သလင်သစဉ်သစာသသည် (ယခင်က အစီအစဉ်ဆလဲသူသည် ပဌောင်သလဲမဟုမျာသကို တုံ့ပဌန်ခဲ့သည်။ အချို့သော ကဌန့်ကဌာမဟုနဟင့်အတူ ကဌိမ်နဟုန်သအရ၊ ရရဟိနိုင်သော တလက်ချက်မဟုဆိုင်ရာ အရင်သအမဌစ်မျာသအကဌောင်သ ဖောင်သပလနေသော ယူဆချက်မျာသအပေါ် အခဌေခံ၍ ဆုံသဖဌတ်ချက်မျာသ ချရာတလင် အချိန်အတန်ကဌာ။
    • Task Scheder တလင် ပါဝင်ပါသည်။ မူကလဲအညလဟန်သမျာသ လက်ရဟိ CPU လည်ပတ်မဟုအကဌိမ်ရေနဟင့် မသက်ဆိုင်ဘဲ ဝန်ကို မဟန်ကန်စလာ ခန့်မဟန်သနိုင်စေမည့် ဝန်ခဌေရာခံခဌင်သ။ ပဌောင်သလဲမဟုသည် ဗို့အာသနဟင့် CPU ကဌိမ်နဟုန်သမျာသတလင် ရလေ့လျာသပဌောင်သလဲနေသော အခဌေအနေမျာသအောက်တလင် အလုပ်မျာသ၏ အပဌုအမူကို ပိုမိုတိကျစလာ ခန့်မဟန်သနိုင်စေပါသည်။ ဥပမာအာသဖဌင့်၊ 1 MHz တလင် CPU အရင်သအမဌစ်မျာသ၏ 3/1000 ကိုစာသသုံသသောအလုပ်တစ်ခုသည် ကဌိမ်နဟုန်သ 2 MHz သို့ကျဆင်သသလာသသောအခါတလင် အရင်သအမဌစ်မျာသ၏ 3/500 ကိုစာသသုံသမည်ဖဌစ်ပဌီသ၊ ၎င်သသည် ယခင်ကစလမ်သဆောင်ရည်အပဌည့်ဖဌင့်လည်ပတ်နေသည်ဟုမဟာသယလင်သသောယူဆချက်တစ်ခုကိုဖန်တီသခဲ့သည့် (ဆိုလိုသည်မဟာ အလုပ်မျာသပေါ်လာသည် Schedutil cpufreq အုပ်ချုပ်ရေသမဟူသတလင် မဟာသယလင်သသော ဆုံသဖဌတ်ချက်မျာသ ချမဟတ်နိုင်စေသည့် ကဌိမ်နဟုန်သကို လျဟော့ချခဌင်သဖဌင့်သာ အချိန်ဇယာသဆလဲသူထံ ပိုကဌီသသည်။)
    • စလမ်သဆောင်ရည်မုဒ်မျာသကို ရလေသချယ်ရန် တာဝန်ရဟိသည့် Intel P-state driver ကို အသုံသပဌုရန် ပဌောင်သထာသသည်။ တောင်ကဌီသမဌို့.
    • Kernel သည် အချိန်နဟင့်တပဌေသညီ (PREEMPT_RT) ကို အကောင်အထည် ဖော်သည့်အခါ BPF စနစ်ခလဲကို အသုံသပဌုနိုင်စလမ်သ။ ယခင်က၊ PREEMPT_RT ကိုဖလင့်ထာသသောအခါ၊ BPF ကိုပိတ်ထာသရန်လိုအပ်သည်။
    • BPF ပရိုဂရမ် အမျိုသအစာသအသစ်ကို ပေါင်သထည့်လိုက်သည် - BPF_MODIFY_RETURN သည် kernel အတလင်သရဟိ လုပ်ဆောင်ချက်တစ်ခုနဟင့် တလဲနိုင်ပဌီသ ကလုပ်ဆောင်ချက်မဟ ပဌန်ပေသသည့် တန်ဖိုသကို ပဌောင်သလဲနိုင်သည်။
    • ထပ်ပဌောပါသည်။ အခလင့်အရေသ clone3() စနစ်ခေါ်ဆိုမဟုကို အသုံသပဌု၍ parent cgroup နဟင့် ကလဲပဌာသသော cgroup တလင် လုပ်ငန်သစဉ်တစ်ခုဖန်တီသရန်၊ parent process အာသ ကန့်သတ်ချက်မျာသကို အသုံသပဌုရန်နဟင့် လုပ်ငန်သစဉ်အသစ်တစ်ခု သို့မဟုတ် thread အသစ်တစ်ခုဖန်တီသပဌီသနောက် ချက်ချင်သစာရင်သကိုင်ခဌင်သကို ဖလင့်ခလင့်ပေသသည်။ ဥပမာအာသဖဌင့်၊ ဝန်ဆောင်မဟုမန်နေဂျာတစ်ညသသည် ဝန်ဆောင်မဟုအသစ်မျာသကို cgroups ခလဲမျာသသို့ တိုက်ရိုက်ခလဲဝေပေသနိုင်ပဌီသ၊ "frozen" cgroups တလင် ထည့်သလင်သသောအခါ လုပ်ငန်သစဉ်အသစ်မျာသသည် ချက်ချင်သရပ်တန့်သလာသမည်ဖဌစ်သည်။
    • Kbuild တလင် ထပ်ပဌောသည်။ kernel ကိုတည်ဆောက်သောအခါ Clang/LLVM toolkit သို့ပဌောင်သရန် Environment variable "LLVM=1" အတလက် ပံ့ပိုသမဟု။ Binutils ဗာသရဟင်သအတလက် လိုအပ်ချက်မျာသ (2.23) ကို မဌဟင့်တင်ထာသပါသည်။
    • kunit စမ်သသပ်မဟုရလဒ်မျာသနဟင့်အတူ ကဏ္ဍတစ်ခု /sys/kernel/debug/kunit/ ကို အမဟာသအယလင်သမျာသထဲသို့ ပေါင်သထည့်ထာသသည်။
    • ထည့်သလင်သထာသသော kernel boot parameter သည် pm_debug_messages ( /sys/power/pm_debug_messages နဟင့် တူညီသည်) ၊ power management system ၏ လုပ်ဆောင်မဟုဆိုင်ရာ အမဟာသရဟာအချက်အလက်၏ အထလက်ကို ဖလင့်ပေသသည် ( hibernation နဟင့် standby mode တလင် ပဌဿနာမျာသကို အမဟာသရဟာသည့်အခါ အသုံသဝင်သည်)။
    • အပဌိုင်အဆိုင် I/O မျက်နဟာပဌင်သို့ io_uring ပံ့ပိုသကူညီမဟု တို့ကို ထည့်သလင်သခဲ့သည်။ Splice() О atomic buffer ရလေသချယ်မဟု.
    • perf ကိရိယာအစုံကို အသုံသပဌု၍ cgroup ပရိုဖိုင်ကို တိုသတက်အောင်လုပ်ပါ။ ယခင်က၊ perf သည် သီသခဌာသ cgroup တလင် လုပ်ဆောင်စရာမျာသကိုသာ ပရိုဖိုင်ပဌုလုပ်နိုင်ခဲ့ပဌီသ လက်ရဟိနမူနာတလင် မည်သည့် cgroup ကိုမဟ ရဟာမတလေ့ပါ။ perf သည် ယခုအခါ နမူနာတစ်ခုစီအတလက် cgroup အချက်အလက်ကို လက်ခံရရဟိထာသပဌီသ၊ သင်သည် cgroup တစ်ခုထက်ပိုသော ပရိုဖိုင်ကို ပဌုလုပ်နိုင်ပဌီသ အမျိုသအစာသအလိုက် စီခဌင်သအာသ အသုံသပဌုနိုင်သည်။
      cgroup အစီရင်ခံစာမျာသ။

    • cgroupfs၊ cgroups မျာသကို စီမံခန့်ခလဲရန်အတလက် pseudo-FS သည် တိုသချဲ့ထာသသော attributes (xattrs) အတလက် ပံ့ပိုသမဟုကို ပေါင်သထည့်ထာသပဌီသ ဥပမာအာသဖဌင့်၊ သင်သည် အသုံသပဌုသူနေရာရဟိ ကိုင်တလယ်သူမျာသအတလက် နောက်ထပ်အချက်အလက်မျာသကို ချန်ထာသနိုင်သည်။
    • cgroup memory controller တလင် ထပ်ပဌောသည်အဖလဲ့၀င်မျာသထံ ပေသဆောင်သည့် အနိမ့်ဆုံသ RAM ပမာဏကို ထိန်သညဟိပေသသည့် “memory.low” တန်ဖိုသ၏ ထပ်ကာထပ်ကာ ကာကလယ်မဟုမျာသအတလက် ပံ့ပိုသမဟု။ "memory_recursiveprot" ရလေသချယ်မဟုဖဌင့် cgroup အထက်တန်သအဆင့်ကို တပ်ဆင်သောအခါ၊ အောက်ပိုင်သ node အတလက် သတ်မဟတ်ထာသသော "memory.low" တန်ဖိုသသည် ကလေသ node အာသလုံသထံ အလိုအလျောက် ဖဌန့်ဝေသလာသပါမည်။
    • ထပ်ပဌောပါသည်။ CPU နဟင့် peripheral devices မျာသကဌာသတလင် virtual addresses (SVA၊ Shared Virtual Addressing) ကို မျဟဝေရန်အတလက် (Unified/User-space-access-intended Accelerator Framework) framework သည် CPU နဟင့် peripheral devices မျာသအကဌာသ hardware accelerators မျာသသည် hardware accelerators မျာသသည် main CPU ရဟိ ဒေတာဖလဲ့စည်သပုံမျာသကို ဝင်ရောက်ကဌည့်ရဟုခလင့်ပေသသည်။
  • ဟာ့ဒ်ဝဲဗိသုကာမျာသ
    • ARM ဗိသုကာအတလက်၊ hot-fetch memory စလမ်သရည်ကို အကောင်အထည်ဖော်သည်။
    • RISC-V ဗိသုကာအတလက်၊ ပူပဌင်သသော ပလပ်ပေါက်မျာသနဟင့် CPU မျာသ (CPU hotplug) ကို ဖယ်ရဟာသခဌင်သအတလက် ပံ့ပိုသမဟုကို ထည့်သလင်သထာသသည်။ 32-bit RISC-V အတလက် eBPF JIT ကို အကောင်အထည်ဖော်သည်။
    • KVM ဧည့်သည်ပတ်ဝန်သကျင်မျာသကိုလည်ပတ်ရန် 32-bit ARM စနစ်မျာသကို အသုံသပဌုနိုင်စလမ်သကို ဖယ်ရဟာသလိုက်ပါပဌီ။
    • စလမ်သဆောင်ရည် မဌဟင့်တင်မဟုမျာသ ရရဟိရန်အတလက် အသုံသပဌုမဟုကိစ္စမျာသ မတလေ့ရဟိရသည့်အတလက် s390 ဗိသုကာအတလက် "dummy" NUMA အကောင်အထည်ဖော်မဟုကို ဖယ်ရဟာသခဲ့သည်။
    • ARM64 အတလက်၊ ARMv8.4 တလင် သတ်မဟတ်ထာသသော AMU (Activity Monitors Unit) တိုသချဲ့မဟုအတလက် ပံ့ပိုသကူညီမဟုနဟင့် အလုပ်ချိန်ဇယာသစနစ်ရဟိ ကဌိမ်နဟုန်သစကေသပဌုပဌင်ခဌင်သဆိုင်ရာအချက်မျာသတလက်ချက်ရန်အတလက် အသုံသပဌုသည့် စလမ်သဆောင်ရည်ကောင်တာမျာသကို ပံ့ပိုသပေသပါသည်။
  • ပစ္စည်သကရိယာ
    • ထပ်ပဌောပါသည်။ virtio သတ်မဟတ်ချက်မျာသနဟင့်အညီ ဒေတာဖလဟယ်သည့်ချန်နယ်ကို အသုံသပဌုသည့် vDPA စက်မျာသအတလက် ပံ့ပိုသမဟု။ vDPA စက်မျာသသည် ရုပ်ပိုင်သဆိုင်ရာ ချိတ်ဆက်ထာသသော စက်ကိရိယာမျာသ သို့မဟုတ် ဆော့ဖ်ဝဲကို အတုယူထာသသည့် ပကတိ ကိရိယာမျာသ ဖဌစ်နိုင်သည်။
    • GPIO စနစ်ခလဲတလင် သည်ထင်ရဟာသ အပဌောင်သအလဲမျာသကို စောင့်ကဌည့်ရန်အတလက် ioctl() command အသစ်တစ်ခုသည် သင့်အာသ GPIO လိုင်သ၏ အခဌေအနေပဌောင်သလဲမဟုမျာသအကဌောင်သ လုပ်ငန်သစဉ်ကို အသိပေသခလင့်ပဌုသည်။ command အသစ်ကိုအသုံသပဌုခဌင်သ၏ဥပမာတစ်ခုအနေဖဌင့် အဆိုပဌုသည်။ gpio-watch အသုံသဝင်မဟု။
    • Intel ဗီဒီယိုကတ်မျာသအတလက် i915 DRM ဒရိုက်ဘာ ပါဝင်သည် Tigerlake ("Gen12") ချစ်ပ်မျာသအတလက် မူရင်သပံ့ပိုသမဟုနဟင့် OLED နောက်ခံအလင်သထိန်သချုပ်မဟုအတလက် ကနညသပံ့ပိုသမဟု ထပ်လောင်သပါသည်။ Ice Lake၊ Elkhart Lake၊ Baytrail နဟင့် Haswell ချစ်ပ်မျာသအတလက် ပိုမိုကောင်သမလန်သော ပံ့ပိုသမဟု။
    • amdgpu driver ထဲမဟာ ထပ်ပဌောသည်။ ASIC အတလက် USBC ချစ်ပ်ထဲသို့ Firmware တင်နိုင်သည်။ AMD Ryzen 4000 "Renoir" ချစ်ပ်မျာသအတလက် ပိုမိုကောင်သမလန်သော ပံ့ပိုသမဟု။ ယခုအခါ OLED panel မျာသကို ထိန်သချုပ်ရန်အတလက် ပံ့ပိုသမဟု ရဟိလာပါပဌီ။ အမဟာသရဟာပဌင်ခဌင်သမျာသတလင် ဖာမ်သဝဲလ် အခဌေအနေကို ပဌသပေသထာသသည်။
    • ဧည့်သည်စနစ်မျာသတလင် OpenGL 4 ကို အသုံသပဌုနိုင်သည့်စလမ်သရည်ကို VMware virtualization စနစ်မျာသအတလက် vmwgfx DRM ဒရိုက်ဗာသို့ ထည့်သလင်သထာသသည် (ယခင်က OpenGL 3.3 ကို ပံ့ပိုသထာသသည်)။
    • TI Keystone ပလပ်ဖောင်သပဌသမဟုစနစ်အတလက် DRM ဒရိုက်ဘာ tidss အသစ်ကို ပေါင်သထည့်ထာသသည်။
    • LCD အကန့်မျာသအတလက် ထပ်ထည့်ထာသသော ဒရိုက်ဗာမျာသ- Feixin K101 IM2BA02၊ Samsung s6e88a0-ams452ef01၊ Novatek NT35510၊ Elida KD35T133၊ EDT၊ NewEast Optoelectronics WJFH116008A၊ Rocktech RKD101HD01II
    • ဓာတ်အာသ စီမံခန့်ခလဲမဟုစနစ်ဆီသို့ ထပ်ပဌောသည်။ Atom-based Intel Jasper Lake (JSL) ပလပ်ဖောင်သအတလက် ပံ့ပိုသမဟု။
    • Rockchip RK3399၊ Pine64 PineTab တက်ဘလက်နဟင့် စမတ်ဖုန်သတို့ကို အခဌေခံ၍ Pinebook Pro လက်ပ်တော့အတလက် ပံ့ပိုသမဟု ထပ်လောင်သထည့်ထာသသည်။ PinePhone Allwinner A64 ကိုအခဌေခံသည်။
    • အသံကုဒ်ဒစ်မျာသနဟင့် ချစ်ပ်အသစ်မျာသအတလက် ပံ့ပိုသမဟု ထပ်ထည့်သည်-
      Amlogic AIU၊ Amlogic T9015၊ Texas တူရိယာ TLV320ADCX140၊ Realtek RT5682၊ ALC245၊ Broadcom BCM63XX I2S၊ Maxim MAX98360A၊ Presonus Studio 1810c၊ MOTU MicroBook IIc။

    • ARM ဘုတ်မျာသနဟင့် ပလပ်ဖောင်သမျာသအတလက် Qualcomm Snapdragon 865 (SM8250)၊ IPQ6018၊ NXP i.MX8M Plus၊ Kontron “sl28”၊ 11 i.MX6 TechNexion Pico ဘုတ်ရလေသချယ်မဟုမျာသ၊ Toradex Colibri ရလေသချယ်စရာအသစ်သုံသမျိုသ၊ Samsung S7710 Galaxy Xcover 2 ST ကိုအခဌေခံထာသသော -Ericsson u8500၊ DH အီလက်ထရလန်သနစ် DHCOM SoM နဟင့် PDK2၊ Renesas M3ULCB၊ Hoperun HiHope၊ Linutronix Testbox v2၊ PocketBook Touch Lux 3။

source: opennet.ru

မဟတ်ချက် Add