துருவங்கள் – அத்தியாயம் 7 – நெஞ்சில் உள்ளாடும் ராகம்

நெஞ்சில் உள்ளாடும் ராகம்

கார்த்திகா காலையிலேயே மதனின் க்யூப்பிக்கல் வந்திருந்தாள். ‘லினக்ஸ் கமாண்ஸ் படிக்க படிக்க வந்துக்கிட்டே இருக்கு எப்படி நியாபகம் வெச்சிருக்கீங்க?’ கார்த்திகா கேட்க ‘எல்லாத்தையும் நியாபகம் வச்சிருக்க முடியாது, நாம ரெகுலரா யூஸ் பண்றது மட்டும் தான் நம்ம நியாபகத்துல இருக்கும், நாம ரெகுலரா லினக்ஸ யூஸ் பண்ண கத்துக்க வேண்டியது ரெண்டு விஷயம், ஒன்னு பைல் சிஸ்டம் ஸ்ட்ரக்சர், ரெண்டாவது ப்ராசஸ். நேத்திக்கு நீங்க சொன்ன கமாண்ஸ் எல்லாம் பைல் சிஸ்டம் சம்பந்தப்பட்ட கமாண்ஸ், இப்ப நீங்க தெரிஞ்சுக்க வேண்டியது ப்ராசஸ், உங்களுக்கு ப்ராஸஸ்னா என்னன்னு தெரியுமா?’ மதன் கேட்க ‘காலேஜ்ல ஆப்பரேட்டிங் சிஸ்டம் பத்தி படிக்கிறப்ப கேள்விப்பட்டிருக்கேன். ஆனா முழுசா என்னன்னு தெரியாது’ கார்த்திகா கூற ‘ப்ராசஸ் தான் ஒரு ஆப்பரேட்டிங் சிஸ்டத்தின் நாடி துடிப்பு, நீங்க C ல அலோ வேர்ல்ட் ப்ரோக்ராம் எழுதி இருக்கீங்களா?’ மதன் கேட்க ‘என்னங்க, C ப்ரோக்ராமிங் கத்துக்கிறவங்க அந்த ப்ரோக்ராம் தான் முதல்ல எழுதுவாங்க, எனக்கும் C ப்ரோக்ராமிங் தெரியும்’ கார்த்திகா கூற ‘அப்ப எப்படி நீங்க C ல அலோவெர்ல்ட் எழுதுவீங்கன்னு சொல்லுங்க பாப்போம்?’ மதன் கேட்க ‘எனக்கு விண்டோஸ்ல தான் எப்படின்னு தெரியும், லினக்ஸ்ல தெரியாது’ கார்த்திகா கூற ‘விண்டோஸ்ல தான் சொல்லுங்க’ மதன் கூற ‘டெஸ்க்டாப்ல டர்போசி (TurboC), டிசிசி (TCC) இல்ல டிசி (TC) அப்படின்னு ஒரு ஐகான் இருக்கும், அத டபுள் கிளிக் பண்ணா ஒரு விண்டோ ஓப்பன் ஆகும், அதுல பைல்->நியூ க்ளிக் பண்ணா ஒரு எம்டி பைல் கிரியேட் ஆகும், அதுல C ப்ரோக்ராம் எழுதி ஆல்ட் எப்னைன் (alt-f9) அழுத்துனா கம்பைல் ஆகும், கம்பைல் எரர் கிளியர் பண்ணி கன்ட்ரோல் எப்னைன் (ctrl-f9) அழுத்துனா நாம எழுதின ப்ரோக்ராம் ரன் ஆகி அலோ வேர்ல்ட் அப்படின்னு அவுட்புட் காட்டும்’ கார்த்திகா கூறினாள். ‘ரைட், முதல்ல டெஸ்க்டாப்ல டிசின்னு ஒன்னு டபுள் கிளிக் பண்றீங்களே, அது என்னன்னு தெரியுமா?’ மதன் கேட்க ‘டர்போ சி கம்பைலர்’ கார்த்திகா கூற ‘அது வெறும் கம்பைலர் மட்டும் இல்லைங்க, டர்போசி (TurboC) அப்படிங்கறது ஒரு இன்டக்ரேட்டட் டெவலப்மென்ட் என்விரான்மென்ட், சுருக்கமா ஐடிஇ (IDE) அப்படின்னு சொல்லுவாங்க, இந்த ஐடிஇ மூலம் நாம ப்ரோக்ராம் எழுத ஒரு எடிட்டரும், அந்த ப்ரோக்ராம நாம ஆல்ட் எப்னைன் (alt-f9) அழுத்தினா ஆட்டோமேட்டிக்கா கம்பைல் பண்ண ஒரு கம்பைலரும் கண்ட்ரோல் எப்னைன் அழுத்தினா ஆட்டோமேட்டிக்கா கம்பைல் பண்ணி உருவாங்குன எக்‌ஸிக்யூட்டபில ரன் பண்ணி காட்டவும் செட் பண்ணி வெச்சிருப்பாங்க. ஆனா ஒரு C ப்ரோக்ராமிங் எழுத நமக்கு ஐடிஇ வேணும்கற அவசியம் இல்ல, ஒரு சாதாரண டெக்ஸ்ட் பைல் கிரியேட் பண்ற ஒரு டெக்ஸ்ட் எடிட்டர் இருந்தா போதும். அடுத்து நாம அந்த எடிட்டர்ல எழுதின C சோர்ஸ் கோட மெஷினுக்கு புரியிற பைனரி எக்ஸிக்யூட்டபிலா மாத்த ஒரு கம்பைலர் வேணும் அவ்வளவுதான்’ மதன் விளக்கி கூறினான். ‘அப்படின்னா ஒரு சாதாரண நோட்பேட்ல நாம C ப்ரோக்ராம் எழுதலாமா?’ கார்த்திகா கேட்க ‘கண்டிப்பா, லினக்ஸில் ட்ரை பண்ணலாமா?’ மதன் கேட்க, ‘ஓக்கே’ என்று கார்த்திகா தன் லேப்டாப்பை ஓபன் செய்தாள்.

