Showing posts with label Ubuntu. Show all posts
Showing posts with label Ubuntu. Show all posts

Saturday, May 21, 2011

ලිනක්ස් සිංහලෙන් මුල සිට සරලව - Shell commands 2.

රායිට් ඔන්න Shell commands දෙවන කොටස ලියන්නයි යන්නෙ. පළවෙනි කොටස අවුරුද්දකට විතර කලින් නෙව ලියවුනේ. මතක නැති අය බලපු නැති අය බලල එන්න. ඔන්න ලනුව.

rmdir (remove directory) - මේ විධානය පාවිච්චි කරන්නෙ හිස් folder එකක් මකන්න. මතක තියාගන්න හිස් නොවන folder එකක් මේ විදිහට මකන්න බෑ. ඒකට යොදාගන්නෙ rm කියන විධානය ඒක ඉස්සරහට හම්බවේවි.

cp (copy) - folder එකක් හරි file එකක් හරි එක තැනක ඉඳල තව තැනකට පිටපත් කරන්න මේ විධානය යොදාගන්නවා. මේ විධානෙත් cp තනියම පාවිච්චි කරන්න පුළුවන් තනි file එකක් හරි archive කරපු(zip,tar,tar.bz වගේ) ගොනු පිටපත් කරන්න විතරයි. ඇතුලත තව file හරි folder හරි තියන folder එකක් මේ විධානෙන් copy කරන්න උත්සාහ කලොත් මේ error එක ලැබේවි.
cp: omitting directory SOMEDIRECTORY

ඉතින් අපි කොහොමද හිස් නොවන folder එකක් copy කරගන්නෙ. ඒකට -r කියන පරාමිතියත් එක්ක cp විධානය යොදන්න ඕන. මේ වගේ
ravinda@ravinda-laptop:~$ cp -r /opt/abc ~/Documents

මේ කියන්නෙ /opt වල තියන abc කියන folder එක ඒකෙ අන්තර්ගතයත් එක්ක home එකේ Documents වලට copy කරන්න කියල. ~ සලකුණ පහුගිය සටහනේ විස්තර කලා මතක ඇතිනේ. මේත් එක්කම තවත් වැදගත් වෙන අවස්ථා කීපයක් මතක් කරන්නම්. මේ විධානය බලන්න.


ravinda@ravinda-laptop:~/Documents$ cp -r /home/ravinda/Documents/abc ../Downloads

මේ විධානයේ පාවිච්චි කරල තියන .. කියන එකෙන් අදහස් කරන්නෙ වර්ථමානයේ terminal එකේ අපි ඉන්න folder එකට(අපි මෙතනම pwd ගැහුවොත් පෙන්නන තැන තමයි අපි ඉන්නෙ මතක ඇතිනේ) folder hierarchy එකේ එක පියවරක් ඉහිලින් තියන ගොනුව කියන එක. මේ උදාහරණයේ අපි ඉන්නේ /Documents තියන තැන නිසා .. කිව්වාම අදහස් වෙන්නේ ~ නැත්තම් මගේ home folder එක. ඉතින් මෙතනදි abc කියන ගොනුව copy වෙන්නෙ home/Downloads කියන තැනට. මේ විදිහට path එක දක්වනවට කියනවා relative path කියල මොකද එතනදි අපි දැනට ඉන්න තැනට සාපේක්ෂව තමා path එක ප්‍රකාශ කරන්නෙ. මෙහෙම කරාම තියන වාසිය තමයි අදාල file hierarchy එක තියනවනම් ඔනෑම තැනකද(වෙන පරිගනකයක උනත්) මේ path එක වලංගුයි. හැබැයි අනිත් විහිහ ඒ කියන්නෙ absolute path විදිහට path එක ප්‍රකාශ කරාම ඒක ඒ පරිගනකය මත විතරයි නිවැරදි වෙන්නෙ.

ravinda@ravinda-laptop:~/Documents$ cp -r /home/ravinda/Documents/abc .

මෙතනදි abc copy වෙන්නෙ current folder එකට ඒ කියන්නේ ~/Document වලට. පැහැදිලි ඇති කියල හිතනවා. ලටපගන්න නම් එපා. :)

mv (move) - මේ විධානය dual purpose. නමෙන්ම කියවෙන විදිහට මෙයා file move කරන්න යොදාගන්නව වගේම file rename කරන්නත් යොදාගන්නවා. මේකෙ නම් අර omitting directory ප්‍රශ්නෙ නෑ. හිස් නොවන ගොනු උනත් move කරන්න පුළුවන්.

ravinda@ravinda-laptop:~/Documents$ mv abc ../Downloads

ආයෙ කියන්න දෙයක් නෑනෙ පැහැදිලි ඇති මම හිතන්නෙ. දැන් මෙන්න මෙහෙමයි rename කරන්න මේ විධානය යොදාගන්නෙ. මගේ home එකේ තියන abc කියන file එක xyz කියල rename කරනවා කියල හිතමු.

ravinda@ravinda - laptop :~$ mv abc xyz

folder එකක් rename කරන්නෙත් ඒ විදිහටම තමයි. මම root එකේ ඉඳන් මගේ Document වල තියන Linux කියන folder එක GNULinux කියල rename කරනව නම්

ravinda@ravinda - laptop :/$ mv /home/ravinda/Documents/Linux /home/ravinda/Documents/GNULinux

cat - file එකක අන්තර්ගතය එක පාරම screen එකට මුදා හැරීමයි මේ විධානයෙන් කරන්නෙ. මේකෙන් file read කරන්නත් පුළුවනි. පොඩි ප්‍රශ්නෙකට තියෙන්නෙ මේ එකවර මුදාහරින එක. ඒ කියන්නෙ file එක කොච්චර ලොකු උනත් මෙයා ඒ ඔක්කොම එක ප්‍රවාහයට තිරයට යවනවා. ඉතින් දිග file එකක් cat කරොත් අපිට බලාගන්න පුළුවන් ඒකෙ අග ටික විතරයි. මොකද තිරයේ ඉඩ ප්‍රමාණය අනුව ඉතුරු ටික උඩට යනවනේ. මේ නිසා මේ විධානය ගොඩක් පාවිච්චි කරන්නෙ file read කරන්න නෙමෙයි. pipe කියන අංගය හරහා තවත් විධානයකට file එකක අන්තර්ගතය යවන්න මේක ගොඩක් වෙලාවට යොදාගන්නවා. pipe ගැන අපි පස්සෙ කතා කරමු. මම example.cpp කියල සරල c++ file එකක් cat කලේ මෙහෙමයි.

ravinda@ravinda-laptop:~/Documents$ cat example.cpp #include using namespace std; int main (){ cout << "Hello World" << endl; } ravinda@ravinda-laptop:~/Documents$

more - cat වලින් file එකක් කියවන්න සාර්ථකව යොදාගන්න බැරි නිසා ඒ කාර්ය කරන්න පුළුවන් විධානයක් තමයි more මේකෙන් වරකට screen එකට සරිලන ප්‍රමාණය බැගින් file එකක අන්තර්ගතය මුදා හරිනවා. අපිට පුළුවන් space button එක press කරලා ඊළග screen එකට යන්න.

ravinda@ravinda-laptop:~$ more example.cpp

ls - පහුගිය සටහනෙන් මේ list ගැන කිව්වත් මේකෙ වැදගත් යෙදීම් කිහිපයක් ගැන කියන එක අතපසු උනා. ඒ ටික මේකෙ ලියන්නයි හිතුවේ.

* ls filename - යම් file එකක් අදාල directory ය තුල තියනවද කියල බලාගන්න මේ විදිහට ls විධානය යොදාගැනීමෙන් පුළුවන්. හැබැයි මෙතනදි අදාල extention එකක් එක්කම file name එක දෙන්න වෙනවා. අදාල ගොනුවේ ඒ file එක තියනවනම් ඒ නමින්ම result එකත් නැත්නම් No such file or directory යනුවෙනුත් output එක දේවි.

උදා- abc කියන file එක තිබෙන විට
ravinda@ravinda-laptop:~$ ls abc.txt abc.txt

file එක නොමැති නම්
ravinda@ravinda-laptop:~$ ls abc.txt ls: cannot access abc.txt: No such file or directory

*ls *.xxx - යම් extension එකක් සහිත file සියල්ල search කරගන්න මේ විදිහට පුවවන්.

උදා- අදාල ගොනුවේ ඇති txt file සියල්ල බලා ගැනීමට
ravinda@ravinda-laptop:~$ ls *.txt
abc.txt doc.txt

*ls -lt - සියළු file වල විස්තර දින පිළිවෙලට පෙළගස්වා පෙන්වන්න

*ls -lrt - file වල විස්තර දිනය අනුව විරුද්ධ පිළිවෙලට(කලින්ම දිනය සහිත ගොනුව මුලින්ම) පෙන්වන්න.

*ls -d directory - අදාල නම සහිත directory එක තිබේදැයි බලන්න.

*ls -p - මේකත් ටිකක් වැදගත් එකක්. මෙතනදි result වල නම් අගට meaning characters යොදල පෙන්නන්නෙ. ඒ කියන්නෙ directory යක් නම් අගට / ලකුණ යොදනවා.

උදා-
ravinda@ravinda-laptop:~$ ls -p
algo/ Documents/ Music/ Public/
algo.tar.gz Downloads/ NetBeansProjects/ sges-v3/
Desktop/ examples.desktop Pictures/ Videos/

*ls -R - මේ විදිහට sub directory වල තියන files නුත් පෙන්නන්න list කරන්න පුළුවන්.

දැන් නම් මේකට ඇති වගේ. අනික මාස ගානක් තිස්සෙනේ ලියන්නෙ. cryptography ගැන ලිපියක් ලියන්න හිතිලයි තියෙන්නෙ ඒත් වෙලාව තමා අවුල. බලමුකෝ. එහෙනම් ආයෙ හමුවෙමු. ආයුබෝවන්.

Sunday, August 8, 2010

ලිනක්ස් සිංහලෙන් මුල සිට සරලව - Shell commands


Sunday, March 28, 2010 දිනේදි මම ලියපු "මොකද්ද මේ shell" කියන ලිපියෙන් පස්සෙ ආයෙ ඔන්න ගොඩක් කාලෙකින් "ලිනක්ස් සිංහලෙන් මුල සිට සරලව" ලිපි පෙළට තව ලිපියක් එකතු කරන්නයි යන්නෙ.ඒව මේව අස්සෙ තුන වසරටත් ආව නොවැ. අළුත් නංගිල මල්ලිල කට්ටියකුත් ආව කැම්පස් එකට. ඒ අතර අපේ කාලෙත් ඉවර වේගනයි යන්නෙ. කාලයක් ලිපි පෙළ නොලියා හිටියාම කට්ටිය හිතුවද දන්නෙ නෑ ලියන එක නැවැත්තුව කියල. එහෙම වෙන්නෙ නෑ. මතකනෙ. Ubuntu අයිසිං කිරීමත් ලියල ඉවර කලා. biggrin එහෙනම් ලිපිය පටන් ගමු. මේකෙදි මම ගොඩක් සරල මට්ටමේ ඉඳල කියන්නයි බලාපොරොත්තු වෙන්නෙ.

අපිට සාමාන්‍යයෙන් Linux prompt එක දකින්න පුළුවන් වෙන්නෙ මෙහෙමනෙ. මේ මගේ machine එකේ prompt එක පෙන්නන හැටි.




$ - මේ ඩොලර් ලකුණ සාමාන්‍ය පරිශීලකයෙක් විදිහට ඉන්නකොටයි පෙන්නන්නෙ
# - ඔබ සුපිරි පරිශීලකයෙක්(super user) විදිහට ලොග් වෙලා නම් හෑෂ් ලකුණ දකින්න පුළුවන්.
මේ ඔබ දකින prompt එකේ කොටස් වෙන්නෙ මේව.

ඉස්සරහින්ම තියෙන්නෙ ඔබේ පරිශීලක නම. @ලකුණෙන් පස්සෙ ඔබේ පරිගනකයේ නම. ආයිත් : එකක් දාල ඊළඟට පෙන්නන්නෙ ඔබ වර්තමානයේ ඉන්න ගොනුව මෙතන ~ ලකුණෙන්(මේකට කියන්නෙ trilda කියල) නිරූපනය කරන්නෙ ඔබේ home directory එක. ඒ කියන්නෙ මම ඉන්නෙ /home/ravinda කියන තැන.


ඊළඟට බලමු විධානයන් ගැන. සාමාන්‍ය Linux command එකක ව්‍යූහය වෙන්නෙ මේහෙමයි.

විධානය -විකල්ප පරාමිතිය

මේක මෙහෙම කොහෙවත් කියල නෑ. සරලව පැහැදිලි වෙන්න මම හිතල තමයි ලිව්වෙ. ඒ නිසා නොගැලපෙන අවස්ථා තියනවනම් කලබල වෙන්න එපා. විධානය කියන්නෙ ප්‍රධාන විධානය. විකල්ප වලින් පුළුවන් අපිට ප්‍රධාන විධානය ටිකක් වෙනස් කරල ක්‍රියාකරව ගන්න. සමහරක් විට විධාන වලට පරාමිතියක්(parameter) දෙන්න අවශ්‍ය වෙනවා. ඒක තමයි අන්තිමට යෙදෙන්නෙ. එහෙනම් අපි විධාන එකින් එක බලමු. සරලම තැන ඉඳල බලමු. මොකද මුල සිට සරලවනේ. smile

pwd(print working directory)

මේ command එකෙන් පටන් ගත්තොත් හොඳයි කියල හිතුනා. prompt එකේ මේ command එක execute කලාම. ඒ වෙලාවෙ අපේ working directory එක මොකද්ද කියන එක full path එක print කරල පෙන්නනවා. අපිට සාමාන්‍ය prompt එකෙනුත් ඉන්න තැන මොකද්ද කියල පෙන්නනව තමයි. ඒත් මේ command එකෙන් root එකේ ඉඳලම full path එක ලැබෙන එක වාසියක්.





cd (change directory)

කාටත් Linux file hierarchy එක මතක ඇති කියල හිතකනවා. terminal එක ගත්තාම ඒකදි මේ file hierarchy එකේ එහෙ මෙහෙ යන එක දැනගෙන ඉන්න ඕන. ඒ කියන්නෙ nautilus එකේදි අපි shortcut එකක් පාවිච්චි කරල හරි folder එකෙන් folder එකට ගිහින් හරි අපිට ඕන තැනට යනවනේ. අන්න ඒක terminal එකේදි කරගන්න හැටි. මේකට මූලිකවම පාවිච්චි කරන්නෙ cd කියන command එක. cd කියල දීල එක්ට පරාමාතියක් විදිහට අපිට යන්න ඕන තැන path එක දුන්න නම් හරි. මෙතනදි අපි file structure එකේ දැන ඉන්න තැනට සාපේක්ෂව path එක දුන්න නම් ඇති. root එකේ ඉඳලම දුන්න කියල අවුලක් නෑ. නමුත් අවශ්‍යම නෑ.

home එකේ ඉඳලා /media/Multimedia කියන තැනට වෙනස් වෙන හැටි.


මෙතන මුළු path එකම දෙන්නෙ නැතුව මගේ home එකේ ඉඳල ඉතිරි path දුන්නහමත් ප්‍රමාණවත්.


cd .. --> දැනට ඉන්න තැන ඉඳල එක ගොනුවක් ඉහලට යන්න මේ විධානය පාවිච්චි කරන්න පුළුවන්.

eg:
ravinda@ravinda-desktop:~/Documents/abc$cd ..
ravinda@ravinda-desktop:~/Documents$

cd - --> ක්ෂණිකව පියවරක් ආපස්සට යන්න මේ විධානයෙන් පුළුවන්

eg:
ravinda@ravinda-desktop:~$cd /usr/lib
ravinda@ravinda-desktop:/usr/lib$cd -
ravinda@ravinda-desktop:~$

තව අමතර කරුණු කීපයක් කියන්නම්. කිසිම path එකක් නොදී අපි cd කියල විතරක් enter කලොත් අපිව අරගෙන යන්නෙ අපේ home එකට. ඒ කියන්නෙ cd ~ කියල දෙන එන අවශ්‍ය නෑ cd විතරක් දෙන්න. තව දෙයක් තමයි path එකක් දෙනකොට අපි type කරගෙන යනවනම් යම් folder එකක(වෙන විධානයකදි නම් file එකක පවා) නමෙන් කොටසක් type කරල tab එක press කලාම ඒ අපි type කරපු කොටස ඇතුලත් නම් එක නම් තියෙන්නෙ ඉතිරි කොටස පුරවල දෙනවා. හැබැයි ඒ කොටස ඇතුලත්(අපි Do කියල type කරානම් home එකේදි Document , Download කියල folder දෙකක් තියනවා) අයිතම දෙකක් හරි වැඩිය හරි තියනවනම් එහෙම පුරවන්නෙ නෑ. අපි ආයෙ tab එක press කලොත් ඒ කියන්නෙ දෙපාරක් tab එක press කලාම ඒ අදාල කොටස ඇතුලත් අයිතම ඔක්කොම අපිට පෙන්නනවා.

ls (list directory contents)

අපිට මේ විධානය පාවිච්චි කරල යම් folder එකක තියන දේවල් බලාගන්න පුළුවන්. මේ විධානය යෙදීමෙදි list කරගන්න ඕන directory එකේ path එක පරාමිතිය විදිහට දෙන්න ඕන.

මෙතනදි මම path එකක් දිල නැති නිසා default ඒ වෙලාවෙ working directory එක තමයි list කරල තියෙන්නෙ. මේ content එක පෙන්නනද්දි පාට කීපයක් පාවිච්චි කරනවා. මෙතන නිල් පාටින් පෙනනන්නෙ folders. executables තව පාටකිනුත් , archives වෙනත් පාටකිනුත් වගේ විවිධ පාටවලින් මෙතනදි පෙනනන්නෙ.

ls -l --> මේ l කියන option එක පාවිච්චි කලාම ලැබෙන්නෙ long listing format එක.
මෙතන අපිට අන්තර්ගතය විස්තර සහිතව පෙනන්නවා. මෙතන එක එක columns වලින් කියවෙන්නෙ මෙන්න මේ දේවල්.

1- file permissions , Linux වල file permissions ගැන මම කලින් සඳහන් කලා මතක ඇති. ඒ ගැන වැඩිදුර පස්සෙ කතා කරමු. දැනට මේ පළවෙනි තිරුවෙ පෙන්නන්නේ ඒ ඒ අයිතමයට තියන permissions. ඒකෙ මුලින්ම d අකුරත් තියනවනම් ඒ අයිතමය directory එකක්(folder එකක්) - තියනව කියන්නේ ඒක directory නොවන ඒව. l අකුර තියනවනම් ඒක link එකක් නැත්තම් shortcut එකක් කියලත් කියන්න පුළුවන්.

2- number of links , අදාල අයිතමයට තියන links ගාන තමයි දෙවනි තීරුවෙන් පෙන්නන්නෙ.

3- ගොනුවේ හරි file එකේ හරි owner කව්ද කියල තමයි මේ තීරුවෙන් පෙන්නන්නේ.

4- ඒ ගොනුව අයිති group එකේ නම.

5- file එකේ size එක තමයි මෙතන පෙන්නන්නෙ.

6- අන්තිමට file එක modify කරපු දිනය සහ වේලාව මෙතන දක්වනවා.

7- මේ ගොනුවේ නම.

ls -a --> a කියන option එක යෙදුවාම අපිට hidden files නුත් අඩංගු කරල ප්‍රතිඵල පෙන්නනවා. ලිනක්ස් වල hidden file කියන්නෙ මුලට . එකක් තියන ඒව. ඒව සාමාන්‍ය විදිහට පෙන්නන්නෙ නෑ. බලාගන්න ඕන නම් nautilus එකේ ctrl+h press කරන්න. එතකොට hidden file තියනවනම් පෙන්නාවි.

මෙතන මම යෙදුවෙ ls -al කියල. එතකොට hidden files නුත් ඇතුලත්ව long list format එකට ප්‍රථිපලය ලැබනවා. තව දෙයක් මෙතන මුලින්ම තියන . සහ .. කියන දෙක මොනවද දන්නවද? මෙතන . කියල පෙන්නන්නෙ current directory එක(/home) .. කියන්නෙ ඒකෙ parent directory එක(root).

mkdir (make directory)

මේ විධානය පාවිච්චි කරන්නෙ folder එකක්(directory) හදන්න. මෙතනදි අපි පරාමිතිය විදිහට දෙන්න ඕන අපිට folder එක හදන්න ඕන නම අදාල path එකත් එක්ක.

ravinda@ravinda-desktop:~$mkdir ucsc --> මගේ home එකේ මම ucsc කියල folder එකක් හැදුවා.

ravinda@ravinda-desktop:~$mkdir /Desktop/ucsc --> Desktop එකේ ucsc කියල folder එකක් හැදුවා.

එහෙනම් මේ ලිපියට ඇති වගේ නේද? මුකුත්ම නොදන්න අයට වගේ මේ ටික සෑහෙන්න වැදගත් වෙයි කියල හිතනවා. එහෙනම් තව commands එක්ක හම්බෙමු. ලිපිය ගැන අදහසක් විවේචනයක් ලියල යන්නත් අමතක කරන්න එපා.

Sunday, March 28, 2010

ලිනක්ස් සිංහලෙන් මුල සිට සරලව - මොකද්ද මේ Shell


ඉතින් ලිනක්ස් ගැන ලිපි පෙලේ තව ලිපියක් ලියන්නයි මේ සූදානම. මුලින් මේ ලිපි පෙල ගැන ගොඩක් අය උනන්දුවෙන් හිටියත් අන්තිම ලිපි දෙකට වැඩි ප්‍රතිචාරයක් නෑ. ඒ නිසා මටත් කම්මැලි හිතිලයි තිබුනේ ආයෙ ලියන්න. මේ දවස් වල කැම්පස් එකේ වැඩත් වැඩි නිසා ඊළඟ ලිපිය ලියන එක දවසින් දවස කල් යමිනුයි තිබුනේ. වැඩිපුර දවසක නිවාඩුවකුත් එක්ක ගෙදර ආවහම හිතුවා මේක ලියල දානව කියල.

හරි Shell කිව්වහම මොකද්ද මුලින්ම මතක් වෙන්නේ Shell scripting, Shell commands එහෙම නේද? මොකද්ද මේ shell එක කියන්නේ. මේ රූප සටහන බලන්නකෝ.
Kernel එක කියන්නේ Linux වල තියන වැදගත්ම දේ. ඇත්තටම මෙහෙයුම් පද්ධතිය කියන්නෙ මේ kernel එකට. අනෙක් මෘදුකාංග ක්‍රියා කරන්නේ මේ kernel එක හරහා දෘඩාංග සහය ලබා ගනිමින්. මේ kernel එකට විචිත්‍රක අතුරු මුහුණත (GUI) වගේම සාමාන්‍ය ලිනක්ස් මෙහෙයුම් පද්ධතියක් එක්ක ලැබෙන මෘදුකාංග අයිති වෙන්නේ නෑ. ඒව ලැබෙන්නෙ GNU(GNU is Not Unix) කියන ව්‍යාපෘතියෙන්. මේ දෙක ඒ කියන්නේ Linux kernel එක සහ GNU මෘදුකාංග එකතු වෙලයි GNU/Linux මෙහෙයුම් පද්ධතියක් නිර්මාණය වෙන්නෙ. ඒ අතුරු කතාවක්. ඉතින් පරිගනකයේ දෘඩාග හසුරුවන්නේ මේ kernel එකනේ. kernel එක එක්ක ගනුදෙනු කරන කෙනා තමයි shell කියන්නේ. ඉතින් අපිට මෙහෙයුම් පද්ධතියෙන් යම් දෙයක් කරගන්න ඕන නම් මේ shell ට කියල තමයි කරගන්න වෙන්නේ. මෙයාට කියනව Command line interpreter කෙනෙක් කියලත්. Interpreter කියන්නේ පරිවර්තකයා නැත්තම් තෝල්කයා කියන එකනේ. පරිගනකය දන්නෙ machine language එක ඒ කියන්නේ 010010101110 වගේ දෙකේ පාදයෙන් නැත්නම් binary වලින් කියන දේවල් විතරයි. අපිට ඒව තේරෙන්නෙ නෑනෙ අපි තෝරගත්තු විධාන වලින් කෙරෙන්න ඕන දේ shell එකට කිව්වහම එයා ඒක kernel එක හරහා පරිගනකයට කියල අදාල වැඩේ කරල දෙනවා.
shell කීපයක් ලිනක්ස් මත භාවිතා වෙනවා. Bourne shell කියන්නේ දැනට Linux මත බහුලවම භාවිතර වෙන shell එකෙ මේක. අනික් ඒවට වඩා හොඳ shell එකක් විදිහට bourne shell නැත්තම් bash shell එක හඳුන්වනවා. තව C shell, sh shell වගේ shell කීපයක්ම තියනවා. prompt එකේ echo $SHELL කියල දුන්නම දැනට run වෙන shell එක මොකද්ද කියල දැන ගන්න පුළුවන්. මේ shell එක බොහොම powerful දෙයක්.(windows command prompt එක වගේ කසි කබලක් නෙමේ) ගොඩක් ක්‍රමලෙඛකයන් තාමත් GUI එක භාවිතා නොකර shell එකේ තමයි තමන්ගේ කටයුතු කරන්නෙ. GUI එකේ කරන සමහර දේවල් ඊට ගොඩක් ඉක්මනට shell එකේ කරගන්න පුළුවන්. ඒ වගේම GUI එකේ කරන්න බැරි shell එකේ පමණක් කරන්න පුළුවන් ගොඩක් දේවල් තියනවා. මේ නිසා Linux ඉගන ගන්න නම් shell එක ගැන දැන ගැනීම ඉතාම වැදගත්.

ඉතින් අපි කොහොමද මේ shell එක බලා ගන්නෙ. GUI එකක් නැතුව අපි මෙහෙයුම් පද්ධතිය ස්ථාපනය කරගත්තොත් අපි කෙලින්ම යන්නෙ මේ shell එකට තමයි. අපි සාමාන්‍ය GUI එකක් සහිත Linux ස්ථාපිතයක ඉන්නව නම් alt+ctrl+F2(F2 ඉඳල F6 වෙනකම් ඕන function key එකක් පාවිච්චි කරන්න) යතුරු එකවර එබුවහම අපිට GUI එකෙන් ඉවත් කරල shell එකට අරගෙන යනවා. මළ කෙළියයි දැන් ආපහු GUI එකට එන්නෙ කොහොමද? බය වෙන්න එපා atl+ctrl+F7 වලින් ආයෙ GUI එකට එන්න පුළුවන්. ඒත් නැතුව GUI එකේම ඉඳගෙන shell එක එක්ක වැඩ කරන්න බැරිද? පුළුවන් ඒකට තමයි terminal කියන මෘදුකාංගය තියෙන්නේ.

Terminal

Ubuntu වල නම් Application-->Accessories-->Terminal කියන තැන මේක තියනවා. එහෙම නැත්නම් alt+F2 ඔබලා එන Run Application එකේ gnome-termianl කියල දුන්නහමත් මේක ගන්න පුළුවන්. GUI එකක් මතදි අපිට මේ terminal එක පාවිච්චි කරල shell commands execute කරන්න පුළුවන්.

Shell commands

shell එකෙන් අපි කියන දේ කරලා දෙනව කිව්වට ඉතින් ඒකත් කියන විදිහක් තියනවා. ඒ කියන්නේ නියමිත විධාන තියනවා. ඒවගෙන් තමයි අපි අපිට අවශ්‍ය දේ කියන්න ඕන. ඊළඟ සටහනේ ඉඳල shell commands ගැන කතා කරමු.

ඉතින් මේ සටහන හමාර කරන්නයි යන්නේ. ගැටළුවක් අදහසක් තියනව නම් අහන්න අමතක කරන්න එපා. අඩුපාඩුවක් දැක්කනම් ඒක පෙන්නල දෙන එකත් අගය කරනවා. ඒ නැති උනත් ප්‍රතිචාරයක් සටහන් කරලා යනවනම් ඒක මට ධෛර්යක්.

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

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 ස්ථාපනයේදි අවබෝධයෙන් සිටිය යුතු දේවල්. මේ සටහන ටිකක් දිග වැඩි උන නිසා මෙතනින් නවත්වනවා. මට මගහැරුණු දෙයක් වෙතොත් මකත් කරන්නත් අපහැදිලි දෙයක් වෙතොත් එකත් සඳහන් කරල යන්න අමතක කරන්න එපා.

Sunday, January 10, 2010

ලිනක්ස් සිංහලෙන් මුල සිට සරලව - ලිනක්ස් ගැන ඔබ දැනගත යුතු දේ



ලිනක්ස් සිංහලෙන් මුල සිට සරලව - ලිනක්ස් අල ගිය මුල ගිය තැන් - 1කොටස

Linux වල තව දුරටත් ඉදිරියට යන්න කලින් Linux ගැන පවතින මති මතාන්තර හා ඒවායේ සත්‍ය අසත්‍ය ස්භාවය ගැන ටිකක් ලියන්න හිතුනා. මොකද Linux ගැන ඉගෙන ගන්න කලින් Linux කියන්නේ මොකද්ද කියල හරියටම දැනගෙන ඉන්න එක වැදගත්. විභාගෙ කටේ තියාගෙනත් මගේ තියන බ්ලොග් අමාරුවටයි මේක ලිව්වෙ lol. හරි එහෙනම් ඕන් පටන් ගත්තා.

Linux වයිරස් වලින් තොරද?

මෙ ප්‍රශ්නෙට දෙන්න පුළුවන් කෙටිම පිළිතුර නම් නෑ කියන එක. ඒත් windows සමග සංසන්දනය කරාම Linux සඳහා වයිරස් බලපෑම නොගිනිය හැකි තරම් කුඩායි. ඒකට හේතුව මොකද්ද කියන එක අපි සලකල බලමු.

ඕනෑම පරිගනක වැඩසටහනක වැරදි(bugs,errors) තියෙන්න පුළුවන්. 100% ක් නිරවද්‍ය(error free) පරිගනක වැඩසටහනක් නෑ කියල තමයි සලකන්නෙ. මේ නිසා පරිගනක වැඩසටහන් වල කේතයන්ගේ(code) වල තියන දුර්වලතා නිසා ඒ හරහා ඒ වැඩසටන් වල ක්‍රියාකාරීත්වයට බාධා කල හැකි වයිරස් ලියන්න පුළුවන්.වින්ඩෝස් වලදී මෙසේ කේතයේ දුර්වල තැන් වලින් ඇතුල්වන පරිදි වයිරස ලිවිය හැකියි නමුත් Linux මතදී එය එපමණින්ම කල හැකි වන්නේ නැහැ. එයට හේතුව Linux මත විවිධ පරිශීලකයන්ට විවිධ ශක්‍යතා මට්ටම්(privilege levels) ලබා දීම නිසා. Linux පද්ධතිය පාලනය කිරීමට හෝ එයට යම් වෙනසක් කිරීමට හානිකර malware(වයිරස් වැටෙන්නේ malware යටතටයි) වැඩසටහන් වලට root privileges ලබා ගන්න වෙනවා. Linux පද්ධතියක් මත මෘදුකාංගයක් ස්ථාපනය කිරීම system setting එකක් වෙනස් කිරීම වැනි අවස්ථාවලදී ඔබෙන් root password එක විමසනවා ඔබ දැක ඇති. මේ නිසා සීමා සහිත privileges ඇති වැඩසටහනක් විදිහට ස්වයංක්‍රීය පරිගනක වැඩසටහනකට Linux පද්ධතියට බලපෑ හැකි වෙනස් කම් කල හැකි වන්නේ නැහැ.

Linux සඳහා වයිරස් ලියවෙන්නේ ඉතා අඩුවෙන් නැත්නම් නොලියවෙන තරම්. ඊට හේතුව එය නිදහස් වීමයි. අපි වින්ඩෝස් සැලකුවොත් එය මිලදී ගත යුතුයි. ඒ නිසයි එයට විශාල වශයෙන් වයිරස ලියවෙන්නේtwisted. උදාහරණයක් විදිහට ගත්තොත් අපි හැමෝටම ඕන වතුර සලකන්න. කව්රු හරි කෙනෙක් ලෝකයේ සියළු වතුර විශාල ටැංකි වලට එකතු කරලා මුදලට ලබාදෙන්න ගත්තොත්? ඔබ ඒ ටැංකියක සිදුරක් විදින්න පෙළඹෙනව නේද? නමුත් වතුර හැම තැනකම ඕන කෙනෙක්ට ගන්න පුළුවන් විදිහට තියනවනම් කාටවත් ඒකට හානි කරන්න ඕන නෑ.

ඒ කෙසේ වුනත් Linux සඳහා වයිරස ඉතා සුළු ප්‍රමාණයක් හරි ලියවෙනව නේද? කොහොමද ඒවගෙන් Linux වලට හානි නොවී තියෙන්නෙ?

අපි හිතමු Linux සහ වින්ඩෝස් සංස්කරණ දෙකක් එකම වෙලාවෙ නිදහස් වුනා කියල. Linux වල කේතය විවෘතයි ඕන කෙනෙක්ට බලන්න පුළුවන්. මේ නිසා ලොව පුරා මිලියන ගණනක් Linux වලට ආදරය කරන්නන් ක්‍රමලේඛකයන් Linux kernel එක බාගත කරගෙන භාවිතා කරනවා,පරීක්ෂා කරනවා. නමුත් වින්ඩෝස් වල කේතය පිටතට ලබා දෙන්නේ නෑ. ඒත් පරිශීලකයාට executable code එක ලැබෙනවා. මෙකෙන් නැවත source code එක ගන්න බැරිද? ඇත්තෙන්ම පුළුවන්. C වැනි භාෂාවකට පවා executable code එක නැවත හැරවිය හැකි tool දැනට තියනවා. ඒත් Microsoft සමාගම මෙලෙස නැවත වින්ඩෝස් කේතය ලබා ගැනීම සම්පූර්ණයෙන් තහනම් විදිහට නීති සකසලයි තියෙන්නෙsad. නීතිගරුක පුරවැසියෙක් විදිහට ඔබ එය නොකරන්න පුළුවන්. ඒත කවුද ඒක කරන්නෙ. වයිරස් ලියන්නන්, හැකර්වරුන් එලෙස නැවත කේතය ලබාගෙන එහි දුර්වල තැන් සොයාගෙන ඒවාට වයිරස් ලියනවාeek. දැන් කව්රු හරි මේ විදිහට Linux වලත් වරදක් සොයාගෙන එතනට වයිරසයක් ලියනවා කියමු. නමුත් Linux කේතය පරීක්ෂා කරන ලොව පුරා අයගෙන් බොහොමයක්ටද මේ දුර්වල තැන හමුවෙවා. එයින් කවුරු හරි එය report කරනව අදාල තැන් වලට(මේ වගේ http://www.kernel.org/pub/linux/docs/lkml/reporting-bugs.html) ක්‍රමලේඛන දැනුමක් ඇති අය මේ සඳහා patch ලියනවා. එයින් සාර්ථක වන ඒවා submit කරනවා. මේ patches අදාල දුර්වල තැනට ප්‍රතිකර්මයක්ද කියල kernel එක develop කරන අය තහවුරු කිරීමෙන් අනතුරුව ඉතාම ඉක්මනි ඒ security update එකක් වදිහට මුළු ලෝකයේම Linux පරිගනක වෙත නිකුත් කරනවා. මේ වන විට එම දොශ සහිත තැනට ලියූ වයිරසය අන්තර්ජාලයට මුසු කර තිබෙන්නට පුළුවන්. ඒත් එය පරිගනක වලට ආසාදනය වීමට පෙර අදාල patch එක ඔබේ පරිගනකට පැමිණ තිබේවිsmile. නමුත් විනිඩෝස් වැනි OS එකකදී එම සමාගමේ සීමිත ක්‍රමලේඛකයින් පිරිසක් ආරක්ෂාවේ සිදුර සොයාගෙන එයට patch එකක් ලියන කොට ඒයට ලියපු වයිරස් ලෝකය පුරාම පැතිරිලා ඉවරයි. ඉතින් මේ විදිහට අශ්වයා පැන යන්න කලින් ඉස්තාලය වහන එක Linux වල සුවිශේෂී දෙයක්.

මේ නිසා Linux is Virus Free යන්න බොහෝ විට පාවිච්චි වෙනවා. මෙම නිසාම ලෝකයේ සුපිරිම පරිගනක 500න් 90% පමණ ධාවනය වන්නේ Linux වර්ගයේ මෙහෙයුම් පදධති වලින්. පහත දැක්වෙන්නේ www.top500.org අඩවිටයන් ගත් තිරපිටපතක්.

ඔබට අවශ්‍ය සෑම දෙයක්ම Linux මත කල හැකිද?


ඔව් වෙනත් මෙහෙයුම් පද්ධති මත කල හැකි බොහෝමයක් දේවල් දෙවල් Linux මත ඉතා පහසුවෙන් වඩා ආරක්ෂාකාරී ලෙස කල හැකියි. ක්‍රමලේඛන කටයුතු සඳහා Linux වඩාත් උචිත බවයි මගේ හැඟීම. පාරදෘශ්‍ය භාවය නිසා මෙහෙයුම් පද්ධතියේ ක්‍රියාකාරීත්වය දකින්න පුළුවන් නිසා පරිගනක සම්බන්ධව ඉගනීමට Linux වර්ගයේ මෙහෙයුම් පද්ධති ඉතා උචිතයි. නමුත්, graphic designing සඳහා Linux මෙහෙයුම් පද්ධති සඳහා මාදුකාංග ඉතා අඩුයි. Flash, 3D max වැනි මෘදුකාංග සඳහා විකල්ප Linux සඳහා තවමත් නැති වීම ලොකු අඩු පාඩුවක්. එහෙත් විවිධ පරිශීලක අවශ්‍යතා උදෙසා සැකසුනු නිදහස් මෘදුකාංග ලක්ෂ සංඛ්‍යාත ප්‍රමාණයක් අද ලෝකයේ තිබෙනවා.

Linux Geeksලා සඳහා පමණයිද?

මේක තමයි විවාදයට තුඩු දෙන මාතෘකාව. Linux user friendly නෑ. Software එකක් install කරන්න ගියාම එපා වෙනවා. මේව Linux වලට නැගෙන චෝදනා වලින් කීපයක්. මම දකින විදිහට ලොකුම දේ තමයි ගොඩක් අය වින්ඩෝස් පාවිච්චි කරලා Linux වලට ආවහම ඒ පරිසරයම නොලැබීම නිසා තමයි මෙහෙම කියන්නෙ. ඔව් Linux වල සමහර දේවල් ටිකක් අමාරුයි මොකද Linux වල පරිසරය වින්ඩෝස් වල වගේ abstract නෑ. ඇත්තටම වෙන්නෙ මොකද්ද කියල අපිට දකින්න පුළුවන්. ඒත් සමහර අය ඒකට අකමැතියි තමන්ට ඕන දේ කිව්වහම ඒක කරල දෙනවනම් ඒච්චරයි වෙන්න ඕන. ඒත් Linux වල වැඩකරන අය මේ OS එකක සැඟවුනු යථාර්තය දකිනවා. කොහොමද OS එකක් වැඩ කරන්නේ. කොහොමද මෘදුකාංගයක් වැඩ කරන්නේ. ඒ නිසා Linux වල වැඩ කරන කෙනෙක් ඉබේම Geek කෙනෙක් වෙනවා. ඒක නරක දෙයක් නෙමෙයිනේ?razz ඔබට වැඩි දුරටත් ඉගන ගැනීමට ආස නම් ඒ සඳහා අවස්ථාව Linux තුල තියනවා වගේම එය ලැබෙන්නෙ නොමිලේ....surprised

Tuesday, January 5, 2010

මෙගා බයිට් 300ට height quality චිත්‍රපට


Assignment, Viva ,විභාග උණුසුම අස්සේ පොඩි පෝස්ට් එකක් ලියන්න ඕන කියල හිතුනා. ලිනක්ස් ගැන ඊළඟ ලිපිය දාන්න තව ටිකක් කල්යාවි. හිමීට පිළිවෙලට හදන්න එපැයි.

ෆිල්ම් බාන කට්ටියට මරු සයිට් එකක් අහු උනා. දැන් ටිකක් කල් මේක හම්බෙලා සමහරවිට ඕගොල්ලො දන්නවත් ඇති මේක ගැන. මේක blog එකක්. www.300mbmovie.com .සාමාන්‍යයෙන් හොඳ quality චිත්‍රපටියක් avi format එකේ 700MB විතර වෙනවනේ. ඒත් මේ සයිට් එකේ තියෙන්නෙ mkv format එකට හරවපු movies. මේවගෙ size එක ආසන්න වශයෙන් 300MB වෙනවා. ඊට වැඩි ඒවත් තියනව ඒ තවත් quality එක වැඩි ඒව. film එක තියෙන්නෙ කොටස් විදිහට. Rapidshare සහ Hostfile වල තමයි download කරගන්න දීල තියෙන්නෙ. Free file share කරන තැන්වල බාන්න ගියාම තියන කට්ට ඉතින් මෙතනදිත් කන්න වෙනවාconfused. Hostfile site එකේ නම් එකක් බාලා ඊළඟ එක බාන්න පැය 1/2ක් ඉන්න කියනවා. ඒ උනාට ඒච්චර චාටර් වෙන්න ඕන නෑ connection එක disconnect කරලා ආයෙ connect කරන්න. IP එක වෙනස් උනාම ආයෙ ටක් ගාල බාගන්න පුළුවන්. කොටස් විදිහට දීල තියන ඕකකොම බාගෙන extract කරන කොට ලස්සනට එක file එකක් හැදේවි. ලිනක්ස් වලනම් මෙහෙම කරන්න(7zip තියෙන්න ඕන). මුලින්ම බාපු file තියන තැනට යන්න. මුල file එක TWT.part1.rar නම්. මෙහෙම දෙන්න.

$ unrar e TWT.part1.rar

එච්චරයි කොටස් කීපයක් තියනව නම් ඔක්කොම එකතු වෙලා තනි mkv ගොනුව හැදේවි. අපේ බිල් අයියගේ OS එකේ නම් මෙහෙම වෙනවද දන්න නෑ. ජනේලයක් තියන කෙනෙක් උත්සාහ කරල comment එකක් දාන්න. එහෙනම් උත්සාහ කරල බලන්න(මේ command එක කොහොමත් වැඩ කරන්නෙ නෑ ජනේලෙන් මුල් file එක extract කරල බලන්න ඔක්කොම එකතු වෙලා එක file එකක් එනවද කියල). දැන් මට බඩගිනියි කැම්පස් එකට ගිහින් බවනෙන්(කැන්ටිම) බඩට මොනව හරි දාගන්න ඕන. ගිහින් එන්නම්. biggrin

Sunday, December 27, 2009

ලිනක්ස් සිංහලෙන් මුල සිට සරලව - ලිනක්ස් අල ගිය මුල ගිය තැන්


කාලයක් තිස්සේ මම බොහොම ආසාවෙන් හිටි දෙයක් තමයි මේ කරන්න යන්නේ. ලිනක්ස් ගැන ලිපි පෙලක් ලියන්න. අපේ ඉන්දරේ කාලෙකට කලින් මගේ පෝස්ට් එකකට ප්‍රතිචාරයක් දක්වමින් ඉල්ලුවා ලිනක්ස් අයිසිං කිරීම ගැන ලියන්න කියල. ඉතින් පුලු පුලුවන් විදිහට මම ලිපි 5කින් Ubuntu අයිසිං කිරීම ලිපි පෙළ ලිව්ව. ඒක කට්ටියට ප්‍රයෝජනවත් වෙන්න ඇති කියල හිතනව. මේ ළඟදි අපේ බිංකුවා කීප පාරක්ම ඉල්ලා සිටියා ලිනක්ස් A to Z ලිපි පෙලක් ලියන්න කියල. ඒක නම් කරන්න බෑ මොකද මම ලිනක්ස් වල Z තියා ඒ අහලකටවත් දන්නෙ නෑrolleyes. ඒ කියල නිකන් ඉන්න බෑනේ මම දන්න ටික ලියන්නයි කල්පනාව. ලිනක්ස් වලදි වැදගත්ම වෙන දේ ලිනක්ස් commands ගැන තමයි මූලිකවම කතා කරන්න යන්නෙ.හරි ලිනක්ස් ගැන කතා කරන්න කලින් මුලින්ම ලිනක්ස් වල අතීතය පොඩ්ඩක් හොයලා බැලුවොත් හොඳයි කියල හිතුනා. එක අතකට ඒක රසවත් ඒකයි razz.

හැම දෙයක්ම ආරම්භ වෙන්නෙ UNIX වලින්. අද තියන හැම මෙහෙයුම් පද්ධතියක්ම ආභාෂය අරගෙන තියෙන්නෙ UNIX වලින්. UNIX මුලින්ම නිකුත් වෙන්නෙ 1970 දී. ඒහි නම්‍යශීලී ගුණය නිසා UNIX ඉතා වේගයෙන් පැතිරී ගියා. නමුත් UNIX වානිජමය අරමුණු මූලික කරගෙන නිර්මාණය කල මෙහෙයුම් පද්ධතියක්. ඉතා ඉහල මිලකින් යුතු උන නිසා මෙය සාමාන්‍ය ජනතාව අතර භාවිතයට ආවෙ නෑ.

1983 දී රිචඩ් ස්ටෝල්මන් විසින් GNU ව්‍යාපෘතිය ආරම්භ කරනවා. නිදහස් මෘදුකාංග සංකල්පය ලොවට ඉදිරිපත් කරන ස්ටෝල්මන්ගේ අරමුණ වෙන්නේ නොමිලේ ලබා දෙන UNIX වැනි මෙහෙයුම් පද්ධතියක් නිපදවීම. මෙතනදි UNIX වැනි උනාට ස්ටෝල්මන් නිර්මාණය කලේ UNIX නෙමෙයි. ඔහු ඒක GNU කියන නමේම අන්තර්ගත කලා. GNU කියන්නෙ GNU is Not UNIX කියන එක. එතන GNU කියනනෙ නැවත ඒ තේරුමමයි. මේ විදිහට recursive විදිහට අර්ථය දෙමින් මෙය UNIX නොවන බව ඔහු කිව්වා. 1984 දී ස්ටෝල්මන් විශ්මිත නිර්මාණයක් කලා ඒ GNU C compiler එක(GCC). අදටත් වඩා කාර්යක්ෂමම compiler එකක් විදිහට GCC සැලකෙනවා.


මඟහැරුනු යමක්

1990 වන විට ස්ටෝල්මන් සම්පූර්ණ මෙහෙයුම් පද්ධතියක් සඳහා අවශ්‍ය මෘදුකාංග සහ අනෙක් සියළුම කොටස් එකතු කරගෙන තිබුනත් GNU සඳහා තිබුනු Hurd නම් kernal එක සාර්ථක එකක් උනේ නෑ. මේ නිසා ඔහුට GNU සම්පූර්ණ කරගැනීමට නොහැකි වෙලයි තිබුනෙ.

MINIX නම් මෙහෙයුම් පද්ධතිය 1987 දී Andrew S. Tanenbaum නම් මහාචාර්යවරයා විසින් එළිදක්වන ලද්දක්. මෙම මහාචාර්යවරයාගේ Operating Systems: Design and Implementation නම් පොත ලබා ගන්නා අයට පේලි 12000 පමන කේත සහිත MINIX මෙහෙයුම් පද්ධතියේ කේතය ලබාගත හැකි උනා. මෙහි source code එක විවෘත උනත් වෙනස් කිරීම හා නැවත බෙදා හැරීම කල හැකි උනේ නෑ. ඒ අනුව MINIX ස්ටෝල්මන්ගේ සංකල්පයටත් කලින් විවෘත කේත මෘදුකාංගයක් උනා. එකට ලොව පුරා පරිගනක විද්‍යාව සිසුන් අති බහුතරයක් සතුව Tanenbaum ගේ පොත තිබුනා. Linus Travolds එයින් කෙනෙක්.
1991 වෙනකොට Linus Benedict Torvalds සිටියේ Helsinki විශ්ව විද්‍යාලයේ දෙවන වසරේ. එවිට ඔහුගේ වයස 21යි. මේ කාලයේ Linus පසුව Linux Kernal එක බවට පත්වූ ව්‍යාපෘතිය පටන් ගන්නවා. මුලින්ම එය Linus විසින් විශ්ව විද්‍යාලයේ විශාල UNIX severs වෙත ඇතුළු වීම සඳහා යොදාගත් terminal emulator එකක් (වෙනත් පද්ධතියකට පිවිසීමට හැකි මෘදුකාංගයක්) . මේක දියුණු කලේ GNU C compiler එක මගින් MINIX මත ඉඳගෙන. අවසානයේදී Linux වටහා ගත්තා ඔහු මෙහෙයුම් පද්ධතියක kernal එකක් ලියා ඇති බව. 1991 අගෝස්තු 25 වෙනිදා ඔහු ඒ බව comp.os.minix නම් mailing group එකට නිවේදනය කලා.


මෙයට ලැබුනු ප්‍රතිචාර වලින් ධෛර්යමත් වූ Linus 1991 සැප්තැම්බර් වලදී Linux 0.01 නිකුත් කලා. ලොව පුරා ක්‍රමලේඛකයන් මේ වටා රොක් වුනා. ඔවුන් Linux බාගත කරගත්තා පරීක්ෂා කලා අඩුපාඩු නිවැරදි කලා අළුත් දේ එකතු කලා පසුව නැවත Linus වෙත ලබා දුන්නා.ඔක්තෝම්බර් 5 වෙනිදා Linux 0.02 නිකුත් වෙනවා. තවත් සති කීපයකින් 0.03 පිටවුනා. දෙසැම්බර් වෙනකොට Linux 0.10 වෙනකම් ඇවිත් තිබුනා. මේ විදිහට බොහොම ඉක්මනින් Linux දියුණු වෙමින් ඉදිරියට ගියා.

Linux නම ලැබුනේ කොහොමද?

Linus මුලින් අදහස් කරගෙන හිටියේ මේ kernal එකට නිදහස් අර්ථය එන්න "free" සහ UNIX ආභාෂය ලත් නිසා "x" අකුරත් එකතු කරල "freex" කියල නම් කරන්න. නමුත් Helsinki විශ්ව විද්‍යාලයේ FTP server එකේ ලිනක්ස් ගබඩා කරපු Ari Lemmke නම් Linus ගේ මිත්‍රයා ඒක Linux විදිහට වෙනස් කලා. මේ නම ජනප්‍රිය වීමත් එක්ක Linus ද එය ඒ ආකාරයට භාවිතා කරා.

Linux සුරතලා Tux
1996 දී Linus විසින් Linux සඳහා නිල සංකේතය(mascot) විදිහට Tux නම් පෙන්ගුයින් නම් කලා. නිදහස් හා විවෘත මෘදුකාංග ලෝකයේ බොහෝ වෙලාවට සංකේත ලෙස යොදාගැනෙන්නේ සතුන්.

මුලින් Linus විසින් Linux නිකුත් කලේ තමන්ගේම බලපත්‍රයක් යටතේ. ඒත් ඔහු පාවිච්චි කල සමහරක් මෘදුකාංග GNU ව්‍යාපෘතියේ GNU General Public License යටතේ ලියාපදිංචි කල ඒවා. උදාහරණයක් විදිහට Linux 0.01 හි GNU ලාගේ bash shell එක අන්තර්ගත උනා. පසුව 1992 දෙසැම්බර් වලදී Linux 0.99 GNU GPL යටතේ නිකුත් කලා. පසුව Linus කීවේ Linux GNU GPL යටතේ නිකුත් කිරීම තමන් කල හොඳම දෙයක් බවයි. මේ නිසා Linux kernal එක පාවිච්චි කරල මෙහෙයුම් පද්ධතියක් නිර්මාණය කරන ඕන කෙනෙක් එය පිටකිරීමේදී source code එක ලබා දිය යුතු උනා. Linux අද වන විට මේ තත්වයට එන්න මෙය ඉතා ඉවහල් වුනා කිව්වොත් නිවැරදියි.

Linux අද

Linux සතු නම්‍යශීලී සුමට ගුණය නිසා පරිගනක ලෝකයේ සෑම අස්සක් මුල්ලක් නෑරම Linux අද පැතිරිලා. එය Super computer වල සිට අතේ ගෙන යන කුඩා පරිගනක(palmtops) දක්වා සෑම උපාංගයකටම ඇතුලත් වෙලා ඉවරයි. දැනට ලෝකයේ තියන වේගවත්ම සුපිරි පරිගනක 100න් 95ක් පමණ ධාවනය වෙන්නේ Linux වර්ගයේ මෙහෙයුම් පද්ධති. Linux වල හැකියාව එයින්ම මැනගත හැකියි. ඒ වගේම 50MB තරමට කුඩා වූ Damn small Linux හා 100MB වූ Puppy Linux වැනි මෙහෙයුම් පද්ධතිද තිබෙනවා. දශක දෙකක් පුරා පරිගනක ලෝකයේ රැඳී සිටිමින් ඕනෑම ආකාරයේ ආක්‍රමණයකට තමන් සූදානම් බව Linux ඔප්පු කර තිබෙනවා.

මේ සෑම දෙයකටම ආරම්භකයා වූ Linus අදටත් සරල මිනිසෙක්. ඔහු බිල් ගේට්ස් වගේ ධනවතෙක් නෙමෙයි. ඒත් අද ලෝකයේ සිටින ජනප්‍රියම ක්‍රමලේඛකයා ඔහුයි. පරිගනක පරිශීලකයන් අතර බිල් ගේට්ස්ට වඩා ඉහල තැනක Linus ඉන්නවා කිව්වොත් නිවැරදියි. ඒ තම අසහාය නිර්මාණය ඩොලර් ගණනකට තක්සේරු නොකර එය සමස්ත ලෝකයාගේම හිත සුව පිණිස නිදහස් කරන්නට ඔහු තීරණය කල නිසයි.