Fundamental Knowledge for Operating System
What is operating system?
Operating system ဆိုသည္မွာ Hardware devices မ်ားႏွင့္ ကြန္ပ်ဴတာ အသံုးၿပဳသူမ်ား၊ အသံုးခ်ေဆာ့ဖ္၀ဲ ကိုၾကားခံ ခ်ိတ္ဆက္ေပးေသာ မရွိမၿဖစ္ software တစ္မ်ိဳးၿဖစ္သည္။
Operating System အမ်ိဳးအစားမ်ားစြာရွိသည္။ အသံုးအမ်ားဆံုးမွာ Microsoft Coporation မွ ထုတ္လုပ္ေသာ Microsoft Windows Operating System မ်ားၿဖစ္သည္။ ဥပမာ- Windows XP, Windows Vista, Windows 7, Windo -ws 8 စသည္တို႔ၿဖစ္သည္။ အၿခား operating system မ်ားမွာ Unix, linux အမ်ိဳးအစားမ်ားၿဖစ္ေသာ Ret hat, Ubuntu, Fedora, Suse, Free BSD စသည္မ်ား၊ Oracle company ၏ solaris၊ Apple ၏ Mac OS စသၿဖင့္ မ်ားစြာရွိသည္။ သို႔ေသာ္ အသံုးအမ်ားဆံုးမွာ Microsoft Windows Operating System မ်ားသာၿဖစ္သည္။ ကြန္ပ်ဴတာအားလံုး၏ ၈၈ ရာခိုင္ႏွဳန္းသည္ Microsoft Windows Operating System မ်ားၿဖစ္သည္ဟုဆိုၾကသည္။
Programmer မ်ားအေနၿဖင့္မိမိတို႔ေရးသားဖန္တီးေသာ application မ်ားအားမည္သည့္ OS မ်ားေပၚတြင္အလုပ္လုပ္ေစမည္ကိုစဥ္းစားတတ္ေစရန္လိုအပ္သည္။ ဥပမာ-မိမိသည္ Software Engineer တစ္ေယာက္ ၿဖစ္သည္ဆိုပါစို႔။ user တစ္ေယာက္သည္ မိမိထံသို႔ စာစီစာရိုက္ application တစ္ခုလာေရာက္အပ္ႏွံသည္ဆိုပါစို႔။ user အသံုးၿပဳေနေသာ computer သည္ မည္သည့္ OS တင္၍အသံုးၿပဳေနသည္ကို မိမိကသိရွိမွသာ ထို OS က လက္ခံေသာ Platform တြင္အလုပ္လုပ္ႏိုင္ေသာ programming language ကိုေရြးခ်ယ္ႏိုင္မည္ၿဖစ္သည္။ Windows user အတြက္ application ေရးသားရန္ Visual Basic ကဲ့သို႔ေသာ language ၿဖင့္ေရးသားႏိုင္ေသာ္လည္း Linux user အတြက္ အၿခား language တစ္ခုၿဖင့္ေရးသားေပးရမည္ၿဖစ္သည္။
How they work
Operating System တစ္ခုတြင္အဓိကအလုပ္လုပ္ေသာအစိတ္အပိုင္းသည္ kernel ၿဖစ္သည္။ သို႔ေသာ္ user ႏွင့္အဓိကထိေတြ႔ႏိုင္ရန္ shell မွတဆင့္ၾကားခံေပးသည္။
Figure 1.1 Block diagram for operating system
ပံုပါလမ္းေၾကာင္း 1 ကိုရွင္းၿပပါမည္။
Windows operating system တြင္ start Menu, Task Bar,My Computer, Desktop, Icons စသည္မ်ားသည္ Windows ၏ GUI Shell ၿဖစ္သည့္ Explorer.exe ဟူေသာ Windows Explorer program ၏ ၿပသခ်က္မ်ားပင္ၿဖစ္သည္။ ဥပမာ- user တစ္ေယာက္သည္ ဖိုင္တစ္ခုကိုဖ်က္မည္ဆိုပါက Windows operating system ၏ GUI Shell ၿဖစ္ေသာ Windows Explorer program ၏ အကူအညီၿဖင့္ My Computer ကိုဖြင့္ကာ မိမိဖ်က္လိုေသာဖိုင္ရွိရာေနရာ သို႔သြား၍ဖ်က္သည္ဆိုပါစို႔။ user သည္ shell သို႔အလုပ္တစ္ခုေပးလိုက္ၿခင္းသာၿဖစ္သည္။ ထိုအခါ explorer shell သည္ kernel သို႔လွမ္း၍ဆက္လက္ေၿပာသြားမည္။ kernel မွတဆင့္ assembler သို႔ဆက္ေၿပာၿပီးေနာက္ဆံုးတြင္ hardware (harddisk) သို႔ ဖိုင္တကယ္ပ်က္ေစမည့္ voltage တစ္ခုကိုလွမ္းထုတ္ၿပီး hardware ေပၚရွိဖိုင္ကို တကယ္ပ်က္ေစမည္ၿဖစ္သည္။
ပံုပါလမ္းေၾကာင္း 2 ကိုရွင္းၿပပါမည္။
ဥပမာ- user တစ္ေယာက္သည္ Neo software ၿဖင့္အေခြတစ္ေခြ burn မည္ဆိုပါက Neo software ကိုဖြင့္၍ burn လိုေသာဖိုင္မ်ားကို ထည့္ရပါမည္။ ေနာက္ဆံုး burn ေစမည့္ button တစ္ခုကို click ၍ burn လိုက္သည္ဆိုပါစို႔။ user မွ application ကိုခိုင္းလိုက္ၿခင္းပင္ၿဖစ္သည္။ Neo application သည္ Microsoftware Visual C# languageၿဖင့္ေရးသားထားသည္ဆိုပါစို႔။ user ခိုင္းေစေသာအလုပ္ကို C# Language ၏ Framework ၿဖစ္ေသာ Microsoft.Net Framework ကိုဆက္၍ေၿပာမည္။ Microsoft.Net Framework မွ kernel ကိုလွမ္း၍ေၿပာမည္။ kernel မွ assembler ကိုဆက္၍ေၿပာမည္။ assembler မွ ေနာက္ဆံုး hardware(CD/DVD drive) ကိုလွမ္းေၿပာကာ အေခြတြင္ data burn ေစေသာ voltage မ်ားလႊတ္ေပးမည္ၿဖစ္သည္။
User interface mode
Operating system ႏွင့္ User မ်ားဆက္ဆံရာတြင္ အေၿခအေနႏွစ္ခုရွိသည္။
- Graphical User Interface(GUI) ႏွင့္
- Command Line Interface(CLI) တို႔ၿဖစ္ၾကသည္။
Graphical User Interface(GUI) ဆိုသည္မွာ window Forms မ်ား၊ buttons မ်ား၊ menu မ်ား၊ textbox မ်ား၊ picturebox မ်ားစသည္ၿဖင့္ user အား mouse ၿဖင့္လြယ္လင့္တကူ click ၍အသံုးၿပဳႏိုင္ေစေသာ စနစ္မ်ိဳးၿဖစ္သည္။ လက္ရွိအသံုးၿပဳေနေသာ Microsoft ၏ Windows စနစ္သည္ GUI စနစ္ၿဖစ္သည္။ GUI ၿဖင့္ new Folder တစ္ခုတည္ေဆာက္လိုပါကေအာက္ပါပံုအတိုင္း user ၿပဳလုပ္ရမည္ၿဖစ္သည္။
Figure 1.2 A GUI Windows
Command Line Interface(CLI) ဆိုသည္မွာ command processor ၿဖစ္သည့္ command prompt (Linux တြင္ terminal) မွတဆင့္ မိမိၿပဳလုပ္လိုေသာ ေဆာင္ရြက္ခ်က္မ်ားကို တိုက္ရိုက္ အမိန္႔ေပးၿခင္း ၿဖစ္သည္။ ဥပမာ-drive C ထဲတြင္ tutorial ဟူေသာ folder တစ္ခု ၿပဳလုပ္လိုပါက ရိုက္ထည့္ရမည့္ command မွာ md C:\tutorial ၿဖစ္သည္။
Figure 1.3 A CLI Windows
အသံုးၿပဳသည့္နည္းလမ္းမ်ားကြာၿခားေသာ္လည္းလုပ္ေဆာင္မွဳႏွစ္ခုလံုး၏ ရလဒ္မွာအတူတူပင္ၿဖစ္သည္။
Types of OS
Operating System မ်ားကိုအေၿခခံအားၿဖင့္ kernel ေပၚမူတည္၍
- Open Source ႏွင့္
- Close Source ဟူ၍ ႏွစ္မ်ိဳးခြဲၿခားထားသည္။
မူရင္းေရးသားထားေသာ OS ၏ source code ကိုၿပန္လည္ၿပင္ဆင္ ေၿပာင္းလဲေရးသားႏိုင္သည့္ OS မ်ိဳးကို open source ဟုေခၚသည္။ ဥပမာ- Linus Torvalds ေရးသားထားေသာ Linux ဟု အမည္ေပးထားသည့္ kernel ကို အသံုးၿပဳထားသည့္ Linux မ်ိဳးကြဲ OS မ်ား(Ubuntu, RetHat, Fedora, Suse စသၿဖင့္) ။ Ubuntu Linux ဆိုလွ်င္ အခမဲ့ၿဖစ္သည္။ Ubuntu ဟူသည့္ ေ၀ါဟာရ၏ အဓိပၸါယ္မွာပင္ အာဖရိကဘာသာစကားၿဖင့္ “လူသားၿခင္း စာနာေထာက္ ထားၿခင္း” ဟူ၍ၿဖစ္သည္။ ၎တြင္ အသံုးၿပဳသည့္ application မ်ား အားလံုးသည္လည္း အခမဲ့ပင္ၿဖစ္သည္။
Figure 1.4 Linus Torvalds, 2000
Figure 1.5 Ubuntu
မူရင္း ေရးသားထားေသာ OS ၏ source code မ်ားကို ၿပန္လည္ၿပင္ဆင္ခြင့္မရွိပဲ အသံုးၿပဳခ အဖိုးအခ ေပးရသည့္ OS မ်ိဳးသည္ close source ၿဖစ္သည္။ ဥပမာ- Microsoft ၏ Windows မ်ားၿဖစ္သည့္ Windows 7, Windows 8 စသၿဖင့္။ ၎ OS မ်ားတြင္ အသံုးၿပဳသည့္ application မ်ား အားလံုးလိုလိုသည္လည္း အဖိုးအခ ေပးရသည္။
Figure 1.6 Microsoft Windows 7
Figure 1.7 Windows သံုး application တစ္ခုမွ user အား၀ယ္ခိုင္းေနပံု