Saturday, February 13, 2010

ලිනක්ස් සිංහලෙන් මුල සිට සරලව - ලිනක්ස් ස්ථාපනයේදී වැදගත් වන කරුණු

බොහොම කාලෙකින් බ්ලොග් එකක් ලියන්න වෙලාව ලැබුනෙ. යන්තම් විභාගෙ ඊයෙන් ඉවරයි. දැන් ඉතින් නිදහස්. ප්‍රශ්න පත්තර ටිකට නම් කොහොම කොහොම හරි උත්තර ලියා ගත්ත. මොනව වෙයිද දන්නෙ නෑ. මේ සමාසිකයෙන් මම හරියට කලේ එක විශයයි ඒ "Operating Systems" කියන එක. මෙහෙයුම් පද්ධතියක ක්‍රියාකාරීත්වය අභයන්තරිකව විමසීම තමයි මේ විශයෙන් කලේ. එකක් වත් වරද්දන්නෙ නැතිව lectures ගියේ මේකට විතරයි. මේ විශය උගන්නපු චමත් සර්ගේ ඉගැන්වීමේ විලාශයත් ලමයි ඒ විශයට ආස වෙන්න හේතුවක්. තව චමත් සර්නුත් ලිනකස් ලෝලියෙක්. ප්‍රායෝගික ඔක්කොම කරන්න උනේ ලිනක්ස් වල. ඒ නිසා අපේ ජනෙල් තානාපතිලත්(කැපුවත් වින්ඩෝස් අය) අකමැත්තෙන් virtual box එකේ හරි ලිනක්ස් දාගත්ත mrgreen. සර් එක පාරක් කිව්ව "More than 90% of worlds most fastest super computers run Linux, then why not your machine" කියල. ඒකයි ලිනක්ස් වල බලය. හරි දැන් මාතෘකාවට එන්නම්. මම කිලින් ලිනක්ස් ගැන පූර්ව විස්තරයක් ලිපි දෙකකින් ලිව්ව. ලිනක්ස් ඉගන ගන්න කලින් පරිගනකයේ ලිනක්ස් ස්ථාපනය කරගෙන ඉන්න එපැයි. මම කලින් උබන්ටු ස්ථාපනය කරගන්න හැටි ලිපියක් ලිව්වත් තාක්ෂණික විස්තර ඇතුලත් කලේ නෑ ඒකට. මෙහෙයුම් පද්ධතියක් ස්ථාපනය කරන එක අමාරු දෙයක් නෙමෙයි. Facebook account එකක් හදනව තරම් ලේසියි biggrin. වැදගත් දේ කරන්නෙ මොකද්ද කියල දැනගෙන ඒ දේවල් කරන එක. මේ සටහනේ මම පියවරෙන් පියවර විස්තර කරන්නෙ නෑ. මම කලින් සවිස්තර සටහනක් මේ ගැන ලිව්වා. ඒ නිසා අවශ්‍ය අය ඒ සටහනත් මේකත් එක්කම බලන්න. මෙන්න ඒකට ලනුව.

මුලින්ම කරන්න ඕන මොකද්ද?
තමන් ස්ථාපනය කරගන්න යන ලිනක්ස් OS එක මොකක් උනත් මුලින්ම අපි බලන්න ඕනෙ අපේ hard disk එකේ කොතනටද අපි මේ OS එක ස්ථාපනය කරගන්නෙ කියල. මෙතනදි වෙන්න පුළුවන් අවස්ථා කීපයක් තියනව.
  1. අළුත්ම නැත්නම් සම්පූර්ණයෙන් format කල hard disk එකකට OS එක ස්ථාපනය කිරීම.
  2. වෙනත් OS එකක් දැනටමත් ස්ථාපනය කරල තියන Hard disk එකකට OS එක ස්ථාපනය කිරීම.
මෙතනදි දැනගන්න ඕන දේවල් ගැන ටිකක් බලමු.

අළුත්ම නැත්නම් සම්පූර්ණයෙන් format කල hard disk එකකට OS එක ස්ථාපනය කිරීම.