‘முதல்ல ஒரு டெக்ஸ்ட் எடிட்டர் ஒப்பன் பண்ணுங்க’ மதன் கூற கார்த்திகா அவள் வைத்திருக்கும் லினக்ஸ் மிண்ட் டிஸ்ட்ரோவில் இருக்கும் டீபால்ட் டெக்ஸ்ட் எடிட்டரை (xed) ஓபன் செய்தாள். ‘இப்ப நீங்க அலோ வேர்ல்ட் C ப்ரோக்ராம் டைப் செஞ்சு சேவ் பண்ணுங்க’ மதன் கூறுவதற்கு முன்பே கார்த்திகா ப்ரோக்ராமை டைப் செய்து கொண்டிருந்தாள். டைப் செய்து கார்த்திகாவின் ஓம் டைரக்டரியில் சேவ் செய்தாள். ‘/home/karthika/helloworld.txt அப்படின்னு சேவ் பண்ணி இருக்கேன்’ கார்த்திகா கூற ‘அந்த .txt எடுத்துட்டு .c அப்படின்னு சேவ் பண்ணுங்க’ மதன் கூற ‘ஓ, ஆமாம்ல, C ப்ரோக்ராம் .c அப்படின்னு தான் எக்ஸ்டென்ஷன் இருக்கனும்ல, மறந்துட்டேன்’ கார்த்திகா கூறிக்கொண்டே helloworld.txt ஐ helloworld.c ஆக mv கமாண்ட் டெர்மினலில் ரன் செய்து மாற்றினாள். ‘லினக்ஸில் இருக்குற C கம்பைலர் .txt க்கும் .c க்கும் வித்தியாசம் பாக்காதுங்க, அத பொருத்தவர நீங்க கம்பைல் பண்ண கொடுக்கிறது ஒரு சாதாரண டெக்ஸ்ட் பைல்’ மதன் கூற ‘அப்ப .txt அப்படின்னு எக்‌ஸ்டென்ஷன் இருந்தாலும் கம்பைல் பண்ணுமா?’ கார்த்திகா கேட்க ‘எக்டென்ஷனே இல்லாம ஒரு டெக்ஸ்ட் பைல் கொடுத்தாலும் கம்பைல் பண்ணும், அதுக்கு தேவ ஒரு C சோர்ஸ் அவ்வளவுதான், நாம ஈஸியா கண்டுபிடிக்கத்தான் .txt அப்படின்னு இருந்தத .c க்கு மாத்த சொன்னேன்’ மதன் விலக்கினான். ‘சரி, இப்ப இந்த /home/karthika/helloworld.c பைல எப்படி லினக்ஸ்ல கம்பைல் பண்றது?’ கார்த்திகா கேட்க ‘அதுக்கு முதல்ல நீங்க C கம்பைலர உங்க சிஸ்டத்தில் இன்ஸ்டால் பண்ணனும். நீங்க உங்க சிஸ்டத்துல கமாண்ட் லைன்ல சாப்ட்வேர் பேக்கேஜ் இன்ஸ்டால் பண்ண கத்துக்கிட்டீங்களா?’ மதன் கேட்க ‘ஓ, ரீசண்டா கூட என் சிஸ்டத்த apt கமாண்ட் மூலம் apt update அப்புறம் apt full-upgrade மூலம் அப்டேட் பண்ணேன்’ கார்த்திகா கூற ‘நல்லது, இப்ப அதே apt கமாண்ட யூஸ் பண்ணி gcc கம்பைலர் பேக்கேஜ் இன்ஸ்டால் பண்ணுங்க பாப்போம்’ மதன் கூறியவுடன் கார்த்திகா உடனே apt install gcc என்ற கமாண்டை ரன் செய்து gcc கம்பைலரை இன்ஸ்டால் செய்வதற்கு ஆயத்தமானாள். ‘நிள்ளுங்க, gcc மட்டும் இன்ஸ்டால் பண்றதுக்கு பதிலா packaging-dev அப்படின்னு ஒரு மெட்டா பேக்கேஜ் இருக்கு, அத இன்ஸ்டால் பண்ணா இன்னும் முக்கியமான சில பேக்கேஜ்கள் இன்ஸ்டால் ஆகும், அதனால, gcc க்கு பதிலா packaging-dev இன்ஸ்டால் பண்ணுங்க’ என்று மதன் கூற அதன்படியே கார்த்திகாவும் டெர்மினலில் apt install packaging-dev டைப் செய்து இன்ஸ்டால் செய்தாள். ‘இப்ப நீங்க இன்ஸ்டால் பண்ண C கம்பைலர் பேரு gcc, அதாவது gnu-compiler-collection, நான் லினக்ஸ் ஹிஸ்ட்ரி சொல்லும்போது கூட ஸ்டால்மேன் ஒரு C கம்பைலர் முதல்ல உருவாக்குனார், அதத்தான் லினஸ் டார்வல்ட்ஸ் லினக்ஸ் கர்னல உருவாக்க பயன்படுத்தினார்னு சொன்னேன்ல, அந்த கம்பைலர் இதுதான்’ மதன் விலக்கினான். ‘ஓ, அப்ப அவர் எழுதிய கம்பைலரத்தான் நான் இப்ப யூஸ் பண்ண போறேனா? லினக்ஸில் உண்மையிலேயே ஒவ்வொரு கமாண்டுக்கு பின்னாடி ஒரு சுவாரஸ்யமான ஹிஸ்டரி இருக்கு, அத தெரிஞ்சிக்கிட்டு அந்த கமாண்ட் யூஸ் பண்றது ரொம்ப இன்ட்ரஸ்டிங்கா இருக்கு’ கார்த்திகா உற்சாகமடைந்தாள்.

‘இப்ப gcc கமாண்ட் இன்ஸ்டால் ஆகி இருக்கா இல்லையான்னு எப்படி கண்டுபிடிப்பீங்க?’ மதன் கேட்க ‘ஜஸ்ட் அந்த கமாண்ட் ரன் பண்ணும் போது அந்த கமாண்ட் இன்ஸ்டால் ஆகலைன்னா command not found அப்படின்னு எரர் வரும்’ கார்த்திகா கூற ‘ரன் பண்ணாம கண்டுபிடிக்கனும்’ மதன் கேட்க ‘அப்ப கூகிலத்தான் கேட்கனும்’ கார்த்திகா கூற ‘கரெக்ட், நமக்கு ஏதாவது தெரியலைன்னா கூகிலத்தான் கேட்கனும். தேடுங்க’ என்று மதன் கூற கார்த்திகா கூகுளில் தேடி type என்ற ஒரு காமாண்ட் நாம் கொடுக்கும் கமாண்ட் இருக்கா இல்லையா என்று சொல்லும் என்று கண்டுபிடித்தாள். ‘சூப்பர், இப்ப அந்த type கமாண்ட எப்படி ரன் பண்ணுவீங்க?’ மதன் கேட்க ‘அதான் man பேஜ் இருக்கே’ என்று கார்த்திகா கூறி man type என்று கொடுத்தாள்,ஆனால் type கமாண்டுக்கு மேனுவல் பேஜ் இல்லை என்று வந்தது. ‘என்னங்க, மேன்வல் இல்லைன்னு வருது?’ கார்த்திகா கேட்க ‘எல்லா கமாண்டுக்கும் மேனுவல் பேஜ் இருக்காதுங்க, அதுக்கு பதிலா type –help அப்படின்னு ரன் பண்ணுங்க’ மதன் கூற கார்த்திகாவும் அதன்படியே கமாண்ட் டைப் செய்து என்டர் தட்டினாள். type கமாண்டின் சிறிய ஹெல்ப் வந்தது அதில் அந்த கமாண்டுக்கு என்னவெல்லாம் ஆப்ஷன்கள் கொடுக்கலாம் என்று குறிப்பிடப்பட்டிருந்தது. ஆனால் மேனுவல் பேஜை போல் விவரமாக இல்லை. ‘லினக்ஸ்ல இருக்குற தொன்னூறு சதவீதம் கமாண்ட்ஸ்ஸுக்கு –help அல்லது -h ஆப்ஷன் கொடுத்தால் அந்த கமாண்ட் பத்தி சின்னதா டீடெய்ல்ஸ் அவுட்புட் காட்டும், ஆனா அந்த டீடெயில்ஸ், ப்ராப்பர் மேனுவல் பேஜ் மாதிரி இருக்காது’ மதன் விவரித்தான். கார்த்திகா type –help அவ்ட்புட்டில் இருந்த விவரங்களை படித்துவிட்டு type gcc என்ற கமாண்டை ரன் செய்தாள், உடனே gcc கமாண்ட் இருக்கும் இடம் /usr/bin/gcc என்று type கமாண்ட் காட்டியது. ‘கண்டுபிடிச்சிட்டேன்’ கார்த்திகா கூற ‘சூப்பர்’ என்று மதன் பாராட்டினான்.

