Showing posts with label මෘදුකාංග. Show all posts
Showing posts with label මෘදුකාංග. Show all posts

Tuesday, July 5, 2016

පහසුවෙන් ලිනක්ස් පාවිච්චි කරන්න ඉඟි අටක්

මෙන්න 2016! 2008 - 2009 අවුරුදු දෙකේ පැල් බැඳගෙන බ්ලොග් ලිව්ව මම 2015 අවුරුද්දෙත් 2013 අවුරුද්දෙත් මොකුත්ම ලියල නැහැ. 2016ත් නිකංම නාස්ති වෙන්න නොදී ලිනක්ස් පාවිච්චිය ගැන පුංචි සටහනක් තියලා යන්න හිතුවෙ ඒ නිසා.

2016 මට විශේෂයි. මම ලිනක්ස් පාවිච්චි කරන්න පටන් ගෙන අවුරුදු දහයක්! අපොයි මේ මොන මළජරාවක්ද කිය කිය කට්ටිය නිකන් දීපු උබුන්ටු සීඩී වාහන ඇතුළෙ එල්ලන කාලේ උබුන්ටු පාවිච්චි කරන්න පටන් ගනිපු මම, අවුරුදු දෙකකට පස්සේ, ඒ කියන්නෙ 2008 දි සම්පූර්ණයෙන්ම උබුන්ටු වලට මාරු වුණා. එදා සිට අද දක්වාම පුද්ගලික පාවිච්චිය උබුන්ටු හෝ මොකක් හරි ලිනක්ස් මෙහෙයුම් පද්ධතියක්ම තමයි. දැන්.... ප්‍රවණතාව වෙනස්. දැන් මිනිස්සු උබුන්ටු හොය හොය පාවිච්චි කරනවා.

Wednesday, April 16, 2014

සැබෑ වූ බියකරු සිහිනය | Heartbleed

මම ලිව්ව අන්තිම බ්ලොග් සටහන නතර කළේ හොල්මන් කතාවෙ තාක්ෂණික පසුබිම ගැන හොඳට පැහැදිලි කරනව කියල. නමුත් සතියකට විතර කලින් දවසක මතු වෙච්ච, අන්තර්ජාලයෙන් තුනෙන් දෙකකට විතර බලපාන බරපතල ප්‍රශ්නයක් නිසා මට හොල්මන් කතා ලිවිල්ල පැත්තක තියල ඒ ගැන පොඩ්ඩක් හොයල බලල ලියන්න හිතුණා. මේක තාක්ෂණික ලිපියක් වගේ පෙනුනට මේක ලියන්නෙ ටෙක්නිකල් අයට නෙමේ. එදිනෙදා බැංකු කටයුතු කරගන්න, සෙට් වෙන්න (social networking), ෂොපින් යන්න අන්තර්ජාලය පාවිච්චි කරන ඔන්ලයින් සාමාන්‍ය ජනතාව වෙනුවෙන්. :) (ඒ නිසා ටෙක්නිකල් පොරවල් වලට මේක බෝරිං වගේ පේන්නත් පුළුවන්)

Image courtesy: heartbleed.com
වැඩි විස්තර වලට යන්න කලින් කෙටිම හැඳින්වීමක් කළොත්, "හාට්බ්ලීඩ් කියන්නේ අන්තර්ජාලයේ වෙබ් අඩවි වලින් තුනෙන් දෙකක පමණ තොරතුරු ආරක්ෂාව පිළිබඳ මෘදුකාංගයක පවතින, දීර්ඝ කාලීනව හඳුනා නොගත් දෝෂයක් හේතුවෙන් රහසිගත දත්ත සූක්ෂම අයුරින් බාහිර පාර්ශව අතට පත් වීමේ අවදානමක්" ලෙස හඳුන්වන්න පුළුවන්. අන්න ඒක සිංහලෙන් විස්තර කරන්නයි මේ වෑයම.

කවුරුත් දන්නවනේ HTTPS කියන එක ගැන. Facebook යද්දි වෙබ් බ්‍රවුසරේ අර ඉබ්බා (padlock) මාක් එකක් එන්නේ... අන්න ඒ ඉබ්බා (ගෙ නිරූපිතය) කියල හිතාගන්නකො දැනට. සාමාන්‍යයෙන් අපි දන්න හැටියට මේ ඉබ්බා තියෙනව කියන්නෙ ඒ වෙබ් අඩවිය ආරක්ෂිතයි. වෙන අය කාටවත් අපි ජාලගත වෙලා කරන දේ හොයන්න බෑ. උදාහරණයක් විධියට, මම username/password දීලා Facebook එකට ලොග් වෙනව නං, මගේ පරිගණකය (client) සහ Facebook වෙබ් අඩවිය වැඩ කරන මැසිම (server) විතරයි ඒ username/password දැනගන්නේ මේ ඉබ්බා තියෙද්දි. ඉලෙක්ට්රොනික විධියට එහා මෙහා යන දත්ත, ෆෝන් ටැප් කරනව වගේ වැඩක් කරල තෙවැනි පාර්ශවයකට (හොරෙකුට) ග්‍රහණය කරගන්න පුළුවන් වුණත්, ඒ දත්ත රහස් අංකනයට (encrypt) ලක් කර ඇති නිසා ඒවා username/password ලෙස කියවන්න කිසිම බාහිර පාර්ශ්වයකට බැහැ.

ඕක තමයි අපි මෙච්චර කාලයක් විශ්වාසයෙන් යුතුව පාවිච්චි කරපු සම්මුතිය (SSL/TLS protocol). හැබැයි, මෑතකදි පර්යේෂකයින් කණ්ඩායමක් හොයාගෙන තියෙනවා ඔය ඉබ්බා කඩන්න පුළුවන් කියල! නරකම ආරංචිය තමයි, ඉබ්බා කඩන්න පුළුවන් කියල ප්‍රසිද්ධියේ කවුරුත් නොදැන අවුරුදු දෙකක්ම ගෙවිලා ගිහින් කියන එක. ඒ කියන්නේ ඉබ්බා කඩන්න පුළුවන් කියල කවුරුහරි හොරෙක් (හැකර් කෙනෙක්) දැනගෙන, ඒ බව ප්‍රසිද්ධ නොකර හිටියා නම් ඒ හොරා සෑහෙන ප්‍රයෝජනයක් ඒ හැකියාවෙන් අරන් තියෙන්න ඉඩ තියෙනවා.

Tuesday, March 11, 2014

සර්වර් එකේ හොල්මනක්

"මචං උඹ ලිනක්ස් දන්නව නේද?"

Image courtesy: pixabay.com
ටී ෂර්ට් එකක පිටේ FAQ අකුරු තුන තඩියට ප්‍රින්ට් කරවගෙන ඊට යටින් ඔය ප්‍රශ්නෙයි ගැළපෙන උත්තරේකුයි ගහගන්නවා මම හිතුණොත්. :D එච්චරටම නිතර දෙවේලේ ඇහෙන ප්‍රශ්නයක් ඕක. සාමාන්‍යයෙන් මගෙන් කවුරුහරි ඔහොම අහන්නෙ ලිනක්ස් සම්බන්ධ උදව්වක් ඕනෙ වුණාම. ඉතින් මේකත් එහෙම කතන්දරයක්...

මගේ මිත්‍රයා පරීක්ෂණ මට්ටමින් තමන්ගෙම ලිනක්ස් සර්වර් එකක වෙබ් අඩවියක් හොස්ට් කරලා. ඊට පස්සෙ ඒ වෙබ් අඩවිය පාවිච්චි කරයි කියල හිතන අයට පොඩි ටෙස්ටිං (UAT) රවුමක් දෙකක් කරන්න දීලා අඩුපාඩු අල්ලගන්න. මේ UAT එකේදි හදිසියෙම වෙබ් අඩවිය අකර්මණ්‍ය වෙලා. හේතුව හොයල බැලුවම හාඩ් ඩිස්ක් එකේ root partition එක (/) සම්පූර්ණයෙන්ම පිරිලා ඉඩ නැහැ. වෙබ් අඩවිය වැඩ කරනකොට caches/ logs ලියන්න හාඩ් ඩිස්ක් එකේ ඉඩ නැති නිසා තමයි ඒක නැවතිලා තියෙන්නෙ.

Thursday, January 16, 2014

PL/SQL වැනුම

සෑහෙන කලකට පස්සෙ තාක්ෂණික සටහනක් ලියන්න හිතුණා. මගේ රැකියාවේ හැටියට බොහොමයක් අළුත් දේවල් අත්හදා බලන්න ඉඩ ලැබුණත්, මගේ රුචිකත්වය අනුව අත්හදාබැලීම් වල යෙදෙන්න තියෙන නිදහස කැම්පස් යන කාලෙ තිබුණ නිදහසට සාපේක්ෂව ගොඩක් අඩුයි. ඒ නිසා තාක්ෂණික සටහන් ලිවිල්ල සෑහෙන අඩු වුණා (නැත්තටම නැති වුණා). බයික් ගැන බ්ලොග් සටහනක් ලිව්වෙ ඒ ගැන යමක් කමක් අත්හදා බලන්න නිදහසක් ලැබුණු නිසා. 2013 මට තරමක් කරදර සිද්ධ වෙච්ච වගේම ගොඩක් වැඩ අධික අවුරුද්දක් වුණු නිසා 2013 අවුරුද්දම මගේ බ්ලොග් එක නිහඬයි. 2014 අවුරුද්දත් එහෙම වෙන්න එපා කියල හිතාගෙනම මගේ ඩේටාබේස් අත්දැකීම මෙසේ සටහන් වන වගයි. :-)

මේක තාක්ෂණික සටහනක්. Database ගැන අත්දැකීම් නැති අයට, IT නොකරන අයට මේක නොතේරෙන්න හොඳටම ඉඩකඩ තියෙනවා. මේක අණ්ඩර දෙමළ වගේ කියල හිතුණොත් මගේ මෝටර්සයිකල් ටුවර් එක ගැන කියවන්න. :)

Thursday, March 3, 2011

මුදවාගැනීමේ මහා මෙහෙයුම සහ තවත් මෙහෙයුමක්

මම නිහඬව හිටපු කාලේ කරදර වුණා කියල මම කිව්වනෙ මගෙ ඕවර්හීට් වෙච්ච බ්ලොග් පෝස්ට් එකෙන්... මේ ඒ කරදර වලින් එකක් තමා. අවදානම් ඇක්ස්පැරිමන්ට් කරන්න ගිහිං මගේ ලැප්ටොප් එකේ හාඩ් ඩිස්ක් එකට තවත් වරක් කෙළැ වී ගියා. කොහොම කොහොම හරි මේකට විසඳුම මතක් වුණා ටිකක් වෙලා ගිහින්. ඒ තමා Testdisk කියන අපූරු මෘදුකාංගය.


Wednesday, February 23, 2011

CPU Overheat! -- පරීක්ෂාකාරී වන්න

ආයුබෝවන්,... ශාකුන්තලගෙ සටහන් පොතේ පිටුවක් මේ අළුතින් ලියැවෙන්නෙ මාස ගණනාවකට පස්සෙයි. පහුගිය කාලේ මට ටිකක් විතර කරදර කාලයක් වුණු නිසා ටිකක් නිශ්ශබ්දව ඉන්න තීරණය කළා. ඒත් ඉතිං ජම්මෙට වඩා පුරුද්ද ලොකුයිනෙ. ඒ නිසා ආපහු ලියනවා Blog!

නිතර නිතර මගේ අඩන්තේට්ටම් වලට ලක්වෙන ලැප්ටොප් එක ගැන වචනයක් කියන්නම් අද සටහනට පූර්විකාවක් විධියට. මම මේක ගත්තේ 2007 අවුරුද්දෙ දෙසැම්බර් මාසෙ දෙවෙනි සතියෙ දවසක. Acer Aspire 4315 වර්ගයෙ ලැප්ටොප් එකක්. දැන් වයස අවුරුදු තුනයි මාස දෙකයි සතියයි දවස් ගානක් විතර ඇති. පරණයි. ඉස්සර ආපු IBM ලැප්ටොප් වගේ දැන් තියෙන ලැප්ටොප් එතරම් කල්පවතින්නෙ නෑ. මේකට මුලින්ම වෙච්ච වින්නැහිය මගේ බ්ලොග් එකත් එක්ක හිටපු පරණ කස්ටියට මතක ඇතිනේ... ඒ කොහොම වුණත් මගේ උත්සාහය මේ ලැප්ටොප් එක අවම වශයෙන් අවුරුදු පහක්වත් පාවිච්චි කරන්න. මොකද 1.73 GHz Intel Celeron ප්‍රොසෙසරය මගේ වැඩ වලට හොඳටම ප්‍රමාණවත්.

Saturday, August 7, 2010

Gammu එක්ක මොබයිල් වැඩ කිඩ | SMS කෙළිය

ආ........යිබෝ.........ං........! අර.... ශාකුන්තල කියල එකෙක් හිටියෙ... අන්න ඒකා නින්දෙන් නැගිටලා ඇවිත් තමා මේක ලියන්නෙ... බ්ලොග් සීන් එකෙන් පොඩ්ඩක් විතර ඈත් වෙලා ඉඳලා කස්ටියට මාව අමතක වෙන්න ගිහිනුත් ඇති... තවත් නිශ්ශබ්දව හිටියොත් සින්ඩියෙන් නිළ වශයෙන්ම මාව පන්නන්න ඉතිරි වෙලා තියෙන්නෙ තවත් දවස් හතරක් නිසා මොකක් හරි තේරුමක් ඇති දෙයක් සටහන් කරල යන්න තමා මේ පැත්තෙ ආපහු ආවේ. :D

මේ බ්ලොග් එක නිතර කියවන අය දන්නවනේ මම ලියන තාක්ෂණික ලිපි වලින් අති බහුතරය ලියැවෙන්නෙ මගේ අත්දැකීම් අනුසාරයෙන් බව. කොපි පේස්ට් නෑ... පරිවර්තන වැඩ නෑ... එකක් දෙකක් හැර අනිත් සියල්ල පෞද්ගලිකව අත්හදා බලා දෙසන ඒවා. නමුත් පහු ගිය කාලේ මම යෙදිලා හිටපු වැඩ කටයුතු වල ස්වභාවයයි තරමයි අනුව මම අදහස් කළා ටිකක් විතර බ්ලොග් ලියන වැඩෙන් ඈත් වෙලා ඉන්න.

Tuesday, April 6, 2010

එන්න, නිදහස අත්විඳින්න මා සමඟ...

ආයුබෝ...! ආයෙමත්, ටික දවසකට පස්සේ ඔන්න ආවා බ්ලොග් එක පැත්තේ. මේ ලියමන තාක්ෂණය සම්බන්ධ එකක් වුණාට මේක කියවන්න ගීක්ලා වෙන්නම ඕනෙ නෑ. :-) මේ ලිපියේ කොටස් දෙකයි... පූර්වභාගය මගේ අත්දැකීම්... අපර භාගය සමාජයට පොඩි පණිවුඩයක්.

මම සම්පූර්ණයෙන්ම ලිනක්ස් වලට මාරු වෙලා දැන් මාස දහයකටත් කිට්ටුයි. මේ කාලය ඇතුළත මම අළුතෙන් බොහොමයක් දේවල් ඉගෙනගත්තා. “වෙනස් වීම” – බැරැක් ඔබාමා දිනවූ වචනය – ක්‍රියාවට නංවන එක අමාරු කාරියක්. නමුත් ස්වයංව වෙනසට ලක්වීමේදී තමයි අභියෝග වලට මුහුණදීම ගැන හොඳ ප්‍රායෝගික පුහුණුවක් ලැබෙන්නෙත්. මුළුමනින්ම ලිනක්ස් වලට මාරු වෙලා දෛනික පරිගණක කටයුතු කරගැනීම අමාරුයි නේද කියන එක බොහෝ දෙනා මගෙන් අසා තිබුණු ප්‍රශ්නයක්. මගේ උත්තරය, මුල් කාලේ නම් ටිකක් ඔව්, ඒත් දැන් නම් එහෙම නෑ කියන එක. සමස්තයක් වශයෙන්, ලිනක්ස් වල වැඩ කිරීම කොහොමටත් අමාරු කාරියක් නෙවෙයි. වෙනසට ලක් වීම අමාරුයි. ඒත් වෙනසට ලක් වුණාට පසුව අනුගමනය කළ යුතු සාමාන්‍ය පිළිවෙත් සහ රටාවන් (practices) වලට හුරු වුණාම, මුලින් හිටපු තත්වයට වඩා පහසු බවක් දැනෙන්නේ.

මම දෛනිකව පාවිච්චි කරන මෘදුකාංග ගැන සඳහනක් මීට කලකට ඉහතදි පළ කළා. ඇත්තෙන්ම මේ ලැයිස්තුව දැන් යල් පැනලා. වින්ඩෝස් මෙහෙයුම් පද්ධතියත් එක්ක මගේ තිබුණු බැමි කීපයක්ම දැන් බිඳිලා ගිහින්. ලිනක්ස් වලට මාරු වුණු මුල් කාලේ යම් යම් අවශ්‍යතා සඳහා ඉඳහිට වින්ඩෝස් පාවිච්චි කරන්න අවශ්‍ය වුණා. පරිගණකය ප්‍රතිපණගන්වන්න කම්මැලි නිසා මේකට පාව්චිචි කළේ Sun VirtualBox මත Windows XP. නමුත් පහුගිය කාලය ඇතුළත, වින්ඩෝස් නැතිවම බැරි වෙලා තිබුණු මේ සමහර අවශ්‍යතාවන් වලට සාර්ථක නිදහස් හා විවෘත ආදේශක විසඳුම් කීපයක්ම අන්තර්ජාලය ඔස්සේ සොයාගන්න මට හැකි වුණා. ඒ සියළුම මෘදුකාංග/ විසඳුම් සඳහා දායක වූවන්ට මගේ හෘදයාංගම ස්තුතිය හා ප්‍රණාමය පිරිනැමෙනවා.