පරිගනකයේ මෙහෙයුම් පද්ධතියක් ස්ථාපනය කිරීමේදී මෙහෙයුම් පද්ධතියට අවශ්‍ය ඉඩ ප්‍රමාණයට partition එකක් හදල ඒකෙ OS එකත් තමන්ට අවශ්‍ය අනෙක් දත්ත, චිත්‍රපට සිංදු වගේ වෙන partition එකකට හෝ කීපයකට දාගන්න එක ඇඟට ගුණයි. මොකද OS එකේ මොකක් හරි ප්‍රශ්නයක් ගිහිල්ල OS එක ආයෙ ස්ථාපනය කරන්න උනොත් ඒ partition එකේ තියන අපේ අනිත් දත්තත් නැති වෙලා යන නිසා. අනිත් දේ මෙහෙයුම් පද්ධති කීපයක් ස්ථාපනය කර ගන්නව නම් ඒ ඒ OS එකට වෙන වෙනම partition තිබීම අවශ්‍යයි. මේ නිසා අළුත් hard disk එකක්කට OS එක ස්ථාපනය කිරීමෙදි මුලින්ම ඒ දෙවල් ගැන හිතල partition හදල තියන එක වැදගත්.

මෙතනදි තව සැලකිය යුතු දෙයක් තමයි අපි ලිනක්ස් OS සහ වින්ඩෝස් කියන OS දෙකම ස්ථාපනය කරන්න යනව නම් අපි මුලින් වින්ඩෝස් ස්ථාපනය කරල ඉන්න ඕන. (මගේ පරණ පෝස්ට් එකක් තිබුනා මේ ගැන වෙලාව තියනව නම් කියවල එන්න. මෙන්න ලනුව)
ඇයි ඒ?
පරිගනකයේ මෙහෙයුම් පද්ධතිය ක්‍රියාත්මක වෙන්න hard disk එකේ මෙහෙයුම පද්ධතිය තියන තැන හොයල දෙන්නෙ boot loader කියන කුඩා වැඩසටහනින්. සාමාන්‍යයෙන් boot loader එකෙන් කරන්නෙ පරිගනකයේ ප්‍රධාන මෙහෙයුම් පද්ධතිය සොයල දෙන එක. වින්ඩෝස් වල boot loader එක හඳුනගන්නෙ වින්ඩෝස් වර්ගයේ මෙහෙයුම් පද්ධති විතරයි(මේ ලෝකෙ තියෙන්න පුළුවන් වින්ඩෝස් විතරයි කියල ඒ අය හිතන නිසා වෙන්න ඇති) මේ නිසා ලිනක්ස් ස්ථාපනය කරපු පරිගනකයක දෙවන වතාවට වින්ඩෝස් ස්ථාපනයක කලොත් වින්ඩෝස් වලින් පරිගනකයේ ලිනක්ස් ස්ථාපනය හඳුනා නොගෙන boot loader එක ලියනව. මේ නිසා ඉන් පස්සෙ කලින් ස්ථාපනය කර තිබුන ලිනක්ස් ස්ථාපනය boot කරන්න පුළුවන් වෙන්නේ නෑ. මෙහෙම වුන වෙලාවක කරන්න පුළුවන් දේ තමයි live CD එකකින්(Live Pen එකකින් උනත් කමක් නෑ biggrin) boot කරල terminal එක පාවිච්චි කරල grub එක ආය install කරන එක.(9.04 වලදි මෙහෙම, 9.10 වලදි මෙහෙම)

