Tuesday, March 22, 2011

ලිනක්ස් මුල සිටම 18 කොටස

ඔන්න අදනම් ගොඩක්ම ගොඩාක් වැදගත් මාතෘකාවකට තමයි අපි අතගහන්න හදන්නේ.. මේකට Init and Runlevels කියල සුද්දගෙ භාෂාවෙන් කිව්වට මටනම් සින්හල එකක් ගලපගන්න තේරෙන්නෙ නෑ. කොහොමහරි කමක් නෑ අපි මේ කතාකරන්න හදන්නේ System එකේ ක්‍රියාකාරීත්වයට සම්බන්ද දෙයක්.. කතා කරගෙන යද්දි හොදට තේරෙයි..

පහුගිය ටිකේම ලිපි දැම්මෙත් නෑනෙ.. එව්වත් අල්ලන්න දැං ඩබල් එකේ ලියන්න වෙලා..
දැන් මගෙ සෞඛ්‍යය තත්වයත් යහපත් අතට හැරිල තියෙන නිසා ඉස්සරහට අපිට දිගටම වැඩේ කරගෙන යන්න පුලුවන්වෙයි..පොඩි පරහක් නැතුවමත් නෙවෙයි මොකද ඉස්සරහට මගෙ අධ්‍යයන කටයුතු සඳහා වැඩි අවධානයක් යොදවන්න සිද්දවෙලා තියෙන නිසා..

කොහොම හරි හැම දේම කරන්නත් එපැයි, මම බ්ලොග් එකෙන් ඉවත් වෙලා හිටපු දවස්වල මට මේල් කරපු, කමෙන්ට්ස් වලින් මාව දිරිමත් කරපු හැම දෙනාටම ගොඩාක් ස්තූතිවන්ත වෙනවා වගේම ගොඩාක් පින්.. හරි ඒවල ණය ගෙවෙන්නත් එක්ක අපි වැදගත් පාඩමක් ලස්සනට ඉගෙන ගනිමු.

මොකක්ද මේ init කතාව. ඇත්ටටම මේ init කියල කෙටි කරල තියෙන්නෙ initial කියන එක.. ඒ කියන්නෙ මේකෙන් අපි කතා කරන්නෙ ලිනක්ස් system එක  load  වෙද්දිම වෙන බයිල ටිකක්.. ඉතින් කොහොමද මේ ලිනක්ස් system  එකක් boot වෙන්නෙ කියල ඉස්සර වෙලාම අපි තේරුම් ගනිමු.

01.)POST Bootstrap

02.)Boot loader

03.)Kernel

04.)Init

ඔන්න පියවර හතරකට සරල කරා..
මෙතන 01. සිද්ද වෙන්නෙ BIOS වල.. ඔයාල දන්න්වනේ මොකා Boot වෙන්නත් කලින් Boot වෙන්නෙ BIOS නේ, හරියට ගෙදරක අම්ම කෙනෙක් වගේ.. කවුරුත් නැගිටින්න කලින් නැගිටල අපේ ලඟටම තේ එකයි,ඊට පස්සෙ කන්නයි හදල දෙන්නෙ.. මේකත් අපේ අම්ම වගේ තමයි .. එයා ඉස්සර උනේ නැත්තන් ඔක්කොම වැඩ අඩාලයි.. අඩාලයි නෙවෙයි ඇත්තටම අනික් මොකවත් නෑ..

02.දි Boot Loader එක කරලියට එනවා. වින්ඩොස් Boot loader එකනම් වින්ඩෝස් බූට් කරනවා..ලිනක්ස් වල නම් GRUB කියල එකෙක් තමයි ඉන්නෙ.. මෙයානම් අපිට Options කිහිපයක් දෙනවා.. Multi Boot System එකක් නම් ලිනක්ස් ද නැත්තන් විඩෝස්ද කියල ‍තෝරන්න පුලුවන්.. මේක ගැන අපි වෙනම දවසක කතා කරමු. කොහොම හරි මූ ඊලගට ඉන්න Kernel කාරයව ඇහරවල ඌව Boot කරන් එක තමයි කරන්නේ.. හරි ඌත් නැගිට්ටට පස්සෙ තමයි අපේ අද කතාවෙ කතා නායකය කරලියට එන්නේ..

මේක ඇත්තටම initial process එක, වෙන විදිහකට කිව්වොත් අනික් Process ඔක්කොගෙම ලොක්ක, බුවා කිව්වොත් හරි.. අපි අර මුලම කතා කරපු daemon කියන යක්කු ටික මතකද? (මතක නැත්තන් බලන්න් වෙයි ඒවා..), මෙයා තමයි ඒ daemon යක්කු ඔක්කොම ඇහැරවන්නේ,

එතකොට තමයි system  එක useable state එකකට එන්නේ.. මේ රාජකාරිය කොරන්න්ට මෙයා පාවිච්චි කරනවා /etc/inittab (init table) configuration file කියන එක..

ඔන්න ඊලගට එනවා Run Levels ක්යන කතන්දරේ.. හයියෙන් අහගෙන හොඳට තේරුම් ගන්න ඕන කතාවක්. හරි මේ Run Level එකක් කියන්නේ collection of services  එකක් ඒ කියන්නේ services සෙට් එකක් එකතු කරගෙන specific system state එකක් නිර්මාණය කරගන්න හදාපු සීන් එකක්. තේරුනේ නෑ නේ.. මෙහෙම කියන්නම් ඔයාලට මතකද අර වින්ඩෝස් පාවිච්චි කරද්දි හුටස් පටස් ගාල දෙතුන් පාරක් ලයිට් ගියාම එහෙම ඊලඟට System එක ඔන් කරද්දි එන්නෙ Safe mode යන්නද නැත්තන් පුරුදු පරණ විදිහට කිය කියා එන කතාව, ඒ කියන්නෙ ඒ ඒ එක එක option එකට අදාලව එකම system එක ඒත් වෙනස් තත්වයන් කිහිපයක නේ දුවන්න දෙන්නෙ, මේකත් ඒකම තමයි.. ඊට වඩා අපිට ‍තෝරාගැනීම් වැඩියි.. ඉතින් ලිනක්ස් වල run level හතක් විතර තියෙනවා අපි තේරුම් ගන්න ඕන. පල්ලෙහා බලන්න..

Runlevel 0
මේකට කියන්නෙ halt state කියල.. ඒකියන්නෙ  ඔක්කොම වැඩ නවත්තනවා.. නිකමට terminal එකේ #init 0 කියල ගහන්න බලන්න. (Root  බලතල ඕන) System එක Shut down වෙලා යනව නේද.. ඇත්තටම මේකෙදි daemons ඔක්කොම යන්න යනවා. /etc/rc.d/rc0.d කියන තැන තමා ෆයිල් එක තියෙන්නෙ.

Runlevel 1
Runlevel s
Runlevel S
Runlevel single
මේ ඔක්කොම නම් කියන්නෙ Runlevel 1 කියන එකට. මේක single user mode එක.  මෙතනදි System එක ලෝඩ් කරන්නෙ single user වැඩ කරන්න ඕන් යක්කු ටික විතරයි.. හැබැයි ඉතින් User කිව්වට Root විදිහට තමයි ඉන්න පුලුවන්. /etc/rc.d/rc1.d කියන තැන තමයි ෆයිල් එක..

Runlevel 2
මේක multi-user mode එක. multiple usersලට ලොග් වීමට අවසර දෙනු ලැබේ.. networking services  පවා වැඩ ඒත් Network File System වැඩ නෑ.. ඉන්නෙ /etc/rc.d/rc2.d කියන තැන..

Runlevel 3
මේක extended multi-user mode කියන එක.. නමේ හැටියට තමයි වැඩත්, එයා multi-user mode එක extend කරනවා all network services වැඩ කරන තැනට.. Network File System පවා වැඩ.. මූ ඉන්නෙ /etc/rc.d/rc3.d කියන ෆයිල් එකේ..

