💻
ITmatic101 - MY
  • ITmatic101 - နည်းပညာဆိုင်ရာ Blog
  • ☕Linux/BSD
    • Linux distro-hopper ခရီးကြမ်း
    • လူသုံးများ ရေပန်းစားသော GNU/Linux Distro များ အပိုင်း (၁)
    • လူသုံးများ ရေပန်းစားသော GNU/Linux Distro များ အပိုင်း (၂)
    • လူသုံးများ ရေပန်းစားသော GNU/Linux Distro များ အပိုင်း (၃)
    • လူသုံးများ ရေပန်းစားသော GNU/Linux Distro များ အပိုင်း (၄)
    • လူသုံးများ ရေပန်းစားသော GNU/Linux Distro များ အပိုင်း (၅)
    • လူသုံးများ ရေပန်းစားသော GNU/Linux Distro များ အပိုင်း (၆)
    • လူသုံးများ ရေပန်းစားသော GNU/Linux Distro များ အပိုင်း (၇)
    • လူသုံးများ ရေပန်းစားသော GNU/Linux Distro များ အပိုင်း (၈)
    • လူသုံးများ ရေပန်းစားသော GNU/Linux Distro များ အပိုင်း (၉)
    • လူသုံးများ ရေပန်းစားသော GNU/Linux Distro များ အပိုင်း (၁၀)
    • Manjaro Linux အကြောင်းတစေ့တစောင်း
    • GNU/Linux Desktop Environment များအကြောင်း အပိုင်း (၁)
    • GNU/Linux Desktop Environment များအကြောင်း အပိုင်း (၂)
    • GNU/Linux Desktop Environment များအကြောင်း အပိုင်း (၃)
    • GNU/Linux Desktop Environment များအကြောင်း အပိုင်း (၄)
    • GNU/Linux Desktop Environment များအကြောင်း အပိုင်း (၅)
    • TACACS+ နဲ့ Windows AD ကိုတွဲပြီး အသုံးပြုနည်း – အပိုင်း (၁)
    • TACACS+ နဲ့ Windows AD ကိုတွဲပြီး အသုံးပြုနည်း – အပိုင်း (၂)
    • FreeRADIUS နဲ့ PPPoE Authentication အပိုင်း (၁)
    • FreeRADIUS နဲ့ PPPoE Authentication အပိုင်း (၂)
    • Ubuntu မှာအလုပ်ဖြစ်သော tool နဲ့ application (၁၀) ခုအကြောင်း
    • Docker မိတ်ဆက် အပိုင်း(၁)
    • Docker မိတ်ဆက် အပိုင်း(၂)
    • Docker မိတ်ဆက် အပိုင်း(၃)
    • GNU/Linux ကိုဘာလို့ ပြောင်းသုံးသင့်သလဲ
    • GNU/Linux မှာသုံးတဲ့ CLI ကိုဘယ်လိုခေါ်ကြသလဲ
    • Linux Kernel အကြောင်း သိကောင်းစရာ အပိုင်း (၁)
    • Linux Kernel အကြောင်း သိကောင်းစရာ အပိုင်း (၂)
    • Linux Kernel အကြောင်း သိကောင်းစရာ အပိုင်း (၃)
    • ပြတိုက်ထဲက SysVinit အကြောင်း
    • Open source သင်ခန်းစာများ အပိုင်း(၁)
    • Open source သင်ခန်းစာများ အပိုင်း(၂)
    • လေထုညစ်ညမ်းစပြုလာတဲ့ Linux ရဲ့ Ecosystem
    • အသုံးဝင်သော Linux Certification များအကြောင်း အပိုင်း (၁)
    • အသုံးဝင်သော Linux Certification များအကြောင်း အပိုင်း (၂)
    • အသုံးဝင်သော Linux Certification များအကြောင်း အပိုင်း (၃)
    • အသုံးဝင်သော Linux Certification များအကြောင်း အပိုင်း (၄)
    • အသုံးဝင်သော Linux Certification များအကြောင်း အပိုင်း (၅)
    • Linux မှာသုံးတဲ့ GNU General Public License အကြောင်း အပိုင်း(၁)
    • Linux မှာသုံးတဲ့ GNU General Public License အကြောင်း အပိုင်း(၂)
    • Linux မှာသုံးတဲ့ GNU General Public License အကြောင်း အပိုင်း(၃)
    • Linux မှာသုံးတဲ့ GNU General Public License အကြောင်း အပိုင်း(၄)
    • Open Source ကောက်ကြောင်း – အပိုင်း(၁)
    • Open Source ကောက်ကြောင်း – အပိုင်း( ၂)
    • “မှားတဲ့ဘက်မှာ” – အပိုင်း (၁)
    • “မှားတဲ့ဘက်မှာ” – အပိုင်း (၂)
    • SELinux မိတ်ဆက်
    • Open Source Licenses များအကြောင်း – အပိုင်း (၁)
    • Open Source Licenses များအကြောင်း – အပိုင်း (၂)
    • Keepalived မိတ်ဆက် – အပိုင်း (၁)
    • Keepalived မိတ်ဆက် – အပိုင်း (၂)
    • Linux မှာ package manager တွေကိုဘယ်လိုအသုံးပြုသလဲ
  • 🚀Automation
    • Chef မိတ်ဆက် အပိုင်း(၁)
    • Wireguard ရဲ့ automated workflow
    • အနားမသပ်နိုင် သေးတဲ့ Infrastructure as Code (IaC) – အပိုင်း(၁)
    • အနားမသပ်နိုင် သေးတဲ့ Infrastructure as Code (IaC) – အပိုင်း(၂)
    • အနားမသပ်နိုင် သေးတဲ့ Infrastructure as Code (IaC) - အပိုင်း(၃)
    • အနားမသပ်နိုင် သေးတဲ့ Infrastructure as Code (IaC) - အပိုင်း(၄)
    • ကြုံတွေ့ရသမျှ Network Automation အနုပညာ အပိုင်း(၁)
    • ကြုံတွေ့ရသမျှ Network Automation အနုပညာ အပိုင်း(၂)
    • ကြုံတွေ့ရသမျှ Network Automation အနုပညာ အပိုင်း(၃)
    • Bash နဲ့ Network Configuration Management system တစ်ခုတည်ဆောက်ပုံ – အပိုင်း(၁)
    • Bash နဲ့ Network Configuration Management system တစ်ခုတည်ဆောက်ပုံ – အပိုင်း(၂)
    • FTP/TFTP server ပေါ်မှာ network config တွေကို auto backup လုပ်ပုံ – အပိုင်း (၁)
    • FTP/TFTP server ပေါ်မှာ network config တွေကို auto backup လုပ်ပုံ – အပိုင်း (၂)
    • Kickstart ကိုအသုံးပြုပြီး Custom ISO တွေဖန်တီးပုံ
  • ⚙️Networking
    • အဘယ့်ကြောင့် GNS3
    • ZeroTier မိတ်ဆက်
    • WireGuard အကြောင်းသိကောင်းစရာ
    • Linode VPS မှာကိုယ်ပိုင် Wireguard VPN server တစ်ခုတည်ဆောက်ပုံ
    • အဘယ်ကြောင့် MikroTik
    • VRRP ကို MikroTik မှာ setup လုပ်ပုံ
  • ☁️Virtualisation and Cloud
    • KVM မှာ virtual disk တွေကို ဘယ်လို resize လုပ်လို့ရသလဲ
    • Debian 12 ပေါ်တွင် Proxmox 8 ကိုဘယ်လို integrate လုပ်သလဲ
    • Promox ပေါ်မှာ VM template တွေကို cloud-init သုံးပြီး ဖန်တီးပုံ
    • Custom LXD container templates များကိုဘယ်လို import လုပ်သလဲ
    • Cloud ဆိုသည်မှာ
  • 🍒others
    • Git အကြောင်းသိကောင်းစရာ
    • Home Lab ရှိခြင်း အနုပညာ
    • ကိုယ့်လုံခြုံရေးအတွက် အသုံးပြုသင့်တဲ့ toolkit လေးများ
    • SSH Tunneling အကြောင်းသိကောင်းစရာ
    • အခြေခံ SSH workflow များ
    • SSH Certificate Based Authentication အကြောင်းတစေ့တစောင်း
    • နေ့စဉ်သုံး စိတ်ကြိုက် Application/Software လေးများ
    • Keyboard Size တွေအကြောင်းသိသမျှ
    • သက္ကရာဇ်၂၀၂၀ ခုနှစ်တွင်း နည်းပညာဆိုင်ရာ အမှတ်တရလေးများ
    • သက္ကရာဇ်၂၀၂၁ ခုနှစ်တွင်း နည်းပညာဆိုင်ရာ အမှတ်တရလေးများ
    • Storage အကြောင်းတစေ့တစောင်း – အပိုင်း(၁)
    • Storage အကြောင်းတစေ့တစောင်း – အပိုင်း(၂)
    • Storage အကြောင်းတစေ့တစောင်း – အပိုင်း(၃)
    • Storage အကြောင်းတစေ့တစောင်း – အပိုင်း(၄)
    • Storage အကြောင်းတစေ့တစောင်း – အပိုင်း(၅)
    • အင်တာနက်မြန်မာစာ ယူနီကုဒ်ဇော်ဂျီ ပြဿနာ
    • CyanogenMod မိတ်ဆက် အပိုင်း(၁)
    • WikiLeaks ဆိုသည်မှာ အပိုင်း (၁)
    • WikiLeaks ဆိုသည်မှာ အပိုင်း (၂)
    • WikiLeaks ဆိုသည်မှာ အပိုင်း (၃)
  • 💀OffSec
    • ခုတ်မယ် ထစ်မယ် ပါးပါးလှီးမယ် OpenSSL
Powered by GitBook
On this page

Was this helpful?

  1. Linux/BSD

Linux Kernel အကြောင်း သိကောင်းစရာ အပိုင်း (၁)

PreviousGNU/Linux မှာသုံးတဲ့ CLI ကိုဘယ်လိုခေါ်ကြသလဲNextLinux Kernel အကြောင်း သိကောင်းစရာ အပိုင်း (၂)

Last updated 2 years ago

Was this helpful?

GNU/Linux distro အကြောင်းကတော့ တော်တော်လည်း အရှေ့ပိုင်းမှာ ရေးထားပြီးသားမို့ လေ့လာသင့် သလောက်တော့ လေ့လာမိမယ် ထင်ပါတယ်။ အမှန်ကတော့ Linux လို့သာလူသိများပြီးတော့ GNU Operating System ရယ်လို့တော့ လူသိပ်ပြီးတော့ မသိကြပါဘူး။ အထူးသဖြင့် free software ကိုစတင်ခဲ့တဲ့ Richard Stallman ကိုယ်တိုင်က အဲ့ဒီ မေးခွန်းကို interview တိုင်းနီးပါးလောက်မှာ ခဏခဏ အမေးခံရလေ့ရှိ ပါတယ်။ တော်တော်များများ interview တွေမှာ မေးတဲ့သူတွေက Richard Stallman ကို Linux လို့ခေါ်တာကိုလက်ခံလားဆိုပြီးတော့ မေးတာများပါတယ်။ သူကတော့ လက်ခံတယ်လို့လည်းမပြောသလို လက်မခံဘူးလို့လည်း သူ့အဖြေတွေက ဖော်ပြနေပါတယ်။ Linux OS လို့ခေါ်တာမမှန်နိုင်ဘူးလို့ ဆိုပါတယ်။ ဘာဖြစ်လို့လဲဆိုတော့ Linux ဆိုတာက kernel ရဲ့နာမည်ပါတဲ့၊ အဲ့ဒီ kernel က GNU ဆိုတဲ့ system အတွက် အသုံးပြုထားတဲ့အတွက် GNU/Linux လို့ခေါ်ရင် ပိုပြီးတော့ ပြည့်စုံမယ်လို့လည်းဆိုပါတယ်။ အရှေ့မှာလည်း GNU ဆိုတာဘာကို ရည်ညွန်းသလဲဆိုတာကို ရှင်းပြဘူးပါတယ်။ အခုတစ်ခါလည်း မသိသေးတဲ့သူတွေအတွက် ထပ်ရှင်းပါ့မယ်။ Richard Stallman ကတော့ programming joke တစ်ခုကို အသုံးပြုပြီး မှည့်ထားတဲ့ နာမည်ပါတဲ့။ GNU ဆိုတာ GNU is Not Unix ကိုဆိုလိုတာပါ။ Programming technique တစ်ခုဖြစ်တဲ့ recursive looping လိုဟာမျိုးကို ထည့်ပြီးတော့ နာမည်ပေးထားတာပါ။ ဆိုလိုရှင်း joke ကို နားလည်လိမ့်မယ်လို့လည်း ထင်ပါတယ်။

GNU project အစမှာ Richard Stallman ဟာ GNU Hurd ဆိုတဲ့ kernel တစ်ခုကို ရေးဖို့လုပ်တဲ့ အခါ အခက်အခဲလေး တွေရှိခဲ့ပါတယ်။ GNU ဆိုတဲ့ OS တစ်ခုကိုရေးဖို့ ကြိုးစားရင်းနဲ့ kernel တစ်ခုလိုလို့ Hurd ကို ကောက်ရေးနေခဲ့တာပါ။ အသုံးပြုလို့ ရတဲ့ အခြေအနေတစ်ခုထိတော့ မရောက်လိုက်နိုင်ပဲ Linus Torvalds ရေးတဲ့ Linux kernel နဲ့ ကြမှ တော်တော်လေး အဆင်ပြေသွားလို့ Linux kernel ကိုပဲ အသုံးပြုလိုက်ကြရင်းနဲ့ GNU/Linux OS ဆိုပြီးတော့ ဖြစ်သွားပါတော့တယ်။ ဒီနေရာမှာ Linux ဆိုတဲ့ နာမည်ဖြစ်လာပုံကိုလည်း ပြောပြချင်ပါတယ်။ အစပိုင်းမှာ Linus Torvalds က သူရေးထားတဲ့ kernel software ကို Freax ဆိုတဲ့ folder နာမည်နဲ့ သိမ်းထားခဲ့ပါတယ်။ ရည်ညွန်းချက်ကတော့ Free, Freak နဲ့ X ဆိုတဲ့ စကားလုံးတွေကိုရောပြီးတော့ ထည့်ထားတာဖြစ်ပါတယ်။ ဆိုလိုရှင်းကတော့ Free ကတော့ အခမဲ့ သို့မဟုတ် လွတ်လပ်စွာ အသုံးပြုခွင့် ပါ။ Freak ကတော့ ခေတ်ဆန်ဆန်ပြောရင်တော့ မိုက်တယ် လန်းတယ်ပေါ့ဗျာ… နောက်ဆုံးကတော့ X ဆိုတာကတော့ Unix က X ကိုပြောလိုခြင်းဖြစ်ပါတယ်။ Unix system လို system မျိုးနဲ့ တွဲသုံးရအောင် ရေးထားတာဖြစ်တယ်လို့ ဆိုလိုရင်းဖြစ်ပါတယ်။ နောက်ပိုင်းကြမှ Unix system နဲ့ တွဲပြီးသုံးလို့ရမယ့် Linus ရေးထားတဲ့ kernel ဖြစ်လို့ Linux လို့ ခေါ်လိုက်ပါတော့တယ်။ အစပိုင်းမှာတော့ Linus Torvalds ကိုယ်တိုင်က Linux လို့နာမည်ပေးမယ်လို့ စဉ်းစားထားသော်လည်း အဲ့ဒီနာမည်က မသင့်တော်ဘူးဆိုကာ မပေးဖြစ်ခဲ့ပါဘူး။ နောက်ပိုင်းမှ လုပ်ဖော်ကိုင်ဖက်တစ်ယောက်က တိုက်တွန်းလို့ သာ Linux ဆိုတဲ့ နာမည်ပေးဖြစ်သွားတာပါ။ နောက်တော့လည်း Linux ဆိုတဲ့နာမည်က အတည်ပေးတဲ့ project နာမည်ဖြစ်သွားပါတော့တယ်။ အဲ့ဒီ Linux project မှာ version တစ်ခုစီကို နာမည်တွေထပ်ပြီးတော့ ပေးထားပြန်ပါတယ်။

Linux kernel မွေးဖွားခြင်း နိဒါန်း

Linux kernel ကိုတော့ Finland နိုင်ငံမှာရှိတဲ့ University of Helsinki မှာ ထိုအချိန်က ပညာသင်ကြားနေခဲ့တဲ့ Linus Torvalds က စတင်ပြီးတော့ မွေးဖွားပေးခဲ့ပါတယ်။ အချိန်အားဖြင့် ဧပြီလ ၁၉၉၁ခုနှစ် တွင် အသက် ၂၁ နှစ်အရွယ် computer science ကျောင်းသားတစ်ယောက်ဖြစ်တဲ့ Linus Torvalds က အရိုးရှင်းဆုံးနဲ့ အသုံးဝင်မယ့် Operating System တစ်ခုအတွက် အားထုတ်ကြိုးစားနေခဲ့ပါတယ်။ ရေးရင်းနဲ့ နောက်ဆုံးမှာတော့ Operating System kernel တစ်ခုကရုပ်လုံးပေါ်လာပါတော့တယ်။ ၂၅ရက်နေ့ ဩဂုဏ်လ ၁၉၉၁ ခုနှစ်မှာတော့ Usenet ပေါ်မှာ အောက်ပါအတိုင်း Linus Torvalds ကရေးပြီးတော့တင်လိုက်ပါတယ်။ ဒီ post ကတော့ နည်းပညာလောကရဲ့ သမိုင်းဝင် post တစ်ခုဖြစ်ပြီးတော့ Linux kernel စတင် အသက်ဝင်လာချိန်လည်းဖြစ်ပါတယ်။

အဓိပ္ပာယ်ဖွင့်ဆိုချက်ကတော့ အောက်ပါအတိုင်းဖြစ်ပါတယ်။

MINIX (mini-Unix ဆိုတဲ့ Unix-like operating system) ကို အသုံးပြုသူများအားလုံးကို နှုတ်ခွန်းဆက်သလိုက်ပါတယ်။

ကျွန်တော် အခုလက်ရှိမှာတော့ အခမဲ့ operating system တစ်ခုကို 386(486) AT လိုမျိုး CPU တွေအတွက် ရေးနေပါတယ်။ ဝါသနာအရ လုပ်ထားတာဖြစ်တဲ့အတွက် GNU လိုမျိုး ကြီးကျယ်ခမ်းနားမှာ မဟုတ်သလို၊ စနစ်တကျ အလုပ်ဖြစ်မယ့်ဟာမျိုးလည်း မဟုတ်ပါဘူး။ စတင်ပြီး စမ်းသပ် ပြင်ဆင်ရေးသားလာတာတော့ ဧပြီလလောက်ကတည်း ဖြစ်ပြီးတော့၊ အခုဆိုရင် အဆင့်သင့် ဖြစ်သလောက်ရှိနေပါပြီ။ ကျွန်တော် ရေးထားတဲ့ Operating System (OS) က လက်တွေ့အရတော့ သူ့ file-system ရဲ့ physical layout ဟာ MINIX နဲ့ တော်တော်များများမှာ ခပ်ဆင်ဆင်သွားတူနေလို့ MINIX မှာ လူကြိုက်တဲ့အချက်တွေ မကြိုက်တဲ့အချက်တွေကိုပါ ကျွန်တော်သိပါရစေ။

အခုဆိုရင် ကျွန်တော် bash(1.08) နဲ့ gcc (1.40) ကိုထည့်သွင်း စမ်းသပ် အသုံးပြုကြည့်တာ တော်တော်များများ အလုပ်လုပ်တာကိုတွေ့ရပါတယ်။ ဆိုလိုချင်တာကတော့ ကျွန်တော် ဒီလပိုင်း အနည်းငယ်အတွင်းမှာ အလုပ်ဖြစ်မယ့် kernel တစ်ခုကို community ထဲမှာ ချပြနိုင်တော့မှာဖြစ်သည့်အလျှောက် ဘယ်လိုမျိုး feature တွေကို ခင်ဗျားတို့ လိုချင်သလဲဆိုတာ သိချင်ပါတယ်။ ဘယ်လို အကြံပေးချက်မျိုးကို မဆို ကြိုဆိုပါတယ်။ သို့သော်လည်း အဲ့ဒီ feature တွေကို တကယ်တမ်း kernel ထဲမှာ ထည့်ပေးဖို့ မထည့်ပေး ဖို့ကိုတော့ ကတိမပေးနိုင်ပါဘူး။ 🙂

Linus (torvalds@kruuna.helsinki.fi)

စကားချပ်

ဟုတ်ပါတယ်။ MINIX code ရဲ့ ဘယ်အပိုင်းကို မဆို အခမဲ့ဖြစ်တဲ့အပြင် multi-threaded filesystem နဲ့လာမှာပါ။ CPU architecture/system တစ်ခုကနေ တစ်ခုကို ပြောင်းသုံးလို့တော့မရတဲ့အတွက် 386 task switching လိုမျိုး switcher တွေနဲ့ တွဲသုံးရမှာဖြစ်ပါတယ်။ နောက်ပြီးတော့ အဲ့ဒီ kernel က AT-harddisks တွေလောက်နဲ့ပဲ အလုပ်လုပ်မှာဖြစ်ပြီးတော့ တခြားအမျိုးအစားတွေနဲ့ဆိုရင် အလုပ် လုပ်လောက် မှာမဟုတ်ပါဘူး။ အခုကတော့ ကျွန်တော် စွမ်းနိုင်သလောက် ဒါအကုန်ပါပဲ။ 😦

ဒီတပိုင်းမှာတော့ Linux kernel စတင်ခဲ့ပုံကို နည်းနည်းလေး မိတ်ဆက်ပေးလိုက်ရုံပါပဲ။ နောက်အပိုင်းတွေမှာတော့ Linux project ရဲ့ ဖြတ်သန်းခဲ့ ပုံအဆင့်ဆင့်ကို ဆက်ပြီးတော့ ရေးသွားပါ့မယ်။ လက်ရှိမှာလည်း Linux project ကို Linus Torvalds က ဆက်လက် ဦးဆောင်ပြီးတော့ maintainer တွေ များစွာနဲ့ ဆက်ပြီးတော့ ကောင်းသည်ထက် ကောင်းအောင် ပြင်ဆင် တိုးဖြည့် ရေးသားနေ ဆဲဖြစ်ပါတယ်။ စာဖတ်သူတွေ အနေနဲ့ Linux project/kernel အကြောင်းကို စိတ်ဝင်စားမယ်လို့ထင်ပါတယ်။ နောက်အပိုင်းတွေမှာ Linux kernel အကြောင်း ကို ဖြေးဖြေးချင်းဆီ စာရေးသူ ဆက်လက်တင်ပြသွားပါ့မယ်။

☕