‘இப்ப gcc கமாண்ட் பத்தி தெரிஞ்சுக்க என்ன பண்ணுவீங்க?’ மதன் கேட்க ‘gcc –help மொதல்ல ட்ரை பண்றேன்’ என்று கார்த்திகா அந்த கமாண்ட் இயக்க வந்த அவுட்புட்டை படிக்க கார்த்திகாவுக்கு புரியவில்லை, ‘கொஞ்சம் கஷ்டமா இருக்கு’ கார்த்திகா கூற ‘அப்ப என்ன பண்ணனும்?’ மதன் கேட்க ‘man gcc அப்படின்னு டைப் செய்து gcc யோட மேனுவல் பேஜ் படிக்கணும்’ கார்த்திகா சொல்லிக்கொண்டே gcc மேனுவல் ஓபன் செய்தாள். ‘இது கொஞ்சம் பரவால்ல, SYNOPSIS ல ஜஸ்ட் ஒரு இன்புட் பைல் மட்டும் கொடுத்தால் போதும்னு இருக்கு?’ கார்த்திகா கூற ‘ஆமாம் ஒரே ஒரு இன்புட் பைல் மட்டும் கொடுத்தால் போதும், என்ன ஆகுதுன்னு பாப்போமா?’ மதனு கூற கார்த்திகா டெர்மினலில் தனது ஓம் டைரக்டரியில் இருந்து gcc helloworld.c என்ற கமாண்ட் எக்ஸிக்யூட் செய்தாள். ‘என்னது conio.h இல்லையா?’ கார்த்திகா கேட்க ‘உங்களோட சோர்ஸ் கோட் காட்டுங்க?’ மதன் கேட்க கார்த்திகா அவள் எழுதிய அலோ வேர்ல்ட் ப்ரோக்ராமை cat கமாண்ட் மூலம் டெர்மினலில் காட்டிவிட்டு gcc கமாண்ட் அவுட்புட்டையும் காட்டினாள்,

$ cat helloworld.c
#include <stdio.h>
#include <conio.h>
main() {
       printf("hello world\n");
       getch();
}
$ gcc helloworld.c
helloworld.c:2:10: fatal error: conio.h: No such file or directory
    2 | #include <conio.h>
      |          ^~~~~~~~~
compilation terminated.
$

‘conio.h ஹெட்டர் விண்டோஸ்ல மட்டும்தான் இருக்கும், லினக்ஸில் இருக்காது, அது C லெங்வெஜ்ஜோட ஸ்டாண்டர்ட் ஹெட்டர் இல்ல’ மதன் விலக்கினான். ‘அப்ப அத ரிமூவ் பண்ணிடட்டா?’ கார்த்திகா கேட்க ‘ஆமாம்’ என்று மதன் கூறினான். அதன்படியே கார்த்திகா லைன் ரிமூவ் செய்து மறுபடியும் gcc helloworld.c என்று ரன் செய்தாள். ‘ரெண்டு வார்னிங், கடைசியில் ஏதோ எரர் மாதிரி இருக்கு?’ கார்த்திகா மறுபடியும் டெர்மினலில் இருந்த அவுட்புட்டை காட்டினாள்,