Runlevel 4
මේක පාවිච්චි වෙන්නෙ නෑ.. ඒක අපිට ලියල දීපු එක.. අපිට ඕන විදිහට manually හදාගන්න පුලුවන්..

Runlevel 5
මෙන්න අපේ එකා.. graphical mode එක දුවන්නෙ මේකෙ.. extended user mode එකේ තිබ්බ ඔක්කොම හැකියාවන් තිබේ.. අයෙ අමුතුවෙන් කියන්න් ඕනත් නෑ.. මොනවද කරන්න පුලුවන් කියල හැමෝම දන්න්වනෙ ඉතින්.. /etc/rc.d/rc5.d කියන ෆයිල් එකේ තියෙන්නෙ..

Runlevel 6
මේක reboot runlevel එක.. මේකට එහෙම සෙට් කරොත් හුටා ත්මයි System එක එයා විහින්ම re-start කරගන්නවා.. කීයටවත් පුතේ මේකටනම් සෙට් කරන්න එපා..



 /etc/rc.d එක තියෙන විදිහ පහත රූපෙ විස්තර කරක්ල තියෙනවා..


මේකෙ තව කොටසක් අඩුයි.. ඒ කියන්නේ අපි කොහොමද ඕකෙන් වැඩ ගන්නෙ කියන එක.. ලිපිය ගොඩක් දිග වෙන නිසා ඒ කොටස ඊලඟ ලිපියෙන් අපි බලාගනිමු..

ලිනක්ස් මුල සිටම 17 කොටසෙ අන්තිමට වෙච්ච පොරොන්දුව ඉෂ්ඨ කරන්න තමයි මේ ඊලඟට හදන්නේ..


මේක ලිනක්ස් වල File System එකට සම්බන්ද කතාවක්.. මෙහෙමයි මේක වින්ඩෝස් වල තියෙන කතාවක් නෙවෙන නිසා කට්ටියට ටිකක් අලුත් වෙයි..
"ලිනක්ස් වල තියෙන ඕනම file එකක් හරි directory එකක් හරි අනිවා Userකෙනකුට සහ Group එකකට අයිතියි"
අපි කලින් ඉගෙනගෙන තියෙනවනේ ලිනක්ස් වල හැමදේම File එකක් කියලා.. ඉතින් ඒක නිසාම මේ කියන කතන්දරේ ගොඩාක් වැදගත්.. එහෙම නේද? ඔයාල හදන හැම file එකකටම මේ කතන්දරේ අදාලයි...

permissions ගැන කතා කරොත් ජාති තුනයි..
User කෙනකුට අයිති වෙන්න පුලුවන්...
Group එකකට  අයිති වෙන්න පුලුවන්...
Other එහෙම නැත්තන් ඕන කෙනකුට අයිති එකක් වෙන්න පුලුවන්...

User (owner) permissions
Group (group owner) permissions
Other (everyone on the Linux system) permissions

Permission ගැන කතා කරනවනම් තව තුන් විදිහකට අඳුනගන්න පුලුවන්..

Read = r ඕපන් කරන්න කියවන්න තහනමක් නෑ..execute  කරන්නත් පුලුවන්.. Add, delete, and rename  කරන්න වගෙම execute කරන්නත් පුලුවන්..
Write = w  ඕපන් කරන්න, කියවන්න, එඩිට් කරන්න අවසර තියෙනවා..
Execute = x Execute  කරන්න පුලුවන්.. අනික් මොකවත් බෑ.. තියෙන තැනට ගිහින් වැඩේ කරගන්න පුලුවන්..

අපි කලින් ls කමාන්ඩ් එක ගැන විස්තර කරපු තැන ඒ වැඩ කරල බැලුවනම් ඕය අකුරු කෑලි දකින්න ඇති..


මේ කතාව තව දරුණුවට යනවා මීට එහා ගියොත්.. ඒක නිසා දැනට ඕය ටික ඇති...ඕන උනොත් පස්සෙ වැඩි විස්තර බලමු... වෙනමම ලිපියක් ඉදිරියෙදි දාන්නම්.

1 comment: