Linux မှာ Boot Process က ဘယ်လို အလုပ်လုပ်လဲ
Linux Distro တစ်ခုခု တင်ထားတဲ့ ကွန်ပျူတာတွေကို အလွယ်ပြောတော့ Linux computer တွေပေါ့။
Linux ကွန်ပျူတာ တစ်လုံးကို power ခလုတ် နှိပ်လိုက်တဲ့အခါ အဲသည်နောက်ကွယ်မှာ ဘာတွေ ဘယ်လို အလုပ်လုပ်သွားတယ်ဆိုတာကို အကြမ်းဖျင်းလေး ပြောပြပါမယ်။
ကွန်ပျူတာမှာရှိတဲ့ ပါဝါခလုတ်ကို နှိပ်လိုက်တဲ့အခါ ကွန်ပျူတာပွင့်လာတယ်။ Operating System တက်လာတယ်ဆိုတာမျိုးတော့ ကျွန်တော်တို့ သိကြပြီးသားပါ။ ဒါပေမဲ့ ပါဝါခလုတ်နှိပ်ပြီးတာနဲ့ ပထမဆုံး run သွားတာက Operating System မဟုတ်သေးပါဘူး။
ကွန်ပျူတာကို ပါဝါဖွင့်လိုက်တဲ့အခါ BIOS (or) UEFI က အရင်ဆုံး run ပါတယ်။ ဒီနေရာမှာ BIOS or UEFI လို့ သုံးထားတာကို သတိပြုပါ။ အချို့က အတူတူပဲလို့ ထင်တတ်ပါတယ်။ တကယ်က BIOS ဆိုတာက Basic Input Output System ကို အတိုကောက် သုံးနှုန်းထားတာ ဖြစ်ပါတယ်။ UEFI ဆိုတာက Unified Extensible Firmware Interface ကို ဆိုလိုပါတယ်။ နှစ်မျိုးလုံးက ကွန်ပျူတာကို ပါဝါစဖွင့်ဖွင့်ချင်းမှာ အလုပ်လုပ်ကြရတဲ့ Firmware Interface တွေ ဖြစ်ပါတယ်။ BIOS သည် Master Boot Record (MBR) partition နဲ့ အလုပ်လုပ်ဆောင်ပြီး HDD/SSD 2TB အထိသာ ကိုင်တွယ်စီမံနိုင်ပါတယ်။ UEFI ကတော့ GUID Partition Table (GPT) ကို အသုံးပြုပြီး Size limit မရှိပါဘူး။ ပိုပြီးတော့လည်း boot time မြန်ပါတယ်။ UEFI သည် feature ပိုစုံပြီးတော့ Flexible ပိုဖြစ်ပါတယ်။ BIOS သည် Text Based Interface နဲ့ သွားပြီးတော့ UEFI ကိုတော့ GUI Version အနေနဲ့ တွေ့မြင်ရနိုင်ပါတယ်။
ခေါင်းစဥ်လွဲကုန်မှာစိုးလို့ ပြန်တည့်ရရင် ကွန်ပျူတာကို ပါဝါဖွင့်လိုက်ပြီဆိုတာနဲ့ BIOS or UEFI က run ပါတယ်။ သူက CPU, HDD/SSD, RAM, Keyboard, … စတဲ့ hardware device တွေကို အသင့်အသုံးပြုနိုင်စေဖို့ လုပ်ဆောင်ပါတယ်။ အဲလိုလုပ်ဆောင်ရာမှာ အဆိုပါ hardware တွေကို အလုပ်လုပ်ဆောင်နိုင်မှုရှိမရှိ စစ်ဆေးတာမျိုး အရင်ဆုံး လုပ်ပါတယ်။ အကယ်၍ error တစ်စုံတစ်ရာတွေ့ခဲ့မယ်ဆိုရင်တော့ screen ပေါ်မှာ error ဖော်ပြဖို့ကို အရင်ဆုံး လုပ်ဆောင်မှာ ဖြစ်ပါတယ်။ အားလုံးမှာ error မရှိဘူးဆိုတဲ့အခါမှ Boot Loader software ကို ရှာဖွင့်ပါတယ်။ (BIOS setting ထဲက boot menu မှာ boot order ပါရှိပါတယ်။ Boot order ဆိုတာက ကွန်ပျူတာတွေကို Windows (or) Linux OS တွေတင်တဲ့အခါ အရေးပါပါတယ်။ USB or DVD Disc or HDD ဘယ်ဟာကနေ အရင်ဆုံး boot စတင်မယ်ဆိုတာကို boot order မှာ သတ်မှတ်ထားနိုင်ပါတယ်)
အဲသည်မှာ BIOS မှာဆိုရင် Master Boot Record ထဲမှာ ရှိမှာဖြစ်ပြီးတော့ UEFI မှာဆိုရင်တော့ သီးသန့် partition တစ်ခုနဲ့ တွေ့ရနိုင်ပြီး .efi နဲ့ ဆုံးလေ့ရှိပါတယ်။ Boot loader file ရဲ့ အဓိကတာဝန်က သက်ဆိုင်ရာ Operating System ရဲ့ Kernel တည်ရှိရာကို မှတ်ထားပြီး အဲသည်ကနေ memory (RAM) ပေါ်ကို ခေါ်တင်ဖို့ ဖြစ်ပါတယ်။ ပြီးရင် Kernel code တွေကို run လိုက်ပါတယ်။ Linux system တွေမှာတော့ Boot Loader တွေကို GRUB (or) LiLo ကို သုံးလေ့ရှိကြပါတယ်။ LiLo က Linux Loader ပါ။ ကျွန်တော်တို့သုံးကြတဲ့ Kali, Ubuntu, .. စတဲ့ Debian Linux တွေမှာတော့ GRUB ကို အဓိက တွေ့နိုင်ပါတယ်။
GRUB boot loader က အများဆုံး သုံးတဲ့ Boot Loader ဖြစ်တာမို့ GRUB နဲ့ပဲ ပြောပါမယ်။ LiLo လည်း လုပ်ဆောင်ချက်က အတူတူပါပဲ။
GRUB Boot loader သည် user က ဖွင့်မယ့် OS ရဲ့ Kernel ကို ရွေးချယ်ခေါ်ယူရပါတယ်။ (user သည် OS တစ်ခုထက်ပိုပြီး တင်ထားတာ ဖြစ်နိုင်တဲ့အတွက် ပါ။ အပေါ်က နမူနာပုံမှာ Kali နဲ့ Windows 10 Dual boot menu ကို တွေ့ရမှာပါ)
Kernel နဲ့ ပူးပေါင်းပြီးတော့ Start Up process ပြီးဆုံးအောင်လုပ်ရပါတယ်။
Kernel run ပြီး အသင့်အနေအထားရောက်တဲ့အခါမှာတော့ Kernel သည် ကွန်ပျူတာရဲ့ resource တွေကို လွှဲပြောင်းရယူလိုက်ပြီးတော့ background process တွေ၊ service တွေကို run ပါတော့တယ်။ hardware တွေကို စစ်ဆေးတယ် ပြီးတော့ device driver တွေနဲ့ အခြား Kernel Module တွေကို loading လုပ်ရပါတယ်။ ပြီးတော့ system ရဲ့ initial execution environment ကို setup လုပ်ရပါတယ်။ Kernel ရဲ့ core component တွေကို လုပ်ဆောင်ပြီးသွားတဲ့အခါ root file system ကို mount လုပ်ရပြီးတော့ user-space environment ကို setup လုပ်ရပါတယ်။
ပြီးတော့မှ SystemV init (or) Upstart ကို စတင်ပါတယ်။ နောက်ပိုင်း Linux system တွေမှာတော့ systemd ကို ပြောင်းလဲအသုံးပြုလာပြီး ဖြစ်ပါတယ်။ ဒီတော့ systemd ကို run လိုက်တယ် ဆိုပါစို့။ systemd က Linux OS တွေ အတွက် system & service manager ပါ။ system service တွေကို manage လုပ်တာမျိုး၊ daemon တွေကို handle လုပ်တာမျိုးတွေကို အဓိက လုပ်ဆောင်ပါတယ်။ boot process ထဲမှာလည်းပဲ သူက coordinate လုပ်ရပါသေးတယ်။ user space process တွေအတွက် ဖြစ်ပါတယ်။ systemd မှာ systemctl, journalctl, notify, analyze, cgl, cgtop, loginctl, nspawn စတာတွေ ပါဝင်ပါတယ်။ systemd ရဲ့ daemon တွေကတော့ systemd, journalctl, networks, loginuser, session, … စတာတွေ ဖြစ်ပါတယ်။ user တွေအတွက် GUI နဲ့ ဖော်ပြပေးတည၊ အသံပိုင်းဆိုင်ရာ၊ wifi သုံးတာလို နက်ဝပ်ချိတ်တာ၊ ကွန်ပျူတာပိတ်တာ၊ restart လုပ်တာတွေသည်လည်း သူ့က လုပ်ဆောင်ပေးပါတယ်။ အဲသည်နောက်မှာတော့ ကျွန်တော်တို့ရဲ့ Linux system ကို စတင်အသုံးပြုနိုင်ပြီ ဖြစ်ပါတယ်။
Linux system တွေနဲ့ပတ်သက်ပြီး ကျွမ်းကျင်စွာ အသုံးပြုတတ်လိုပါက Linux for Hackers ဆိုတဲ့ (မြန်မာလို) စာအုပ်ကို ဖတ်ရှုလေ့လာနိုင်ပါတယ်ခင်ဗျာ
Thank you, all







0 Comments