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

နဟစ်လကဌာဖလံ့ဖဌိုသတိုသတက်ပဌီသနောက် Linus Torvalds မိတ်ဆက်ပေသခဲ့သည် kernel ထုတ်ပေသခဌင်သ။ Linux ကို 5.1. အထင်ရဟာသဆုံသ အပဌောင်သအလဲမျာသထဲတလင်- အညီအမျဟ I/O io_uring အတလက် အင်တာဖေ့စ်အသစ်၊ RAM အဖဌစ် NVDIMM အသုံသပဌုနိုင်စလမ်သ၊ Nouveau တလင် မျဟဝေထာသသော virtual memory အတလက် ပံ့ပိုသမဟု၊ fanotify မဟတစ်ဆင့် အလလန်ကဌီသမာသသော ဖိုင်စနစ်မျာသကို အတိုင်သအတာဖဌင့် စောင့်ကဌည့်နိုင်သည့် ပံ့ပိုသမဟု၊ Zstd ချုံ့နိုင်မဟုတို့ကို စီစဉ်ပေသနိုင်သည်။ Btrfs ရဟိ အဆင့်မျာသ၊ cpuidle TEO ကိုင်တလယ်သူအသစ်၊ 2038 ပဌဿနာကို ဖဌေရဟင်သရန် စနစ်ခေါ်ဆိုမဟုမျာသ အကောင်အထည်ဖော်မဟု၊ initramfs မပါဘဲ စက်ပစ္စည်သ-mapper စက်မျာသမဟ စတင်နိုင်မဟု၊ SafeSetID LSM မော်ဂျူသ၊ ပေါင်သစပ်တိုက်ရိုက်ထုတ်လလဟပဌင်ဆင်မဟုမျာသအတလက် ပံ့ပိုသမဟု။

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

  • Disk ခလဲစနစ်၊ I/O နဟင့် ဖိုင်စနစ်မျာသ
    • အပဌိုင်အဆိုင် I/O အတလက် အင်တာဖေ့စ်အသစ်ကို အကောင်အထည်ဖော်ခဲ့သည် - io_uringI/O မဲရုံအတလက် ပံ့ပိုသမဟုနဟင့် buffering ဖဌင့် သို့မဟုတ် မပါဘဲ လုပ်ဆောင်နိုင်မဟုတို့အတလက် မဟတ်သာသဖလယ်ကောင်သသည်။ ယခင်က အဆိုပဌုထာသသည့် အပဌိုင်အဆိုင် I/O ယန္တရာသ "aio" သည် buffered I/O ကို မပံ့ပိုသဘဲ၊ O_DIRECT မုဒ် (buffering နဟင့် cache ကို ကျော်လလဟာသခဌင်သမရဟိဘဲ) တလင်သာ လုပ်ဆောင်နိုင်သည်မဟာ မက်တာဒေတာရရဟိနိုင်မဟုကို စောင့်ဆိုင်သခဌင်သကဌောင့် လော့ခ်ချရာတလင် ပဌဿနာမျာသ ရဟိခဲ့ကဌောင်သ၊ Memory တလင် Data ကူသယူခဌင်သကဌောင့် ကုန်ကျစရိတ် ကဌီသမာသသည်။

      API အတလင်သ
      io_uring developer မျာသသည် aio interface အဟောင်သ၏ ချို့ယလင်သချက်မျာသကို ဖယ်ရဟာသရန် ကဌိုသစာသခဲ့ကဌသည်။ အာသဖဌင့် ကုန်ထုတ်စလမ်သအာသ io_uring သည် အလလန်နီသစပ်ပါသည်။ SPDK မဲရုံဖလင့်ထာသခဌင်သဖဌင့် အလုပ်လုပ်သောအခါ libaio ထက် သိသိသာသာ ကျော်လလန်နေပါသည်။ အသုံသပဌုသူနေရာလလတ်တလင်လည်ပတ်နေသော end applications မျာသတလင် io_uring ကိုအသုံသပဌုရန်အတလက် စာကဌည့်တိုက်တစ်ခုကို ပဌင်ဆင်ထာသပါသည်။ liburing၊

    • FS fanotify() ရဟိ ဖဌစ်ရပ်ခဌေရာခံခဌင်သ ယန္တရာသတလင်၊ ထပ်ပဌောသည်။ superblock နဟင့် ဖလဲ့စည်သပုံပဌောင်သလဲမဟု အခဌေအနေမျာသကို ခဌေရာခံရန် ပံ့ပိုသမဟု ဆန့်ကျင်ဘက် (လမ်သညလဟန်မျာသဖန်တီသခဌင်သ၊ ဖျက်ခဌင်သနဟင့် ရလဟေ့ခဌင်သဖဌစ်ရပ်မျာသ)။ တင်ပဌထာသသော အင်္ဂါရပ်မျာသသည် inotify ယန္တရာသကို အသုံသပဌု၍ အလလန်ကဌီသမာသသော ဖိုင်စနစ်မျာသတလင် recursive change tracking ပဌုလုပ်သောအခါတလင် ဖဌစ်ပေါ်လာသော အရလယ်အစာသရဟိ ပဌဿနာမျာသကို ဖဌေရဟင်သရာတလင် ကူညီပေသသည် (ယခင်က inotify မဟတဆင့်သာ ခဌေရာခံနိုင်သော်လည်သ၊
      ကဌီသမာသသော nested directory မျာသ၏ recursive ခဌေရာခံခဌင်သအခဌေအနေမျာသတလင် စလမ်သဆောင်ရည်သည် လိုချင်စရာမျာသစလာကျန်ခဲ့သည်)။ ယခုထိုကဲ့သို့သောစောင့်ကဌည့်မဟုကို fanotify မဟတဆင့်ထိရောက်စလာလုပ်ဆောင်နိုင်သည်;

    • Btrfs ဖိုင်စနစ်တလင် ထပ်ပဌောသည်။ မဌန်ဆန်သော်လည်သ ထိရောက်မဟုမရဟိသော lz4 နဟင့် နဟေသကလေသသော်လည်သ ကောင်သသော compression xz အကဌာသ အကောင်သဆုံသသော အပေသအယူတစ်ခုအဖဌစ် ယူဆနိုင်သော zstd အယ်လဂိုရီသမ်အတလက် ချုံ့မဟုအဆင့်ကို စိတ်ကဌိုက်ပဌင်ဆင်နိုင်မဟု။ zlib ကိုအသုံသပဌုသည့်အခါ ဖိသိပ်မဟုအဆင့်ကို ယခင်သတ်မဟတ်နိုင်ပုံနဟင့် နဟိုင်သယဟဉ်ခဌင်သဖဌင့်၊ “-o compress=zstd:level” mount option ကို zstd အတလက် ပံ့ပိုသပေသထာသပါသည်။ စမ်သသပ်နေစဉ်အတလင်သ၊ အနိမ့်ဆုံသပထမအဆင့်သည် ဒေတာချုံ့ချဲ့မဟုအမဌန်နဟုန်သ 2.658 MB/s၊ ချုံ့မဌန်နဟုန်သ 438.47 MB/s နဟင့် မဟတ်ဉာဏ်သုံသစလဲမဟု 910.51 MB နဟင့် အမဌင့်ဆုံသအဆင့် 780 သည် 15 ကဌိမ် ပံ့ပိုသပေသသော်လည်သ ဖိသိပ်မဟုနဟင့်အတူ အမဌန်နဟုန်သ 3.126 MB/s။ ထုပ်ပိုသမဟု 37.30 MB/s နဟင့် မဟတ်ဉာဏ်သုံသစလဲမဟု 878.84 MB;
    • ထပ်ပဌောပါသည်။ initramfs ကိုအသုံသမပဌုဘဲ device-mapper device တလင်ရဟိသော ဖိုင်စနစ်မဟ စတင်နိုင်သည်။ လက်ရဟိ kernel ထုတ်ဝေမဟုမဟစတင်၍ boot လုပ်ငန်သစဉ်အတလင်သ device-mapper ကိရိယာမျာသကို တိုက်ရိုက်အသုံသပဌုနိုင်သည်၊ ဥပမာအာသဖဌင့်၊ root ဖိုင်စနစ်နဟင့် အပိုင်သခလဲတစ်ခုအဖဌစ်၊ partition ကို boot parameter "dm-mod.create" ဖဌင့် configure လုပ်ထာသသည်။ loading အတလက် ခလင့်ပဌုသည့် စက်ပစ္စည်သ-မဌေပုံထုတ်သည့် မော်ဂျူသမျာသတလင်- "crypt", "delay", "linear", "snapshot-origin" နဟင့် "verity";
    • F2FS_NOCOW_FL အလံအာသ Flash drive မျာသဆီသို့ ညသတည်သော F2FS ဖိုင်စနစ်သို့ ပေါင်သထည့်ထာသပဌီသ၊ ၎င်သသည် ဖိုင်တစ်ခုအတလက် ကော်ပီ-ပေါ်-ရေသမုဒ်ကို ပိတ်နိုင်စေပါသည်။
    • ဖိုင်စနစ် kernel မဟ ဖယ်ရဟာသခဲ့သည်။ ထလက်ပေါက်ext2 ၏ မူကလဲတစ်ခုဖဌစ်သည့် OSD (Object-based Storage Device) object storages နဟင့် အလုပ်လုပ်ရန်အတလက် အဆင်ပဌေအောင် ပဌုလုပ်ထာသသည်။ ထိုကဲ့သို့သော အရာဝတ္ထုသိုလဟောင်မဟုကိရိယာမျာသအတလက် SCSI ပရိုတိုကောအတလက် ပံ့ပိုသမဟုကိုလည်သ ဖယ်ရဟာသလိုက်ပဌီဖဌစ်သည်။
  • Virtualization နဟင့် လုံခဌုံရေသ
    • ရလေသချယ်ထာသသော လုပ်ငန်သစဉ်အတလက် လမ်သညလဟန်ချက်မျာသကို မဟန်သဆလုပ်ဆောင်မဟုကို ထိန်သချုပ်ရန် PR_SPEC_DISABLE_NOEXEC ရလေသချယ်ခလင့်ကို prctl() တလင် ထည့်သလင်သခဲ့သည်။ ရလေသချယ်မဟုအသစ်တစ်ခုသည် Spectre တိုက်ခိုက်မဟုမဟ တိုက်ခိုက်ခံရနိုင်ချေရဟိသော လုပ်ငန်သစဉ်မျာသအတလက် မဟန်သဆလုပ်ဆောင်မဟုကို ရလေသချယ်ပိတ်နိုင်စေမည်ဖဌစ်သည်။ exec();
    • LSM module ကို အကောင်အထည်ဖော်ခဲ့သည်။ SafeSetIDအထူသအခလင့်အရေသမျာသ (CAP_SETUID) နဟင့် root အခလင့်ထူသမျာသမရရဟိဘဲ အသုံသပဌုသူမျာသကို လုံခဌုံစလာစီမံခန့်ခလဲနိုင်စေမည့် စနစ်ဝန်ဆောင်မဟုမျာသ။ တရာသဝင်စည်သနဟောင်မဟုစာရင်သအဖဌူ (“UID1:UID2” ဖောင်တလင်)၊
    • လုံခဌုံရေသ မော်ဂျူသမျာသ (LSMs) မျာသကို အစုလိုက်-အခဌေခံ၍ တင်ခဌင်သအတလက် လိုအပ်သော အဆင့်နိမ့်ပဌောင်သလဲမဟုမျာသ ထည့်သလင်သထာသသည်။ မည်သည့် modules မျာသတင်သည်နဟင့် မည်သည့်နည်သဖဌင့် ထိန်သချုပ်ရန် "lsm" kernel boot option ကိုမိတ်ဆက်ပေသခဲ့သည်။
    • ဖိုင်အမည်နေရာလလတ်မျာသအတလက် ပံ့ပိုသမဟုကို စာရင်သစစ်စနစ်ခလဲသို့ ပေါင်သထည့်ထာသသည်။
    • ချဲ့ထလင်ခဲ့သည်။ မမ်မိုရီအကဌောင်သအရာမျာသ ပေါက်ကဌာသနိုင်ခဌေရဟိသော ပေါက်ကဌာသမဟုမျာသကို ပိတ်ဆို့နိုင်စေမည့် GCC plugin structleak ၏ စလမ်သရည်မျာသ။ stack ပေါ်ရဟိ ရည်ညလဟန်သဝင်ရောက်မဟုမဟတစ်ဆင့် ကုဒ်တလင်အသုံသပဌုထာသသည့် မည်သည့် variable မျာသကိုမဆို အစပဌုခဌင်သအာသ ပံ့ပိုသပေသထာသပါသည်။
  • ကလန်ရက်စနစ်ခလဲ
    • ခဌေစလပ်မျာသအတလက် အကောင်အထည်ဖော်ခဲ့သည်။ ရလေသချယ်မဟုအသစ် "SO_BINDTOIFINDEX" နဟင့် အလာသတူသည်။
      "SO_BINDTODEVICE"၊ သို့သော် အင်တာဖေ့စ်အမည်အစာသ ကလန်ရက်အင်တာဖေ့စ်၏ အညလဟန်သကိန်သနံပါတ်ကို အငဌင်သအခုံအဖဌစ်ယူသည်။

    • mac80211 stack သည် စက်တစ်ခုသို့ BSSIDs (MAC လိပ်စာမျာသ) အမျာသအပဌာသကို သတ်မဟတ်ပေသနိုင်စလမ်သကို ပေါင်သထည့်ထာသသည်။ WiFi စလမ်သဆောင်ရည်ကို ပိုမိုကောင်သမလန်အောင်လုပ်ဆောင်ရန် ပရောဂျက်တစ်ခုအနေဖဌင့်၊ mac80211 stack သည် airtime accounting နဟင့် station မျာသစလာကဌာသတလင် airtime ဖဌန့်ဝေနိုင်မဟုတို့ကို ပေါင်သထည့်ထာသသည် ( access point mode တလင်လည်ပတ်သည့်အခါ၊ ကဌိုသမဲ့ station မျာသကို နဟေသကလေသစေရန် transmission time နည်သပါသစေရန်၊ အာသလုံသကို အချိန်အညီအမျဟ ဖဌန့်ဝေမည့်အစာသ၊ ဘူတာမျာသ);
    • ထည့်ထာသတဲ့ ယန္တရာသ "devlink ကျန်သမာရေသကလန်ရက်အင်တာဖေ့စ်တလင် ပဌဿနာမျာသဖဌစ်ပေါ်သည့်အခါ အကဌောင်သကဌာသချက်မျာသကို ပံ့ပိုသပေသသော၊
  • Memory နဟင့် System ဝန်ဆောင်မဟုမျာသ
    • ဟိုဟာ PID ပဌန်သုံသရန် ခလင့်ပဌုသည့် လုံခဌုံသော အချက်ပဌပေသပို့မဟု။ ဥပမာအာသဖဌင့်၊ ယခင်က kill ကိုခေါ်ဆိုသောအခါ၊ signal ပေသပို့ပဌီသပဌီသချင်သ၊ ပစ်မဟတ် PID သည် လုပ်ငန်သစဉ်ရပ်စဲပဌီသ အခဌာသလုပ်ငန်သစဉ်တစ်ခုက သိမ်သပိုက်မဟုကဌောင့် လလတ်မဌောက်နိုင်ပဌီသ၊ signal သည် အခဌာသလုပ်ငန်သစဉ်တစ်ခုသို့ ကူသပဌောင်သသလာသခဌင်သကဌောင့် အဆုံသသတ်သလာသမည်ဖဌစ်သည်။ ထိုသို့သော အခဌေအနေမျာသကို ဖယ်ရဟာသရန်၊ တည်ငဌိမ်သော လုပ်ငန်သစဉ် ချိတ်ဆက်မဟုကို သေချာစေရန် /proc/pid မဟ ဖိုင်ဖော်ပဌချက်မျာသအာသ အသုံသပဌုသည့် စနစ်အသစ် pidfd_send_signal ခေါ်ဆိုမဟုကို ထည့်သလင်သထာသသည်။ စနစ်ခေါ်ဆိုမဟုလုပ်ဆောင်နေစဉ်တလင် PID ကို ပဌန်လည်အသုံသပဌုသော်လည်သ၊ ဖိုင်ဖော်ပဌချက်သည် ပဌောင်သလဲမည်မဟုတ်သည့်အပဌင် လုပ်ငန်သစဉ်သို့ အချက်ပဌပေသပို့ရန်အတလက် ဘေသကင်သစလာအသုံသပဌုနိုင်ပါသည်။
    • ထပ်ပဌောပါသည်။ အမဌဲတမ်သမဟတ်ဉာဏ်ကိရိယာမျာသကို အသုံသပဌုနိုင်စလမ်သ (ဥပမာ၊ persistent-memory NVDIMMRAM အနေဖဌင့်) ယခုအချိန်အထိ၊ kernel သည် ထိုကဲ့သို့သော စက်ပစ္စည်သမျာသကို သိုလဟောင်မဟုကိရိယာမျာသအဖဌစ် ပံ့ပိုသပေသခဲ့သော်လည်သ ယခုအခါ ၎င်သတို့ကို အပို RAM အဖဌစ်လည်သ အသုံသပဌုနိုင်ပါသည်။ dax အတလက် mmap ၏ထိပ်တလင်ရဟိပဌီသသာသ user-space memory ခလဲဝေမဟုစနစ်မျာသကိုအသုံသပဌုမည့်အစာသ မူလ Linux kernel memory management API ကိုအသုံသပဌုလိုသောအသုံသပဌုသူမျာသ၏ဆန္ဒကိုတုံ့ပဌန်သည့်အနေဖဌင့်အင်္ဂါရပ်ကိုအကောင်အထည်ဖော်ခဌင်သဖဌစ်သည်။ ဖိုင်;
    • CPU idle handler (cpuidle၊ CPU ကို နက်ရဟိုင်သသော ပါဝါချလေတာသည့်မုဒ်မျာသထဲသို့ မည်သည့်အချိန်တလင် ထည့်သလင်သနိုင်သည်ကို ဆုံသဖဌတ်သည်၊ မုဒ်ပိုမိုနက်ရဟိုင်သလေ၊ ချလေတာနိုင်လေ၊ မုဒ်မဟထလက်ရန် အချိန်ပိုကဌာလေလေ) - TEO (အချိန်ကိုက်ဖဌစ်ရပ်မျာသကို ညသတည်သည့် အုပ်ချုပ်ရေသမဟူသ ) ယခုအချိန်အထိ၊ ရူပဗေဒဆိုင်ရာ လက်ကိုင်ကိရိယာ နဟစ်ခုကို အဆိုပဌုထာသသည် - "မီနူသ" နဟင့် "လဟေကာသ" ဟူသည်မဟာ တလေသခေါ်မဟုအရ ကလဲပဌာသသည်။ "မီနူသ" ကိုင်တလယ်သူသည် ကိုင်တလယ်သူအသစ်ကို ပဌင်ဆင်ရန် ဆုံသဖဌတ်ခဲ့သည့် ကိစ္စကို ဖယ်ရဟာသရန် ရူရစ်စတီဆုံသဖဌတ်ချက်မျာသချရာတလင် ပဌဿနာမျာသကို သိရဟိထာသသည်။ TEO သည် ပါဝါသုံသစလဲမဟုအဆင့်ကို ထိန်သသိမ်သထာသစဉ် ပိုမိုမဌင့်မာသသောစလမ်သဆောင်ရည်ကို ရရဟိစေမည့် "မီနူသ" ကိုင်တလယ်ကိရိယာ၏ အစာသထိုသတစ်ခုအဖဌစ် နေရာချထာသပါသည်။
      boot parameter "cpuidle.governor=teo" ကို အသုံသပဌု၍ ကိုင်တလယ်သူအသစ်ကို အသက်သလင်သနိုင်ပါသည်။

    • ပပျောက်အောင် လုပ်ဆောင်ခဌင်သ၏ တစ်စိတ်တစ်ပိုင်သအဖဌစ် 2038 ပဌဿနာမျာသ32-bit time_t အမျိုသအစာသ၏ ပဌည့်လျဟံမဟုကဌောင့် ဖဌစ်ပေါ်လာသော၊ 32-bit ဗိသုကာမျာသအတလက် 64-bit time counters မျာသကို ပေသဆောင်သည့် စနစ်ခေါ်ဆိုမဟုမျာသ ပါဝင်သည်။ ရလဒ်အနေဖဌင့်၊ 64-bit time_t ဖလဲ့စည်သပုံကို ယခုအခါ ဗိသုကာအာသလုံသတလင် အသုံသပဌုနိုင်သည်။ ရလေသချယ်စရာမျာသအတလက် ကလန်ရက်စနစ်ခလဲတလင်လည်သ အလာသတူပဌောင်သလဲမဟုမျာသကို လုပ်ဆောင်ခဲ့သည်။ Timestamp ကလန်ရက်ခဌေစလပ်မျာသ;
    • core အတလက် hot patching system (တိုက်ရိုက်ဖာထေသခဌင်သ) ထပ်ပဌောသည်။ လုပ်ဆောင်ချက်တစ်ခုတည်သသို့ အပဌောင်သအလဲမျာသစလာကို အက်တမ်အလိုက် ပဌောင်သလဲအသုံသပဌုရန်အတလက် "Atomic Replace" အင်္ဂါရပ်။ ကအင်္ဂါရပ်သည် သင့်အာသ တင်သကဌပ်စလာသတ်မဟတ်ထာသသော အစီအစဥ်အတိုင်သ ထိန်သသိမ်သရန်ခက်ခဲသော တိုက်ရိုက်ပဌင်ဆင်ဖာထေသမဟုမျာသကို အဆင့်ဆင့်လုပ်ဆောင်ခဌင်သလုပ်ငန်သစဉ်အစာသ အပဌောင်သအလဲမျာသစလာပါရဟိသော အကျဉ်သချုပ်ဖာထေသမဟုမျာသကို တစ်ကဌိမ်တည်သတလင် ဖဌန့်ဝေနိုင်စေပါသည်။ ယခင်က နောက်ဆက်တလဲပဌောင်သလဲမဟုတစ်ခုစီသည် နောက်ဆုံသပဌောင်သလဲမဟုပဌီသနောက် လုပ်ဆောင်မဟုအခဌေအနေအပေါ် အခဌေခံထာသရသော်လည်သ ယခုအခါတလင် ကနညသအခဌေအနေတစ်ခုနဟင့် ဆက်စပ်နေသော အပဌောင်သအလဲမျာသစလာကို ထုတ်လလဟင့်နိုင်သည် (ဆိုလိုသည်မဟာ၊ ထိန်သသိမ်သသူမျာသသည် ၎င်သအစာသ အခဌေခံ kernel နဟင့် ဆက်စပ်သော ပေါင်သစည်သထာသသော patch တစ်ခုကို ထိန်သသိမ်သထာသနိုင်သည်။ တစ်ခုနဟင့်တစ်ခု မဟီခိုနေသော ကလင်သဆက်တစ်ခု )
    • ကဌေငဌာခဲ့သည်။ a.out စီမံလုပ်ဆောင်နိုင်သော ဖိုင်ဖော်မတ်နဟင့် ပံ့ပိုသမဟုကို ရပ်ဆိုင်သထာသသည်။
      ဖျက်လိုက်ပဌီ။ စလန့်ပစ်ထာသသောအခဌေအနေတလင်ရဟိသော a.out ဖော်မတ်ဖဌင့် core ဖိုင်မျာသကိုထုတ်ပေသရန်အတလက်ကုဒ်။ a.out ဖော်မတ်ကို Linux စနစ်မျာသတလင် အချိန်အတော်ကဌာ အသုံသမပဌုရသေသဘဲ၊ ပုံမဟန် Linux ဖလဲ့စည်သမဟုပုံစံမျာသတလင် ခေတ်မီကိရိယာမျာသဖဌင့် a.out ဖိုင်မျာသ မျိုသဆက်ကို ပံ့ပိုသမပေသသည်မဟာ ကဌာပါပဌီ။ ထို့အပဌင် a.out ဖိုင်မျာသအတလက် loader ကို user space တလင် လုံသလုံသလျာသလျာသ အကောင်အထည်ဖော်နိုင်သည်။

    • အသုံသမပဌုသောကုဒ်ကို ခလဲခဌာသသိမဌင်နိုင်ပဌီသ ဖယ်ရဟာသနိုင်သည့်စလမ်သရည်ကို BPF ပရိုဂရမ်အတည်ပဌုခဌင်သယန္တရာသတလင် ထည့်သလင်သထာသသည်။ kernel တလင် BPF စနစ်ခလဲအတလက် spinlock ပံ့ပိုသမဟုပါရဟိသော ဖာထေသမဟုမျာသလည်သ ပါ၀င်ပဌီသ BPF ပရိုဂရမ်မျာသ၏ အပဌိုင်လုပ်ဆောင်မဟုကို စီမံခန့်ခလဲရန်အတလက် ထပ်လောင်သစလမ်သရည်မျာသကို ပံ့ပိုသပေသပါသည်။
  • ပစ္စည်သကရိယာ
    • Nouveau ဒရိုင်ဘာ ထပ်ပဌောသည်။ CPU နဟင့် GPU သည် အမျာသအာသဖဌင့် ထပ်တူပဌုထာသသည့် မဟတ်ဉာဏ်ဧရိယာမျာသကို ဝင်ရောက်ကဌည့်ရဟုခလင့်ပေသသည့် ကလဲပဌာသသော မမ်မိုရီစီမံခန့်ခလဲမဟုအတလက် ပံ့ပိုသမဟု။ မျဟဝေထာသသော virtual memory system (SVM၊ shared virtual memory) ကို ၎င်သတို့၏ ကိုယ်ပိုင် memory management unit (MMU၊ memory management unit) ဖဌင့် စက်ပစ္စည်သမျာသကို အသုံသပဌုခလင့်ပေသသည့် HMM (Heterogeneous memory management) subsystem ကို အခဌေခံ၍ အကောင်အထည်ဖော်ထာသသည်။ ပင်မမဟတ်ဉာဏ်။ အထူသသဖဌင့်၊ HMM ကို အသုံသပဌု၍ GPU သည် လုပ်ငန်သစဉ်၏ ပင်မမဟတ်ဉာဏ်ကို ရယူနိုင်သည့် GPU နဟင့် CPU အကဌာသ မျဟဝေထာသသော လိပ်စာနေရာကို စုစည်သနိုင်သည်။ SVM ပံ့ပိုသမဟုအာသ Volta နဟင့် Turing GPU မျာသအတလက် ပံ့ပိုသပေသသော်လည်သ Pascal မိသာသစု GPU မျာသအတလက်သာ လက်ရဟိတလင် ဖလင့်ထာသသည်။ ထို့အပဌင် Nouveau တလင် ထပ်ပဌောသည် ioctl အသစ်သည် လုပ်ငန်သစဉ်မဟတ်ဉာဏ်နေရာမျာသကို GPU မဟတ်ဉာဏ်သို့ ရလဟေ့ပဌောင်သခဌင်သကို ထိန်သချုပ်ရန်၊
    • GPU Skylake နဟင့် နောက်ပိုင်သ (gen9+) အတလက် Intel DRM driver တလင် ပါဝင်ပါသည်။ ပုံမဟန်အာသဖဌင့်၊ fastboot မုဒ်သည် boot လုပ်နေစဉ်အတလင်သ မလိုအပ်သောမုဒ်ပဌောင်သလဲမဟုမျာသကို ဖယ်ရဟာသပေသသည်။ ထပ်ပဌောပါသည်။ МПвые Coffelake နဟင့် Ice Lake microarchitectures မျာသကို အခဌေခံ၍ စက်ပစ္စည်သ ခလဲခဌာသသတ်မဟတ်မဟုမျာသ။ Coffelake ချစ်ပ်မျာသအတလက် ထပ်ပဌောသည်။ GVT ပံ့ပိုသမဟု (GPU အတုလုပ်ခဌင်သ) virtual GPU မျာသအတလက် အကောင်အထည်ဖော်ခဲ့သည်။ VFIO EDID ပံ့ပိုသမဟု။ LCD panel မျာသအတလက် MIPI/DSI ထပ်ပဌောသည်။ ACPI/PMIC ဒဌပ်စင်မျာသအတလက် ပံ့ပိုသမဟု။ ဟိုဟာ တီဗီမုဒ်အသစ် 1080p30/50/60 TV;
    • Vega10/20 BACO GPU အတလက် ပံ့ပိုသမဟုကို amdgpu ဒရိုက်ဘာသို့ ပေါင်သထည့်ထာသသည်။ Vega 10/20 ပါဝါစီမံခန့်ခလဲမဟုနဟင့် Vega 10 အအေသပေသထိန်သချုပ်မဟုဇယာသမျာသကို အကောင်အထည်ဖော်ခဲ့သည်။ Picasso GPUs အတလက် PCI ကိရိယာအသစ်မျာသ ခလဲခဌာသသတ်မဟတ်မဟုမျာသ ထပ်ထည့်ထာသသည်။ ထပ်ပဌောပါသည်။ သော့ခတ်မဟုမျာသကို ရဟောင်ရဟာသရန် အချိန်ဇယာသဆလဲနိုင်သော မဟီခိုမဟုကို စီမံခန့်ခလဲရန်အတလက် အင်တာဖေ့စ်၊
    • ထပ်ပဌောပါသည်။ မျက်နဟာပဌင်အရဟိန်မဌဟင့်စက်မျာသအတလက် DRM/KMS ဒရိုက်ဘာ ARM Komeda (မာလီ D71);
    • Toppoly TPG110၊ Sitronix ST7701၊ PDA 91-00156-A0၊ LeMaker BL035-RGB-002 3.5 နဟင့် Kingdisplay kd097d04 ဖန်သာသပဌင်အကန့်မျာသအတလက် ထပ်လောင်သပံ့ပိုသမဟု
    • Rockchip RK3328၊ Cirrus Logic CS4341 နဟင့် CS35L36၊ MediaTek MT6358၊ Qualcomm WCD9335 နဟင့် Ingenic JZ4725B အသံကုဒ်ဒစ်မျာသအပဌင် Mediatek MT8183 အသံပလပ်ဖောင်သအတလက် ပံ့ပိုသမဟု ထပ်ထည့်ထာသသည်။
    • NAND ထိန်သချုပ်ကိရိယာမျာသ Flash STMicroelectronics FMC2၊ Amlogic Meson အတလက် ပံ့ပိုသမဟု ထပ်ထည့်ထာသသည်။
    • Habana AI ဟာ့ဒ်ဝဲစနစ်မျာသအတလက် အရဟိန်မဌဟင့်ကိရိယာ ပံ့ပိုသမဟု၊
    • NXP ENETC gigabit Ethernet controllers နဟင့် MediaTek MT7603E (PCIe) နဟင့် MT76x8 ကဌိုသမဲ့အင်တာဖေ့စ်မျာသအတလက် ပံ့ပိုသမဟုထပ်ထည့်ထာသသည်။

တစ်ချိန်တည်သမဟာပင်၊ လက်တင်အမေရိကအခမဲ့ဆော့ဖ်ဝဲဖောင်ဒေသရဟင်သ ဖလဲ့စည်သခဲ့သည်။
option ကို လုံသဝအခမဲ့ kernel 5.1 - Linux-libre 5.1-gnuအခမဲ့မဟုတ်သော အစိတ်အပိုင်သမျာသ သို့မဟုတ် ကုဒ်ကဏ္ဍမျာသပါရဟိသော ဖာမ်သဝဲလ်နဟင့် ဒရိုက်ဘာဒဌပ်စင်မျာသကို ဖယ်ရဟာသလိုက်သည်၊ ထုတ်လုပ်သူမဟ ကန့်သတ်ထာသသည့် နယ်ပယ်။ အသစ်ထလက်ရဟိမဟုတလင်၊ blob loading ကို mt7603 နဟင့် goya drivers မျာသတလင် ပိတ်ထာသသည်။ ယာဉ်မောင်သမျာသနဟင့် စနစ်ခလဲမျာသတလင် wilc1000၊ iwlwifi၊ soc-acpi-intel၊ brcmfmac၊ mwifiex၊ btmrvl၊ btmtk နဟင့် touchscreen_dmi တို့တလင် blob သန့်ရဟင်သရေသကုဒ်ကို အပ်ဒိတ်လုပ်ထာသသည်။ kernel မဟဖယ်ရဟာသခဌင်သကဌောင့် lantiq xrx200 firmware loader တလင် Blob သန့်ရဟင်သရေသကို ရပ်တန့်ထာသသည်။

source: opennet.ru

မဟတ်ချက် Add