$ cat helloworld.c
#include <stdio.h>
main() {
       printf("hello world\n");
       getch();
}
$ gcc helloworld.c
helloworld.c:3:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
    3 | main() {
      | ^~~~
helloworld.c: In function ‘main’:
helloworld.c:5:5: warning: implicit declaration of function ‘getch’; did you mean ‘getc’? [-Wimplicit-function-declaration]
    5 |     getch();
      |     ^~~~~
      |     getc
/usr/bin/ld: /tmp/ccYcaeAk.o: in function `main':
helloworld.c:(.text+0x1a): undefined reference to `getch'
collect2: error: ld returned 1 exit status
$

‘ஓக்கே, முதல் வார்னிங் main பங்ஷனுக்கு டீபால்ட் ரிட்டர்ன் டைப் int அப்படின்னு சொல்லுது, அதனால நீங்க ப்ரோக்ராம் முடிவுல return 0 அப்படின்னு ரிட்டர்ன் வேல்யூ கொடுக்கணும், ரெண்டாவது வார்னிங், getch() அப்படின்னு ஒரு பங்ஷன் இம்பிளிசிட்டா டிக்லர் ஆகி இருக்குன்னு வருது, அடுத்து இருக்குற எரர், getch() அப்படிங்குற பங்ஷனே இல்லன்னு சொல்லுது’ மதன் விவரமாக விலக்கினான். ‘அப்ப main க்கு முன்னாடி int போட்டு கடைசீயில return 0; லைன் சேக்கனும், அப்புறம் getch() லைன தூக்கனும் அப்படித்தானே?’ கார்த்திகா கேட்க ‘அவ்வளவுதான்’ மதன் கூறினான். அதன்படி கார்த்திகா தன் சோர்ஸ் கோட் மாற்றி காட்டினாள்,

$ cat helloworld.c
#include <stdio.h>
int main() {
    printf("hello world\n");
    return 0;
}

‘இப்ப ஓகேவா?’ கார்த்திகா கேட்க, ‘ஓகே மாதிரிதான் தெரியுது, இப்ப கம்பைல் பண்ணுங்க’ என்று மதன் கூற கார்த்திகா gcc helloworld.c என்று ரன் செய்தாள்.’என்ன எந்த அவுட்புட்டும் வரல?’ கார்த்திகா வியப்புடன் டெர்மினலை காட்டினாள்,

$ gcc helloworld.c
$

‘அப்படின்னா சுக்கிரன் உச்சத்துல இருக்கான்னு அர்த்தம். எந்த கம்பைலேஷன் எரரும் வரலைன்னு அர்தம்’ மதன் புன்னகையுடன் கூற கார்த்திகாவும் சிரித்தாள். ‘இப்ப எப்படி அலோ வேர்ல்ட் ப்ரோக்ராம் அவுட்புட் பார்க்கிறது?’ கார்த்திகா கேட்க ‘இருக்க அவசரப்படாதீங்க, இப்ப நான் சில கேள்விகள் கேட்பேன், இப்ப நீங்க என்ன பண்ணீங்க?’ மதன் கேட்க ‘ஒரு டெக்ஸ்ட் எடிட்டர் ஓப்பன் பண்ணி அலோ வேர்ல்ட் C ப்ரோக்ராம் எழுதி அதை சேவ் பண்ணி, gcc கம்பைலர் மூலம் கம்பைல் பண்ணேன்’ கார்த்திகா கூற ‘கம்பைல் அப்படின்னா என்ன?’ மதன் கேட்க ‘அதாவது டெக்ஸ்ட் பார்மேட்ல இருக்குற சோர்ஸ் கோட பைனரி எக்ஸிக்யூட்டபிலா மத்துரது, அதுக்குத்தான் கம்பைலர் தேவைப்படுது, அந்த கம்பைலர் தான் gcc’ கார்த்திகா விரிவாக கூற ‘இப்ப உங்க கம்பைல் கமாண்ட் எந்த ஒரு எரரையும் காட்டல, அப்படின்னா என்ன அர்த்தம்?’ மதன் கேட்க ‘அப்படின்னா சுக்கிரன், இல்ல இல்ல’ கார்த்திகா புன்னகையுடன் ‘அப்படின்னா கம்பைலர் சக்‌ஸஸ்புல்லா பைனரி எக்‌ஸிக்யூட்டபில க்ரியேட் பண்ணிடுச்சுன்னு அர்தம், அப்ப அந்த பைனரி எக்ஸிக்யூட்டபில் எங்க?’ கார்த்திகா கேட்க ‘இப்பதான் கரெக்டா கேள்வி கேட்டீங்க, எடுத்தவுடனே எப்படி ரன் பண்றதுன்னு கேக்க கூடாது, எந்த இடத்தில் கிரியேட் பண்ண பைனரி இருக்குன்னுதான் கேட்கனும்’ மதன் கூற கார்த்திகா புன்னகையுடன் ‘எங்க இருக்கு?’ என்று கேட்க ‘நீங்க எந்த டைரக்டரியில் gcc கமாண்ட் ரன் பண்ணீங்களோ அதே டைரக்டரியில் தான் இருக்கு’ என்று மதன் சொன்னவுடன் கார்த்திகா ls கமாண்ட் ரன் செய்தாள் ‘a.out அப்படின்னு இருக்கு? இதுதான் பைனரி எக்‌ஸிக்யூட்டபிலா?’ கார்த்திகா கேட்க ‘அது பைனரி எக்ஸிக்யூட்டபுலான்னு எப்படி தெரிஞ்சிப்பீங்க?’ என்று மதன் கேட்க ‘கூகுள் தான்’ கார்த்திகா சொல்லிவிட்டு கூகுளில் தேட file கமாண்ட் கண்டுபிடித்தாள். file கமாண்ட் மேனுவல் படித்து அதை எப்படி ரன் செய்ய வேண்டும் என்பதை கற்றுக் கொண்டாள். அதன்படி file a.out என்ற கமாண்ட் ரன் செய்தாள்,

$ file a.out
a.out: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=919cf3edae2aaeb8d4524a529938be39c6304ff0, for GNU/Linux 3.2.0, not stripped
$

‘ஒரு மண்ணாங்கட்டியும் புரியல’ கார்த்திகா கூற ‘மண்ணாங்கட்டிய புரிஞ்சுக்க கொஞ்சம் டைம் ஆகும், இப்போதைக்கு அந்த அவுட்புட்ல ELF ன்னு இருக்குல்ல, அப்படின்னா a.out ஒரு ELF பைனரி பார்மெட்ல இருக்குற ஒரு எக்‌ஸிக்யூட்டபிள், அத நாம ரன் பண்ணலாம்னு அர்தம், எங்க a.out கமாண்ட ரன் பண்ணுங்க பாப்போம்’ மதன் கூற கார்த்திகா a.out என்ற கமாண்ட் ரன் செய்தாள்,

$ a.out
bash: a.out: command not found
$

‘கமாண்ட் இல்லையா, அதான் இருக்கே?’ கார்த்திகா கேட்க ‘a.out எங்க இருக்குன்னு நமக்கு தெரியும், bash ஷெல்லுக்கு தெரியனுமே, அதுக்கு என்ன பண்ணனும்?’ மதன் கேட்க ‘ஓ, ரைட் PATH என்விரான்மென்ட் வேரியபிள் செட் பண்ணனும்’ கார்த்திகா கூற ‘அப்படியும் பண்ணலாம், இல்ல சிம்பிலா a.out எக்‌ஸிக்யூட்டபிலோட புல் பாத் கொடுக்கலாம்’ மதன் கூற ‘கரெக்ட், எங்கயோ படிச்சேன்’ என்று சொல்லிவிட்டு கார்த்திகா புல் பாத்தையும் கொடுத்து a.out எக்ஸிக்யூட்டபிலை ரன் செய்தாள்.

$ /home/karthika/a.out
hello world
$

‘சூப்பர்’ கார்த்திகா மிகவும் மகிழ்ந்தாள். ‘அப்ப எல்லா கமாண்டுக்கும் புல் பாத் கொடுத்து ரன் பண்ணலாம் அப்படித்தானே?’ கார்த்திகா கேட்க ‘ஆமாம்’ என்று மதன் கூறினான். கார்த்திகாவின் மகிழ்ச்சி இன்னும் குறையவில்லை. ‘இப்ப நான் ஏன் உங்களுக்கு இந்த C ப்ரோக்ராம் எப்படி கம்பைல் பண்ணி ரன் பண்றதுன்னு சொல்லிக் கொடுத்தேன் தெரியுமா?’ மதன் கேட்க ‘இருங்க நானே சொல்றேன், ஒரு காமாண்ட் அப்படிங்கறது மெஷினுக்கு புரியிற ELF பார்மெட்ல இருக்குற ஒரு பைனரி எக்ஸிக்யூட்டபில், அது நம்ம பைல் சிஸ்டத்துல ஒரு இடத்தில் சேவ் ஆகி இருக்கும் அந்த இடத்தை கண்டுபிடிக்க type கமாண்ட் யூஸ் பண்ணனும். type கமாண்டால அந்த கமாண்ட் கண்டுபிடிக்க முடியலன்னா எந்த இடத்துல அந்த கமாண்ட் இருக்கோ அந்த டைரக்டரிய PATH என்விரான்மென்ட் வேரியபில்ல சேக்கனும் அப்படி இல்லன்னா டைரக்டா புல் பாத் கொடுத்து எக்ஸிக்யூட் பண்ணனும்’ கார்த்திகா கூறி முடித்தாள். ‘கரெக்ட், ஆனா நான் சொல்ல வந்தது அதுமட்டுமில்ல, நீங்க /home/karthika/a.out அப்படின்னு கமாண்ட டைப் பண்ணி என்டர் கொடுத்தீங்கள்ள, அப்ப என்ன நடந்தது?’ மதன் கேட்க கார்த்திகா ‘என்ன நடந்தது, hello world அப்படின்னு அவுட்புட் வந்தது. அதுக்குத்தான நாம C ப்ரோக்ராம் எழுதினோம்?’ கார்த்திகா கேட்க ‘அதுதான் எப்படி அந்த அவுட்புட் வந்தது?’ மதன் கேட்க ‘a.out கமாண்ட் எக்ஸிக்யூட் ஆச்சு, அந்த கமாண்ட் வேலை hello world அப்படின்னு பிரிண்ட் பண்றது, அதனால hello world அவுட்புட் வந்தது, அதானே?’ கார்த்திகா கூற ‘அந்த a.out எப்படி எக்‌ஸிக்யூட் ஆச்சு?’ மதன் கேட்க ‘தெரியல, நீங்களே சொல்லுங்க’ கார்த்திகா கேட்க ‘இங்க தான் நாம ப்ராஸஸ் அப்படின்னா என்னன்னு தெரிஞ்சுக்கனும்’ மதன் கூறிவிட்டு ப்ராசஸ் பற்றி விவரிக்க ஆரம்பித்தான்.

‘நீங்க /home/karthika/a.out கமாண்ட் டைப் பண்ணி என்டர் தட்டும்போது உங்க ஷெல் அந்த a.out பைனரி எக்‌ஸிக்யூட்டபில் பைலோட புல் பாத்த வாங்கி கர்னல் கிட்ட கொடுத்து எக்ஸிக்யூட் பண்ண சொல்லும், அப்ப லினக்ஸ் கர்னல் முதல்ல அந்த a.out பைல ரீட் பண்ணும், அது எந்த மாதிரியான பைனரி பார்மெட்ல இருக்குன்னு முதல்ல கண்டுபிடிக்கும், நாம ஏற்கனவே பாத்தா மாதிரி, அந்த எக்ஸிக்யூட்டபில் ELF பார்மட்ல இருக்குன்னு தெரிஞ்சுக்கிட்டு அப்புறம் அந்த பைல ரீட் பண்ணி மெமரியில் ஒரு இடத்துல அந்த a.out பைல் கண்டன்ட வெச்சிக்கும், அடுத்து a.out எக்ஸிக்யூட்டபில் எக்ஸிக்யூட் பண்ண தேவையான வேர சில லைப்ரெரிஸ் மெமரியில் லோட் செஞ்சிக்கும், இதுக்கு பேரு டைனமிக் லிக்கிங். அடுத்து அந்த a.out என்ஸிக்யூட்டபில எக்ஸிக்யூட் பண்ண தேவையானது எல்லாம் லோட் பண்ணதும் அந்த எக்ஸிக்யூட்டபிலோட என்ட்ரி பாயின்ட், அதாவது நம்ம C ப்ரோக்ராம்ல main() பங்ஷன் இருக்குல்ல, அந்த பங்ஷன இன்வோக் பண்ணும், இப்படித்தான் நாம க்ரியேட் பண்ண a.out எக்‌ஸிக்யூட்டபில கர்ணல் மெமரியில ஏத்தி ஒரு ப்ராசசா மாத்தி எக்ஸிக்யூட் பண்ணும், ஒவ்வொரு ப்ராசசுக்கும் ஒரு id இருக்கு அதுக்கு பேரு ப்ராசஸ் ஐடி அத pid அப்படின்னு சொல்லுவாங்க, ஒரு ப்ராசசோட டீட்டெய்ல் தெரிஞ்சிக்க cat /proc/[pid]/status கமாண்ட் ரன் பண்ணி தெரிஞ்சிக்கலாம், a.out எக்ஸிக்யூட்டபில கர்னல் கிட்ட கொடுத்து எக்‌ஸிக்யூட் பண்ண சொல்லுச்சில்ல நம்ம ஷெல், அதுதான் நம்ம a.out ப்ராசசுக்கு பேரண்ட் ப்ராசஸ், அந்த ஷெல்லுக்கு நம்ம a.out ப்ராசஸ், ஒன் ஆப் த சைல்ட் ப்ராஸஸ். ஒவ்வொரு ப்ராசசுக்கும் ஒரு பேரண்ட் ப்ராசஸ் இருக்கும், அந்த பேரண்ட் ப்ராசஸ்ஸ சைல்ட் ப்ராசஸ்ல இருந்து தெரிஞ்சுக்க ஈசியா சைல்ட் ப்ராசஸ்ல பேரண்ட் ப்ராசஸோட pid ய ppid அப்படின்னு சேவ் பண்ணி இருப்பாங்க. ppid மூலமா எந்த ஒரு ப்ராஸசோட பேரண்ட் ப்ராஸசையும் கண்டுபிடிச்சிடலாம்’ மதன் விலக்கினான்.

கார்த்திகா மீண்டும் a.out ரன் செய்தாள். ‘நம்ம a.out ப்ராசஸோட pid எப்படி தெரிஞ்சிக்கிறது?’ கார்த்திகா கேட்க, ‘அதுக்கு C ல getpid() அப்படின்னு ஒரு பங்ஷன் இருக்கு’ மதன் கூறியதும் கார்த்திகா சோர்ஸ் கோடை எடிட்டரில் ஓப்பன் செய்து மாற்றி ‘கரைக்டா?’ என்று கேட்டாள்,

#include <stdio.h>

int main() {
    getpid();
    printf("hello world\n");
    return 0;
}

‘இல்ல, இங்க கொடுங்க’ என்று மதன் அவள் லேப்டாப்பை வாங்கி சோர்ஸ் கோடை சரி செய்து அதை கம்பைல் செய்து ரன் செய்தும் காட்டினான்,

$ cat helloworld.c
#include <stdio.h>
#include <unistd.h>

int main() {
    pid_t pid;
    pid_t ppid;

    pid = getpid();
    ppid = getppid();
    printf("hello world\n");
    printf("pid: %d\n", pid);
    printf("ppid: %d\n", ppid);
    return 0;
}
$ gcc helloworld.c
$ /home/karthika/a.out
hello world
pid: 9810
ppid: 8300
$

‘அப்ப cat /proc/9810/status கமாண்ட் ரன் பண்ணா a.out ப்ராசஸ் சோட டீடெயில்ஸ் வரும் கரெக்டா?’ கார்த்திகா கேட்க ‘ரன் பண்ணி பாருங்க’ என்று மதன் கூற கார்த்திகா உடனே cat /proc/9810/status என்று டைப் செய்து என்டர் தட்டினாள்,

$ cat /proc/9810/status
cat /proc/9810/status: No such file or directory
$

‘என்ன /proc/9810/status அப்படிங்குற பைலே இல்லன்னு சொல்லுது? ஓகே, நம்ம a.out கமாண்ட் எக்ஸிக்யூட் ஆகி முடிஞ்சிருச்சு அதனாலயா?’ கார்த்திகா கேட்க ‘கரெக்ட், 8300 ட்ரை பண்ணி பாருங்க’ என்று மதன் கூற கார்த்திகா cat /proc/8300/status என்று டைப் செய்து என்டர் தட்டினாள்,

$ cat /proc/8300/status
Name:        bash
Umask:       0002
State:       S (sleeping)
Tgid:        8300
Ngid:        0
Pid: 8300
PPid:        8293
TracerPid:   0
Uid: 1000    1000    1000    1000
Gid: 1000    1000    1000    1000
FDSize:      256
Groups:      4 24 27 30 46 114 134 1000
NStgid:      8300
NSpid:       8300
NSpgid:      8300
NSsid:       8300
VmPeak:         10980 kB
VmSize:         10980 kB
VmLck:              0 kB
VmPin:              0 kB
VmHWM:           5392 kB
VmRSS:           5392 kB
RssAnon:         1724 kB
RssFile:         3668 kB
RssShmem:           0 kB
VmData:          1708 kB
VmStk:            132 kB
VmExe:            888 kB
VmLib:           1564 kB
VmPTE:             52 kB
VmSwap:             0 kB
HugetlbPages:               0 kB
CoreDumping: 0
THP_enabled: 1
Threads:     1
SigQ:        0/7587
SigPnd:      0000000000000000
ShdPnd:      0000000000000000
SigBlk:      0000000000010000
SigIgn:      0000000000380004
SigCgt:      000000004b817efb
CapInh:      0000000000000000
CapPrm:      0000000000000000
CapEff:      0000000000000000
CapBnd:      0000003fffffffff
CapAmb:      0000000000000000
NoNewPrivs:  0
Seccomp:     0
Speculation_Store_Bypass:    vulnerable
Cpus_allowed:        3
Cpus_allowed_list:   0-1
Mems_allowed:        00000000,00000000
Mems_allowed_list:   0
voluntary_ctxt_switches:     512
nonvoluntary_ctxt_switches:  529
$

‘இது நம்ம ஷெல் கமாண்ட் bash ஓட டீடெயில்ஸ், நிறைய இன்பர்மேஷன்ஸ் இருக்கு, ஒன்னும் புரியல’ கார்த்திகா கூற ‘கொஞ்சம் கொஞ்சமாகத்தான் புறியும், எனக்கும் இதுல இருக்குற எல்லா இன்பர்மேஷனும் தெரியாது, சோ உங்களுக்கு ப்ராசஸ், பேரண்ட் ப்ராசஸ், சைல்ட் ப்ராசஸ் அப்படின்னா என்னன்னு புரிஞ்சதில்ல?’ மதன் கேட்க ‘புரிஞ்சது, ஒரு டவுட், bash டீடெய்ல்ஸ்ல ppid ன்னு வேற ஒரு நம்பர் இருக்கே, அது ஷெல்ல கிரியேட் பண்ண ப்ராசஸ் pid யா?’ கார்த்திகா கேட்க ‘ஆமாம்’ மதன் கூற ‘அப்ப ppid ட்ராக் பண்ணிக்கிட்டு போனா, நாம பூட் பண்ணவுடன் ஸ்டார்ட் ஆன முதல் ப்ராசஸ் டீடெய்ல் கிடைச்சிடும் இல்ல?’ கார்த்திகா கேட்க ‘ஆமாம், ஆனா இப்படி ppid ட்ராக் பண்ணிக்கிட்டு போறத விட சிம்பிளா cat /proc/1/status அப்படின்னு போட்டு பூட் ஆனவுடனே ஸ்டார்ட் ஆன முதல் ப்ராசஸ் டீடெய்ல் பாத்துடலாம்’ மதன் கூறியவுடன் கார்த்திகா cat /proc/1/status என்று கமாண்ட் ரன் செய்தாள், ‘systemd? இதுதான் எல்லாத்துக்கும் பேரண்ட் ப்ராசசா?’ கார்த்திகா கேட்க ‘ஆமாம், அதுதான் நாம பூட் பண்ணவுடன் ஸ்டார்ட் ஆகும் முதல் ப்ராசஸ், அந்த ப்ராசஸ் தான் பல சைல்ட் ப்ராசஸ் ஸ்டார்ட் பண்ணும். pid 1 ப்ராசஸ் இன்னிட் ப்ராஸஸ்னு சொல்லுவாங்க. அதோட பைனரி எக்‌ஸிக்யூட்டபில் எங்க இருக்குன்னு கண்டுபிடிங்க பாப்போம்?’ மதன் கார்த்திகாவிடம் கேட்க ‘நேம் systemd அப்படின்னு இருக்கு’ சொல்லிவிட்டு type systemd என்ற கமாண்டை ரன் செய்ய /bin/systemd என்று வந்தது, ‘இன்னும் ஈஸியா ஒரு வழி சொல்றேன் sudo ls /proc/1/exe கமாண்ட் ரன் பண்ணுங்க’ மதன் கூற கார்த்திகாவும் அதையே செய்தாள்,

$ sudo ls -l /proc/1/exe
lrwxrwxrwx 1 root root 0 Mar 28 04:03 /proc/1/exe -> /lib/systemd/systemd
$

‘ஓ, அப்ப pid 1 எக்ஸிக்யூட்டபில் /lib/systemd/systemd தானா?’ என்று கார்த்திகா கேட்க ‘ஆமாம்’ என்று மதன் கூறினான். கார்த்திகா உடனே ls -l /proc/1 என்று ரன் செய்ய பல பைல்கள் இருந்தன ‘இந்த பைல்கள்ல இருந்து அந்த pid 1 ப்ராசஸுக்குனடான எல்லா டீட்டெய்ஸும் எடுத்துடலாம்போல?’ கார்த்திகா கேட்க ‘எக்ஸாக்ட்லி, பிக்கப் பண்ணிட்டீங்க’ மதன் கார்த்திகாவை பார்த்து புன்னகையுடன் கூறினான்.

‘வந்துட்டாங்களா, நாம கன்டின்யூ பண்ணா மாதிரித்தான், இன்னைக்கு எந்த க்யூப்பிக்கல் மாட்டபோறங்களோ, ஆமா நம்ப க்யூப்பிக்கல்ல நீங்களும் நானும் மட்டும் தான் இருக்கோமா? உதய் அண்ணா இருந்திருந்தா நல்லா இருந்திருக்கும்’ மதன் புலம்ப ஆரம்பிக்க ‘ஏன் பயப்படுறீங்க, எச்ஆர் தான, சும்மா ஏதாவது பண்ண சொல்லுவாங்க, அப்புறம் அவங்களே போயிடுவாங்க,’ கார்த்திகா கூற ‘சும்மா போனா பரவாயில்லயே, வீடியோ எடுத்து நம்ம கம்பெனி இன்டர்ணல் சோசியல் நெட்வொர்க்ல போட்டு வெருப்பேத்துவாங்களே’ மதன் கூற ‘அதெல்லாம் கன்டன்ட் நல்லா இருந்தா தான் ஏத்துவாங்க, மொக்கையா இருந்தா போட்றதில்ல. இருங்க எந்த க்யூப்பிக்கல் மாட்டுதுன்னு பாப்போம்’ கார்த்திகா மதனை சமாதானப்படுத்தி விட்டு எச்ஆர் என்ன செய்கிறார்கள் என்று கவனித்தாள்.

‘ஹலோ லேடீஸ் அண்ட் ஜென்டில்மேன், சாரி ஃபார் இன்ட்ராப்டிங் யுவர் பிசி வொர்க், நடுவுல கொஞ்சம் பிரேக் எடுத்துக்குறதும் அவசியம், அடுத்த 30 மினிட்ஸ் எங்களுக்காக நீங்க ஒத்துக்குவீங்கன்னு நம்புறேன். இங்க ரெண்டு பவுல் இருக்கு, ஒரு பவுலில் இங்க இந்த ப்லோர்ல இருக்குற எல்லா க்யூப்பிக்கல் நம்பரும் இருக்கு, இன்னொரு பவுல்ல சில டாஸ்க் இருக்கு. இங்க இருக்கிறவங்கள்ல யாரையாச்சும் வரவழைச்சு க்யூப்பிக்கல் நம்பர் செலக்ட் செய்ய சொல்வோம், செலக்ட் ஆன க்யூப்பிக்கல்ல இருந்து ஒருத்தர் வந்து டாஸ்க் ஒன்னு செலக்ட் பண்ணனும். அந்த டாஸ்க்ல இருக்கும்படி செய்யனும், எல்லாருக்கும் புரிஞ்சதில்ல, என்ன ஆரம்பிக்கலாமா?’ எச்ஆரில் இருந்து வந்த நான்கு நபர்களில் சீனியர் லேடி எச்ஆர் ஒருவர் பேசினார். சொன்னபடியே அருகில் இருந்த ஒரு எம்ப்லாயி க்யூப்பிக்கல் நம்பர் செலக்ட் பண்ண. க்யூப்பிக்கல் நம்பர் 16 என்று வந்தது.

‘ஷிட்’ மதன் பதற ‘சரி, சமாளிப்போம் டாஸ்க் என்ன வருதுன்னு பாப்போம்’ கார்த்திகா சொல்லிக்கொண்டு இருக்கும்போதே கேமரா மதனின் க்யூப்பிக்களை போக்கஸ் பண்ண ஆரம்பித்திருந்தது. அந்த சீனியர் எச்ஆர் மதனிடம் வந்து ‘ஹவ் ஆர் யூ ஜென்டில்மேன், சொல்லுங்க, உங்க பேர் என்ன, என்ன ஒர்க் பண்றீங்க?’ சீனியர் எச்ஆர் கேட்க ‘மதன், சீனியர் டெவலப்பர்’ மதன் கூற ‘வோவ், இப்பத்தான் புரியுது ஏன் தாடி இவ்ளோ வளர்ந்திருக்குன்னு, க்ரேட், ஷேவ் பண்ணுங்க ஹன்சம்மா இருப்பீங்க’ சீனியர் எச்ஆர் மதனிடம் கூறிவிட்டு கார்த்திகா பக்கம் திரும்பினார் ‘ஹாய் ஸ்வீட்டி, உங்க பேர் என்ன, என்ன ஒர்க் பண்றீங்க?’ சீனியர் எச்ஆர் கேட்க ‘கார்த்திகா, சிஸ் அட்மின்’ என்று கார்த்திகா கூற ‘சரி இப்ப ரெண்டு பேர்ல யாராவது ஒருத்தர் போய் டாஸ்க் செலக்ட் பண்ணுங்க’ எச்ஆர் கேட்டுக்கொள்ள மதன் கண்களாலேயே கார்த்திகாவை போய் டாஸ்க் எடுக்க சொன்னான். அவளும் டாஸ்க்கை எடுத்தாள்.

‘க்யூப்பிக்கல்லில் இருக்கும் ஒவ்வொருவரும் ஒரே மியூசிக் கம்போசர் கம்போஸ் பண்ண பாடலை பாட வேண்டும். டாஸ்கை எடுத்தவர் கடைசியாக பாட வேண்டும். யாருடைய பாடல் நன்றாக இருக்கிறதோ அவருக்கு கிப்ட் வவுச்சர் அன்பளிப்பாக கொடுக்கப்படும்’ கார்த்திகா டாஸ்கை படித்துவிட்டு மதனை பார்த்து சிரித்தாள். ‘சோ, ஜென்டில்மேன், வாங்க நீங்கதான் ஃபர்ஸ்ட் பாட போறீங்க, பாடுவீங்களா?’ சீனியர் எச்ஆர் கிண்டலாக கேட்க ‘ட்ரை பண்றேன்’ மதனும் ஒன்றும் தெரியாதவாறு மைக்கை கையில் வாங்கினான். கார்த்திகாவின் என்னம் மதன் எப்படியும் ஒரு நல்ல ஏஆர்ஆர் பாடலை பாடுவான், நாமும் ஒரு நல்ல பாடலை பாடி விடலாம் என்று எண்ணியிருந்தாள். ஆனால் நடந்ததோ அவள் எதிர்பார்த்ததற்கு முற்றிலும் வேறுபட்டது.

மைக்கை வாங்கிய மதன் எதிரில் நின்றிருந்த கார்த்திகாவை பார்த்து ‘ரெடி?’ என்று சைகையில் கேட்க கார்த்திகாவும் பெஸ்ட் ஆப் லக் என்று கை கட்டை விரலை உயர்த்தி காண்பித்தாள். சில நொடிகள் கடந்தன. அந்த ப்ளோரில் இருந்தவர்கள் கவனம் மதன் மீது திரும்பியது. அனைவரும் அமைதியாயினர். அப்போது கவிக்குயில் படத்திலிருந்து ‘சின்ன கண்ணன் அழைக்கிறான்’ பாடலை மதன் பாட ஆரம்பித்தான். இந்த பாடலின் பல்லவியை கேட்டதும் தனி அறையில் அமர்ந்திருந்த எஸ்விபி தன் அறையிலிருந்து வெளிவந்து மதனின் க்யுப்பிக்கல் அருகில் நின்றார். மேனேஜரில் இந்து வாட்ச்மேன் வரை அங்கிருந்த அனைவரும் மதனின் குரலாலும் பாடலின் ராகத்தாலும் கவரப்பட்டனர். அதுவரை கண்களை மூடி பாடிக்கொண்டிருந்த மதன் முதல் சரணத்தை முடித்து கண் திரக்க எதிரில் இருந்த கார்த்திகா அவனை பிரமிப்புடன் பார்த்துக் கொண்டிருப்பதை பார்த்து புன்னகையுடன் ‘நெஞ்சில் உள்ளாடும் ராகம் இது தானா கண்மணி ராதா’ என்று கார்த்திகாவை கேட்பதைப் போல் இரண்டாவது சரணத்தை பாட கார்த்திகா வெட்கத்தில் தன் வாயை கைகளால் மூடிக்கொண்டு மதன் பாடுவதை ரசித்தாள்.

பாடலை பாடி முடித்தவுடன் மதன் கார்த்திகாவை பார்த்து மாட்டிக்கொண்டாயா என்ற தோனியில் தன் வலது புருவத்தை இரு முறை உயர்த்தி காட்டி புன்னகைத்தான். மதனின் அருகில் இருந்த அனைவரும் மதனை ஆற தழுவி பாராட்டினர். கைதட்டல்கள் நின்றபாடில்லை. கார்த்திகாவும் அருகில் வந்து கை கொடுத்துவிட்டு காதில் ‘என்ன மாட்டி விட்டுட்டீங்க ல்ல,’ என்று கூறிவிட்டுத் தன் இடத்திற்கு வந்தாள். அப்போது மைக் வாங்கிய எஸ்விபி ‘இங்க இருக்கிறவங்க எத்தனை பேருக்கு இந்த பாட்ட கேட்டிருப்பீங்கன்னு எனக்கு தெரியாது, பட் இந்த பாடலை பாலமுரளி கிருஷ்ணாவுக்கு அப்புறம் இவ்வளவு அழகா பாடி இப்பதான் கேட்கிறேன். அதுவும் இளையராஜா இசை இல்லாமல் வெறும் ராகமும் குரலுமே இவ்வலவு நல்லா இருக்குன்னா, இளையராஜா சேர்ந்தார் அவ்வளவுதான், பென்டாஸ்டிக் மேன், ஆப்டர் எ லாங் டைம் இந்த பாட்ட உன் மூலமாக கேட்டேன், பியூட்டிஃபுல்’ எஸ்விபி மதனை மனதார பாராட்டினார். ஒருவழியாக கைதட்டல்கள் நின்றன. மைக் சீனியர் எச்ஆரிடம் வந்தவுடன் மதனை பார்த்து ‘மிஸ்டர் ஹல்க், நான் உங்கள சாதாரனமா எடை போட்டுட்டேன், ஒன் ஆப் மை ஃபேவரிட் இளையராஜா கிளாசிக்ஸ், தேங்க்யூ’ மதனுக்கு நன்றி தெரிவித்துவிட்டு கார்த்திகாவிடம் ‘ஸ்வீட்டி, ஹி ரெயிஸ்டு த பார் வெரி ஹய், வி ஹவ் டு பிரேக் இட், ப்ரூவ் தட் கேர்ள்ஸ் ஆர் த பெஸ்ட் இன் சிங்கிங்’ என்று கூறி மைக்கை கார்த்திகாவிடம் கொடுத்தார்.

மைக் கார்த்திகாவிடம் வந்தது. கார்த்திகாவும் எதிரில் நின்றிருந்த மதனை பார்த்து ‘ரெடி?’ என்று சைகையில் கேட்க மதனும் பெஸ்ட் ஆப் லக் என்று கை கட்டை விரலை உயர்த்தி கான்பித்தான். அந்த ப்ளோரில் இருந்தவர்கள் இப்போது கார்த்திகா மீது கவனம் செலுத்தினர். மவுனம் படர்ந்தது சில நொடிகள் ஆயிற்று. அப்போது தளபதி படத்திலிருந்து ‘யமுனை ஆற்றிலே ஈர காற்றிலே கண்ணனோடுதான் ஆட’ பாடல் ஒலித்தது. கார்த்திகா தன் கண்களை மூடிக்கொண்டு அங்கிருந்தவர்களை தன் குரல் மூலம் வேறொரு உலகிற்கு அழைத்து சென்று கொண்டிருந்தாள். அதுவும் ‘ஆயர்பாடியில் கண்ணன் இல்லையோ’ வரிகளை பாடி விட்டு ‘பாவம் ராதா’ வரிகளுக்கு வரும்போது எல்லோரும் தங்களை மறந்து தலை அசைத்து கொண்டிருந்தனர். கடைசி பல்லவியில் ஒவ்வொரு வரிக்கும் சிறு நொடிகள் இடைவெளி விட்டு பாடிய போது அங்கிருந்த அனைவரும் மெய்சிலிர்த்து போயினர்.

கார்த்திகா பாடலை பாடி முடித்து தன் கண்களை திறந்ததும் அந்த இடம் முழுக்க கரவொலியால் நிரம்பியது. கைதட்டல்கள் கூடவே கார்த்திகா கார்த்திகா என்ற முழக்கங்களும் அந்த கட்டிடத்தை அதிரச் செய்தது. க்யூப்பிக்கல் அருகில் இருந்தவர்கள் அனைவரும் கார்த்திகாவுக்கு கை கொடுத்து பாராட்டு தெரிவித்தனர். சீனியர் எச்ஆர் கார்த்திகாவின் நெற்றியில் முத்தமிட்டு பாராட்டினார். ஒருவழியாக எல்லோரும் அவளை விட்டு சற்று விலக அப்போதுதான் மதன் அவள் கண்களுக்கு தெரிந்தான். கார்த்திகா மதனை பார்த்தவுடன் சிரித்துக்கொண்டே இளையராஜா பாடல்களை என்னாலும் பாட முடியும் என்றபடி மதன் செய்ததைப் போல தன் வலது புருவத்தை இருமுறை உயர்த்தி காட்டினாள். கார்த்திகாவை பார்த்த மதன், என்னைவிட நீ திறமைசாலி என்பதை ஒப்புக் கொள்கிறேன் என்றபடி தன் கண்களை மூடித் திறந்து தலையை முன்புறம் சாய்த்து அசைத்தான். மைக் இப்போது எஸ்விபி கைக்கு வந்தது ‘திஸ் இஸ் எவன்லி, ஐ நெவர் எக்ஸ்பட்டட் டுடே ஐ வில் பி ட்ரீட்டட் வித் டூ இளையராஜா க்லாஸிக்ஸ் பேக் டு பேக், தேங்யூ’ எஸ்வீப்பி கார்த்திகாவை பாராட்டிவிட்டு மைக்கை எச்ஆரிடம் கொடுக்க ‘வாவ், ஜஸ்ட் வாவ், அப்படியே மதுராவிற்கு போய் வந்த மாதிரி இருக்கு, தேங்க்யூ’ எச்ஆர் கார்த்திகாவை மீண்டும் ஆறத்தழுவி பாராட்டினார்.

எச்ஆர் மீண்டும் மைக்கில் ‘இப்போது கிப்ட் கொடுக்க வேண்டிய நேரம். ரெண்டு பேரும் இப்படி பாடுவாங்கன்னு நான் நினைக்கல, வெரி டப் டு செலக்ட் ஒன் பிட்வீன் திஸ் டூ, பட் மதன் மூணு நிமிஷத்துல பண்ண அதே மேஜிக்கை கார்த்திகா ரெண்டு நிமிஷத்துக்குள்ள பண்ணிட்டா, அதனால இந்த கிப்ட் கார்த்திகாவிற்குத்தான்’ என்று கூறிவிட்டு கார்த்திகாவிடம் கிப்ட் வவுச்சர் கொடுத்தார். அதுவரை மதனுக்கு எதிரில் நின்றிருந்த கார்த்திகா பரிசு வாங்கிக்கொண்டு மதனுக்கு பக்கத்தில் வந்து நின்றாள். அந்த ப்ளோரில் இருந்த அனைவரும் எழுந்து நின்று இருவருக்கும் சேர்த்து கைதட்டி பாராட்டினர். இருவரும் தலை குனிந்து அனைவருக்கும் தங்கள் நன்றியை தெரிவித்தனர். எல்லோரும் தங்கள் வேலைகளை தொடர அவரவர் இடத்திற்கு திரும்பினர். இறுதியில் மீண்டும் மதனும் கார்த்திகாவும் மட்டும் மதனின் க்யூப்பிக்கல்லில் அமர்ந்தனர்.

‘கங்கிராட்ஸ்’ மதன் கார்த்திகாவை பார்த்து கூற ‘நியாயமா இது உங்களுக்கு வந்திருக்கனும், தட் சாங் வாஸ் அமேசிங், எப்படி உங்களுக்கு அந்த பாட்டு தெரியும்?’ கார்த்திகா கேட்க ‘ஒரு டை ஆர்டு இளையராஜா பேனுக்கும் எனக்கும் வாக்குவாதம் நடந்தப்ப அவர் இந்த பாட்ட பத்தி சொன்னார். பாட்ட கேட்டதுமே உள்ள ஏதோ பண்ணுச்சு, இந்த பாட்ட இளையராஜா மியூசிக்கில் நீங்க கேட்டிருக்கனும், அசந்து போயிடுவீங்க, இட்ஸ் எ டிவைன் கம்போசிஷன்’ மதன் அந்த பாடலை பற்றி கார்த்திகாவுக்கு எடுத்துரைத்தான். ‘நீங்க பாடும்போது அந்த வைப் இருந்தது, அதுவும் என்ன பாத்து அந்த வரிகளை நீங்க பாடும்போது உள்ள என்னவோ பண்ணுச்சு’ கார்த்திகா கூறும்போது அவள் முகம் வெட்கத்தில் சிவந்தது. ‘ஐ ஷுன்ட் ஆவ் டன் தட்’ மதன் கூற ‘தட்ஸ் ஓக்கே, ஐ டூ ஷுன்ட் லெட் மை எமோஷன்ஸ் அவுட், பீப்பில் மைட் ஹவ் நோட்டீஸ்டு ரைட்?’ கார்த்திகா கேட்க ‘மே பி, விடுங்க, பாத்துக்கலாம், ஆமா, நீங்கதான் இளையராஜா பாட்டு கேட்டதில்லையே அப்புறம் எப்படி யமுனை ஆற்றிலே வந்தது?’ மதன் கேட்க ‘என்னத்தான் ஏஆர்ஆர் ரசிகையா இருந்தாலும் தமிழ்நாட்டில் இருந்துகிட்டு இளையராஜா சாங்ஸ் கேட்காம இருக்க முடியுமா, எனக்கும் ஃபர்ஸ்ட் டைம் யமுனை ஆற்றிலே கேட்கும்போது உள்ள ஏதோ பண்ணுச்சு, இளையராஜா பாட்டு பாடனும்னு சொன்ன உடனே டக்குன்னு நியாபகம் வந்துச்சு, அதான் பாடிட்டேன். எப்படி இருந்தது நான் பாடினது?’ கார்த்திகா கேட்க ‘அதான் ப்ரைசே கொடுத்துட்டாங்களே அப்புறம் என்னங்க?’ மதன் கேட்க ‘அவங்க கெடுத்தது இருக்கட்டும் நீங்க சொல்லுங்க?’ கார்த்திகா கேட்க ‘உண்மையிலேயே கிருஷ்ணரோட லவர் கிருஷ்னர நெனச்சு பாடின மாதிரி இருந்துச்சு’ மதன் புன்னகையுடன் கார்த்திகாவின் கண்களை பார்க்க, கார்த்திகாவும் மதனின் கண்களை பார்த்து விட்டு வெட்கத்தில் சிரித்த படி கீழே குனிந்து கொண்டாள்.

‘எனிவே இட்ஸ் ஆல்ரெடி லேட். தேங்க்ஸ் பார் தட் சாங்’ கார்த்திகா கூற ‘தேங்க்ஸ் பார் தட் சாங் டூ, டேக் கேர்’ மதன் கூற கார்த்திகா அவன் க்யூப்பிக்கலை விட்டு விடைபெற்றாள். போகும் வழியில் பார்ப்பவர்கள் அவளை கை குலுக்கி வாழ்த்து தெரிவித்தபடி இருக்க அவளோ மதன் தன்னை பார்த்து பாடிய தருனத்தை நினைத்தபடி நடந்து சென்று கொண்டிருந்தாள்.

தொடரும்..

நக்கீரன்.ந [n.keeran.kpm at gmail dot com]

%d bloggers like this: