12/17/2013

Linux Kernel [Explanation]

Linux လုိ႔ေျပာရင္ Kernel ဆုိတာကုိေမ့ထားလုိ႔မရပါဘူး။ Linux နဲ႔အတူ Kernel ကတြဲျပီးပါလာျပီးသားျဖစ္ပါတယ္။ ဒီ Thread မွာ ကြ်န္ေတာ္ဖတ္မိသေလာက္ Kernel အေၾကာင္းကုိ နည္းနည္းေဖာၾကည့္မယ္ဗ်ာ။ လုိအပ္တာေတြရွိရင္လည္း ဝုိင္းျပီးေဆြးေႏြးေပးၾကပါ။ ကြ်န္ေတာ္ Linux အေၾကာင္းေရးတာ ကြ်န္ေတာ္ကုိယ္တုိင္လည္း Linux မွာ ကြ်မ္းက်င္ေနလုိ႔မဟုတ္ပါဘူး။ ဒါေပမယ့္ linux ကုိပုိင္ပုိင္ႏုိင္ႏုိင္သိခ်င္တယ္ဗ်ာ။ Linux ကေနာက္ပုိင္း တြင္တြင္က်ယ္က်ယ္သုံးလာမယ့္ေန႔ေတြ ေရာက္လာခဲ့ရင္ ကြ်န္ေတာ္တုိ႔ အဆင္သင့္ျဖစ္ေနေစခ်င္တယ္။ ကြ်န္ေတာ္ထင္ပါတယ္။ လက္ရွိ Linux အသုံးျပဳသူ ျမန္မာႏုိင္ငံမွာ အေတာ္ကုိနည္းလိမ့္မယ္။ ထားပါေတာ့  အေပၚက ပုံမွာဆုိရင္ Kernel ဖြဲစည္းပုံကုိ အၾကမ္းဖ်င္းေတြ႕ရမွာပါ။ ေျပာရရင္ေတာ့ Kernel ဆုိတာ Hardware နဲ႔ OS (software) ၾကားမွာ ဆက္သြယ္ေပးတဲ့ ၾကားခံတစ္ခုလုိ႔ ဆုိႏုိင္ပါတယ္။

ကြန္ပ်ဴတာေတြ စေပၚခါစ ဟုိးအဘဘုိးေတာ္ဖုရားေခတ္ေတြတုန္းကေတာ့ Windows ဆုိတာမရွိေသးဘူး။ Linux ဆုိတာလည္းမရွိေသးပါဘူး။ Unix သာလြမ္းမုိးခဲ့ပါတယ္။ Unix ဆုိတာလည္း free လုံးလုံးမဟုတ္ခဲ့ပါဘူး။ သူကုိသုံးဖုိ႔ အခ်ဳိ႕ အခေၾကးေငြေတြေပးရတယ္။ သူလည္း open-source ေတာ့ open-source ပါပဲ။ ေနာက္ေတာ့ အားလုံးသိထားၾကတဲ့ Linus Torvalds ဆုိတဲ့ ဖင္လန္ႏုိင္ငံသား ကြန္ပ်ဴတာပညာရွင္က ပထမဆုံး linux ကုိဖန္တီးခဲ့ပါတယ္။ unix ကုိအေျခခံထားတယ္ဆုိေပမယ့္ တုိက္ရုိက္ Copy ကူးခ်တာေတာ့မဟုတ္ခဲ့ပါဘူး။ adapted လုပ္တာလုိ႔ေျပာရမွာပါ။ သူရဲ႕ project ကုိ usenet တစ္ခုမွာ ေၾကာျငာခဲ့ပါတယ္။ မည္သူမဆုိ ပါဝင္ႏုိင္မယ္။ open-source ျဖစ္မယ္။ ဘာညာေပါ့။ သူ႔ရဲ႕ ပထမဆုံး project ကုိစိတ္ဝင္စားျပီး ပူးေပါင္းလုိက္တဲ့သူေတြ တဟုန္ခ်င္းျမင့္လာခဲ့ပါတယ္။ ဒါဟာ linux ရဲ႕ သမုိင္းအက်ဥ္းပါပဲ။ ခုဆုိ linux community ဟာ ၾကီးမားေနပါျပီ။ ကမၻာအဝွမ္း မ်ားျပားလွတဲ့ Developer ေတြနဲ႔ေပါ့။ Linux ကုိ C, Assembly programming နဲ႔အေျခခံေရးထားပါတယ္။ ပထမဆုံး linux ကုိ 1991 စက္တင္ဘာ ၁၇ ရက္ေန႔မွာ Release လုပ္ခဲ့တာျဖစ္ျပီး ဗားရွင္းကေတာ့ 0.01 ျဖစ္ပါတယ္။ Kernel ဖြဲ႕စည္းပုံကုိ ေအာက္ပါအတုိင္းအၾကမ္းဖ်င္းေလ့လာႏုိင္ပါတယ္။

 Kernel – source code in /usr/sys, composed of several sub-components:
conf – configuration and machine-dependent parts, including boot code
dev – device drivers for control of hardware (and some pseudo-hardware)
sys – operating system "kernel", handling memory management, process scheduling, system calls, etc.
h – header files, defining key structures within the system and important system-specific invariables

ကြ်န္ေတာ္တုိ႔ Windows မွာဆုိ OS တစ္ခု Boot တက္ဖုိ႔ BIOS system ကုိအသိေပးသလုိပါပဲ။ BIOS က ကြန္ပ်ဴတာပါဝါဖြင့္လုိက္တာနဲ႔ POST system အရ စစ္ေဆးမယ္။ ဥပမာ Hardware မွာ RAM ရွိ မရွိ၊ HD မွာ OS ရွိ မရွိ၊ တကယ္လုိ႔ OS က HD မွာမရွိရင္ CD ကေန Boot တက္။ ရွိခဲ့ရင္ BIOS က OS အပုိင္းကုိလက္လႊဲလုိက္ျပီး OS ကုိ Boot တက္ဘာညာေပါ့ေနာ္။ အဲသလုိပဲ Kernel မွာလည္း conf အပုိင္းမွာ hardware ေတြနဲ႔ဆုိင္တဲ့ code ေတြကုိ ထည့္သြင္းထားေတာ့ Boot တက္လုိက္တာနဲ႔ အဲဒီအပုိင္းက အလုပ္လုပ္ျပီး ခင္ဗ်ားရဲ႕ Hardware ကုိတုိက္ဆုိင္စစ္ေဆးမယ္။ dev အပုိင္းမွာ အဲဒီ hardware နဲ႔ကုိက္မယ့္ driver ေတြကုိစစ္ေဆးမယ္။ sys အပုိင္းမွာေတာ့ Memory ေတြကုိထိန္းေက်ာင္းမယ္။ ေနာက္ဆုံးေတာ့ ကြ်န္ေတာ္တုိ႔ျမင္ေနရတဲ့ GUI Interface ကုိျမင္ရတဲ့အထိ Boot တက္လာမယ္ေပါ့ေနာ္။ ဒါကေတာ့ ကြ်န္ေတာ္နားလည္မိသေလာက္အၾကမ္းဖ်င္း ေဖာၾကည့္တာပါ။ အထဲက process အေသးစိတ္ေတာ့ ကြ်န္ေတာ္လည္း နားမလည္ပါဘူး။ ဟီး။ :D

Kernel History
ေျပာရရင္ linux က monolithic kernel အမ်ဳိးအစားျဖစ္ပါတယ္။ monolithic kernel ဆုိတာကုိေတာ့ ေအာက္ကပုံမွာ အၾကမ္းဖ်င္းေတြ႕ႏုိင္ပါတယ္။
အျခား Kernel အမ်ဳိးအစားေတြလည္းရွိပါေသးတယ္။ သူတုိ႔ကုိ ဘယ္ os မွာသုံးေနသလဲေတာ့ ဆက္ျပီးေလ့လာရအုံးမယ္။ ကြ်န္ေတာ္လည္း အမ်ားၾကီးမသိတာေတြမ်ားေနျပီး ေဖာေနတာေတြမ်ားေနတယ္။ :(

 Kernel Version ေတြကေတာ့ ပထမဆုံး ဗားရွင္းကေန Develop လုပ္ေနတာ ခုဆုိ 13.12.3 ေတာင္ေရာက္ေနပါျပီ။ ေအာက္မွာ Kernel Version Release ကုိေတြ႔ႏုိင္ပါတယ္။
 Kernel version ေတြကေတာ့ အမ်ားၾကီးပါပဲ။ ဒီထဲက အခ်ဳိ႕ကေတာ့ Beta version, Stable version, Stable မဟုတ္တဲ့ version စသည္ျဖင့္ေပါ့ဗ်ာ။ Stable မျဖစ္တဲ့ဗားရွင္းေတြကုိ bug fixed လုပ္ခဲ့တဲ့သူေတြကေတာ့ Paul Gortmaker, Greg Kroah-Hartman, Andi Kleen, David Weinehall, ဘာညာေပါ့ေနာ္။ မ်ားေသာအားျဖင့္ Linux Distro ေတြက ကြ်န္ေတာ္တုိ႔လုိ end-user ေတြဆီကုိ Stable ျဖစ္တဲ့ Kernel ကုိသာခ်ေပးတာမ်ားပါတယ္။ ေအာက္မွာ Ubuntu Saucy မွာ ကြ်န္ေတာ္ျမင့္တင္ထားတဲ့ Kernel 3.12 ကုိေတြ႕ႏုိင္ပါတယ္။ ဒါကေတာ့ ကြ်န္ေတာ္တုိ႔ boot တက္လုိက္ရင္ ပထမဆုံး screen မည္းမည္းနဲ႔စာတန္းေတြတသီၾကီးေတြ႕ရေလ့ရွိတဲ့ Kernel ပါပဲဗ်ာ။ 

My Thread@ http://www.4sectors.com/forum/showthread.php?tid=1386&pid=4641#pid4641

Ref: http://en.wikipedia.org/wiki/Linux_kernel

No comments:

Post a Comment

If you good, i don't bad. if you think you can bark me, I think i can also fuck you. I'm just ordinary person. Is that OK? :)