දැන්, මගේ VirtualBox එක ඇතුලේ තියෙන්නෙ Windows 7. ඒත්... මට දැන් ඒක ක්‍රියාත්මක කරන්නත් කම්මැලියි. හිතාගන්න පුළුවන්ද ලිනක්ස් වල භාවිතයේ පහසුව හා ඇබ්බැහි වීම...? මම මේ මෑතකදි එකම එක වැඩකට මම Windows 7 පාවිච්චි කළා. ඒ OpenOffice.org වින්ඩෝස් සඳහා වන නිකුතුවේ සිංහල අතුරුමුහුණත පරීක්ෂා කරන්න. (ඒකට ඉතිං වින්ඩෝස් නැතුව වෙන මොකක් පාවිච්චි කරන්නද? :P )

මම සෙල්ලම් කර කර හිටපු කාලේ මාර්තු දෙවැනිදායින් අවසාන වුණු බව දන්නව ඇතිනේ... දැන් මම තොරතුරු තාක්ෂණ ක්ෂේත්‍රයේ ආධුනිකයෙක්... හඃ හඃ..! මට මේ දවස් වල පැවරිලා තියෙන වැඩ වල ටිකක් බැරෑරුම් වගකීමක් තියෙනවා. මාසයක් ඇතුළත මේ දක්වා ඒ වැඩ වලදි ඉතාම විශ්වාසනීයවත්, ආරක්ෂාකාරීවත් වැඩ කරන්න පුළුවන් බොහොම ස්ථායී පාදමක් සහ හොඳ තාක්ෂණික වටපිටාවක් ලිනක්ස් වලින් ලබා දී තිබෙන බව බය නැතුව අත්දැකීම් සහිතව කියන්න පුළුවන්. මෙපමණ කාලයක් සෙල්ලම් කළේ ලෝකල්හොස්ට් එකේ තියෙන සර්වර සහ පරීක්ෂණ දත්ත එක්ක... ඒත් දැන්.......................

---

පහුගිය කාලේ ඇතුළත මට හමුවුණු දේවල් කීපයක් මේ.

ලිනක්ස් වීඩියෝ සංස්කරණය කරන්න පාවිච්චි කරන මෘදුකාංග ගණනාවක්ම තිබෙනවා. ඒ එකකවත් පරිශීලක අතුරුමුහුණත තාම Adobe Premiere හෝ එවැනි මෘදුකාංගයක් තරම් පහසුවෙන් පාවිච්චි කළ හැකි තරමට දියුණු වෙලා නැති බව ඇත්ත. ඒත්, සමහර වැඩ වලදි අවශ්‍යතාවය අනුව චිත්‍රක අතුරුමුහුණතක් (GUI) නැති ffmpeg පවා සාර්ථකව පාවිච්චි කරන්න පුළුවන්. මෙතන ක්ලික් කළොත් ඒ ගැන යමක් බලාගන්න පුළුවන්. :-) LiVES, Cinelerra යනාදී වශයෙන් වීඩියෝ මෘදුකාංග ගොඩක් මට අන්තර්ජාලය ඔස්සේ සොයාගන්න හැකි වුණා. අවශ්‍යතාවයක් ඇති වුණොත් මම ඒවා පාවිච්චි කරන ක්‍රමය ඉගෙනගනිමින් අළුත් පරිසරයට හුරු වෙනවා. මම Adobe Premiere පාවිච්චි කරල නෑ. පාවිච්චි කරන්න දන්නෙත් නෑ. ඉතින් මට කෝකත් එකයි.

WinSCP මෘදුකාංගය ගැන දන්නව ඇතිනේ... SSH/ SFTP සඳහා වින්ඩෝස් මත භාවිත කළ හැකි client මෘදුකාංගයක්. Windows Explorer (explorer.exe) පාවිච්චි කරලා සාමාන්‍ය ගොනු හුවමාරු වැඩ කරගන්න පුළුවන් වුණාට SSH වගේ ආරක්ෂාකාරී විවෘත කේත පද්ධතිත් එක්ක වැඩ කිරීමේ හැකියාව එයට ලබා දී නැහැ. ඒ නිසයි WinSCP හෝ එවැනි තෙවන පාර්ශ්වයීය මෘදුකාංගයක් පාවිච්චි කරන්න සිද්ධ වෙන්නේ. නමුත් Ubuntu/ Kubuntu/ Fedora වගේ ලිනක්ස් පද්ධතියකදි තත්වය වෙනස්. File Manager එක විවෘත කරලා පෙත ලබා දෙන තැන ssh://username@serverhost:port යන රටාව අනුව පෙත සටහන් කරලා Enter කළ ගමන් වැඩේ ගොඩ! මේක කරන්න පුළුවන් වෙලා තියෙන්නෙ Ubuntu සමඟ පෙරනිමියෙන්ම GVFS සහය තියෙන නිසා. මේ තියෙන තිර රූපසටහන් දෙකත් බලන්න.

තෙවන පාර්ශ්වයීය ආදේශක අවශ්‍ය නෑ... :-) කාර්යාල වැඩ වලදි ත්‍රෛභාෂික (යුනිකෝඩ්) පෙළ අඩංගු ගොනුත් සමඟ වැඩ කරන්න සිද්ධ වෙන නිසා සාමාන්‍ය ලිනක්ස් ටර්මිනල් එකක වැඩ කරන්න අමාරුයි. අනිවාර්යයෙන්ම චිත්‍රක අතුරුමුහුණතකට යන්න සිද්ධ වෙනවා. ඒ නිසා මේ වැඩෙන් ගොඩක් කාලය ඉතිරි වුණා.


මේ 'සුඛෝපභෝගී' පහසුකම් පාවිච්චි කරන්න නම් ටිකක් වේගවත් ජාල සම්බන්ධතාවක් අවශ්‍යයි -- කාර්යාලයීය පරිගණක ජාලය (Office LAN) තුළ පාවිච්චිය ගැටළුවක් නැහැ 

ඊළඟ කාරණාව, EOT වැනි යල්පිනූ ක්‍රම පාවිච්චි කර සිංහල ලියන අන්තර්ජාල පුවත්පත් (උදා: ලක්බිම) කියවන එක. මේ පුවත්පත් කියවන්න පුළුවන් Windows Internet Explorer භාවිතයෙන්ම පමණයි. පත්තරේ බලන්න විතරක් වින්ඩෝස් බූට් කරන්න මට කම්මැලියි. ගැටළුවට නිවැරදිම විසඳුම ළඟපාත තිබිලත් මම දැනගෙන හිටියෙ නැහැ නොවැ. අපේ සහෝදර බ්ලොග්කරුවෙක් වන කෙහළිය බණ්ඩාර ගල්ලබ මීට සාර්ථක විසඳුමක් දීලා තියෙනවා. ගිහිල්ලම බලන්න...!

3GP මාදිලියේ වීඩියෝ ක්ලිප් නරඹන්න ලිනක්ස් මත වැඩ කරන මෘදුකාංගයක් හොයාගන්න බැරුව මම පහුගිය කාලෙ නහයෙන් අඬ අඬා හිටිය නෙව. මේකත් අර මුලින් කිව්ව වින්ඩෝස් එක්ක තිබුණු බැමි කීපයෙන් එකක්. පහුගිය සතියේ මම අහම්බෙන් දැක්කා SuperUbuntu මත පෙරනිමියෙන් එන RealPlayer 11 මෘදුකාංගයෙන් ඒ අවශ්‍යතාවයත් සාර්ථකව සපුරාගන්න පුළුවන් බව. ඉතින් මම මේ දවස් වල හොයනවා ඒක එහෙම වුණේ කොහොමද කියලා...

ඉතින් ඔය වගේ හැම බැම්මක්ම ක්‍රම ක්‍රමයෙන් බිඳිලා මම දැන් VirtualBox එක ඇතුලේ තියෙන Windows 7 ධාවනය කරවන්නෙත් ඉතාම කලාතුරකින්. පහුගිය මාසයටම දෙ වතාවයි.

ඉතිං.......... මට තව දුරටත් වින්ඩෝස් ඕනෙ වේවිද? ඔව්. මම මෘදුකාංග සංවර්ධනයේ (software development) නියැලෙන්නෙක්. තවමත් වැඩි දෙනා පාවිච්චි කරන්නෙ වින්ඩෝස් මෙහෙයුම් පද්ධතිය නිසා ඒ ආශ්‍රිතව මෘදුකාංග සඳහා තත්ත්ව පරීක්ෂණ කරන්න වින්ඩෝස් අවශ්‍ය වෙනවා. .NET ආශ්‍රිත මෘදුකාංග සංවර්ධනයටත් ඉදිරි කාලය තුළ ඉඳහිට මට වින්ඩෝස් අවශ්‍ය වෙන්න පුළුවන්. නමුත්, වින්ඩෝස් සඳහා වෙනම වෙන් කළ partition එකක් මගේ පරිගණකයෙ නෑ. ඉඳහිට අවශ්‍ය වූ වෙලාවක පාවිච්චි කරන්න ඒක VirtualBox එකේම තියේවි.



ඉතින්... මේ ලියවිල්ලෙන් මම දෙන පණිවුඩය...

සාමාන්‍ය පරිශීලකයෙකුට මුළුමනින්ම ලිනක්ස් වලට මාරු වෙන්න බෑ කියන එක බොරුවක්. පැහැදිලි දැක්මක් සහිතව ලිනක්ස් වලට මාරු වීමේ අවශ්‍යතාවය අවබෝධ කරගන්න පුළුවන් නම් ඒ ඇති. පහුගිය කාලය ඇතුළත සුළු මට්ටමේ චිත්‍රක සංස්කරණ කටයුතු කීපයකුත් මගේ කාර්යාල වැඩ වලදි කරන්න සිදු වුණා. කිසිදු අපහසුවකින් තොරව මම GIMP පාවිච්චි කරලා අදාළ අවශ්‍යතාව සපුරාගත්තා. අනෙක් වැඩ වලදිත් එහෙමයි... සොයන්නාට සම්භ වේ කියල කියමනක් එහෙමත් තියෙනවනෙ..! :-)

හැමදෙනාටම ලිනක්ස් වලට මාරු වෙන්න බෑ කියන කතන්දරේ ඇත්තකුත් නැතුවම නොවෙයි. සමහර අවශ්‍යතාවන් වලදි ලිනක්ස් පාරිසරිකය තුළ වැඩ කරන්න පුළුවන් වෘත්තීයමය මට්ටමේ මෘදුකාංග නැහැ. ඒකට තව ටික කලක් ගත වෙයි. උදාහරණයක් විධියට අපි GIMP ගත්තොත්, මුද්‍රණ ක්ෂේත්‍රයේ භාවිත වෙන CMYK වර්ණ මාදිලියට එය පෙරනිමියෙන් සහය දක්වන්නෙ නැහැ. නමුත්, ඒ සඳහා plugin එකක් අන්තර්ජාලය ඔස්සේ හොයාගන්න පුළුවන්.

ඊළඟ ගැටළුව මතු වෙන්නේ අන්තර්ජාලය ගැන. අන්තර්ජාලය නැතුව මෘදුකාංග ස්ථාපනය කරන්නත් බෑ. ඒ වගේම ප්‍රශ්නයක් ඇති වුණු වෙලාවක විසඳුම් හොයාගන්නත් බෑ. මමත් කාලයක් තිස්සේ මේ ගැටළුවත් සමඟ ඔට්ටු වෙමින් ලිනක්ස් සහ නිදහස් - විවෘත මෘදුකාංග පාවිච්චි කළ කෙනෙක්.

හිතල බලන්න මෙහෙම..... ලංකාවෙ අනවසරයෙන් වින්ඩෝස් භාවිතය ඉතාම ප්‍රචලිතයි. එක එක වැඩ වලට මෘදුකාංග අවශ්‍ය වෙනවා. ඒ නිසා වින්ඩෝස් හා ඒ මත ධාවනය වෙන මෘදුකාංග වලට අපේ රටේ හොඳ වෙළඳපොළක් ඇති වුණා. ඒ ඔස්සේ රට පුරා මෘදුකාංග අලෙවිසැල් බිහි වුණා. නීති විරෝධී වුණත්, වින්ඩෝස් එක්ක ඕනෙ වැඩක් කරගන්න අවශ්‍ය මෘදුකාංග මේ තැන් වලින් හොයාගන්න පුළුවන්.

නමුත්, අපි ඉදිරි කාලය තුළ අනවසර මෘදුකාංග පාවිච්චිය අතහැරලා නිදහස් මෙහෙයුම් පද්ධති හා නිදහස් මෘදුකාංග භාවිතයට පෙළඹුණොත්. මෘදුකාංග අවශ්‍ය වෙයි. ඒ මෘදුකාංග වලට හොඳ වෙළඳපොළකුත් ඇති වෙයි. මෘදුකාංග අලෙවිසැල් වලට ලිනක්ස් හා ඒ සමඟ වැඩ කරන්න පුළුවන් නිදහස් මෘදුකාංගත් එයි. අවසානයේ ලිනක්ස් එක්කත් ඕනෙ වැඩක් කරගන්න මෘදුකාංග අලෙවිසැල් වලින් හොයාගන්න පුළුවන් වෙයි. රිචඩ් ස්ටෝල්මන් විසින් අර්ථ දැක්වූ සිව් වැදෑරුම් නිදහසට අනුව බලාත්මක කරන ලද 'නිදහස්' මෘදුකාංග නැවත විකිණීම නීතියෙන් වරදක් නොවන නිසා කිසිදු අසාධාරණයක් මෙහි සිදු නොවෙන්නා සේම, පහසු මිළකට නීත්‍යානුකූල මෘදුකාංග ලබා ගන්නත් අපේ රටේ අන්තර්ජාල පහසුකම් නැති අයට හැකි වේවි.

මම දැනටත් දැකල තියෙනවා බම්බලපිටියේ මෘදුකාංග අලෙවිසැල් වල Ubuntu, Kubuntu සහ OpenOffice.org මිළදී ගන්න පුළුවන්. ඒ වගේම ස්වභාෂාවෙන් පළ වෙන තොරතුරු තාක්ෂණ සඟරා වලත් දැන් දැන් නිදහස් හා විවෘත මෘදුකාංග ගැන වැඩි වශයෙන් කතාබහට ලක් කෙරෙනවා. මේක ඉතා හොඳ ප්‍රවණතාවක්. මේ තත්වය ඉදිරි කාලය ඇතුළත තවදුරටත් දියුණු වේ යයි අපේක්ෂා කරන්න පුළුවන්.

මේ කතන්දරේ ලේසි වැඩක් නෙවෙයි. නමුත් නිදහස් හා විවෘත මෘදුකාංග ක්ෂේත්‍රය දියුණු වෙන්නේ ඒ වටා එක්ව සිටින ප්‍රජාවත් සමඟ. ඒ නිසා ප්‍රජා දායකත්වය අත්‍යාවශ්‍යයි. මේ වෙනස.... පෙරළිය අපි කළොත් දිනෙක ලංකාවේ අපට 'මෘදුකාංග හොරු' කියන ලේබලයෙන් මිදී දේශයක් විධියට ආඩම්බරයෙන් යුතුව නැගී සිටින්නට හැකි වේවි.

Wednesday, December 30, 2009

ව්‍යාවසාදනය – bash කාව්‍යකරණයේ අත්ගුණය


කාව්‍යකරණයක් ගැන නොවැ මං කියල තියෙන්නේ... කලා රසයෙන් යුත් කවි දෙපදක් රස විඳින්න හිතාගෙන මේ පැත්තෙ ආපු අයගෙන් මුලින්ම මං සමාව අයදිනවා... නෝනාවරුනි, මහත්වරුනි.... ඔබේ බලාපොරොත්තු කඩවෙනවා. :-)

පරිගණක ක්‍රමලේඛණයට අධික ඇල්මක් දක්වන නිසා ඒක මට දැනෙන්නෙ කාව්‍ය රචනයක් වගේ.... මම දන්නෙ නෑ අනිත් අයටත් එහෙමද කියල. එදිනෙදා ඇති වෙන ලොකු - පොඩි ගැටළුවකදි ශිල්ප දාලා program කෑල්ලක් අටවගන්න එක පරිගණකත් එක්ක ගෙවෙන මගේ ජීවිතේ සාමාන්‍ය දෙයක් බවට පත් වෙලා. ඇත්තෙන්ම මම පරිගණක ක්‍රමලේඛණයේ අපූර්වත්වය විඳින්න පුරුදු වෙලා තියෙනව කිව්වොත් නිවැරදියි, programming is passion!

එතකොට ව්‍යාවසාදනයක් (disinfect) ගැන කියල තියෙන්නෙ මොකක්ද? මේ සටහන මගේ පසුගිය සටහනට සම්බන්ධයි. ඒකෙ ඉතිරි කොටස කියමුකෝ. මෙතනින් එහාට යන්න කලින්, මම මීට කලින් ලියූ බ්ලොග් සටහන වරක් කියවල මේ පැත්තෙ එන්න පුළුවන් නම් ඉතාම හොඳයි. මීළඟ අභියෝගය වුණේ malware හේතුවෙන් ආසාදිත වී තිබුණු ගොනු ටික හොයා ගන්න එකයි, වෙබ් අඩවිය සම්පූර්ණයෙන් ශුද්ධ කරන එකයි. (ආසාදිත ගොනු ටික කිව්වට පසුව සොයා බැලුවම 602ක්!)

මම කළ ප්‍රතිකර්මය කියන්න කලින් මම මේකෙ මුල් කොටසට ආපු ප්‍රතිචාර ගැන යමක් සඳහන් කරන්න හිතුවා. ලැබුණු ප්‍රතිචාර වලින් මම තෘප්තිමත්. එහෙම නොවුණනං දෙවෙනි කොටසක් ලියවෙන්නෙ නැහැනේ. :-)  හැබැයි, මේ වගේ තාක්ෂණික ලියවිලි වලදි මම ප්‍රතිචාර වලින් බලාපොරොත්තු වෙනවා තවත් යමක්. ඒ මගේ අඩු පාඩු. මම පොට වරද්දාගෙන තියෙන තැන්... නොමග ගිය තැන්... සටහන් අන්තර්ගතයෙ වැරදි... වගේ දේවල්. ඒ විතරක් නෙවෙයි සමහර අය වැරදි වැටහීමක් ඇති කරගෙන තිබුණා මේ ආසාදිත වෙබ් අඩවිය ශාකුන්තල.com කියලා. ඒක එහෙම නැහැ, ශාකුන්තල.com බොහොම සුවසේ තියෙනවා. ජනවාරි පළවෙනිදා ස්වයංක්‍රීවයම දියත් වෙන අළුත් නැවක් ඒක. ආසාදිත වෙබ් අඩවිය මට අයිති එකක් නෙවෙයි. ඒකෙ නම රහසක්. ;-)

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

