Operating System Kernel
OS ရဲ. Kernel ဆိုတာ Operating System တခုလုံးရဲ. အဓိက ကျတဲ့ code တွေ functionality တွေ စုထားတဲ့ code တွေကိုပြောတာ။ များသောအားဖြင့်ဘာတွေပါလဲဆိုတော့
Resource allocation
(CPU, Memory, IO, Device တွေကို process တွေကြားမှာ ထိထိရောက်ရောက် အသုံးချနိုင်အောင် လုပ်တာ)
Process Management
Process တွေ creation လုပ်တာ ခေါ်တင်တာ. နောက် process management ပိုင်းဆိုင်ရာတွေ
Memory Management
Process တွေအတွက်Main memory (RAM )နဲ. Virtual Memory (Secondary storage hard disk) တွေကို manage လုပ်ပေးရတာ။
IO/Device Management
IO Device တွေအတွက် Device Driver တွေကနေတဆင့် လှမ်းထိန်းတာတွေ ခေါ်သုံးတာတွေလုပ်ရတာ။
Inter Process Communication
Multi Programming system တွေမှာ process အချင်းချင်း deadlock, starvation တွေ မဖြစ်အောင် ထိန်းရတယ်။ အဲ့အတွက် သူတို.ချင်းဆက်သွယ်ဖို.လုပ်ရတယ်။ များသောအားဖြင့် TCP/IP networking နောက် pipe အစရှိတာတွေနဲ.လုပ်ကြတယ်။
Scheduling
Process တွေ အများကြီး တပြိုင်တည်းပေသုံးထားတော့ဘယ် CPU ပေါ်မှာ အကုန်လုံး တပြိုင်တည်း လုပ်ခိုင်းလို.မရဘူး။ တယောက်ပြီး နောက်တယောက် အလှည့်ပေါ့။ အဲ့တော့ဘယ်သူ.အလှည့်ကျမလဲ အချိန်ဘယ်လောက်ပေး run မလဲဆိုတာကို scheduling ကလုပ်တယ်။
System call and Interrupt Handling
System call ဆိုတာ OS ကပေးထားတဲ့ သုံးလို.ရတဲ့ API တွေ ဥပမာ file read တာမျိုး programming language တခုခုက file read ဆိုပေမဲ့ သူ.နောက်မှာ library ကနေ OS ရဲ. file read API call ကိုခေါ်ရတယ်။ ဒါကို system call လို.ခေါ်တယ်။ Interrupt ဆိုတာ IO device တွေက သူတို. အလုပ်တွေ ပြီးသွားရင် ဒါမှ မဟုတ် တခုခု event ပေါ်လာရင် ဥပမာ keyboard ကနေ key တွေ၇ိုက်လိုက်တယ် ဒါဆို OS နဲ.ဘယ်လို communicate လုပ်လဲဆိုရင် ဟေ့ ငါ key တခု လက်ခံလိုက်ပြီ ဆိုပြီး လှမ်းပြောတယ် အဲ့လို ပြောတဲ့အချိန်မှာ OS သည် သူလုပ်နေတဲ့အလုပ်ကို ခန ရပ်ပြီး ခုနက IO ပြောတာကို လှမ်း process လုပ်ရတယ်။ ဒါကြောင့် ခနတာ လှမ်းနှောက်ယှက်လို. interrupt လို.ခေါ်တာ။
Security or Protection Management
ဒါကတော့ process တခုကနေ တခြား တခုရဲ. address space (သူ.ဖို.နေရာယူထားတဲ့ main memory.+ virtual memory မှာရှိတဲ့ memory area) ကို ၀င်ပြီး မနှောင့်ယှက်နိုင်အောင် access control တွေ fault control တွေ နဲ.ထိန်းထားတာမျိုး။
Kernel အမျိုးအစားသုံးမျိုးရှိတယ်။
Monolithic Kernel
သူက ခုနကပြောတဲ့ kernel function တွေကို program တခုတည်း module တခုတည်း ထားပြီး single address space နဲ.အလုပ်လုပ်တာ။ ဘာကောင်းလဲဆိုတော့ function အားလုံးကို communicate လုပ်တဲ့အခါ process တခုတည်းဖြစ်နေတော့ communication ပိုင်းမှာ same memory address space ကနေပဲယူရတော့ IPC မလိုဘူး။ အချိန်မြန်တယ်။ Device driver တွေကိုပါတခါတည်း ထဲ့ပေးထားတော့ hardware ကို လှမ်းသုံးရတာ မြန်တယ်။ Device ကို kernel က support လုပ်ပေးထားတယ်ဆိုရင် device driver ထဲ့စရာမလိုတော့ဘူး။ မကောင်းတာက အားလုံး စုသုံးရတဲအတွက် module တခုမှာ fail ဖြစ်ရင် kernel တခုလုံး crash ဖြစ်မယ်။ Memory footprint များတယ်။ အားလုံးစုသုံးတာကိုး။ သူ.ကိုသုံးတဲ့ကောင်တွေက Linux, BSDs (FreeBSD, OpenBSD, NetBSD), Solaris, OS-9, AIX, HP-UX, DOS, Microsoft Windows (95,98,Me), OpenVMS, XTS-400 .
Micro Kernel
သူ.ကျတော့ ခုနက kernel function လေးတွေကို module တပိုင်းချင်းဆီ ခွဲပြီး seperate addres space အနေနဲ.သုံးတယ် ဆိုချင်တာ file management သည် process တခု scheduler သည် process တခုပေါ့။ အဲ့တော့ process communication ဖို. IPC လိုတယ်။ ကောင်းတာက Module တခု fail ဖြစ်ရင်တောင် kernel crash မဖြစ်ဘူး။ Flexible ဖြစ်တယ်။ Installation footprint နည်းတယ်။ Minix က micro kernel ကိုသုံးတယ်။
Hybrid
အပေါ်က ခုနကပေါင်းပြီး သုံးတာပေါ့။ နောက်ပိုင်း window တွေမှာ hybrid ကိုသုံးတယ်။
Original link