ඒත් ලිනක්ස් වලදි එහෙම අවුලක් නෑ. ලිනක්ස් වල බොහෝ වේලාවට පාවිච්චි කරන්නෙ Grub කියන boot loader එක. Grub install වෙනකොට පරිගනකයේ ස්ථාපනය කරල තියන අනෙක් මෙහෙයුම් පද්ධතිත් හොයල ආරම්භයේදී අවශ්‍ය මෙහෙයුම් පද්ධතිය තෝරගෙන boot කරන්න අවස්ථාව ලබා දෙනව.අපි හිතමු grub වැඩසටහනේ දෝශයක් නිසා මොකක් හරි මෙහෙයුම් පද්ධතියක් grub menu එකට ඇතුලත් කරගත්තෙ නෑ කියල. අපිට manually අදාල විස්තර grub configuration file එකට ඇතුලත් කරගන්න පුළුවන්. Linux වල විවෘත භාවයේ වාසිය ඒකයි. ඒ නිසා වින්ඩෝස් ලිනක්ස් දෙකම ස්ථාපනය කරන්න යනව නම් මුලින් වින්ඩෝස් ස්ථාපනය කරල පස්සෙ ලිනක්ස් ස්ථාපනය කරන එක පහසුයි.

වෙනත් OS එකක් දැනටමත් ස්ථාපනය කරල තියන Hard disk එකකට OS එක ස්ථාපනය කිරීම.

මෙතනදි ප්‍රශ්නය තමයි අපි අළුත් OS එක ස්ථාපනය කරන්න hard disk එකෙන් ඉඩක් ලබා ගැනීම. සාමාන්‍යයෙන් අපි hard disk එක පිරෙන්නම partition හදලනෙ තියෙන්නෙ. ඒ නිසා අපිට තියන partition එකක් මකල එතැන ලිනක්ස් partition එක හදන්න වෙනවා. සාමාන්‍යයෙන් ලිනක්ස් වලට 8GB වගේ ඉඩක් තිබුනාම ඇති. අවම ගාන 4GB උනත් මෘදුකාංග ස්ථාපනයත් ගැන හිතල 8ක් තියන එක හොඳයි. හොඳයි අපි හිතමු අපි ලඟ තියෙන්නෙ 40GB වගේ පතරංග partition එකක් කියල දැන් මොකද කරන්නෙ. කරන්න දෙයක් නෑ. අපිට ඕන වෙන්නෙ 8GB උනාට ඒ partition එක හදන්න මුලින් අර ලොකු partition එකම මකන්න වෙනව පස්සෙ ආයෙ ඉතුරු වෙන කොටස පස්සෙ අපිට අවශ්‍ය file system එකක් දාල පාවිච්චි කරන්න පුළුවන්. මේ නිසා මුලින් අදාල partition එකේ දත්ත අයින් කරගන්න ඕන(එතකොට ඒ partition එක හොයාගන්නත් ලේසියි). ඉන් පස්සෙ ඒ partition එකේ size එකත් මතක තියාගන්න. partition එක කීවෙනි එකද කියල මතක තියාගත්තත් අවුලක් නෑ.

හරි දැන් ආයෙත් මෙහෙයුම් පද්ධතිය ස්ථාපනය දිහාවට හැරෙමු. මම මේ සටහන ලිනක්ස් වලට පොදුවේ ලියන්න උත්සාහ කරනව ඒත් උදාහරණ දෙන්න වෙන්නෙ Ubuntu ආශ්‍රයෙන්. Installation Process එකේ මුලින් තියන දේවල් කියවල තේරුම් ගන්න පුළුවන් සරල දේවල්. රට මොකද්ද වේලා කලාපය මොකද්ද කියන ඒව වගේ. සරල පියවරවල් මම මේ සටහනේ මග ඇරල ගියාට අවශ්‍ය අයට මගේ මේ පරණ සටහනෙන් සවිස්තරව ඒ පියවරවල් බලාගන්න පුළුවන්. Linux ස්ථාපනයෙදි එන වැදගත් තැනත් තමයි prepare partitions කියන තැන.

මෙතනදි තමයි අපි Linux ස්ථාපනය කල යුතු partition මොනවද කියල දෙන්නේ. අපි මෙතනදි partition දෙකක් අවම වශයෙන් හදල දෙන්න වෙනවා. ඒව තමයි
  • swap partition එක
  • root partition එක
මේ partition වර්ග මොනවද කියල දැනගන්න එකත් වටිනව.

Swap partition

මොකක් හරි වැඩසහනක් වැඩ කරනකොට ඒ කියන්නෙ process එකක් execute වෙනකොට ඒ program එක තියෙන්නෙ පරිගනකයේ RAM එකේ. ඒත් සම්පූර්ණ වැඩසටහනම RAM එකට එකවර ගැනීම සිද්ධ වෙන්නෙ නෑ. මොකද ඒක Memory wastage එකක් වෙන නිසා. මේ නිසා වෙන්නෙ paging කියන උපක්‍රමය හරහා ඒ අවස්ථාවට අවශ්‍ය code දේවල් විතරක් RAM එකට ගන්න එක.(paging ගැන මෙතන වැඩිපුර කතා කරන එක අමාරුයි. දැනුම පිපාසාව ඇත්තෝ google ගෙන් අංජනමක් බලත්වා...) ඉතින් අපේ වැඩකරන වැඩසහන් වලට අවශ්‍ය ඉඩ ලබා ගන්න kernel එක කරන්නෙ අඩුවෙන් පාවිච්චි වෙන pages swap area එකට යවලා ඒ ලැබෙන ඉඩ අර අවශ්‍ය වැඩසහනට දෙන එක. මෙන්න මේ swap area එක කියන්නෙ පරිගනකයේ hard disk එකෙන්ම කොටසක්. මේකට virtual memory කියලත් කියනව. මේ විදිහට swap එක සහ paging තාක්ෂණය භාවිතා කරල kernel එකට පුළුවන් පරිගනකය සතු සැබෑ physical memory එකට වඩා වැඩි ප්‍රමාණයක් තියන බවට පෙන්නන්න සහ ඒ පෙන්නන මතකය වැඩසහන් වලට ලබා දෙන්නත් kernel එකට පුළුවනි.

root partition

root එක (/) කියන්නෙ Linux වල file hierarchy එකේ උඩින්ම ඉන්න කෙනා. Linux වල ගොනු සැකැස්ම එන්නෙ ගහක් විහිදට root එකෙන් පටන් ගෙන පහලට Linux තුල ඇති සෑම ගොනුවත්ම මේ ගහට අත්තක් විහිදට එකතු වෙනවා.
තවත් partition එකක් උනත් එකතු වෙන්නෙ මේක ඇතුලම තමයි. network එකේ තවත් පරිගනකයක hard disk එකක් උනත් මේක ඇතුලට mount කරන්න පුළුවන්. දැනටමත් මේ සටහන දිග වැඩි නිසා Linux file hierarchy එක ගැන වෙනම ලිපියකින් කතා කරමු.

ආයේ ස්ථාපනය කිරීම ගැන කතා කලොත් swap එක RAM එක වගේ දෙගුණයක් තියන්න කියල තමයි කියන්නෙ. මම කලින් කියපු 8GB ඕන වෙන්නෙ root එකට. අපට ඕන නම් home එක වෙනම partition එකක් විදිහට හදන්නත් පුළුවන්. එතනදි වාසිය වෙන්නෙ home එක තමයි පරිගනකය වැඩ කරනකොට නිතරම write වෙන්නෙ root එක නිතරම write වෙන්නෙ නෑ. මේ නිසා වෙනම partition එකක තිබීමෙන් home එකට write වෙන වේගය වැඩි වෙනවා. තවත් වාසියක් තමයි වෙන වෙනම partition වලට විවිධ file system පාවිච්චි කරන්න පුළුවනි. උදාහරණයක් විදිහට root එකට ext 3 ත් home එකට ext 4 ඕන නම් පාවිච්චි කරන්න පුළුවන්. තව වාසියක් තමයි හදිසියේ වත් root එක corrupt උනත් home එකේ තියන දත්ත ආරක්ෂා වෙනවා.

මේ සඳහන් කල දේවල් තමයි Linux ස්ථාපනයේදි අවබෝධයෙන් සිටිය යුතු දේවල්. මේ සටහන ටිකක් දිග වැඩි උන නිසා මෙතනින් නවත්වනවා. මට මගහැරුණු දෙයක් වෙතොත් මකත් කරන්නත් අපහැදිලි දෙයක් වෙතොත් එකත් සඳහන් කරල යන්න අමතක කරන්න එපා.