අපේ පැත්තේ වලි වල සුලභ දෙයක් -- එකෙක් ගුටි කනවා තව එකෙක්ගෙන්... දැන් ගුටි කාපු එකාට ඕනේ පුළුවන් ඉක්මනින් ආපිටට නෙළන්න. සමහර විට ආපිටට නෙළන්න කල්ලි පිටින් යන්නෙ ගුටි කාපුවයෙ ඉදිමුම්වත් බහිනකම් ඉන්නෙ නැතුව. ඉතිං මේ වෙබ් අඩවි සංසිද්ධියෙදිත් මම කරල තිබුණේ එහෙම දෙයක්. අපේ වෙබ් අඩවියට වෙච්ච හානිය ගැන මුලින් තක්සේරුවක් කරනවා වෙනුවට මම කළේ වෙබ් අඩවියට ප්‍රහාරය එල්ල කළේ කවුද,.. කොහෙන්ද,... ආපිටට නෙළන්නෙ කොහොමද... ඔන්න ඔය වගේ විකාර හොයපු එක. මාර ඇඩ්මින් නේද? :P (හැබැයි ඒ සෙවිල්ල යම් තරමකින් හෝ වැඩක් ඇති දෙයක්)

හරි... දැන් ආපහු එමුකො මාතෘකාවට. හැම index ගොනුවක්ම සහ හැම javascript ගොනුවක්ම ආසාදනය වෙලා තියෙන බව සොයාගන්න පුළුවන් වුණු නිසා මුලින් මගේ අදහස වුණේ උපස්ථයකින් (backup) වෙබ් අඩවිය යළි පිහිටුවන්නයි. තිබුණු අළුත්ම උපස්ථයත් සෑහෙන පරණ ගතියක් දැනුණු නිසා මට backup වැඩේ හිතට හරි මදි. කොහොමටත් Backup & Restore මට එච්චර දිරවන මාතෘකාවක් නෙවෙයි.

ඒ නිසා මම කල්පනා කළා PHP වලින් සෙල්ලමක් දාලා ස්වයංක්‍රීයව ආසාදිත ගොනු ටික හොයාගෙන ඒවයෙ තියෙන ආගන්තුක කේත කොටස් ඉවත් කරන්න ක්‍රමයක් හදන්න. ආසාදනයේ ස්වභාවය අනුව මේක කරන්න පුළුවන් දෙයක්. නමුත්, PHP වලින් කරනවනම් ආරක්ෂාව ගැන තවදුරටත් හිතන්න වෙනවා. ඒකත් අමාරු දෙයක් නෙවෙයි.

Web hosting ආයතනය විසින් ssh ප්‍රවේශ පහසුකම් සලසා තිබුණු නිසා ssh හරහා වෙබ් අඩවියට පිවිසිලා මේ කාරණය ඉටු කරගන්න පුළුවන් බවත් මට වැටහුණා. මෙහෙයුම් පද්ධතිය විධියට ලිනක්ස් පාවිච්චි කරන මට bash එක්ක වැඩ කරනවා කියන්නේ අතිශයින්ම සාමාන්‍ය දෙයක්. ssh ප්‍රවේශ පහසුකමත් තියෙන නිසා, පරිගණකයත් එක්ක කතා බහ කරන්න මම නිතර පාවිච්චි කරන bash scripting මේ වැඩේට PHP වලට වඩා සුදුසු බව තේරුම් ගන්න මට වැඩි වෙලාවක් ගියේ නැහැ. අවසානයේ 'ඇන්ටිවයිරස්' එක bash පාවිච්චි කරලා linux shell script එකක් (මගේ වචන වලින් නම් bash කාව්‍යයක්) විධියට සකස් කරන්න තීරණය කළා.

අපි ලියන ක්‍රමලේඛයක අහම්බෙන් සිදු විය හැකි එක කුඩා විචල්‍යයක (variable) වරදක් නිසා සමහර විට පද්ධතියේ සියළු දත්ත ක්ෂණයකින් විනාශ වෙන්න පුළුවන්. ඒ වගේ අවදානමක් ගන්න ඕනේ නැති නිසා මම ලියන ක්‍රමලේඛය පරීක්ෂණ ධාවනයට (test run) ලක් කරන්න වෙබ් අඩවි ගොනු සියල්ල මගේ පරිගණකයට පිටපත් කරගත්තා.

$ ssh user@mysite.com

දැන් අපි සර්වර් එක ඇතුළේ...

$ tar cvfj mysite.tar.bz2 mysite/
$ exit

Compressed archive එකක් නිර්මාණය කළා. දැන් ඒක මගේ පරිගණයට ඩවුන්ලෝඩ් කරගන්න ඕනේ...

$ scp user@mysite.com:/home/user/mysite.tar.bz2 /home/shaakunthala/

දැන් පැක් එක ලිහන්න ඕනේ...

$ tar xvjf mysite.tar.bz

දැන් ලිහපු පැක් එක පැත්තක තියෙද්දි මගේ සුපුරුදු එඩිටරය වන vim පාවිච්චි කරලා shell script එක ලිවීම ආරම්භ කළා. ලියන්න කලින් අවශ්‍යතාව අවබෝධ කරගන්න ඕනේනේ... මෙන්න මෙහෙමයි ආසාදනයේ ස්වභාවය:
  • ආසාදිත ගොනු වල ආගන්තුක කේත කොටස තියෙන්නේ ගොනුවෙ අවසාන පේළිය ලෙස.
  • ආගන්තුක කේත කොටස තැනින් තැනට වෙනස්. නමුත් පොදු රටාවක් ලෙස එහි පහත දැක්වෙන පාඨ කොටස් හඳුනාගන්න පුළුවන්. ඒ නිසා සංකීර්ණ regexp ලිවීම අනවශ්‍යයි.
    • GNU GPL
    • window.onload
    • .replace
  • ආසාදනය වෙලා තිබුණෙ index ගොනු සහ javascript ගොනු පමණයි. (මෙය නිවැරදි තක්සේරුවක් කියා පිළිගන්න අපහසු දෙයක්. මේ නිසාත්, අපේ වෙබ් අඩවියෙ ශ්‍රව්‍ය-දෘෂ්‍ය වගේ විශාල ගොනු නොතිබුණු නිසාත් සියළුම ගොනු පරීක්ෂා කෙරෙන script එකක් ලිවීමෙන් වරදක් වෙන්නෙ නැහැ)
මේ කාරණා සැලකිල්ලට අරගෙන මුළු වෙබ් අඩවියම එකවර ශුද්ධ කරන script එකක් ලිවීම බොහොම පහසු කාරණයක් වුණා. bash functions සහ find -exec / xargs අතර පරහක් තියෙන නිසා මට script එක කොටස් දෙකකට වෙන් කරන්න සිදු වුණා.

sitefix.sh
#!/bin/bash
# Author: Sameera Shaakunthala

rm fixlog.txt
rootdir=`pwd`/mysite/
sup=`pwd`"/fixfile.sh"
find $rootdir -exec $sup {} \;
echo "JOB DONE!"

fixfile.sh
#!/bin/bash
# Author: Sameera Shaakunthala

echo "Processing file: "$1
code=`tail --lines=1 $1 | grep "GNU GPL" | grep window.onload | grep .replace`
l=`echo $code | wc -m | awk '{ print $1 }'`

if [ $l -ne 1 ]
then
 lc=`wc -l $1 | awk '{ print $1 }'`
 lc=`expr $lc - 1`
 head $1 -n $lc > tempfile.tmp
 mv tempfile.tmp $1
 echo "File "$1" has been fixed!" | tee -a fixlog.txt
fi

දැන් පරීක්ෂණ ධාවනය. මේක හරි ගියොත් වැඩේ තිතටම හරි.

$ chmod +x sitefix.sh fixfile.sh
$ ./sitefix.sh

මේක අහවර කරලා fixlog.txt ගොනුව පරීක්ෂා කරල බැලුවා.... ආසාදිත ගොනු 602ක්! අහඹු ලෙස ගොනු කීපයක් පරීක්ෂා කරල බැලුවා. ඒ හැම එකක්ම සුද්ධයි. යංතං අටවගත්ත වයිරස් ස්කෑනරේ සාර්ථක වෙලා! දැන් තියෙන්නෙ සර්වර් එකට මගේ දෙකඩ script එක පටවලා (upload) ක්‍රියාත්මක කරන එක.

$ scp sitefix.sh fixfile.sh user@mysite.com:/home/user
$ ssh user@mysite.com
$ chmod +x sitefix.sh fixfile.sh
$ ./sitefix.sh

අවසාන ප්‍රතිපලය වුණේ මිනිත්තු කිහිපයක් ඇතුළත අපේ වෙබ් අඩවිය සාර්ථක ලෙස ව්‍යාවසාදනය වීම. සියළුම malware කොටස් ඉවත් වී ඇති බව තහවුරු කර වුණේ antivirus මෘදුකාංග මගින් අපේ අඩවිය තවදුරටත් අවහිර නොකරන බව දැන ගත් විටයි. කොහොමද bash කාව්‍යකරණයේ අත්ගුණය? :-)

Hallelujah!

මේ සියල්ල සිද්ධ වුණේ දෙසැම්බර් 27 අළුයම් කාලයේ. මම ලියූ කේතය මගේ මිත්‍රයෙකුටත් ප්‍රයෝජනවත් වුණා. ඔහුගෙ වෙබ් අඩවියකුත් මේ ප්‍රහාරයටම ලක් වෙලා කියල ආරංචි වුණා. ඒක අපූරුවට වැඩ කළා ලු!

අද සටහන අවසාන කරන්නෙ බොහෝම නරක ආරංචියක් එක්කයි. මම භාෂා පරිවර්තකයෙක් නෙමෙයි... ඒ නිසා සිංහලෙන් ලියන්නෙ නෑ මේක >> ක්ලික් කරලම බලන්න...!


අවසානයේ කපිතන් ශාකුන්තල විසින් අනෙක් කපිතන්වරුන්ගේ හා නැවියන්ගේද උපකාර ඇතිව අහවල් නෞකාව බේරා ගන්නා ලදී. හිකිස්! :D

Monday, December 14, 2009

මෝරුන් ලවා සිංදු බෑම


අද කියන්න යන්නේ තාක්ෂණය හා සංගීතය සම්බන්ධ කාරණයක්. මගේ දෛනික අත්දැකීම් අතරට එකතු වෙන තවත් එක අත්දැකීමක්. බළලුන් ලවා කොස් ඇට බෑවීම ට ආදේශකයක් හොයන අය මේ ලිපිය කියවන්නෙ නැතුව මගේ Flickr සේයා දහර පැත්තේ ගිහින් බලන්න. :D

තාක්ෂණික දේවල් කියවන්න අකමැති නම් සටහනේ අන්තිමේ ඇති දෙසවනට හා දෙනුවනට රසවිඳින්න යමක්. තාක්ෂණික මාතෘකා අප්පිරියා වගේ නම් මඟැහරල ඔහොමම යන්න පහළට.

පොප්, රෙගේ සහ හිපොප් අහන්න ටියුන් වෙලා තිබුණු මගේ කන් දෙක රොක් සංගීතයට ටියුන් වෙන්න පටන් ගත්තේ එක්තරා තහනම් වෙළඳ දැන්වීමක තිබුණු සිංහල රොක් සිංදුවක් අහලා. ඉනික්බිති ගල්, තද ගල්, තලන ලෝහ, බර ලෝහ, මර ලෝහ සහ කළු ලෝහ මේ හැම ජාතියටම බරපතල ලෙස ඇබ්බැහි වුණා. තේරුණේ නැත්තම් ඔය ලැයිස්තුව rock, hard rock, thrash metal, heavy metal, death metal සහ black metal කියල හිතාගන්ටකෝ.

චිත්‍රාල් සෝමපාලගෙ නදී ගංගා තරණයේ තවමත් මම බොහොම ආස කරන සිංදුවක්. දවසක් අහම්බෙන් Facebook හරහා මාව යොමු වුණේ මෙන්න මේ පිටුවට. ඒකෙ තිබුණා මම ප්‍රිය කරන ගීතයෙ සාමාන්‍යයෙන් අහල පුරුදු එකට වඩා වෙනස් අනුවාදයක්. රොක් ම තමා.... හැබැයි පොඩ්ඩක් විතර වෙනස්. ගායකයා එම ම තමා, කටහඬ පාලනය මුල් අනුවාදයෙ තරම්ම හොඳ තත්වයක නැහැ. හැබැයි පසුබිම් සංගීතයට පොඩි වර්ණවත් බවක් එකතු වෙලා.... මුල් ගීතයෙ තිබුණු තේජාන්විත බවත් ටිකක් අඩු වෙලා.



එකම ගීතයෙ වුණත් විවිධ අනුවාද රසවිඳින්න මම ගොඩක් ප්‍රියයි. විවිධත්වය කොතැනද - රසය එතැන! ඉතින් වෙබ් පිටුවෙ embed කරලා තිබුණු මගේ ප්‍රියතම ගීයත්, අනෙක් රොක් සිංදු ටිකත් බාගන්න මම උත්සාහ කළා. නමුත් සාමාන්‍යයෙන් මේ වගේ වැඩ වලට මම පාවිච්චි කරන Video Download Helper ඇඩෝනය මේ ගීත වල බාගැනීමේ සබැඳි (download links) හොයාගන්න අපොහොසත් වුණා. ඒ නිසා මම ඒ හා සමාන තවත් ඇඩෝනයක් පාවිච්චි කරලා නැවත උත්සාහ කළා. අසාර්ථකයි! :(

ගිනිහිවල් ආම්පන්න කෙරුවාව එකින් එක හොය හොයා ගියොත් මට වෙනින් වැඩක් කරගන්න කාලයක් ඉතිරි නොවෙන නිසා මම වෙනත් විසඳුමක් හොයන්න උත්සුක වුණා. මුලින් ම බැලුවෙ Firefox සහ Adobe Flash Player මෘදුකාංග වල cache ඩිරෙක්ටරි ඇතුළෙ. නමුත් මගේ බලාපොරොත්තු සුන් කරමින් ඒවයෙනුත් කිසිම දෙයක් හොයාගන්න බැරි වුණා. :(

ඉතින් අවසාන තීරණය වුණේ පරිගණකයට පිටතින් (ජාලය හරහා) එන සියළුම අමු දත්ත (raw data) මෘදුකාංගයක් මගින් ග්‍රහණය කරගෙන ඒ ග්‍රහණය කරගත් බිටු සහ බයිට අතරේ මට අවශ්‍ය දේ තියෙනව ද කියල සොයා බලන එක! :-O එහෙම බර වචන වලින් කිව්වාම බය වෙන්න එපා :) -- මේ කාරිය ඉතාම පහසුවෙන් කරගන්න පුළුවන් Wireshark කියන මෘදුකාංගයෙන්. මේ ලියමනේ මාතෘකාවෙ සඳහන් මෝරා මොකාද කියල දැන් වැටහෙන්න ඕනේ. :) Wireshark මෘදුකාංගය network protocol analyzer එකක්. පරිගණකයත් ජාලයත් අතර දත්ත හුවමාරුව සිද්ධ වෙන්නේ දත්ත 'පැකට්' කියන කුඩා ඒකක (chunks) ආකාරයෙන්. Wireshark මෘදුකාංගයට පුළුවන් මේ දත්ත පැකට් දෙස විමසිල්ලෙන් බලා සිට ඒ පැකට් පිළිවෙලකට පිටපත් කරගන්න. මේ පැකට් පසුව විශ්ලේෂණය කිරීමේ පහසුකමත් Wireshark විසින්ම ලබා දෙනවා.

කොළඹ සරසවියෙ මෙතෙක් මම පෙනී හිටපු විභාග වලින් එකම A+ සමාර්ථය ලබපු පරිගණක ජාලකරණය පිළිබඳ ප්‍රශ්නපත්‍රයෙත් Wireshark මෘදුකාංගයෙන් ග්‍රහණය කරගත් දත්ත පැකැට්ටුවක් විශ්ලේෂණය කරන්න ගැටළුවක් තිබුණා ලාවට වගේ මතකයි. ඉතින් මේවත් අපට වැඩද කියලා හිතින් හිතාගෙන වැල්මෝරා සූදානම් කරගෙන වැඩේට බැස්සා.

මුලින්ම වෙබ් ගවේශකයෙ මට අවශ්‍ය ටැබ් එක (ගීතය අඩංගු වෙබ් පිටුව) හැර ඉතිරි සියළුම ටැබ් වහලා දැම්මා. Twitter සඳහා පාවිච්චි කරන Echofon ඇඩෝනය අක්‍රිය කළා. මේ දේවල් කළේ අනවශ්‍ය දත්ත පැකට් Wireshark මගින් ග්‍රහණය (capture) වීම වළක්වන්න. ඉන්පස්සේ ගීතය අඩංගු වෙබ් පිටුව ප්‍රතිපූරණය (reload) කරලා ඒ ප්‍රතිපූරණය සිද්ධ වෙන අතරෙම පැකට් ග්‍රහණය කරන වැඩේ පටන් ගත්තා. ගීතය මුළුමනින්ම වාදනය අවසාන වුණාම වෙබ් ගවේශකය වසා දමලා දත්ත පැකට් ග්‍රහණය කරන වැඩෙත් නතර කරලා දැම්මා. ග්‍රහණය කරගත් අමු දත්ත විශ්ලේෂණය කිරීමේ පහසුව තකා වෙනම ගොනුවකට save කරගත්තා.

දැන් විශ්ලේෂණය කරන වැඩේ. අමු දත්ත පැකට් හරීම ලස්සනයි :P . කොළ පාටට - කළු පාටට - ලා නිල් පාටට - වෛවාරන්න පැකට්! ඒ මදිවට TCP, UDP, HTTP, SSL, DNS මෙකී නොකී හැම ජාතියෙම පැකට්!! ඉතින් දත්ත පැකට් දහස් ගණනක් අතරේ අතරමං නොවී මට අවශ්‍ය දේ පහසුවෙන් හොයාගන්න පොඩි 'පෙරහනක්' පාවිච්චි කළා. වෙබ් ගවේශකය ක්‍රියාත්මක වෙන්නේ HTTP කියන ජාලකරණ සම්මුතියට අනුව. HTTP වල එක ලක්ෂණයක් තමයි HTTP සර්වරයක් වෙතින් යම් අන්තර්ගතයක් (content) සඳහා ඉල්ලීමක් කළාම අදාළ අන්තර්ගතය, එහි තත්වය පිළිබඳව HTTP තත්ත්ව කේතයක් සමඟ පෙරළා දැනුම් දීම. සාමාන්‍යයෙන් දෝෂ කේතයක් නොවේ නම් මෙය අන්තර්ජාල ගවේශණයේදී පරිශීලකයා වෙත දිස් වන්නේ නැහැ. වෙබ් ගවේශකයෙන් ඉල්ලුම් කරන අන්තර්ගතය කිසිම බාධාවකින් තොරව ඒ වෙත ලබා දෙන්න වෙබ් සර්වරය සමත් වුණා නම් මේ තත්ත්ව කේතය වෙන්නේ 200. ඒක සම්මුතියේ තියෙන සම්මතයක්. ඒ නිසා මේ නිර්ණායකය පාවිච්චි කළා මම ඉහත කියපු පෙරහන හදාගන්න. මිළඟ තිරපිටපත බැලුවාම පෙරහන ගැන පැහැදිලි වෙයි. මේ දේවල් පැහැදිලි කරන්න ටිකක් වැඩිපුර වචන පාවිච්චි කළාට අකුණක් ගහනවා වගේ ඔය සියළුම අදහස් මගේ මනසේ ගොඩනැගෙන්න ගත වුණේ එක නිමේෂයයි.


 පැහැදිලි මදි නම් තිරපිටපත මත ක්ලික් කරන්න

ඔය තිරපිටපතෙත් සලකුණු කරල තියෙන එක දත්ත පැකැට්ටුවක් ගැන මගේ අවධානය විශේෂිතව යොමු වුණා. බැලු බැල්මට ඒක නම් MP3 ගොනුවක ආරම්භක දත්ත පැකැට්ටුව වගේ පෙනෙන්නේ. නමුත් වැඩිදුර සොයාබැලීම සඳහා ඒක මත ක්ලික් කළාම Wireshark වැසී යනවා. ඒක Wireshark මෘදුකාංගයෙ සුළු දෝෂයක් නිසා ඇති වුණු දෙයක් විය හැකියි. නමුත් අදාළ පැකැට්ටුව විවෘත කරගන්න බැරි නිසා මගේ අවසාන උත්සාහය වුණේ HTTP මගින් ලැබුණු සියළුම දත්ත, ගොනු බවට export කරගන්න එක. File -> Export -> Objects -> HTTP මෙනු විධානය දුන්නාම තවත් පොඩි අතුරුමුහුණතක් හරහා මේ සියල්ල ගොනු ආකාරයෙන් ලබාගන්න පුළුවන් වුණා. ඒ අතර තිබුණා -- මොනවද? මට ඕන කරපු දේ! :) මෙහෙයුම සාර්ථකයි!!

බලන්න මීළඟ තිරපිටපත.


පැහැදිලි මදි නම් තිරපිටපත මත ක්ලික් කරන්න

ඔය අස්සේ Facebook වෙළඳ දැන්වීමක ෆෝන් විකුණන කෙල්ලෙකුත් ඔතනට ඇවිත්... ඒව ගනංගන්න එපා.. :P .

 ---

Wireshark හරිම අපූරු මෘදුකාංගයක්. දවසක් මම බැචෙකුට SSL කුප්පියක් දාන්න ආරම්භයක් විධියට Wireshark වලින් පොඩි වැඩකෑල්ලක් දාල පෙන්නුවා. මුලින් පෙන්නුවේ මගේ අතහැර දමාපු SLT Dial-up ගිණුමට ලොග් වෙලා ඒ අතරේ Wireshark එකෙන් ග්‍රහණය කළ දත්ත අතරේ ගෙඩි පිටින් username/ password තියෙන හැටි. ඊළඟට මගේ Gmail එකට ලොග් වෙලා username/ password හොයන වැඩේ ඌටම කරගන්න දුන්නා. :D

(SLT අය SSL පාවිච්චි කරන්නෙ නැත -- සහතිකේ ගිණි ගණං නිසා වෙන්නට ඇත)

---



ඔය තිරපිටපතේ තියෙන විධියේ පිවිසුම් ක්‍රමය සමහර වෙබ් අඩවි වල පාවිච්චි වෙනව දැකල ඇතිනේ.... මේක තරමක් දුරට අනාරක්ෂිතයි. හිතන්න තමන් දැනට ඉන්න local area network එක ඇතුළෙ තවත් කෙනෙක් ඔය විධියෙ අඩවියකට තමන්ගෙ පරිශීලක නමයි මුරපදයයි දීලා ලොග් වෙනව කියලා. ඒ කෙනා ලොග් වෙන වෙලාවේ දත්ත පැකට් ටික Wireshark මගින් ග්‍රහණය කරගන්න පුළුවන් නම් සොරි ඩොට් කොම්! අපට නෙමෙයි එයාට.

මෙතනදි username/ password යන්නෙ encrypt කරල නෙමෙයි. හැබැයි බැලු බැල්මට ඒ වගෙයි. පොඩි සෙල්ලමක් දාලා ආයෙම username/ password අදාළ දත්ත වලින් පහසුවෙන්ම ගණනය කරගන්න පුළුවන්. (base64 encoding ගැන පොඩි ගුග්ල් සෙවුමක් දාලා බලන්ටකෝ.... ;) )

මේව වැරදි වැඩ තමයි.... හැබැයි hacking කියල වරදවා වටහාගන්න එහෙම එපා..... :P



සිංදුවත් අහමුකෝ.... හැබැයි මේ මම බාගත් එක නෙමෙයි. ඔරිජිනල් නදී ගංගා තරණයේ. වෙනස් සන්දර්භයක් ඇතුව රස විඳිමුද? ඒකට ඕන කරන උත්ප්‍රේරකය තමයි ඔය Youtube ලින්ක් එකට පහළින් සඳහන් කරල තියෙන්නේ.....


Youtube එකේ තියෙන දර්ශන පෙළ නරඹන අදහස අතහැර දමන්න. බය වුණාම බොන ජාතිය අමතක කරන්න. Youtube එකේ ගීතය වාදනය වෙන අතරේ තවත් ටැබ් දෙකක මෙන්න මේ වෙබ් පිටු විවෘත කරගන්න. පිංතූර එකින් එක බලන අතරේ ගීතයට හොඳින් සවන්දෙන්න.


(අනුන්ගෙ සිංදු අනවසරයෙන් කොපි කරලා ඩවුන්ලෝඩ් කරන්න දෙන එක නෝටි වැඩක් නේ..... අනෙක..... තව ටික දවසකින් ඕකෙ ඩවුන්ලෝඩ් දෙයි. ඒ නිසා මම ශිල්ප දක්වලා බාගනිපු එක මගෙ ළඟම තිබුණාවේ -- ඕනෙ නම් මම කරපු විධියටම කරලා සිංදුව බාගන්න. ;-) )



එහෙනං ඉතිං.... නැවතීමේ තිත තියන්න හෙවත් කැපෙන්න වෙලාව ඇවිත්. මේ සිංදු බෑවිල්ල මහා ලොකු දෙයක් නෙවෙයි. නමුත් සිංහලෙන් වැඩ කරන පාඨක පිරිස අතරේ බෙදා හදාගන්න හිතුණා. තවත් මොනවහරි දෙයක් අරගෙන ආපහු එනකම්.... Rock on! :D

Sunday, November 22, 2009

අළුත් අළුත් ලිනක්ස්

මම දැනට මගේ ලැප්ටොප් පරිගණකයේ මෙහෙයම් පද්ධති තුනක් පාවිච්චි කරනවා. ඒ Ubuntu, Fedora සහ Debian. සාමාන්‍ය පාවිච්චියට Ubuntu ත්, පරිගණක ජාලකරණය/ Virtualization පිළිබඳ යම් යම් දෑ අත්හදා බලන්න Fedora සහ Debian පද්ධතිත් පාවිච්චි කරනවා. GUI නැතුව කට්ට කළුවරේ ඇඩ්වෙන්චර් සෙල්ලම් වලට Debian.. :P ඉතින් මෑතකදි නිකුත් වුණු අළුත් ලිනක්ස් සංස්කරණ ගැන යමක් ලියන්නයි මේ සටහන.




Karmic Koala නම් බැලු බැල්මටම 'මොඩ්' ගතියක් තියෙනවා. කිහිප දවසකට පෙර, මම ඉංග්‍රීසි බසින් ලියන බ්ලොග් අඩවියේ මේ ගැන යම් සඳහනක් කළා. Karmic Koala නිකුතුවත් එක්ක පැහැදිලිව පෙනෙන දෙයක් Ubuntu තව තවත් වින්ඩෝස් වගේ වෙලා. ඒක එක අතකින් හොඳයි කියන්නත් තවත් පැත්තකින් නරකයි කියන්නත් පුළුවන්. මේකෙ තියෙන සමහර වෙනස්කම් වලට නම් මම පෞද්ගලිකව කැමති නැහැ. හැබැයි පෙරට වඩා සෑහෙන හොඳ user friendly ගතියක් තියෙන බවත් පිළිගන්න වෙනවා.

Karmic Koala එන්නේ අළුත් දේවල්, ගති ලක්ෂණ කිහිපයකුත් එක්ක. ඉන් පැහැදිලිවම දකින්න පුළුවන් එකක් තමයි පැරණි GRUB එක (GRUB Legacy) ඉවත් කරලා තවමත් බීටා අවධියේ තියෙන GRUB2 බූට්ලෝඩරය විධියට පාවිච්චි කිරීම. පොත්තට රැවටෙන්න එපා කියල කියන්න තියෙන්නෙ මෙතනදි තමයි. GRUB2, පැරණි GRUB එකට වඩා දියුණු ගති ලක්ෂණ කීපයක්ම තිබුණත්, ආරක්ෂිත බව අතින් නම් අවමයි. GRUB2 වෙත ප්‍රවේශ වෙන්න දියුණු බහු පරිශීලක ප්‍රවේශන ක්‍රමයක් සකසා තිබුණත් තවමත් ඒක 'කොට උඩ' බව තමයි දැනගන්න ලැබෙන්නේ. සරලව කිව්වොත් GRUB2 වෙත බූට්ලෝඩර් මුර පදයක් යෙදීම තවමත් කරන්න බැහැ. කොහොම වුණත් මේ අඩුපාඩු නිවැරදි වෙලා ඉක්මනින් හොඳ බූට්ලෝඩරයක් විධියට GRUB2 එළිදැක්වෙයි කියලා බලාපොරොත්තු වෙමු. :)

Ubuntu අළුත් සංස්කරණයත් එක්ක GRUB2 බෙදාහැරීම කර ඇති ආකාරය ගැන නම් මගේ එතරම් පැහැදීමක් නැහැ. එය එක්තරා විධියක ඒකාධිකාරයක් කියන්නත් පුළුවන්. මීට දෙමසකට පෙර නිකුත් වූ Debian Lenny පද්ධතියත් GRUB2 නිකුතුව ලබා දුන්නා. නමුත් Debian ස්ථාපනයේදී තමන් කැමති බූට්ලෝඩරය තෝරාගැනීමේ විකල්පය පරිශීලකට ලබා දී තිබුණා. පුරුදු පරිදිම, Ubuntu Karmic Koala ස්ථාපනයේදීත් බූට්ලෝඩරය පිළිබඳව වූ එකම සඳහන වුණේ GRUB2 ස්ථාපනය කරන device එක තෝරා ගැනීමේ විකල්පය පමණයි. පැරණි GRUB එකෙන් මගේ පරිගණකයට සැලසුණු ආරක්ෂාව අළුත් GRUB2 වෙතින් නොලැබෙන නිසා නැවත GRUB Legacy වෙත මාරුවීම තමයි මම Ubuntu ස්ථාපනය කළ වහාම කළ පළමුවෙනි කාරිය.

මීළඟට මම දැක්ක තව දෙයක්, Ubuntu ස්ථාපනයේදී තියෙනවා Home ඩිරෙක්ටරිය encrypt කිරීමේ විකල්පයක්. මේ වගේ (අවදානම්) විකල්ප තෝරාගන්න කලින් කළ යුතු දේ පොඩි Google සෙවුමක් කරල බලන එක. Google සෙවුමෙන් දැනගන්න ලැබුණෙ බොහොම නරක ආරංචියක් නිසා මම Home ඩිරෙක්ටරිය encrypt කරන අදහස අතහැර දැම්මා. පරිශීලක මුරපදය වෙනස් කළොත් ලොගින් වෙන්න බැරිලු.

ඊළඟ කාරණාව ලැප්ටොප් පාවිච්චි කරන සංගීත ලෝලීන්ට හොඳ ආරංචියක් වෙයි. සාපේක්ෂව බොහොමයක් ලැප්ටොප් වල හඬ අඩුයි. මේ නිසා ටිකක් කලබල පරිසරයකදි ලැප්ටොප් එකේ ස්පීකර් වලින් නිකුත් වෙන හඬ ඇහෙන්නෙ නැතිව යනවා. මේ ගැටළුවට විසඳුම් හොයන්න මම ෆෝරම් ගණනාවක රස්තියාදු වුණු බව මගේ පැරණි බ්ලොග් සටහන් වලත් ලියා ඇති. නමුත් Karmic Koala සමඟ මෙයටත් විසඳුමක් ලබා දීලා. දැන් gnome-volume-control මගින් හඬ 150% දක්වා වැඩි කරන්න පුළුවන්. :)

තවත් වැදගත් දෙයක් iBus framework එක. මෙතෙක් අපි සිංහල යතුරුලියන වැඩේට පාවිච්චි කළ SCIM ඉවත් කරලා ඒ වෙනුවට iBus ආදේශ කරලා. iBus ගැන වැඩි යමක් මම දන්නෙ නැහැ. නමුත් iBus වින්‍යාසගත කරන එක SCIMට වඩා සෑහෙන පහසු බව නම් පැහැදිලියි.

Ubuntu අළුත් නිකුතුව Cloud Computing පැත්තටත් අත ගහලා. ඒ UbuntuOne. මේ සේවාවෙන් නොමිලයේ 2 GB ඉඩක් ලැබෙනවා. මාසෙකට ඩොලර් දහය ගණනේ ගෙවන්න පුළුවන් නම් මේ ඉඩ 50 GB දක්වා වැඩි කරගන්න පුළුවන්. කොහොම වුණත් Dialog Broadband පාවිච්චි කරන මට නම් UbuntuOne පාවිච්චි කරන අදහස අතහැර දමන්න සිද්ධ වෙනවා.

තව සුළු සුළු කාරණා කීපයක්ම තියෙනවා... නමුත් ඒ දේවල් මෙතන ලියන්න තරම් වැදගත්කමක් නැහැ කියලයි හිතෙන්නේ. Ubuntu 9.10 තවමත් මට සැලකිය යුතු තරමේ ගැටළුවක් මතු කළේ නැහැ. හැබැයි Huawei e220 මොඩම් එකේ තියෙන virtual CD-ROM device එක ස්වයංක්‍රීයව mount වීම නවත්තන්න පුළුවන් විසඳුමක් නම් ලැබුණෙ නැහැ. පෙරදී මේ සඳහා විසඳුම වෙලා තිබුණු usb-modeswitch මෘදුකාංගයත් Ubuntu 9.10 සමඟ අපේක්ෂිත ක්‍රියාකාරීත්වය දක්වන බවක් පෙනෙන්න නැහැ.

සමස්තයක් වශයෙන් කියන්න පුළුවන්,
Ubuntu --> Windows
:(




Ubuntu ගැන කතා ටික ඔහොම අවසාන කරලා ඊළඟට මම කතා කරන්නෙ පසුගිය සතියෙ නිකුත් වුණු Fedora 12 Constantine නිකුතුව ගැන. හැබෑවටම මොකද දන්නෙ නෑ මේ අළුත් ට්‍රෙන්ඩ් එක... දැන් පිට පිටම Fedora සංස්කරණ දෙකකට දාලා තියෙන්නෙ රජවරුන්ගෙ නම්. ඒකෙත් පොඩි 'ගතියක්' නැත්තෙම නෑ.... :P

Fedora නම් Ubuntu වගේ පොත්තේ වැඩි වෙනසක් කරලා නෑ. මම Fedora එක්කත් පාවිච්චි කරන්නෙ Gnome ම නිසා කලින් Ubuntu ගැන ලියල තියෙන දේවල් කීපයකුත් Fedora අළුත් සංස්කරණයට අදාළ වෙනවා. ඒ Sound Preferences වලින් ශබ්දය 150% දක්වා වැඩි කරන්න පුළුවන් වීමත්, Huawei මොඩමයත් එක්ක ඇති වෙන ගැටළුවත්, SCIM වෙනුවට iBus යොදා තිබීමත් සහ තවත් සුළු කාරණා කීපයක්.

SELinux Troubleshooter අතුරුමුහුණතේ ලොකු වෙනසක් කරලා. කලින් තිබුණු එකට වඩා පැහැදිලි සහ මිත්‍රශීලී අතුරුමුහුණතක්. :)



පරිගණකය ක්‍රියාරම්භ වීමේදීත් පෙරට වඩා පැහැදිලි වේගවත් බවක් තියෙනවා. ආ.......... කියන්න අමතක වුණා.... GRUB2 ඒකාධිකාරය මේකෙ නෑ... :) පෙරනිමියෙන් තියෙන එකම විකල්පය පෙර පරිදිම GRUB Legacy. හැබැයි ස්ථාපනය කළාට පසුව ඕනෙම නම් GRUB2 ස්ථාපනය කරගන්න පුළුවන්. (yum yum :P )

Fedora පාවිච්චි කරන කීපදෙනෙක්ම නගපු පොඩි මැසිවිල්ලක් තමයි Ubuntu වලදි වගේ අන්තර්ජාලය හරහා Fedora නිකුතුව අළුත් කරගන්න (distribution upgrade) පහසුකමක් දීලා නෑ කියන එක. නෑ නෙවෙයි තියෙනවා... ;) ඒකෙ නම preupgrade. හැබැයි නියමින මෙනු යොමුවක් දකින්න නැහැ. ඉතින් Alt+F2 යතුරුලියනය කරලා gksu preupgrade නිවේශනය කරලා අළුත්ම Fedora 12 Constantine නිකුතුවට මාරු වෙන එක අමාරු වැඩක් නොවෙයි කියා මම හිතනවා. :)

(පැරණි Fedora සංස්කරණය වල සමහර විට පෙරනිමියෙන් preupgrade ස්ථාපනය කර නොතිබෙන්න පුළුවන්. එහෙම වෙලාවක,
# yum install preupgrade
විධානය දෙන්න)




ඔය අතරේ අපේම රටේ ලිනක්ස් භාවිතකරුවන් පිරිසක් අපේ රටේ පාවිච්චියට ගැලපෙන අළුත්ම Fedora remix එකක් එළිදක්වලා. ඒ හන්තාන ලිනක්ස්. මේක අපටම ගැළපෙන්නෙ ශ්‍රී ලාංකික පරිගණක භාවිතකරුවන්ගෙ අවශ්‍යතා මැනවින් හඳුනාගෙන ඒ ඔස්සේ එහි නිමැවුම් කටයුතු කර ඇති නිසා. සුපුරුදු Gnome අතුරුමුහුණත පාවිච්චි නොකර ඒ වෙනුවට XFCE හඳුන්වා දී තිබෙන නිසා අවම පද්ධති ශක්‍යතාවක් සහිත පරිගණකයක දී වුණක් හොඳ ක්‍රියාකාරීත්වක් දකින්න පුළුවන් බවයි දැනට හන්තාන ලිනක්ස් පාවිච්චි කරන අය කියන්නේ. හැබැයි දැනට හන්තාන ලබාගන්න පුළුවන් i686 තාක්ෂණයට අනුව නිමැවුණු පරිගණක පද්ධති සඳහා පමණයි.

සරලව කිව්වොත්,
හන්තාන ලිනක්ස් = Fedora + බහුමාධ්‍ය සහය (AVI, MP3, DVD, etc...) + ලාංකිකයෙකුගේ පරිගණක අවශ්‍යතා සපුරාලන අත්‍යාවශ්‍ය මෘදුකාංග

ඉතින් සැරින් සැරේ අත්‍යාවශ්‍ය මෘදුකාංගයි multimedia codecs ටිකයි ඩවුන්ලෝඩ් කරගන්න වේගවත් අන්තර්ජාල සබඳතාවක් නැති නම් තෝරාගන්න Ubuntuත් නෙමෙයි, Fedoraත් නෙමෙයි, හන්තාන ලිනක්ස්. මෙන්න මෙතනින් පොඩියක් සැරිසරලා බලන්න පුළුවන් හන්තාන බැලු බැල්මට කොහොමද කියලා.

හන්තාන ඕනේ නම් මෙතනින් බාගන්න, නැතිනම් blank CD එකකුත් අරගෙන මෙන්න මේ පිටුවෙ නම සඳහන් කරලා තියෙන කෙනෙක් මුණගැහෙන්න. මමත් කැම්පස් එකේ අන්තර්ජාල පහසුකම පාවිච්චි කරලා හෙට දවස ඇතුළත හන්තාන ලිනක්ස් ඩවුන්ලෝඩ් කරන්න අදහස් කරගෙනයි ඉන්නේ... ඒ නිසා කොළඹ සරසවිය ළඟපාත ඉන්නවනම් blank CD එකක් අරගෙන එන්න.... මමත් දෙන්නම් හන්තාන. :)

ඉතින් මේ වැඩේට මූලිකත්වය දක්වපු ඩනිෂ්ක නවින් ඇතුළු පිරිසත් මේ වෙලාවේ මතක් කළ යුතුයි. හන්තාන ගැන ගැටළුවක් තියෙනවනම් මෙන්න තැන... සුද්ධ සිංහලෙන්ම දැනගන්න පුළුවන්. :)

ඉතින්, හන්තානට ජය!



මුළුමනින්ම Fedora වෙත මාරු වෙන්න මම මීට පෙර අසාර්ථක උත්සාහයක නිරත වුණු ආකාරය, මගේ බ්ලොග් අඩවියට නිතර ආ ගිය අය දන්නව ඇති. ඒ දිනවල ලිනක්ස් පිළිබඳ තිබුණු අවම දැනුමත්, Fedora uncomfortable කියා යටිහිතෙන් එක එක නිවේදන නිකුත් වීමත්, මගේ wireless adapter එක Fedora සමඟ වැඩ නොකිරීමත් නිසා මට නැවතත් Ubuntu වෙත ම යොමු වෙන්න සිදු වුණා.

නමුත් අද තත්වය වෙනස්. Gentoo ස්ථාපනය කිරීමේ අසාර්ථක උත්සාහයන් දෙකකිනුත්, පද්ධති හා ජාල පරිපාලනය පිළිබඳ සරසවි දේශන මගිනුත් මට ලිනක්ස් මෙහෙයුම් පද්ධති පිළිබඳ සැලකිය යුතු අවබෝධයක් ලැබුණා. එයින් තේරුම් ගත් විධියට නම් මොන ලිනක්ස් පද්ධතියක වුණත් 'මදේ' එකයි. :D භාවිතයේ පහසුව වෙනම කතන්දරයක්.

Fedora වල නව්‍යකරණ සියල්ල සිදු කර තිබෙන්නේ එහි තිබෙන 'ගීක්' ගතියත් රැකගෙනයි. හැබැයි geek වුණාට greek නෙවෙයි. :D ඒ නිසා අළුත්ම හන්තාන සංස්කරණය දුටු වහාම නැවතත් Fedora වෙත මාරු වෙන්න නැවත වතාවක් නොහිතුණාම නෙවෙයි. Easylife තියෙද්දි ඕවත් වැඩද? :P



එහෙනම්,..... ලිනක්ස් කතා ටික අදට මෙතනින් ඉවරයි.... අපි ගියා.... ciao!

Tuesday, November 3, 2009

මූල කේත ආකාරයෙන් බෙදා හැරෙන මෘදුකාංග ස්ථාපනය


අදත් ඉතින් සිරිත් පරිදිම ලිනක්ස් තමා. මේ ලියමන ලිවිල්ලෙන් මට කිසිදු ලාභ ප්‍රයෝජනයක් නෑ... හුදී සිංහල ජන සමාජයේ යහපත සහ පහසුව තකා සටහන් කරනවා. ශාකුන්තලගේ සටහන් පොත කියවන අයටයි වාසිය. :) ලිනක්ස් වලට නවක අය වෙනුවෙන් අද කියලා දෙන්නේ මූල කේත (source code) ආකාරයෙන් බෙදා හැරෙන මෘදුකාංග ස්ථාපනය කරන ආකාරය ගැන. මේ සටහන ලියන්න මෑතකදි මගේ එක බ්ලොග් සටහනකට ලැබුණු ප්‍රතිචාරයකුත් බොහෝ දුරට හේතු වුණා කියන්න පුළුවනි.

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

පරිගණක මෘදුකාංගයක් කියන්නේ පරිගණකයට ලබා දිය යුතු උපදෙස්, විධානවල එකතුවෙන් සකස් කළ විධිමත් අනුපිළිවෙලවලක් කියලා සරලව හදුන්වන්න පුළුවනි (මම වැරදි නම් කරුණාකර මාව නිවැරදි කරන්න :) ). මේ මෘදුකාංගය ක්‍රමලේඛණ භාෂාවක් (Java, C++, Python, etc...) මගින් කේතනය කරලා පසුව පරිගණකයට තේරුම් ගත හැකි ආකාරයට -- ඒ කියන්නේ යන්ත්‍ර භාෂාවට පෙරළා සකස් කළ පරිගණක ගොනුවක් හෝ ගොනු කීපයක එකතුවක් ලෙස පසුව සකස් කළාම තමයි ඒක භාවිතයට ගන්න පුළුවන් වෙන්නෙ. මේ ආකාරයට යන්ත්‍ර භාෂාවට පෙරළිම තාක්ෂණිකව හඳුන්වන්නේ compile කිරීම (අපි මෙයට සම්පාදනය යයි කියමු) ලෙස. සම්පාදනය කළ මෘදුකාංගයක් නැවත මූල කේතය බවට පෙරලන්න හැකියාවක් නැහැ. හැකියාවක් තිබුණත් එය පහසු වැඩක් නෙවෙයි.

ඉතින් මෘදුකාංග නිර්මාණය කරන අය කරන්නේ තමන් දන්න ක්‍රමලේඛණ භාෂාවක් මගින් කේතනය කරලා පසුව එය සම්පාදනය කරලා සම්පාදිත ගොනු (binaries) මෘදුකාංගය ලෙස බෙදා හැරීම. මෘදුකාංග දෙවර්ගයක් තියෙනවා... සවෘත මෘදුකාංග (closed source) සහ විවෘත මෘදුකාංග (open source) කියලා. සංවෘත මෘදුකාංග වල මූල කේතය පරිශීලකයාට ලබා දෙන්නෙ නෑ. ඒක ඒ මෘදුකාංගය පිළිබඳ හිමිකම් තියෙන සමාගමේ/ ආයතනයේ ව්‍යාපාරික රහසක් වශයෙන් තබා ගැනෙනවා. මීට සුප්‍රසිද්ධ උදාහරණයක් ලෙස Microsoft Windows හඳුන්වන්න පුළුවන්. නමුත් විවෘත මෘදුකාංග වල මූල කේතය පරිශීලකට ලබා දෙනවා. උදාහරණය ලිනක්ස්. මේ දෙවර්ගයටම උදාහරණ තව ඕනේ තරම් දෙන්න පුළුවන්. ඒ වගේම මේ දෙවර්ගයෙම වාසි/ අවාසිත් තියෙනවා. නමුත් ඒ ගැන නෙමෙයි මම අද කතා කරන්නෙ.

ඒත් සමහර විවෘත මෘදුකාංග බෙදාහරින්නේ මූල කේත ආකාරයෙන්ම පමණයි. සම්පාදනය කළ ගොනු හෝ ස්වයං ස්ථාපන ගොනු ආකාරයට ඒවායේ බෙදාහැරීමක් සිද්ධ වෙන්නෙ නැහැ. මේ සඳහා මම දැක්ක හොඳම සහ නරකම උදාහරණය තමයි Gentoo Linux. හොඳයි කිව්වේ මම දැනට ලිනක්ස් ගැන, කර්නල් එක ගැන දැනට ලබපු හොඳම අත්දැකීම් ටික ගත්තේ Gentoo වලින් නිසා. ;) නරකයි කිව්වේ ඒක ස්ථාපනය කරගන්න දවසක්ම කට්ට කන්න වුණු නිසා. :P

මම Gentoo ගැන කිව්වම බය වෙන්න එපා... මේ කියන්නෙ මෙහෙයුම් පද්ධතියක් ස්ථාපනය වගේ පතරංග වැඩක් ගැන නෙමෙයි. C/ C++ මූල කේත ලෙස බෙදා හරින, එදිනෙදා පාවිච්චි වෙන භාවිත යෙදුමක් (application software package) ස්ථාපනය කරගන්න ක්‍රමය ගැන.

වැඩේට කලින් පරිගණකයෙ තිබිය යුතු අත්‍යාවශ්‍ය මූලික මෘදුකාංග කීපයක්ම තියෙනවා. සාමාන්‍යයෙන් මෙහෙයුම් පද්ධතිය අඩංගු සංයුක්ත තැටියේ මේ මෘදුකාංග අඩංගුයි. මේ ඒවායින් ප්‍රමුඛම මෘදුකාංග දෙක.

1. GNU C Compiler (gcc)
2. GNU Make (make)

මේවා දැනට ස්ථාපනය කර නැත්නම් ස්ථාපනයට,
# apt-get install gcc make (Debian/ Ubuntu මත)
# yum install gcc make (Fedora/ CentOS/ RedHat මත)

සාමාන්‍යයෙන් මේ මූල කේත බෙදාහරින්නේ .tar/ .tar.gz හෝ .tar.bz2 ආකාරයෙ හැකිළවූ (archive) ගොනු ලෙස. මුලින්ම ඒ ගොනුව භාගත කරගෙන අන්තර්ගත ගොනු ටික unpack කර ගන්න ඕනේ.

ඒ ගොනුව .tar වර්ගයෙ එකක් නම්,
$ tar xvf filename.tar

.tar.gz එකක් නම්,
$ tar xvfz filename.tar

.tar.bz2 එකක් නම්,
$ tar xvfj filename.tar.bz2

... යනාදී වශයෙන් අදාළ විධාන ටර්මිනල් එකේදි පාවිච්චි කරලා unpack කරගන්න පුළුවන්.

උදාහරණයක් ලෙස අපි ලිනක්ස් සඳහා NMAP ස්ථාපනය ගනිමු. NAMP කියන්නේ පරිගණක ජාල වල ආරක්ෂාව පිළිබඳ විගණන කටයුතු (security auditing) වලට යොදා ගන්න මෘදුකාංගයක්. මුලින්ම මේ වෙබ් පිටුවට ගිහින් අදාළ ගොනුව (nmap-5.00.tar.bz2) බාගන්න.

දැන්,
$ tar xvfj nmap-5.00.tar.bz2

දැන් nmap-5.00 නමින් ඩිරෙක්ටරියක් නිර්මාණය වෙලා ඇති. ඒක ඇතුළට යන්න.

$ cd nmap-5.00
$ ls

ls විධානය දුන්නාම ඒකෙ ඇතුළෙ තියෙන අන්තර්ගතය පෙන්වනවා. මෙහෙම ලොකු ලැයිස්තුවක් ආවට බය වෙන්න එපා, ලැයිස්තුවෙන්ම ගොනු දෙකයි තුනයි අපට වැදගත් :)
shaakunthala@shaakunthala-laptop:~/Desktop/nmap-5.00$ ls -a
. nmap_config.h.in nse_pcrelib.h
.. nmap_dns.cc nsock
acinclude.m4 nmap_dns.h osscan2.cc
aclocal.m4 nmap_error.cc osscan2.h
CHANGELOG nmap_error.h osscan.cc
charpool.cc nmap.h osscan.h
charpool.h nmap-mac-prefixes output.cc
config.guess NmapOps.cc output.h
config.sub NmapOps.h portlist.cc
configure nmap-os-db portlist.h
configure.ac NmapOutputTable.cc portreasons.cc
COPYING NmapOutputTable.h portreasons.h
COPYING.OpenSSL nmap-protocols protocols.cc
depcomp nmap-rpc protocols.h
docs nmap_rpc.cc README-WIN32
FingerPrintResults.cc nmap_rpc.h scan_engine.cc
FingerPrintResults.h nmap-service-probes scan_engine.h
global_structures.h nmap-services scripts
HACKING nmap_tty.cc service_scan.cc
idle_scan.cc nmap_tty.h service_scan.h
idle_scan.h nmap_winconfig.h services.cc
INSTALL nse_binlib.cc services.h
libdnet-stripped nse_binlib.h shtool
liblua nse_bit.cc Target.cc
libpcap nse_bit.h TargetGroup.cc
libpcre nse_debug.cc TargetGroup.h
ltmain.sh nse_debug.h Target.h
MACLookup.cc nse_fs.cc targets.cc
MACLookup.h nse_fs.h targets.h
macosx nselib tcpip.cc
main.cc nse_main.cc tcpip.h
Makefile.in nse_main.h timing.cc
missing nse_main.lua timing.h
mswin32 nse_nmaplib.cc traceroute.cc
nbase nse_nmaplib.h traceroute.h
ncat nse_nsock.cc utils.cc
ndiff nse_nsock.h utils.h
nmap-5.00-1.spec nse_openssl.cc zenmap
nmap_amigaos.h nse_openssl.h zenmap-5.00-1.spec
nmap.cc nse_pcrelib.cc
shaakunthala@shaakunthala-laptop:~/Desktop/nmap-5.00$
මෙතනින් අපට මුලින්ම වැදගත් වෙන්නෙ README කියන ගොනුව. භාගත කරගත් පැකේජයත් එක්ක වැඩ කරන්නෙ කොහොමද කියන එක කියල තියෙන්නෙ මේ පාඨ ගොනුවේ. මෙය විවෘත කරගන්න; හොඳින් කියවන්න. කඩ්ඩෙන් තමා තියෙන්නෙ... ඒත් අමාරු නෑ. අන්තර්ජාලයෙන් ඉංග්‍රීසි ශබ්දකෝෂ ඕනෙ තරම් හොයාගන්න පුළුවන්. This is not real kadda, dude! ;)

නමුත් අපේ මේ උදාහරණයෙ තියෙන්නෙ README-WIN32 කියල ගොනුවක්.  නමේ හැටියෙන්ම පේනවනෙ. මේ තියෙන්නෙ වින්ඩෝස් සඳහා උපදෙස්. ඒක අපට මේ වෙලාවෙ වැදගත් නෑ. ඒ නිසා මේ උදාහරණයෙදි පමණක් අපට README නොකියවා කෙළින්ම ඊළඟ පියවරට යන්න පුළුවන්.

ඊළඟට වැදගත් වෙන්නෙ INSTALL ගොනුව. මේකත් සාමාන්‍ය පාඨ ගොනුවක්. ඒකෙ තියෙනවා ස්ථාපන උපදෙස්. පරිස්සමෙන් මුල සිට අගට කියවන්න.

අපි ස්ථාපනය කරන මෘදුකාංගයට අදාළව මේ ගොනු වල සමහර විට පූර්ව අවශ්‍යතා (prerequisites)/ dependencies  ගැන සඳහන් වෙලා තියෙන්න පුළුවන්. ඉතින් මෙතනින් ඉදිරියට යන්න කලින් ඒ උපදෙස් අනුගමනය කරලා අදාළ පූර්ව අවශ්‍යතා සපුරා ඇති බව තහවුරු කරගන්න.

මේ කාරියෙදි කියවීමේ පුරුද්ද අතිශයින් ම වැදගත්!!

ටර්මිනලය තුළම කියවන්න නම්,
$ cat INSTALL | more -d

ටර්මිනල් එකට අකැමති නම්,
$ gedit INSTALL &

සම්පූර්ණ ගොනුවම කියවලා අදහසක් ගත් පසුව එකින් එක ක්‍රියාවට නගන්න. මුලින්ම කියල තියෙන්නේ configure ධාවනය කරන්න කියලයි. configure --help ධාවනය කරලා  මේ ගැන වැඩි විස්තර ගන්න පුළුවන්. ඒ අනුව අපට අවශ්‍ය පරිදි මෘදුකාංගය ස්ථාපනය වෙන ඩිරෙක්ටරිය, වින්‍යාසගත කිරීමේ ගොනු (configuration files) ස්ථාපනය වෙන තැන ආදිය පිළිබඳ සැකසුම් සියුම් සීරුමාරුවකට ලක් කරන්න පුළුවන්. හැබැයි, හොඳ අවබෝධයකින් තොරව නම් "Some influential environment variables" යටතෙ දීල තියෙන දේවල් සකස් කරන්න යන්න එපා!!

$ ./configure

සාමාන්‍යයෙන් configure වලින් කරන්නේ විවිධ පද්ධති අවශ්‍යතා, ශක්‍යතා, පූර්ව අවශ්‍යතා සහ dependencies පරීක්ෂා කර බලා අපට ස්ථාපනය කරන්න අවශ්‍ය මෘදුකාංගය ඒ අනුව සකස් කර ගැනීම. හැබැයි වැඩේට ටික වෙලාවක් ගත වෙනවා. තිරයේ දිස් වෙන්නෙ පරීක්ෂාවන් එකින් එක නිම වෙන අන්දම. කිසිදු දෝෂ පණිවුඩයකින් තොරව වැඩේ අවසාන වුණා නම් ඊළඟ පියවරට යන්න පුළුවන්. බොහෝ විට dependency/ පූර්ව අවශ්‍යතා පිළිබඳ අවුලක් හැර වෙනත් අවුලක් නම් ඇති වෙන්නෙ නැහැ. එහෙම අවස්ථාවකදි Google ගෙන් උදව්වක් ගන්න තමයි සිද්ධ වෙන්නේ. නැතිනම් README/ INSTALL ගොනු නැවත හොඳින් කියවන්න. විසඳුම බොහෝ දුරට එහි තිබෙන්න පුළුවන්.

ඊළඟට කියලා තියෙන්නෙ make විධානය දෙන්න කියලා.

$ make

make විධානයෙන් කරන්නේ අපි මුලින් සිදු කළ වින්‍යාසගත කිරීම (configuration) අනුව සහ පැකේජයේ අඩංගු Makefile ගොනුවේ තියෙන උපදෙස් මාලාව අනුව මූල කේත පරිගණකයට තේරුම් ගත හැකි ආකාරයට හැරවීම හෙවත්, සම්පාදනය (compilation). මේකටත් තරමක වෙලාවක් ගත වෙනවා. ඒ කාලය මෘදුකාංගය මත තීරණය වෙන එකක්. කිසිදු දෝෂ පණිවුඩයකින් තොරව වැඩේ අවසාන වුණා නම් ඊළඟ පියවරට යන්න පුළුවන්. එහෙම නොවුණොත් Google ගෙන් උදව්වක් ගන්න තමයි සිද්ධ වෙන්නේ. නැතිනම් README/ INSTALL ගොනු නැවත හොඳින් කියවන්න. විසඳුම බොහෝ දුරට එහි තිබෙන්න පුළුවන්.

දී ඇති INSTALL ලියමනේ හැටියට ඊළඟට යෙදිල තියෙන වැදගත් කාරිය make install. දැන් පැහැදිලියිනේ අපට ඉතුරු වෙලා තියෙන එකම වැඩේ ස්ථාපනය කිරීම! :)

ස්ථාපනය සිදු කළ යුත්තේ root පරිශීලක ලෙස.

$ su -c "make install"

කැමති නම් make clean පාවිච්චි කරලා අපි මෙතෙක් වෙලා යකා නටපු source ඩිරෙක්ටරිය සුද්ධ පවිත්‍ර කරලා දාන්නත් පුළුවන්. ;)

$ make clean

දැන් වැඩේ අහවරයි. කරන්න තියෙන්නේ nmap වලින් වැඩ කරන එක තමයි. :) (මම නං nmap පාවිච්චි කරන්නෙ අනුන්ගෙ ජාල audit කරන්න >:) ඒ නිසා පාවිච්චි කරන පිළිවෙළ කියන්නෙ නෑ. ඔය ළමයි එහෙම නරක වැඩ කරන්න එපා හොඳේ...)

MISSION COMPLETE!

---

ඔය ලිව්වේ එක මෘදුකාංගයක් ගැන සරල උදාහරණයක්. තව විවෘත කේත මෘදුකාංග කොයි තරම් තියෙනවද? ඒ බොහොමයකදි පාවිච්චි වෙන්නෙ මම මේ විස්තර කළ සරල රටාව.

ම්හ්... මට අහන්න අතමක වුණා.... මේක සංකීර්ණ නැහැනේ...? ;) සංකීර්ණයි කියන්න පුළුවන් කේස් එකකදි, වැඩිම වුණොත් configure පියවරේදි ටිකක් දිග command එකක් ටයිප් කරන්න වෙයි, මේ වගේ:

./configure --prefix=/usr/share/nmap-tools

ඉතිං... තව සාකච්ඡා කළ යුතු දෙයක් තියෙනවනං... comment එකක් දාන්න... නැත්තං මේල්ටු:info[at]shaakunthala.com



මේ ලිපිය ලියලා ටික කලක් තිස්සේ පළ නොකර තිබුණේ රසකතා බ්ලොග් පෝස්ට් එකක් දාන්න හිතුණු නිසා. ඒ අතරේ අපේ තවත් බ්ලොග් සගයෙකුගෙන් හොඳ ලිපියක් කියවන්න ලැබුණා. කියවන්න -- බඩී සහ බිංකු සමග: උබුන්ටු මෘදුකාංග ස්ථාපනය සහ රිපොසිටරීස්.

ලිනක්ස්/ වින්ඩෝස්/ ඕන OS එකක් එක්ක වැඩ කරන්න නිදහස් මෘදුකාංග ලෝඩ් එකක් හොයාගන්න පුළුවන් මෙතනට ගියොත්. :)

Monday, October 26, 2009

ලිනක්ස් මත MP3 ප්‍රති-කේතාංකනය


අද මගේ බ්ලොග් එක කියවන අයට පොඩි script එකක් ලැබෙනවා... MP3 වල bitrate අඩු කරගන්න පුළුවන්.  ඒක පිටපත් කරගෙන තියාගන්න. ප්‍රයෝජනවත් වෙයි. සටහන කියවන්න කම්මැලී වගේ නම් මෙන්න බාගන්න ඒක. :)

මාතෘකාවෙම තියෙනව ටිකක් නේද මහ අමුතු බර වචනයක් -- ප්‍රති-කේතාංකනය. බය වෙන්න එපා.. මේ යෙදුම මෙතනට ගැළපෙනවද කියල මමවත් දන්නෙ නෑ :D . Re-encoding කියන ඉංග්‍රීසි යෙදුමට සුදුසු සිංහල වචනයක් ගැන කල්පනා කරද්දි සිහියට ආවෙ ප්‍රති-කේතාංකනය. මේ වචනෙ පාවිච්චි කරන එකේ හරි වැරැද්ද මම දන්නෙ නැහැ :-/ . මොකක් වුණත්, මගේ අවශ්‍යතාව මුලින්ම කියන්නම්.

මම බොහෝම දැඩි ලෙස සංගීත ලෝලියෙක් B-) . ඒ නිසා මගේ පරිගණකයෙ තියෙන සම්පූර්ණ MP3 එකතුවම ජංගම දුරකථනයට ඔබාගත්තත් මට මදි වගේ. ජංගම දුරකථනයෙ තියෙන M2 චිප් එක 1 GB. පිංතූර ගන්නත් චිප් එකේ ඉඩ තියෙන්න ඕන නිසාත්, ගීත වැඩි ගණනක් ජංගම දුරකථනයට දමාගන්න ඕන නිසාත් මම කල්පනා කළා මගේ ළඟ තියෙන MP3 ගොනු වල bitrate අඩු කරන්න. එහෙම කළාම ගොනු ප්‍රමාණය සෑහෙන අඩු වෙනවා.

උදාහරණයක් විධියට ගත්තොත්,
320 kbps, 44100 Hz, මින්ත්තු 6 තත්පර 5 වෙන sterio MP3 ගොනුවක ප්‍රමාණය 14 MB නම්, ඒක 128 kbps දක්වා bitrate අඩු කළාම 5.6 MB පමණ ප්‍රමාණයක් වෙන්නේ. ඉතින්, ලොකු ඉතුරුවක්!

ඉතින්, අන්තර්ජාලයෙන් විසඳුමක් හොයද්දි හම්බවුණා එකක්. ඒ lame මෘදුකාංගය. Audacity පාවිච්චි කරල තියෙන අය මේ මෘදුකාංගය ගැන දන්නවා. Audacity වල MP3 encoding library එක වෙන්නෙ lame. ඉතින්, lame නැත්තම් මුලින්ම පරිගණකයෙ lame ස්ථාපනය කරගන්න.

# apt-get install lame

මෙන්න මට ලැබුණු විසඳුම:
http://www.linuxquestions.org/questions/linux-software-2/reduce-mp3-bitrate-336791/

#!/bin/bash

for file in `ls`
do
file=`echo $file | sed s/\ /_/g`
echo $file
lame --decode $file
lame -b 128 $file.wav
rm $file
rm $file.wav
mv $file.wav.mp3 $file
done

වැඩේ හොඳයි. මොකද MP3 ගොනු 100ක් විතර encode කරන්න ඕන වුණ වෙලාවට lame මෘදුකාංගයෙන් batch processing විධියට කරන්න බැහැ. ඒ නිසා loop එකක් ධාවනය වෙන පොඩි script එකක් අවශ්‍ය වෙනවා. හැබැයි මේක ප්‍රායෝගික නෑ. හේතුව, එයාල දීල තියෙන script කේතය වැඩ කරන්නෙ නැහැ MP3 ගොනු වල නමේ හිස්තැන් (whitespaces, ASCII character 32) තිබුණොත්. For loop එකෙන් ගොනු නමේ සීමාව ලෙස හඳුනගන්නෙ හිස්තැන. නමුත් ප්‍රායෝගිකව අපට ලැබෙන MP3 ගොනු බොහොමයක නමේ මැද හිස්තැන් තියෙනවා. ඉතින් මේවා එකින් එක rename කර කර ඉන්නවට වැඩිය හොඳයි පැය ගාණක් වැය කරලා එකින් එක වෙන වෙනම encode කරන එක.

ඉතින් මම කල්පනා කළා විසඳුමක්. මුලින් කල්පනා කළේ, ls වෙනුවට ls -Q පාවිච්චි කළොත් ප්‍රතිපලයෙ හැම ගොනු නමක්ම වෙන වෙනම උධෘත සලකුණු දෙකක් අතරට එනවා. දැන් ඒකෙන් ගොනු නම් ටික වෙන් කරගන්න ලූප් එකක් ඇතුලෙ වැඩ කරන පොඩි ඇල්ගොරිතම් එකක් ලියන්න පුළුවන්...........

........... හාපෝයි බෑ.... අවශ්‍යතාව අනුව බරපතල වැඩියි... මම යන්නෙ වැරදි පාරේ............!!!! :-O

විසඳුමක් කල්පනා කරද්දි මතක් වුණා කැම්පස් එකේදි ළඟදි ඉගෙනගන්න ලැබුණු find shell විධානය. ඉතින් කෑලි බෑලි ටිකක් එක්ක අටවලා මම script එකක් ලිව්වා. මම ඉතින් free ඇන්ඩ් open නොවැ... බෙදා හදාගෙන කාලා බොහෝම පුරුදුයි. ඒකයි මේ ලියමන ලියන්නේ.... මෙන්න code එක. වැඩ දන්නා ඇත්තෝ මේක දියුණු කරත්වා!

if [ $# -eq 2 ]
then
mkdir $1/output
cd $1
find . -maxdepth 1 -exec lame -h -b $2 {} ./output/{}  \;
else
echo "Invalid arguements, please refer http://blog.shaakunthala.com/2009/10/mp3.html"
fi

මේක අළුත් text file එකකට copy-paste කරගන්න. ඒක කැමති නමකින් (උදා: mp3enc.sh) සුරකින්න.

දැන්,
$ chmod +x mp3enc.sh

පාවිච්චි කරණ පිළිවෙළ:
ප්‍රති-කේතාංකනය කරන්න අවශ්‍ය MP3 ගොනු සියල්ලම එක ඩිරෙක්ටරියකට (ෆෝල්ඩරයකට) පිටපත් කරන්න. දැන්,

$ ./mp3enc.sh <mp3_files_directory> <target_bitrate_kbps>

උදාහරණයක් විධියට අපට අවශ්‍ය ප්‍රතිදාන bitrate එක 128 kbps ලෙසත්, අපේ MP3 ගොනු ටික තියෙන්නෙ /home/shaakunthala/Desktop/music ඩිරෙක්ටරියෙ බවත් සලකමු. එහෙම නම් කරන්න තියෙන්නේ,

$ ./mp3enc.sh /home/shaakunthala/Desktop/music 128

හරිම පහසුයි නේද? දැන් අපේ MP3 ගොනු තියෙන ඩිරෙක්ටරිය ඇතුළෙ output ලෙස තව ඩිරෙක්ටරියක් නිර්මාණය වෙනවා. Bitrate අඩු කළ (ප්‍රතිදාන) ගොනු ටික එහි ඇති. :)

එතකොට code එකේ තේරුම? ඒක තනියම තේරුම් ගන්න පහසුයි. නමුත්,

find . -maxdepth 1 -exec lame -h -b $2 {} ./output/{}  \;

මේක මත තමයි අපේ වැඩේ රඳා පවතින්නේ.
find වලින් කරන්නේ දෙන ලද ඩිරෙක්ටරියක සහ සබ්ඩිරෙක්ටරි වල තියෙන ගොනු සෙවීම.
-maxdepth 1 මේකෙන් කරන්නේ අපි ලබා දුන් ඩිරෙක්ටරියෙ සිට පහළට එක මට්ටමකට පමණක්, එනම් අපි ලබා දුන් ඩිරෙක්ටරියෙ පමණක් ගොනු සෙයන්න කියන එක. තවත් පහළට ගියොත් හමු වෙන්නේ output ඩිරෙක්ටරිය ඇතුළෙ තියෙන ප්‍රති-කේතාංකනය කළ ගොනු. ඒවත් එක්ක පටලැවිල්ලක් ඇති වීම වැළැක්වීමයි අරමුණ.
-exec find විධානයෙන් දෙන ප්‍රතිදානය මත වෙනත් විධානයක් ක්‍රියාත්මක (execute) කරන්නෙ මේකෙන්.
$1, $2 මෙයින් නිරූපණය වෙන්නේ විධාන පෙළට ලබා දුන් පරාමිතීන්. ඒ කියන්නේ අපේ MP3 ගොනු තියෙන ඩිරෙක්ටරිය සහ ප්‍රතිදාන bitrate එක.
{} find විධානයේ ප්‍රතිදානය.

මේක මාගලක් වගේ මහා ලියමනක් ලියන්න තරම් ලොකු දෙයක් නෙමෙයි. මට නම් සුළු දෙයක්. නමුත් වැඩි පිරිසකට තේරුම් ගන්න පුළුවන් විධියට ලියන්න මට ඕන වුණ නිසයි ටිකක් දීර්ඝව විස්තර කළේ. Shell Script ලිවීම ගැන සිංහලෙන් උපකාරක අත්වැලක් diGIT සඟරාවේ පළ වෙන බවත් නැවත මතක් කරන්න කැමතියි. මමයි ලියන්නේ. :) ඉතින්, අදට ආයුබෝ....!

Thursday, October 22, 2009

පරිගණකය මුර කරන්න - චූටි crypto කුප්පියකුත් එක්ක!


ඉඳලා ඉඳලා ආපහු අහම්බෙන් පොඩි චාන්ස් එකක් ආවා බ්ලොග් සටහනක් ලියන්න. අද කියන්න යන්නෙ අනවශ්‍ය ඇඟිලි ගැසීම් වලින් තමන්ගෙ පරිගණකයෙ මෙහෙයුම් පද්ධතියත්, GRUB එකත් ආරක්ෂා කරගන්නෙ කොහොමද කියන එක.

ගොඩක් අය දන්නවනේ පරිගණකයෙ CD/ DVD/ USB වලින් බූට් කරන්න පුළුවන් විධියට BIOS සැකසුම් සකසලා තිබුණොත් වැඩේ විනාසයි කියලා... ලිනක්ස් Live CD එකකින් බූට් කරලා gksu nautilus ධාවනය කළාම මුළු හාඩ් ඩිස්ක් එකම නිරුවත්!! :-O

ඉතින් පළවෙනිම කාරණාව BIOS එකට මුරපදයක් දාල තියාගන්න. CD/ DVD/ USB වලින් බූට් කරන්න පුළුවන් පහසුකම අක්‍රීය කරන්න.

ඊළඟට අපි අත තියන්නෙ GRUB එකට. අපේ අසමසම බූට්ලෝඩරය (අසමසම බූට්ලෝඩරය කිව්වම දන්න කියන කෙල්ලෙකුත් මතක් වුණා :P ). මෙහෙයුම් පද්ධතියක් hijack කරන්න බොහොම පහසුවෙන් පුළුවන් GRUB එකේ පරාමිතීන් (boot parameters) විවිධ ආකාරයට සකස් කරලා. ඒ වගේ නරක වැඩ කරන හැටි ගැන ලියවුණු හොඳ සිංහල බ්ලොග් ලිපි කීපයකුත් පහුගිය කාලෙ කියවන්න ලැබුණා. ;) ඇත්තෙන්ම මෙහෙයුම් පද්ධතියක් නැතුවත් GRUB එකෙන් හරි හරි 'වැඩ දාන්න' පුළුවන්. ඒ නිසා GRUB එකටත් මුරපදයක් යොදලා තියාගන්න එක බොහොම වැදගත්.

වින්ඩෝස් ඔන්ලි අයට නම් GRUB නෑ තමා. මේ ලියවිල්ල ලියන්නෙ අඩුම ගානෙ ඇඩ් එකට හරි ලිනක්ස් දමාගෙන ඉන්න අයට. ලිනක්ස් වල පහත දැක්වෙන විධානයෙන් GRUB එකට අදාළ සැකසුම් තියෙන ගොනුව, menu.lst සංස්කරණය කරලා මුරපදයක් දමාගන්න පුළුවන්.

# vim /boot/grub/menu.lst

මේ ගොනුවෙ ඉහළින්ම, ඒ කිව්වෙ මෙහෙයුම් පද්ධති ලැයිස්තුවට උඩින් තමයි මුරපදය ස්ථානගත කරන්න ඕන. සාමාන්‍යයෙන් Ubuntu ස්ථාපනයෙදි නම් menu.lst ගොනුවෙ අදාළ ස්ථානයෙ උදාහරණ මුර පදයක් දාල එවනවා, topsecret කියලා. ඒක තියෙන පේළියෙ මුලට # ලකුණක් දාලා අක්‍රිය කරලයි තියෙන්නේ. අපි මේ දාන්න යන මුරපදය අපට ක්‍රම දෙකකට අනුව දාන්න පුළුවන්. එකක් plaintext විධියට, අනෙක encrypted hash string එකක් විධියට.

කිව්ව දේ තේරුණේ නැති අයත් ඇතිනේ... මෙන්න crypto කුප්පිය... Plaintext කිව්වේ ගෙඩිය පිටින් password එක එහෙමම දාන එක. උදාහරණයක් විධියට password එක sbu@lk1453 නම්, ඒක එහෙමම ලියන එක යි. මුරපදයක් ගෙඩිය පිටින් කොතන වුණත් ලියල තියෙන එක හරිම අනාරක්ෂිතයි. ඕන කෙනෙකුට දකින්න පුළුවන් මුර පදයක් plaintext විධියට තමන්ගෙ මතකයෙ විතරක් තිබුණාම හොඳටම ඇති. එතකොට encrypted hash string??? අපි ඔය රහස් වචනය අපටවත් අඳුනගන්න බැරි රහස් භාෂාවකට පෙරළුවොත් කෝමද? ඒක තමයි encrypt කරනවා කියන එක සරලව ම කිව්වොත්. ඔය මුර වචනය පරිගණකයෙ තියෙන එක එක ගණිතමය ක්‍රමවිධි පාවිච්චි කරලා (නියම තාක්ෂණික වහරෙන් කිව්වොත් encryption ඇල්ගොරිතම පාවිච්චි කරලා) රහස් සංකේත ක්‍රමයකට හරවනවා. ඒ ගැන මෙතන වැඩිය විස්තර කරන්න ගියොත් මම ලෝක අමාරුවක වැටෙන්නේ.. ඒ නිසා වැඩි දුර දේවල් කියන්නෙ නෑ. :P

Encrypt කරන්න විවිධ ක්‍රම විධි පාවිච්චියේ තියෙනවා. GRUB එකේ පාවිච්චි වෙන්නේ MD5 (Message Digest 5) කියන ක්‍රමය. MD5 ක්‍රමයෙ එක ලක්ෂණයක් තමයි, අපි හදා ගන්න hash එක කවදාවත් ආපහු plaintext බවට පරිවර්තනය කරන්න බැරි වීම. කරන්න පුළුවන් එකම දේ තමයි hash දෙකක් සංසන්දනය. ඉතින් ඔය මම ලිව්ව සාම්පල් මුර වචනය MD5 පාවිච්චි කරලා රහස් භාෂාවට පෙරළුවොත් කොහොමද? කරල බලන්න ඕනේ නම් මෙන්න මේ විධානය දීල බලන්න.

$ echo -n "sbu@lk1453" | md5sum

මෙන්න මෙහෙම උත්තරයක් එයි, මේ තමයි MD5 hash එක. ඒක අපේ password එකට (sbu@lk1453) අනන්‍ය එකක්. වෙන password එකක් දුන්නොත් එන්නෙ වෙනින් hash එකක්.

bf5685008c857862c15602cc73eef25c

Hash එකක් කවදාවත් ආපහු මුල් තත්වයට පත් කරන්න බැහැ. කරන්න පුළුවන් එකම දේ තවත් hash එකක් එක්ක සංසන්දනය විතරයි. ඉතින් ඕක මොන මළ යකාටද කියවන්න පුළුවන්? ඒ නිසා මේක ආරක්ෂිතයි.

නමුත් වැඩේ මෙතනින් ඉවර නැහැ. මුල් කාලයෙ මට මතක හැටියට GRUB එකේ මේ විධියට භාවිත වුණාද මන්දා... :-/

කවුරු හරි මගෝඩියෙක් ඔය hash එක පිටපත් කරගෙන යනවා. ගිහින් තව පොඩි program කෑල්ලක් අටවගන්නවා දැනට පාවිච්චි වෙන ඉංග්‍රීසි අකුරු - ඉලක්කම් - සංකේත ඔක්කොම එකතු කරලා හදන්න පුළුවන් සංකලන ඔක්කොම එකින් එක hash බවට පරිවර්තනය කරලා අපෙන් හොරකම් කළ hash එකත් එක්ක සංසන්දනය කරන්න පුළුවන් එකක්. බැරි වෙලාවත් ඒ සංකලන අතර අපේ මුර වචනයත් (sbu@lk1453) තිබුණොත්...! ඊළඟට මූ hash එක හොයා ගන්නවා ලේසියෙන්ම (bf5685008c857862c15602cc73eef25c), අපෙන් හොරකම් කළ එකත් එක්ක තිතටම ෆිට් කියලා දැක්ක ගමන් මූ අපේ password එක sbu@lk1453 කියල දැන ගන්නවා. තාක්ෂණිකව මේ ක්‍රමය හඳුන්වන්නේ bruteforce attack කියන නමින්. තව තව attack වර්ග තියෙනවා password හොයන්න පුළුවන්. Bruteforce attack මගින් මුරපද හෙවීම ලෙහෙසි නැහැ. නමුත් මෙතන ක්‍රියාත්මක වෙන මූලධර්මය, hash සංසන්දනය කිරීම මගින් වෙන attack එකක් පාවිච්චි කරල හරි මුරපදය හොයා ගන්න පුළුවන් වීමේ අවදානමක් තියෙනවා.

මම මේ තරම් වචන ගොඩක් වැය කරල හැකිතාක් දුරට කාටත් තේරුම් ගන්න පුළුවන් වෙන්න ලිව්වට මේ කිව්ව මගෝඩි වැඩේ අටවලා ක්‍රියාවේ යෙදවීම මහා ලොකු අමාරු දෙයක් නෙමෙයි. Just a script kiddies' job. ;)

ඒ වගේම මෑතකදි කළ පරීක්ෂණ වලින් හෙළි වෙලා තියෙනවා මේ සමහර MD5 hash වලින් නැවත මුල් password එක ගණනය කරන්න පුළුවන් බව! ඒ කියන්නෙ MD5 යම් පමණකට අනාරක්ෂිතයි!! [Rainbow tables]

මේ අවදානම අඩු කරන්න කරන්න තමයි Salt කියන තාක්ෂණය එන්නේ. මේකෙදි වෙන්නේ අපේ hash එක ගණනය කරන්න එවෙලෙ අහඹු ලෙස පරිගණක මතකයේ නිර්මාණය කරගන්න බිටු (bits) කීපයකුත් සහභාගි කරවා ගැනීම. තාක්ෂණිකව කිව්වොත් random bits නොහොත් salt. Hash එක ගණනය කරන ශ්‍රිතයට plaintext එකත් සමඟ මේ අහඹු බිටු කීපයත් ලබා දුන්නාම මම මුලින් කිව්ව ක්‍රම පාවිච්චි කරල හෙවිල්ල තවත් අමාරු hash එකක් එන්නේ.

ඉතින් GRUB එකේ salt පාවිච්චි වෙන්නෙ මෙන්න මෙහෙම:
grub_password (PASSWORD) = SALT + md5 (SALT + PASSWORD)
ඒ කිව්වෙ මුලින්ම අහඹු ලෙස හදා ගන්නා salt එක මුරපදයත් එක්ක එකතු කරනවා. ඊළඟට MD5 ක්‍රමයට encrypt කරලා ආපහු ඒකත් salt එක එක්ක එකතු කරනවා. මේ අන්තිම ප්‍රතිපලය තමයි hash එක විධියට පාවිච්චි වෙන්නේ. ඉතින්, කරල බලන්න ආසද?

මෙන්න මේ විධානය දීල බලන්න (මුර වචනය ඇහුවාම sbu@lk1453 කියන අපේ උදාහරණය දෙන්න):

$ grub-md5-crypt

බැලු බැල්මට මේ වගේ පෙනුමක් තියෙන එකක් එයි:

$1$IKofG/$XBHQwpG6b.ZJRQuNpTbBr.

ආයෙත් වතාවක් කරල බලන්න. Hash එක වෙනස් නේද? ඒකට හේතුව තමයි hash එක ගණනය කිරීමේදී අහඹු බිටු යොදා ගැනීම. මේ ක්‍රමය දැනට ඉතාම ආරක්ෂිත ක්‍රමයක් ලෙසයි සැලකෙන්නේ.

Salt ගැන මම හදාරන්න පටන් ගත්තේ බොහොම මෑතකදී. මේ GRUB එකේ තියෙන අහවල් එව්වා හාරා අවුස්සන්න ගිහින් තමයි. :D ඉතින් අවංකවම මම salt ගැන මෙතනින් එහාට වැඩි යමක් දන්නෙ නැහැ. මම ලියල තියෙන දේ යම් කිසි වැරැද්දක් අඩුපාඩුවක් එහෙම තියෙනවනම් මේක කියවන crypto දන්න කෙනෙකුට බාරයි අඩුපාඩු පෙන්වා දීම. :)

ඉතින්, encryption ගැන විස්තර කරන්න ගිහින් මාතෘකාවෙන් ගොඩක්ම එළියට විසි වෙලා මම. මම විස්තර කරමින් හිටියෙ GRUB එකට මුරපද දැමීම ගැන. ඒක කරන්න මම කිව්ව ඔය encryption වග විස්තරේ දැනගන්න අවශ්‍ය නැහැ. Encryption ගැන ලිව්වෙ ලිපිය ටිකක් සාරවත් කරන්න.

දැන් (ගෙඩිය පිටින් password ක්‍රමයට අමතරව) GRUB එකේ පාවිච්චි වෙන්නෙ salted md5 hash ක්‍රමය. GRUB එකට මුරපදයක් දාන්න මුලින්ම /boot/grub/menu.lst ගොනුව විවෘත කරගන්න ඕනේ. ඒ ගොනුවෙ මෙහෙයුම් පද්ධති ලැයිස්තුවට උඩින් මෙන්න මේ ක්‍රම දෙකෙන් කැමති එකක් යටතේ දීල තියෙන පේළිය ඇතුළත් කරලා ගොනුව save කරන්න.

1. Plaintext ලෙස (මේක අනාරක්ෂිතයි කියලා කලිනුත් කිව්වා!!!)
password sbu@1453

2. Hash එකක් ලෙස (මෙච්චර වෙලා විස්තර කළේ මේකෙ තාක්ෂණික පසුබිම)
password --md5 <ඔබේ මුරපදයට අදාළ salted hash එක>
උදා: password --md5 $1$38yfG/$Y26Y38QN67XZ9ipsWfUnE0
(මේ hash එක ගණනය කරන්න grub-md5-crypt විධානය පාවිච්චි කරන්න පුළුවන් බව ඉහත කියා තිබෙනවා)

අපට ඕනෙ නම් තවත් මරු වැඩක් කරන්න පුළුවන්. කැමතිද වින්ඩෝස් වලට password එකක් GRUB එකෙන්ම දාන්න. ආයෙ සක්කරය තියා වයිම කිව්වත් වින්ඩෝස් බූට් වෙන්නෙ නෑ password එක දුන්නෙ නැත්තං.

එහෙම නැත්තම් Ubuntu වල recovery mode එකට කාටවත් යන්න බැරි වෙන්න password එකක් දාමුද? මොකද ඒකට ගියොත් (login වෙන්නෙ නැතුවම) පද්ධතියෙ යම් යම් වෙනස්කම් කරන්න අවස්ථාව සැලසෙනවනෙ. ඉතිං හැම එකාම recovery mode යන එක නවත්තන්නත් පුළුවන්.

ඉතින් ඒක කරන්නෙ කොහොමද? හරි සරලයි. menu.lst ගොනුවේ මුරපදය දාන්න ඕන මෙහෙයුම් පද්ධතියට අදාළ යොමුව හොයා ගන්න. දැන් ඒකෙ statements ටිකට යටින් කලින් විධියටම මුරපදය ඇතුළත් කරන්න.
උදාහරණ:
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive
chainloader +1
password --md5 $1$WQ0gG/$eMjWNO.3XSAwMtd4bk0vi1


දැන් පරිගණකය restart කරල බලන්න වෙනස. :) සාමාන්‍ය පරිදි බූට් කරන්න පුළුවන්. හැබැයි මුරපද දමාපු මෙහෙයුම් පද්ධති බූට් කරන්න ගියොත් මුරපද ඉල්ලනවා. ඒ වගේම parameters අතින් සකස් කරන්නත් මුරපදයක් ඕනේ (ඒ අපි මෙහෙයුම් පද්ධති ලැයිස්තුවට උඩින්ම දමාපු එක).

මේක ලියල මගේ හොඳ පණ ගිහින්. ඒත් තව එක දෙයක් කියන්න තියෙනවා. හොඳ මුරපදයක් තෝරාගනිද්දි ඉංග්‍රීසි කැපිටල් අකුරු, සිම්පල් අකුරු, විරාම ලක්ෂණ සහ අංක -- මේ ඔක්කොම නියෝජනය වෙන මුරපදයක් හදා ගන්න. ඒ වගේම මුරපදය සංකේත 8කට වඩා දිග එකක් වෙන්න හදා ගන්න. හේතු විස්තර කරන්න කම්මැලියි වගේ මේ වෙලාවේ.

අහල තියෙනවද leet ගැන? Leet ගැන දැනගන්න විකිපීඩියා පිටුව කියෙව්වම හොඳටෝම ඇති. තමන් විතරක් දන්න, තමන්ගෙ පරණ secret crush එකක් වෙලා හිටපු, ඒත් වැඩේ හරි නොගියපු කෙල්ලෙකුගෙ/ කොල්ලෙකුගෙ නමක් leet වලින් mod කරල ගත්තාම password එකකට නියමයි. ;) මොකද ඒක තමන් විතරයි නෙව දන්නේ... :P

උදාහරණයක් හැටියට, හිතේ කැරකෙන, ඒත් කාටවත් ලේසියෙන් අනුමාන කරන්න බැරි බව ෂුවර් වචනය marzena godecki නම් :P , පොඩි ලීට් පාරක් දාලා ඒක M4rz3n4 g0d3ck! කරගන්න පුළුවන්. දැන් කාටවත් guess කරන්න අමාරුයි නේද? තමන්ගෙ හිත ඇතුලෙ තියෙන ටියුන් එකට තමන් කැමති තැන් වලට තමන් කැමති විධියට ලීට් අකුරු දාගන්න. කෝමද වැඩේ? :)

එහෙනං.... අදට ආවඩා... ආයුබෝ වේවා...! Crypto දන්නා අය ඌණපූරණ කරත්වා! ලිනක්ස් නොදන්නා අය ප්‍රශ්න අසත්වා!

Ciao...... Ci vediamo dopo........!!!!!!!!!!!!!

෴ සමීර ශාකුන්තල | Sameera Shaakunthala ෴

Sunday, October 4, 2009

GRUB මගින් ක්‍රියාරම්භිත flash drive එකක් සහ හාඩ් ඩිස්ක් ආතල්


ලිනක්ස් වැඩ කිඩ ලිවිල්ල නං එපා වෙන්නෙම නෑ. මේකත් එහෙම එකක්. මේ සති අන්තෙ ගෙදර එද්දි අපේ බාල මලයා මට වැඩ වැඩි කරලා. :P ඒ ගැන පස්සෙ කියන්නම්. කෝකටත් කලින් වැදගත්ම දේ මාතෘකාව.

අද කියන්න යන්නේ මම කරපු පොඩි අත්හදා බැලීමක් ගැන. ඒ මගේ 4 GB flash drive එකට කියාරම්භක (bootable) හැකියාව ලබා දුන්න එක. දැන් කස්ටිය කියයි 'ආපෝයි.. ඕකත් වැඩක්ද ඔය රයිට් ක්ලික් කරලා ෆෝමැට් ගිහිං..........' හෝව්..... එහෙම එකක් ගැන නෙමේ මං මේ කියන්නෙ. කවුද DOS bootable එකක් හදන්නෙ? :P මං මේ කියන්න යන්නෙ GRUB එක දාගන්න හැටි. මං අටවගත්ත එකේ GRUB විතරක් නෙමෙයි කර්නල් එකත් තියෙනවා. DOS bootable එකකින් කරන්න පුළුවන් අටමගලයක් නෑ. :D

මුළින්ම කියන්නම් GRUB කියන්නෙ මොකක්ද කියලා. විකිපීඩියාවෙ නම් පිළිවෙලට ලියවිලා තියෙනවා... ඒත් මමත් පොඩ්ඩක් විස්තර කරන්නම්. සරලව කිව්වොත් බූට්ලෝඩරයක්... ඒකත් සරලව විස්තර කළොත්, පරිගණකය බූට් වීමේ ක්‍රියාවලියෙදි මෙහෙයුම් පද්ධතිය RAM එකට load කරන්නෙ මේ බූට්ලෝඩරයෙන්. වින්ඩෝස් තියෙන හාඩ් ඩිස්ක් එකකට වැඩ දාන්න ගිහින් ඇණගත්තාම බූට් වෙද්දි NTLDR is missing කියල මොකක්දෝ එකක් පෙන්නනව නේද? අන්න ඒ NTLDR කියන්නෙ Windows NT බූට්ලෝඩර් එක. ලිනක්ස් වලදි බූට්ලෝඩර් එක විධියට පාවිච්චි වෙන්නෙ LILO (LInux LOader) හෝ GRUB (GRand Unified Bootloader). විවිධ හේතු මත දැන් ඒ දෙකෙන් ජනප්‍රිය එක GRUB. ඒ හේතු මෙතන විස්තර නොකරන්නෙ බ්ලොග් සටහන අනවශ්‍ය විධියට දීර්ඝ වෙන නිසා.... GRUB ගැන පොත් ලියන්න තරම් දේවල් තියෙන බව අන්තර්ජාලය පිරික්සලා හොයාගන්න පුළුවන්.

