Friday, February 26, 2010

ලිනක්ස් සිංහලෙන් මුල සිට සරලව - ලිනක්ස්හි ගොනු සැකසුම(File hierarchy)


සටහන - ඉතින් කොහොමද මම නම් නිවාඩු පාඩුවේ ගෙදරට වෙලා ඉන්නවා. ඒ අතරේ මේ සටහන් මාලාවේ තව සටහනක් ලියන්නයි කල්පනාව. කලින් සටහන නම් කට්ටියට තේරිලා මදිද කොහෙද.neutral ඒක තරමක් දිග වෙච්ච බව මම පිළිගන්නවා. ඒ වගේම paging swapping වගේ තරමක් ගැඹුරු තාක්ෂණික දේවල් ගැනත් මම යන්තමින් සඳහන් කලේ දැනගත යුතු නිසා.

Linux වල ගොනු සැකසුම(File hierarchy) ගැන මම මීට කලින් සටහනෙත් යමක් සඳහන් කලා. මේ සටහනේදි වඩා සවිස්තරව ඒ ගැන පැහැදිලි කරන්නයි මේ උත්සාහය. මේකට සම්මත නම තමයි File system Hierarchy Standard කියන්නෙ. ප්‍රධාන ගොනු සහ ඒවායේ අන්තර්ගතයන් තියන ආකාරය ගැන තමයි මේකෙන් පැහැදිලි කරන්නෙ. මේ FHS එක පවත්වාගෙන යන්නෙ Linux Foundation එක මගින්. FHS වල වර්තමාන සංස්කරණය 2.3 නිකුත් කලේ 2004 ජනවාරි 29.


Linux ගොනු සැකසුමේ උඩින්ම ඉන්නෙ root ("/" සළකුණ). ගහක පොළවට සම්බන්ධ වෙන්නෙ මුල මුලට තමයි ඔක්කොම අතු එකතු වෙන්නෙ අතුවල තව අතු තියෙන්න පුළුවන් නැත්තම් කොළ තියෙන්න පුළුවන්. Linux ගොනු සැකසුමත් මේ වගේ සරලයි. නමුත් වින්ඩෝස් වල තියෙන්නෙ මෙහෙම නෙවෙයි C: D: යනාදි ලෙස වෙනම partition තමයි දකින්න පුළුවන් වෙන්නෙ. එතකොට Linux වල partition
කොහෙද තියෙන්නෙ? ඒවත් අර ගහටම අත්තක් විදිහට සම්බන්ධ වෙලා තියනව. වින්ඩෝස් වල තියෙන්නෙ වෙන වෙනම භාජන කීපයක තියන ගස් කීපයක් ඒත් ලිනක්ස් වල තියෙන්නෙ එක භාජනයක් සහ එක ගහක්. එතකොට Linux වල මේ tree structure එකට අපිට තව partition එකක් තව hard disk එකක් විතරක් නෙමෙයි network එකේ තියන තව පරිගණකයක hard disk එකක් පවා සම්බන්ධ කරන්න පුළුවන්. මෙය Linux වල තියන නම්‍යශීලී බව පෙන්වන තැනක්. root partition එක පරිගනකයේ මොන partition එක වුනත් Linux වලට ඒක ප්‍රශ්නයක් නැහැ. ඒ වගේම අනෙක් partition කැමති පිළිවෙලකට root එකට සම්බන්ධ වෙන්නත් පුළුවනි. මේ නිසා system files partition කීපයක තිබෙන්නත් පුළුවනි. වින්ඩෝස් වල වගේ ඔක්කොම C එකේ තියෙන්න ඕන කියල Linux අපිට නීති දාන්නෙ නෑ. මේ නිසා boot එක වෙන partition එකකත් usr එක තව partition එකකත් home එක වෙනම partition එකකත් තියාගන්න පුළුවන්. home එක වෙනම partition එකක තියාගැනීමේ වාසිය මම කලින් සටහනින් විස්තර කලා මතක ඇති.(boot,usr මේව ගැන මේ සටහනේ ඉදිරියට පැහැදිලි වේවි.)

ඕනම දෙයක් file එකක් questioneek

Linux වල තියන තව අපූරු දෙයක් තමයි ඕනම දෙයක් file එකක් කියන එක. directory එකක් shortcut එකක් විතරක් නෙමේ hardware එකක් උනත් file එකක්. directory එකක් කියන්නෙ file එකක් වෙන්නෙ කොහොමද? directory එකක් කියන්නෙ ඒක ඇතුලෙ තියන file වල විස්තර ඇතුලත් file එකක්. මාරයි නේද? සමස්තයක් විදිහට FHS ගැන කියන්න තියෙන්නේ මේ දේවල් තමයි. දැන් බලමු root එක ඇතුලේ තියන සම්මත ගොනු මොනවද කියල.

/bin -
Linux තුල පාවිච්චි වෙන බොහෝ විධාන(Commands) තියෙන්නෙ මේ directory එක ඇතුලෙ. විධාන කිව්වට ඇත්තටම තියෙන්නෙ ඒ විධාන වලට අදාල executable binary files. bin කියන නමින්ම පැහැදිලි වෙනවනේ binary කියන එකේ මුල් අකුරු 3. මේ ගොනුවට ගිහිල්ල බලන්න ls, pwd, mkdir වගේ විධාන වලට අදාලව file එක බැගින් මේක ඇතුලෙ තියනව. තව මේ bin ගොනුවෙ path එක සම්මත එකක් ඒ නිසා userට ඕන තැනක ඉඳන් bin එක ඇතුලෙ තියන විධානයක් ක්‍රියාත්මක කරන්න පුළුවන්. අළුත් FHS වල /usr/bin කියන තැනත් විධාන වල executable files තියාගන්නව. ඒවගේ වෙලාවකදි /bin කියන්නෙ /usr/bin වලට ලින්ක් එකක්.

/boot -
මෙම ගොනුවේ configuration files හැර boot process එකේදී අවශ්‍ය වන අනෙක් files ගබඩා කර ඇත. ඔබ දන්නා ලෙස grub එකට අදාල files ද තිබෙන්නේ මෙහි. මෙම ගොනුවේ දත්ත වලට යම් හානියක් උනොත් පරිගනකය boot නොවී යන්න පුළුවන් නිසා මෙහි files සම්බන්ධව කටයුතු කිරීම මනා දැනුමකින් යුතුව කරන්න ඕන.

/dev -
කලින් කිව්වනේ Linux වල ඕනම දෙයක් file එකක් කියල. ඒ කියන්නෙ System එකේ තියන devices නුත් සලකන්නෙ file විදිහට. අන්න ඒ devices files තියෙන්නෙ මේ /dev කියන තැන. මේ directory එකට ගිහින් බැළුවොත් දකින් පුළුවන් මේ වගේ දෙයක්. මෙතන පරිගනකයේ තියන හැම device එකක්ම list කරලා තියනවා.

මේ sda කියන්නෙ මගේ hard disk එක.sda1 ආදී විදිහට තියෙන්නෙ hard disk partitions. තව hard disk එකක් තිබුනනම් ඒක sdb කියල පෙන්නාවි.

/etc -
මේක ගොඩක් වැදගත් directory එකක්. මෙතන තමයි configuration files සහ resources ගැන විස්තර ගබඩා කරල තියන්නෙ. මේව text ආකාරයට තමයි තියෙන්නේ ඒක නිසා මේ ගොනුවේ වෙනස් කම් කිරීමට permission දීල තියෙන්නෙ root user ට විතරයි. මේ ගොනුවේ තියන වැදගත් configuration file එකක් තමයි x windows system configuration file එක. ඒක /etc/X11/xorg.cnf කියන තැන තමයි තියෙන්නේ. මේ file එක බැළුවට කමක් නෑ දන්නෙ නැතුව වෙනස් කරන්න යන්න එපා.

/home -
මේ තුල එක් එක් පරිශීලකයා වෙනුවෙන් home directory එක බැගින් තිබෙනවා. උදාහරණයක් විදිහට මගේ home directory එක /home/ravinda .මෙය බොහෝ විට වෙනම partition එකක් ලෙස නිර්මාණය කරනු ලබනවා.

/lib -
Linux ක්‍රියාත්මක වීම සඳහා අවශ්‍ය shared library files මේ තුල අඩංගුයි.

/lost+found -
System එක crash වන අවස්ථාවකදී ගබඩා කරන තැන සොයා ගත නොහැකි වන files මෙතැන ස්ථාපනය කරනු ලබනවා. ඒවා save වන්නේ අංක වශයෙන්. නියම නමින් නොවේ.

/media -
මෙය තවත් වැදගත් තැනක්. මන්ද යත් පරිගනකයේ වෙනත් partitions සහ devices(removable media's) default mount වන්නේ මෙම ස්ථානයටයි. තවද මේ තුලට mount කරන ඕනෑම ගොනුවකට short cut එකක් desktop වලද පෙන්වනු ලබනවා.

/opt -
Optional application software packages හෙවත් පසුව ස්ථාපනය කරගන්නා මෘදුකාංග ස්ථාපනය වන්නේ මෙහි. මාගේ පරිගනකයේ මෙහි firefox සහ lampp ස්ථාපනය වී තිබෙනවා. මෙයත් root userට පමණක් දත්ත ලිවිය හැකි තැනක්.

/root -
සුපිරි පරිශීලකයා නොහොත් root user ගේ home directory එක වන්නේ මෙයයි. මෙය තුල ඇති දෑ බලන්නට පවා හැක්කේ root ලෙස පමණයි.

/tmp -
මෙහෙයුම් පද්ධතිය ක්‍රියාත්මක වීමේදී තාවකාලිකව දත්ත ලියන්නේ මෙතැනයි. system එක reboot වීමෙන් පසු මෙහි දත්ත තබාගන්නේ නෑ.

/usr -
file system එකේ දෙවන විශාලතම කොටස වන read only දත්ත මෙහි ඇතුලත්. share කල යුතු දත්ත පමණක් මෙහි ඇතුලත් වන අතර specific ඒවා ඇතුලත් වන්නේ නෑ. /usr/src යන තැන kernel එකේ source code එක අඩංගුයි.

/var -
මෙහෙයුම් පද්ධතිය ක්‍රියාත්මක වීමේදී නිතර වෙනස් වන log files,spool files වැනි දත්ත(variable files) මෙහි අඩංගුයි.

හරි FHS ගැන ඔය ඇති. ඔය ටික දන්නවන් ලිනක්ස් වල ඕන අස්සක මුල්ලක රිංගුවට කමක් නෑ. දැන් ටිකක් කම්මැලියි වගේද දන්නෙ නෑ මේක. ඕනම දෙයක් එහෙම තමයි පහු පහු වෙනකොට. ඒත් ඇත්තටම ආසාවක් තියනවනම් එහෙම වෙන්නෙ නෑ. අනික නිකම්ම ලේසියෙන්ම ගන්න දේවල් වල කිසි ගතියකුත් නෑනේ නේද? biggrin