Operating Systemအားအသေးစိတ်လေ့လာကြည့်ခြင်း (အပိုင်း-၁)

Cyberic Technology
3 min readNov 2, 2022

--

image from pixabay.com

ဒီနေ့မှာတော့ ပုံမှန်ရေးနေကျ Cybersecurity ဆောင်းပါးတွေအစား Computer Scienceဘက်ကိုနည်းနည်း သွားပြီး Operating Systemတွေအကြောင်းကိုပြောပြမှာပဲဖြစ်ပါတယ်။

(ဒီဆောင်းပါးကတော့ ‌Dr. Mike Murphy ရဲ့ computer science lecture တွေနဲ့ ပြင်ပကအချက်အလက်တွေအပေါ်မှီငြမ်းပြီးရေးသားထားတာပဲဖြစ်ပါတယ်။)

Operating System ဆိုတာဘာလည်း

“Operating System ဆိုတာ ကွန်ပျူတာရဲ့ Hardware နဲ့ Software Resources တွေကို ထိန်းချုပ်ပြီး ကွန်ပျူတာပရိုဂရမ်တွေကို လည်ပတ်ပေးနေတဲ့ system software တခုပဲဖြစ်ပါတယ်” ဆိုပြီး Wikipediaက အဓိပ္ပာယ်ဖွင့်ဆိုထားပါတယ်။ လူပိန်းစကားနဲ့ဆိုရင်တော့ operating system ဟာ user နဲ့ computer ကြားက ဘာသာပြန်တဦးပဲဖြစ်ပါတယ်။ ကွန်ပျူတာကပြောသမျှ စကားတွေကို user နားလည်အောင်ဘာသာပြန်ပေးသူတဦးလို့ လွယ်လွယ်ပြောလို့ရပေ မယ့် Opearating System ရဲ့ concepts တွေနဲ့ လုပ်ဆောင်ချက်တွေက ဘာသာပြန်တဦးလို့ သတ်မှတ်ရတာထပ်ကို ရှုပ်ထွေးပါတယ်။

ဒီတော့ထပ်ပြီးတော့ မရှုပ်၊ ရှုပ်အောင်ဆက်ပြောပြပါဦးမယ်။

image by author

ကွန်ပျူတာဆိုတာဘယ်သူလည်း၊ဘာကောင်လည်း

“A computer is a digital electronic machine that can be programmed to carry out sequences of arithmetic or logical operations (computation) automatically”

-Wikipedia

“ ကွန်ပျူတာဆိုတာကတော့ arithmetic နဲ့ logical operations တွေကို အလိုအလျောက်ဖြေရှုင်းပေးတဲ့ digital အီလက်ထရောနစ်ပစ္စည်းတခုပဲဖြစ်ပါတယ်”

-Wikipedia

ကွန်ပျူတာဟာဆိုရင်တော့ အဆင့်မြင့်တဲ့ calculator တလုံးပဲဖြစ်ပြီး computer ကိုpowerဖွင့်လိုက်မယ်ဆိုရင် တွက်ချက်နေတာကိုစသွားမှာဖြစ်ပြီး ဘယ်တော့မှကို တွက်ပြီးတယ်ဆိုတာမရှိတော့ပါဘူး၊ အဲ့အချိန်မှာ browser ဖွင့်ပြီး youtube.com လို့ရိုက်ရှာပြီး ဗီဒီယိုတပုဒ်ကြည့်လိုက်မယ်ဆိုရင် တွက်ချက်နေတာတွေကပိုလို့တောင်များသွားဦးမှာပါ။ ဒီတော့ကွန်ပျူတာရဲ့ အစိတ်အပိုင်းတွေကိုကြည့်မယ်ဆိုရင် Hardware၊ Operating System နဲ့ Software ဆိုပြီးရှိပြီး Hardware တွေကတော့ ကွန်ပျူတာရဲ့ အခြေခံအကျဆုံးနဲ့ အရေးကြီးဆုံးအစိတ်အပိုင်းတွေဖြစ်ပြီး အစိတ်အပိုင်းတွေအနေနဲ့ CPU၊GPU၊Storage၊Motherboard၊ Ram တို့ပါဝင်မှာပဲဖြစ်ပါတယ်။ Computer mouseတွေ၊ Keyboard၊Speaker တွေနဲ့ Printer တွေဟာလည်း Hardware တွေပဲဖြစ်ပြီး Hardwareအုပ်စုအောက်ကနေ I/O Devices(Input & Output Devices)ဆိုတဲ့ အုပ်စုခွဲအောက်ကိုတော့ရောက်သွားပါတယ်။ Hardwareပြီးတော့ Operating Systemလာမှာပဲဖြစ်ပြီး Operating System ဟာတော့ Hardware ‌တွေရဲ့ calculation တွေကို User နားလည်အောင်ဘာသာပြန်ပေးမှာပဲဖြစ်ပြီး User ရဲ့ command တွေကို Hardware ကနားလည်ပြီး Calculate လုပ်နိုင်အောင် အပြန်အလှန်ဘာသာပြန်ပေးတဲ့ ဘာသာပြန်တယောက်ပဲဖြစ်ပါတယ်။

Software ဆိုတာကတော့ Computer Systemရဲ့ Top Layer မှာရှိတဲ့ အရာတွေပဲဖြစ်ပြီး browserတွေ၊ video player တွေနဲ့ computer games တွေပါဝင်ပါတယ်။

Abstraction (ထုတ်နှုတ်ခြင်း)

Abstraction ဆိုတာကတော့ Operating System နည်းပညာတခုလို့ပြောလို့ရသလို function တခုလို့လည်းပြောလို့ရပါတယ်။ Abstraction ဟာဆိုရင်တော့ Operating Systemအား Computer ရဲ့ Motherboard ထဲမှာရှိနေတဲ့ Hardware တွေရဲ့ အချက်အလက်တွေကိုနားလည်သဘောပေါက်

အောင် ပြုလုပ်ပေးတဲ့ function ပါတယ်။ ဒီနေ့ခေတ်မှာတော့ Hardware တခုက motherboard ထဲ ထည့်လို့ဆန့်ပြီး ကိုယ်သုံးနေတဲ့ software ကို နိုင်အောင်မောင်းနိုင်တယ်ဆိုရင် ဘာပြဿနာမှမရှိပေမယ့်

1990 ခုနှစ်တွေတုန်းကတော့ computer gameတချို့က ကိုယ်စက်မှာ တပ်ထားတဲ့ CPUနဲ့ GPU ကို ဂိမ်းမဆော့ခင်configure လုပ်ခိုင်းတာတွေရှိခဲ့တယ် ဆိုတာကတော့ Operating System ထဲမှာ Abstraction လုပ်ဆောင်ချက်မရှိလို့ပဲဖြစ်ပြီး software တွေက user ကိုယ်တိုင်မှ မိမိသုံးနေတဲ့ Hardware တွေကိုမပြောရင် ဘာသုံးနေမှန်းမသိပါဘူး။

Arbitration

Arbitration နဲ့ Abstraction ဆိုတာကို Hardware တွေကို userဆီ တိတိကျကျနဲ့ အလေအလွင့်မရှိအောင် အကျိုးရှိရှိထိန်းကျောင်းချယ်လှယ်နေတဲ့ ညီအကို ၂ကောင်လို့တောင်ပြောလို့ရပါတယ်။ Arbitration ဟာ လက်ရှိမိမိrun နေတဲ့ process တွေနဲ့ app တွေကို သူတို့လိုအပ်တဲ့ Hardware Resource တွေကိုထိရောက်၊အကျိုးရှိအောင် ခွဲပေးတဲ့controllerတခုပဲဖြစ်ပါတယ်။ Arbitrationဟာ လျင်မြန်ပြီး efficient ဖြစ်တဲ့ multitasking enviornment တခုကို operating system အတွင်းမှာ ဖန်တီးပေးနိုင်ရုံတင်မကပဲ system နဲ့ security policies တွေကိုပါကြီးကြပ်ပေးပြီး app တခုနဲ့

တခုကြားက ကြားဝင်နှောင့်ယှက်မှုမဖြစ်အောင်ပါ app တွေကို isolate လုပ်ပေးပါတယ်။ Arbitration ဟာ ကိုယ် run နေတဲ့ software က အကယ်၍ crash ဖြစ်သွားခဲ့ရင်တောင် အနောက်မှာrunနေတဲ့တခြား software တွေကိုမထိခိုက်အောင် ကာကွယ်ပေးပါသေးတယ်။

Kernel နှင့် Userspace

Merriam Webster Dictionary အရ တော့ Kernel ဆိုတဲ့စကားလုံးဟာ ‌ ရှေးသုံးEnglish စကားလုံး cyrnel ကဆင်းသက်လာပြီး “ သစ်သီးအစေ့ရဲ့ အတွင်းပိုင်း က နူးညံ့သော အစိတ်အပိုင်း၊ သစ်သီးအတွင်းက ကျောက်ခဲ (သို့) အစေ့အဆန်” ဆိုပြီး အဓိပ္ပာယ်ဖွင့်ဆိုထားပါတယ်။

Kernel ဟာ operating system ရဲ့ ပင်မအစိတ်အပိုင်းတခုပဲဖြစ်ပြီး Operating System ရဲ့ တော်တော် နက်နဲတဲ့နေရာမှာတည်ရှိပြီး Operating System နဲ့ Hardware နှစ်ခုကို ထိန်းကြောင်းရာမှာ ပါဝင်ပတ်သက်နေပါတယ်။ Kernel ရဲ့ လုပ်ဆောင်ချက် ၄ခု ကတော့-

  1. Memory Management: memory ကို ဘယ်နား နဲ့ ဘယ်လိုသိမ်းဆည်းလည်းဆိုတာကို ခြေရာခံ၊မှတ်တမ်းတင်တဲ့ လုပ်ဆောင်ချက်ပဲဖြစ်ပါတယ်။
  2. Process Management: ဘယ် process တွေက Central Processing Unit(CPU) ကိုဘယ်လောက် နဲ့ ဘယ်လောက်ကြာကြာသုံးနိုင်မလည်းဆိုတာကို သတ်မှတ်ပေးပါတယ်။
  3. Device Drivers: hardware နဲ့ process ကြားက ကြားခံနယ်တခုအဖြစ် လုပ်ဆောင်ပါတယ်။
  4. System calls and security: process တွေက hardware အပေါ်ကိုတောင်းဆိုချက်တွေကို လက်ခံပေးတဲ့နေရာတခုဖြစ်ပါတယ်။

(credit:RHEL)

Kernel ဆိုအကြမ်းအားဖြင့်တော့ hardware နဲ့ software(operating system) ကြားက main driver တခုပဲဖြစ်ပြီး အပေါ်ကရေးခဲ့တဲ့ Arbitration Function ကို လုပ်ဆောင်နေတာပဲဖြစ်ပါတယ်။

Kernel နဲ့ Userspace ဟာ စိတ်ဝင်စားစရာကောင်းတဲ့ ပတ်သက်မှုတခုရှိပြီး ၄င်း Layer ၂ခုဟာ တခုနဲ့ တခုကြားမှာ SCI( System Call Interface) ဆိုတဲ့ ဆက်သွယ်မှုပုံစံတမျိုးနဲ့ အချိတ်အဆက်ပြုကြပါတယ်။ Userspace မှာ Application နဲ့ Libraries & Utilities ဆိုတဲ့ အုပ်စု၂စုပါဝင်ပါတယ်။ ဒီတော့ Userspace ဆိုတာဟာ computer system တခုရဲ့ မြင်နေ၊တွေ့နေရတဲ့ Layer ပဲဖြစ်ပြီး SCI process ကိုအသုံးပြုပြီး SCI ဟာUserspace နဲ့ System Resources ၂ခု ကြားကို ဆက်သွယ်၊ ထိတွေ့နေတဲ့ အရာတခုဖြစ်တဲ့အတွက် သူဟာလည်းအ‌ရေးကြီးတဲ့ လုပ်ဆောင်ချက်တခုဖြစ်ပါတယ်။

ဖတ်ရှု အားပေးကျလို့ အထူးပဲကျေးဇူးတင်ရှိပါတယ်။ ဒီနေ့ဆောင်းပါးက နည်းနည်းတော့တိုသွားပေမယ့် နှစ်သက်မယ်လို့ထင်ပါတယ်။ ဒီတော့ အပိုင်း-၂ မှာပြန်တွေ့ကြမယ်ဗျာ။

Follow us on Twitter: https://twitter.com/CybericTech

Facebookတွင်followလုပ်ရန်: https://www.facebook.com/profile.php?id=100087224795789

References

--

--