GRUB එකට මොනවද පුළුවන් වැඩ? ඇත්තටම ඒ ඔක්කොම නම් මමත් තවම හරියට දන්නෙ නැහැ. මෙන්න මේවා තමයි දැනට දන්නේ:
  • ගතිකව වින්‍යාසගත කරන්න පුළුවන්.. (මොකක්දෑ ඒ හරුපෙ? :-? ) ඒ කිව්වෙ බූට් වෙන වෙලාවෙදි GRUB එකේ සරල විධාන අතුරුමුහුණතින් අපට අවශ්‍ය කර්නල් එක අවශ්‍ය විධියට තෝරගන්න පුළුවන්. කර්නල් එකට දෙන පරාමිතීන් (parameters) සකස් කරන්නත් පුළුවන්.
  • Chainloading - මේක තමයි GRUB එකේ පරාර්ථකාමී ගතිය :) - ලිනක්ස් තියෙන පරිගණකයකට වින්ඩෝස් ස්ථාපනය කළොත් වින්ඩෝස් බූට්ලෝඩරය GRUB එක overwrite කරනවා. ඒත් වින්ඩෝස් තියෙන පරිගණකයට ලිනක්ස් ස්ථාපනය කළොත් ලස්සන දෙයක් සිද්ධ වෙනවා. GRUB එකෙන් මුලින්ම වින්ඩෝස් බූට්ලෝඩරය වෙන සෙක්ටර් එකකට පිටපත් කරනවා. දැන් GRUB ස්ථාපනය වෙනවා. බූට් වීමේ ක්‍රියාවලියෙදි අපට වින්ඩෝස් බූට්ලෝඩරය ඕන නම් chainloading කියන ක්‍රියාවලිය මගින් වින්ඩෝස් බූට්ලෝඩරයට පාලනය භාර දෙනවා.
  • GRUB එකට හානි වුණු පද්ධතියක් ගොඩගන්න පුළුවන්.
  • Partition හංගන්න එහෙමත් පුළුවන්. ;)

දැනට මං එච්චරයි දන්නේ... දැන් ආපහු එමු මාතෘකාවට... අපේ තුන් වෙනි වසර පාඨමාලා වලින් එකක් System And Network Administration. මේ පාඨමාලාව පටන් ගත්තා විතරයි එහෙට මෙහෙට වැනි වැනී තිබුණු ලිනක්ස් ගැන මගේ දැනුමත් වේගවත් ව ප්‍රසාරණය වෙන්න පටන් ගත්තා. ඉතින් ඒකට අදාළ social forum එකේ post එකකට අපේ Off the Planets කණිෂ්ක දාපු reply  එකකින් තමයි අයිඩියාව ආවෙ. කෝමද flash drive එකකට GRUB එක දාගත්තොත්?

It's simple. You have to restore the grub.
boot from the live cd.
open terminal
type sudo grub
find /boot/grub/stage1
grub> root(hdx,y)
setup(hdx)
you will get the values for x and y in find /boot/grub/stage1
I am not sure about the stage1 thing. It just works for me. I am not sure how the grub finds where the / is at the first place. To find the /boot/grub and the old files. Any way it works

මේකෙන් වාසි කීපයක්ම තියෙනවා...
  • Live CD එකෙන් බූට් කරන්න ගොඩක් කාලය ගත වෙනවා. නමුත් මෙතන බූට්ලෝඩරය විතරක් නිසා ඉක්මන්.
  • අළුත් දේ ඉගෙනගන්න ලැබෙනවා.
  • අහිංසක විධියට ගිහින් hijack/ hack කරන්න පුළුවන්. CD එකක් දානකොට සද්දෙ එනවා... කවුරුත් බලනවා... ඒත් flash drive එකක් කවුද ගණන් ගන්නෙ? ;) (මේ hijacking/ hacking කරන්න පුළුවන් එක එක ක්‍රම වරින් වර සිංහල බ්ලොග් කීපයකම පළ වුණා)
  • memtest86+.bin කර්නලය පාවිච්චි කරලා RAM එක පරීක්ෂා කරගන්නත් පුළුවන්.


ඉතිං මෙන්න මෙහෙමයි මම කළේ...
1. මුලින්ම මගේ 4 GB flash drive එකේ තියෙන කුණු කන්දල් ඔක්කොම මගේ හාඩ් ඩිස්ක් එකට පිටපත් කර ගත්තා...

2. දැන් ඒක partition දෙකකට වෙන් කළා. එකක් අපේ පුද්ගලික ගොනු වලට. ඒක වින්ඩෝස්/ ලිනක්ස් දෙකේදිම වැඩ කරන්න ඕන නිසා FAT32. අනෙක කර්නල් එකයි GRUB එකට අදාළ ගොනුයි තියාගන්න ext-2 එකක්.

# fdisk /dev/sdb
මේකත් එක්ක ටිකක් ඔට්ටු වෙලා කීප වතාවක්ම විවිධ අගයයන් දීලා හරියටම මට ඕන ප්‍රමාණයට partition කරගත්තා.

parted වලින් පෙන්නන විධියට පළවෙනි එක 3997 MB primary එකක්. ගොනු පද්ධති ආකෘතිය FAT32. දෙවැන්න 49.4 MB primary එකක්.

root@shaakunthala-laptop:~# parted /dev/sdb
GNU Parted 1.8.9
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print                                                           
Model: Kingston DataTraveler 2.0 (scsi)
Disk /dev/sdb: 4047MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      32.3kB  3997MB  3997MB  primary  fat32            
 2      3997MB  4047MB  49.4MB  primary  ext2         boot

(parted) q                                                               
root@shaakunthala-laptop:~#


මේ partition කෙරුවාව කරන්න ඕන පිළිවෙලක් තියෙනවා. නැත්තම් flash drive එක වින්ඩෝස් වලදි පිස්සු කෙළිනවා. Flash drive එකේ පළමු වෙනි physical partition එක හැර ඉතිරිය හඳුනාගැනීමේ හැකියාවක් වින්ඩෝස් වලට නෑ. ඒ නිසා අපේ පෞද්ගලික ගොනු පිටපත් කරන කොටස මුලටත්, GRUB එකට අදාළ ගොනු සහ කර්නල් එකට අවශ්‍ය කොටස අගටත් එන්න partition කළේ.
Format කළේ මෙහෙමයි:
# mkdosfs /dev/sdb1 -v -F 32 -n LEONIDAS_4G
# mke2fs /dev/sdb2 -L boot


දැන් flash drive එක පරිගණකයට සම්බන්ධ කළාම /media/LEONIDAS_4G , /media/boot විධියට partition දෙකම mount වෙනවා.

3. මේක කරන්න ක්‍රමවත් පිළිවෙලක් ඇති. ඒත් මොනව හරි වැඩක් කරද්දි මට අන්තර්ජාලය ඕන වෙන්නෙ අන්තිමට. මම කැමති මුලින් අත්හදා බලලා අන්තිමේ ඇණගත්තාම අන්තර්ජාලයෙන් විසඳුම් හොයන ක්‍රමයට. :P ඉතිං මෙතන ඉඳලා වැඩ ටික ජෝක් වගේ නම් වැඩ දන්න අය මට හිනා වෙන්න එහෙම එපා.. :D
# cd /
# cp -rfv boot /media/boot

දැන් අපේ කණිෂ්කගෙ ටිප් එක.
# grub
grub> find /media/boot/boot/grub/stage1

දැන් මෙහෙම එකක් පෙන්නනවා:
(hd1,1)

ඒ කියන්නෙ නියමිත නිරූපණ ක්‍රමය (notation) අනුව flash drive එකේ දෙවෙනි partition එක දක්වන්නෙ (hd1,1) විධියට. ඊළඟ පියවර:
grub> root (hd1,1)
grub> setup (hd1)
grub> quit

දැන් GRUB එක ස්ථාපනය වෙලා අවසානයි. මේ වැඩේදි පරිගණකයෙ දෘඩ තැටියට කිසිම බලපෑමක් වෙන්නෙ නෑ.

4. දැන් ටිකක් සුද්ධ පවිත්‍ර කළා. අපේ boot partition එක. ඒකෙ කර්නල් දෙකකට අදාළ ගොනු තිබුණා. එකක් අයින් කළා.. දෙකක් මක්කටැයි? ;)
දැන් තියෙන්නෙ මෙන්න මේ ගොනු ටික:
root@shaakunthala-laptop:/media/boot# ls -aR -w 1
.:
.
..
boot

./boot:
.
..
abi-2.6.27-14-generic
config-2.6.27-14-generic
grub
initrd.img-2.6.27-14-generic
lost+found
memtest86+.bin
System.map-2.6.27-14-generic
vmcoreinfo-2.6.27-14-generic
vmlinuz-2.6.27-14-generic

./boot/grub:
.
..
default
device.map
e2fs_stage1_5
fat_stage1_5
installed-version
jfs_stage1_5
menu.lst
minix_stage1_5
reiserfs_stage1_5
stage1
stage2
xfs_stage1_5

./boot/lost+found:
.
..
root@shaakunthala-laptop:/media/boot#


5. menu.lst එකත් කපලා කොටලා ගත්තා.

title           Linux kernel 2.6.27-14-generic
root            (hd0,1)
kernel          /boot/vmlinuz-2.6.27-14-generic root=UUID=d1670f8e-eb3f-4dba-bba5-e00f0437e2a2 ro single
initrd          /boot/initrd.img-2.6.27-14-generic

title           memtest86+
root            (hd0,1)
kernel          /boot/memtest86+.bin


මෙතන තවත් වැදගත් කාරණා කීපයක් තියෙනවා කියන්න. GRUB ස්ථාපනයෙදි flash drive එක ගත්තෙ (hd1) විධියට වුණාට ඒකෙන් boot වෙද්දි ඒක ගන්නෙ (hd0) විධියට. menu.lst ගොනුව සංස්කරණයෙදි ඒ ගැන සැළකිලිමත් වෙන්න ඕනා. ඒකට හේතුව කියන්න තරම් දෙයක් නෙමෙයිනේ... BIOS එකේ boot priority උඩින් තියෙන කෙනාට අඩු අංකය.

අනෙක UUID එක. ඒක කර්නල් එකට පරාමිතියක් විධියට යවල තියෙනවා. UUID එක බලාගන්න මෙන්න මේ විධානයෙන් පුළුවන්:
# vol_id --uuid /dev/sdb2

6. දැන් බූට් කරන එක තමයි කරන්න තියෙන්නෙ. මම මෙහෙම පියවර විධියට විස්තර කළාට ටැපලිලා වැරදිලා පැය ගාණක් මේකත් එක්ක දඟලලා තමයි ඉගෙනගත්තෙ මේ දේවල්. ඉතින් flash drive එකෙන් මගේ ලැප්ටොප් එක බූට් කළා. එළට වැඩ! GRUB එක ක්‍රියාත්මක වෙනවා.  කැමති නම් flash drive එකේ තියෙන කර්නල් එකෙන්ම බූට් කරන්නත් පුළුවන්.

ඉතින් මේක වැඩ කරන්න පටන් ගත් වෙලාවෙ ඉඳලා මමත් අළුත් සෙල්ලම් බඩුවක් ලැබුණු පොඩි එකෙක් වගේ. ;) කන්න බොන්න ඕනෙත් නෑ. හාඩ් ඩිස්ක් එකට එක එක වැඩ කෑලි දානවා. අළුතෙන් ඉගෙනගන්න දේවල් ගොඩයි.

Flash drive එකේ init නැති නිසා No init found කියලා දෝෂ පණිවුඩයක් පෙන්නලා එතනින් නතර වෙනවා. නතර වෙනවා කිව්වට එහෙම නතර වෙන්නෙම නෑ. ;) එතනින් එහාට load වෙන්නේ BusyBox shell එක. BusyBox ක්‍රියාත්මක වෙන්නෙ RAM එක මත. සරල භාෂාවෙන් කිව්වොත් shell එකක් තියෙනවා කියන්නෙ සුළුවෙන් හරි 'වැඩක්' කරගන්න පුළුවන් කියන එක. :)

7. Flash drive එකේ ඉතිරි partition එකට තමන්ගෙ පුද්ගලික ගොනු ටික ආපහු පිටපත් කරගන්න. වින්ඩෝස් වලදි flash drive එක පෙන්නන්නෙ මෙහෙමයි:



දැන් ඔය partition දෙකෙන් එකක් වත් Windows Management Console එකෙන් ගිහින් delete කරන්න එපා... My Computer වල පෙන්නන partition එක අවශ්‍ය නම් format කරන්න පුළුවන්. අනිකට අත තියන්න එපා. Flash drive එකේ සම්පූර්ණ filesystem එකටම කෙළවෙයි!!!



මේ සටහනේ මුලින්මත් මම කිව්වනේ අපේ බාල මලයා මට වැඩ වැඩි කරල කියලා. මම දන්න ශිල්ප දාලා අටවලා දීපු හාඩ් ඩිස්ක් එක ගලවලා යාළුවෙකුගෙ මැසිමට හයි කරලා. :-O ඒ මදිවට ඇවිත් කියනවා දැන් අපේ මැසිම වැඩ කරන්නෙ නැතිලු - වයිරස් ඇවිත්ලු! වින්ඩෝස් repair කළාට හරි ගියෙත් නැතිලු!! ඒ මදිවටද මන්දා IDE කනෙක්ටර් එක හරිම තදයිලු!!! :-O :-O :-O

හොඳ වෙලාවට තාම මගේ වයස අවුරුදු 23යි. නැත්තම් එතනම අධිරුධිර පීඩනය ඇති වෙලා මළ ජංජාලයක් වෙන්නේ. මමත් ඉතිං හාඩ් ඩිස්ක් එක ගලවලා ආපහු අර සැත්කම ම කළා. Pins තුනක් යට ගිහින්. කලින් වතාවෙ යට ගිහිපු pin එකත් ඒ අතර! ඒක යට ගිහින් මදිවට කැඩිලා! :-O

මමත් අතෑරියෙ නෑ ගේම් එක... ඒක පෑස්සුවා. අපේ ලොකු මලයා නිකං ඉන්න බැරිකමටද මන්දා පිටකොටුවෙ පේමන්ට් එකෙන් soldering iron එකක් ගෙනත්. ඉතින් දිලිසි දිලිසි අළුත් පිට තියෙන බිට් එක නිසා මම ඒක ගත්තා පාස්සන්න. අළුත් බිට් එක තියෙනකොට පාස්සන්න හරි ලේසියි.

ඉතිං හාඩ් ඩිස්ක් එකේ පරිපථ පුවරුවත් අතට අරං පාස්සද්දි මෙන්න වැදුන නේද කරන්ට්!!! :-O කොරේ පිටට මරේ කියාපි. මේකෙන් ලීක් වෙනවනේ.. :-/ මම හිතුවෙ හාඩ් ඩිස්ක් එක ඉවරයි කියල. පිටකොටුවෙ පීචං තොරොම්බල් කාරයින්ගෙන් එක එක අටමගල් ගන්නවට මම අපේ මලයත් එක්ක වාග් සංග්‍රාමයක යෙදෙන ගමන් පත්තර කොළ කෑල්ලකින් පරිපථ පුවරුවත් අල්ලගෙන කොහොම හරි පෑස්සුම කරල ඉවර කළා. හැබැයි ආපහු පරිගණකයට සම්බන්ධ කරනකම් වැඩේ ෂුවර් නෑ. :(


සමූහ ඡායාරූපය :P


පෑස්සුම කරපු තැන -- මගේ පෑස්සුම් නම් සුමට නෑ... :-/

ඉතින් මේකත් අටවලා හයි කරලා බලද්දි.... දැනෙන සතුට කියා නිම කරන්න බෑ... හාඩ් ඩිස්ක් එක වැඩ කරනවා!! වින්ඩෝස් බූට් වෙනවා.. ඒත් කෝ මේකෙ තිබුණු GRUB එක? එතකොට තමයි මතක් වුණේ මලයා මේකෙ වින්ඩෝස් repair කළා කියලා. හැබැයි ලිනක්ස් partition දෙක තියෙනවා. Bootloader එක නැත!

ඉතින් මේ වෙලාවෙ ඒ හාඩ් ඩිස්ක් එකේ තිබුණු ලිනක්ස් ස්ථාපිතය ගොඩ ගත්තෙ මම මෙච්චර වෙලා විස්තර කරපු USB flash drive එකෙන් තමයි. වැඩි වෙලාවක් ගියෙත් නෑ. Off the Planets ලියන එකාට තැංකූ වේවා!



ඉතින් මට මේකෙන් කියන්න ඕන දේවල් කීපයකුත් තියෙනවා.
  1. IDE හාඩ් ඩිස්ක් වල කේබල් නිතර ගලවන්න/ මාරු කරන්න එපා.
  2. GRUB එකෙන් බූට් වෙන flash drive එකක් ළඟ තියා ගන්න. ඒක ගොඩක් ප්‍රයෝජනවත්. දැනට මම ඒ ගැන ස්වයං හැදෑරීමක් කරනවා. අහල තියෙන විධියට GRUB කියන්නෙ මතුපිටින් පේනවට වඩා වැඩකාරයෙක්!
  3. ලිනක්ස් හරිම සුන්දර OS එකක්... වින්ඩෝස් OS එකෙන් කෑල්ලක් ගලවලා මේ විධියට වෙනම අටවගන්න එක නීති විරෝධීයි. ඒ වගේම ඒ ගැන අධ්‍යයනය කිරීමත් නීති විරෝධීද මන්දා... :-?
  4. පිටකොටුවෙ පේමන්ට් එකේ පීචං තොරොම්බල්කාරයින්ගෙ බඩු ගන්න එපා. මේ ළඟදි මම අඳුනන එකෙක් රුපියල් තිහට Troy ගෙනත්... දාලා බලද්දි මොකක්දෝ පරණ දෙමළ film එකක්ලු. :D :D :D (අර තහනම් කරපුවයින් එකක්වත් වුණා නම් වටිනව නෙව! :P)

තව දෙයක්... මම මල්ලිලා දෙන්න ගැන මෙහෙම කිව්වට... ලිනක්ස් සම්බන්ධ වැඩ වලදි උන් අදක්ෂ වුණාට... අනිත් වැඩ වලදි සූරයෝ. එකෙක් Freelance Graphic Designer කෙනෙක්. පොඩි එකා Martial Arts පොරක්.

අදට ආයුබෝ.....!

෴ සමීර ශාකුන්තල | Sameera Shaakunthala ෴