தன்னாலும் ஒண்ணாலும் மட்டும் வகுபடும் எண்களைப் பகா எண்கள் (Prime Numbers) என்கிறோம்.
சரி. இப்போ எதுக்கு அதைச் சொல்கிறீர்கள் என்கிறீர்களா? காரணம் இருக்கிறது.
மிகப் பெரிய பகா எண்களைக் கண்டறிவதும் ஒரு சாதனையாகவே இருந்து வருகிறது.
நமது எண் கையொப்பத்தில் (digital signature) மிகவும் தேவையானது மிகப் பெரிய பகா எண்கள் தான்.
மெர்சின்னி எண்கள் தான் மிகப் பெரிய பகா எண்களாக இருந்து வருகின்றன. அது என்ன மெர்சின்னி எண்கள்? அதாவது எந்த பகா எண்ணை 2^n - 1 என்று சொல்ல முடிகிறதோ அது மெர்சின்னி எண்ணாகும்.
மிகப் பெரிய பகா எண்களைக் கண்டறிந்தவர்கள்: (சரித்திர காலத்தில் அல்லது கணிணி காலத்துக்கு முன்)
கிபி 1588ல் பியாட்ரோ கடால்டி என்பவர் 2^19 - 1 = 524287 என்பது ஒரு பகா எண் என்று கண்டறிந்தார்.
1772ல் ஏயுலெர் 2^31 - 1 பகா எண் என்று கண்டறிந்தார். அதில் 10 எண்கள் (digits) இருந்தன.
1876ல் லூகாஸ் 2^127 - 1 பகா எண் என்று நிரூபித்தார். அதில் 39 எண்கள் இருந்தன.
1996ல் Great Internet Mersenne Prime Search (GIMPS) http://www.mersenne.org/prime.htm நிறுவப் பட்ட பின்னர் இந்தத் தேடல் வேட்கை மேலும் அதிகரித்தது. 10 மில்லியன் எண்கள் கொண்ட பகா எண்ணை முதலில் கண்டறிபவருக்கு $100000 பரிசு என்னும் பந்தயம் இன்னும் முறியடிக்கப் படவில்லை. (சொக்கா? பரிசு எவ்வளவு? ஒரு லட்சம் பொற்காசுகள் ;)).
டிசம்பர் 15, 2005ல் 2^30,402,457-1 ஒரு பகா எண் என்று நிரூபித்து இருக்கிறார்கள். இதில் 9,152,052 எண்கள் (!) இருக்கின்றன. கூடிய சீக்கிரத்தில் இந்த 10 மில்லியன் எண்கள் கொண்ட பகா எண் கண்டறியப்படும். இந்த எண்ணை ஒரு டெக்ஸ்ட் கோப்பில் வைத்து இந்த இணைப்பில் வைத்திருக்கிறார்கள் http://www.arsfoodcourt.com/43.txt இதன் நினைவக அளவே 9 MB என்றால் பார்த்துக் கொள்ளுங்கள்!
1963ல் கண்டறிந்த ஒரு பெரிய பகா எண்ணைப் பற்றிக் கொண்டாடி மகிழ்ந்திருக்கிறது அமெரிக்க தபால் துறை. அதன் ஸ்டாம்ப் ஒன்றைப் பாருங்கள்!
இடமிருந்து வலமோ, வலமிருந்து இடமோ எப்படி வாசித்தாலும் ஒரே பொருள் தரும் சொற்கள் இருக்கின்றன. உதாரணம் விகடகவி. இத்தகைய சொற்களை ஆங்கிலத்தில் Palindromic சொற்கள் என்றழைப்பார்கள்.
அது போல் பகா எண்களிலும் Palindromic எண்கள் இருக்கின்றனவா என்னும் ஆராய்ச்சியும் நடைபெற்றுக் கொண்டிருக்கின்றது!
உதாரணமாக, 11, 101, 131, 151, 181, 191, 313, 353, 373, 383, 727, 757, 787,... என்று அடுக்கிக் கொண்டே செல்லலாம்.
இதுவரை கண்டறிந்த எண்களிலேயே மிகப் பெரிய Palindromic பகா எண் ஜனவரி 2006ல் கண்டறியப்பட்டது.
அது 10^150006 + (7426247 * 10^75000) + 1
என்னும் மதிப்புடைய அது 150007 எண்களைக் கொண்டதாக இருந்தது.
ஆகஸ்டு 2007 வரை கண்டறியப்பட்டுள்ள மிகப் பெரிய பகா எண் 2^(32,582,657) − 1 ஆகும். இந்த எண் 98,08,358 இலக்கங்கள் கொண்டது. விரைவில் ஒரு கோடி இலக்கங்களைத் தொட வாழ்த்துகள். இதை Great Internet Mersenne Prime Search (GIMPS) நிறுவனம் தான் மத்திய மிசௌரி பல்கலைக் கழகத்துடன் இணைந்து கண்டறிந்துள்ளது.
இதைக் கண்டறிந்த விதம் ஆச்சரியத்துக்குரியது!
பல்கலைக் கழகத்தின் 700 கணினிகளை PrimeNet என்னும் பிணையத்துடன் இணைத்து, கிட்டத்தட்ட 70,000 கணினிகளின் நேரத்தை உலகெங்கும் உறிஞ்சி ஒரு மாய சூப்பர் கணினி (Virtual Super Computer) மூலம் 24 x 7 என்ற நேர அளவில், 22 டிரில்லியன் கணக்குகள் ஒரு விநாடி வீதம் (டெரா ப்ளாப்ஸ் - Teraflops) கண்டறிந்துள்ளனர். அப்படி இருந்தும் 9 மாதங்கள் ஆகியிருக்கின்றன என்றால் பார்த்துக்கொள்ளுங்கள்.
நம் சாதாரணக் கணினியில் கண்டறிவதாய் இருந்தால் குறைந்த பட்சம் 4000 ஆண்டுகள் ஆகியிருக்கும் என்றும் கணித்திருக்கின்றார்கள்.
மொத்த 98,08,358 இலக்கங்கள் கொண்ட அந்தப் பூதப் பகா எண் (!) இங்கே (http://www.mersenne.org/prime10.txt) இருக்கின்றது. மொத்தம் 9.35 எம்பி என்றால் பார்த்துக் கொள்ளுங்கள்.
இதில் இன்னுமொரு முக்கிய விஷயம், இந்த எண்ணைக் கண்டறிந்ததாகத் தனி மனிதர் யாரும் உரிமை கொண்டாட முடியாது என்பது தான். பல்லாயிரக்கணக்கான தன்னார்வக் கணித மேதைகள் பங்கு பெற்று இதைக் கண்டறிந்திருக்கின்றனர்.
லினக்ஸ் என்னும் ஒற்றை வார்த்தை கணினி உலகத்தின் மொத்த உடலையுமே ஒரு குலுக்கு குலுக்கிப் போட்ட வார்த்தை.
லினக்ஸ் ஒரு சகாப்தம். லினக்ஸ் ஒரு வரலாறு. லினக்ஸ் கணினிப் பாற்கடலில் பலர் கடைந்து வெளிக்கொணர்ந்த அமிர்தம். லினக்ஸ் ஒரு கொள்கை விதையின் விருட்சம். லினக்ஸ் ஒரு நெறிமுறையின் வெற்றி. இன்னும் என்னென்னவோ சொல்லிக் கொண்டே போகலாம்.
இம்மாறுபட்ட உலகில், முக்கியமாக கணினி யுகத்தில், சமதர்ம, சமத்துவ, சமுதாய எழுச்சியைக் கொண்டு வந்தது லினக்ஸ் என்றால் அது மிகையாகாது.
லினக்ஸ் என்றால் என்ன? அதை உருவாக்கியது யார்? கணினி யுகத்தில் அதன் பங்கு என்ன? அப்படி என்ன தான் சாதிக்க முடிந்தது லினக்ஸால்? பெரியோர் முதல் சிறியோர் வரை கணினி உபயோகிப்போர் யாவரும் தன் உதடுகளில் உச்சரிக்கும் படி லினக்ஸ் அப்படி என்ன தான் செய்து விட்டது?
லினக்ஸை உபயோகிப்பவன் என்ற முறையிலும், லினக்ஸை ரசிப்பவன் என்ற முறையிலும், தத்துவார்த்தமாகவும் சரி, அமைப்பு ரீதியாகவும் சரி, மனித குல ஆக்கத்தின் உச்சியைத் தொட்ட ஒரு விஷயத்தை நானும் அனுபவிப்பதன் மூலமும், என்னால் இயன்ற உதவிகளைச் செய்வதன் மூலமும் நம்மாலும் அத்தகைய மனித குல ஆக்கத்தின் உச்சியை அடைய முடியும் என்ற ஆசையிலும் லினக்ஸ் - தவழ்ந்து வந்த பாதை என்னும் இச்சிறு பகுதியை எல்லாம் வல்ல இறையை வணங்கி எழுத ஆரம்பிக்கின்றேன்.
லினக்ஸ் தவழ்ந்து வந்த பாதை எப்படி இருந்தது?
இன்றைய கணிப்பொறிகள் பெரிதிலும் பெரிதாயும், சிறிதிலும் சிறிதாயும் வளர்ந்து கொண்டிருக்கின்றன என்று நாம் அறிவோம். சூப்பர் கணினிகளில் இருந்து இன்று ஒவ்வொருவர் கையிலும் தவழும் அலைபேசி வரை அனைத்துமே கணிப்பொறிகளின் சாம்ராஜ்யமே!
மாபெரும் வழங்கிகளாகட்டும், கையடக்க இன்னிசைக் கருவியாகட்டும், டிவிடியில் இருந்து இயங்கக் கூடிய தொழில்நுட்பமாகட்டும், பென் டிரைவ் எனப்படும் குறு வன் தட்டாகட்டும், பழங்கால பிளாப்பியில் இருந்து இயங்குவதாகட்டும் அல்லது அவற்றை இயக்குவதாகட்டும் அனைத்திலும் தன் கால்களைப் பதித்த அழகிய பென்குயின் பற்றிய கதை இது.
விக்கிபீடியாவிலிருந்து வலைப்பூக்கள் வரை லினக்ஸ் பற்றி பலரும் எழுதியதைக் காண்கையில் இன்னும் எழுத என்ன இருக்கின்றது என்று தோன்றுகின்றது. இருந்தும், அவை யனைத்தின் தொகுப்பாக, என் வார்த்தைகளில் லினக்ஸ் பற்றித் தரலாம் என்ற எண்ணத்தில் விளைந்ததே லினக்ஸ் - தவழ்ந்து வந்த பாதை.
திரு ராஜா வனஜ் அவர்கள் தன் வலைப்பூவில் இவ்வாறு மணக்க வைக்கின்றார். - பணம் இன்றி ஒரு அணுவும் அசையாது. - இலவசங்களெல்லாம் தரக்குறைவானது / நம்பகத்தன்மையற்றது - தனிப்பட்ட பொருள் ஆதாயம் இன்றி உற்பத்தி செய்யப் படும் பொருள் மட்டரகமானது - கூட்டு முயற்சியில் உருவாகும் பொருள் உற்பத்தி என்பது கற்பனையில் தான் சாத்தியம்
இதையெல்லாம் தாண்டி சில விஷயங்கள் உண்டு என்பது லினக்ஸ் GNU/GPL ன் எழுச்சியில் இருந்து நமக்குத் தெளிவாகிறது. மனிதனின் கிரியேட்டிவிட்டி, சிந்தனைவளம், கற்பனைத் திறன் போன்றவை தனிப்பட்ட சுயநலம் என்னும் கூண்டில் இருந்து விடுதலையடையும் போது வியக்கத்தக்க நிகழ்வுகளை நடத்திக் காட்டுகிறது.
...
மதம், மொழி, இனம், சாதி, நாடு என்று பல்வேறு எல்லைகளையும் தடைகளையும் தாண்டி இன்று லினக்ஸ் டெவலப்மென்ட் என்பது சாத்தியமாகியுள்ளது. அத்தனை கட்டுகளையும் கடந்த ஒரு சமுதாயம் சாத்தியமாகியுள்ளதை கண்கூடாகப் பார்க்கிறோம்.
...
இன்று சந்தையில் லினக்ஸ் எதிர்கொள்ளும் சவால்கள் கூட வழக்கமான பிற்போக்குத்தனமான அச்சங்களும் தேவையற்ற அய்யங்களும் தான். குறிப்பாக லினக்ஸை யார் சப்போர்ட் செய்வார்கள்? ஏதாவது பிரச்சினை என்றால் யாரிடம் போவது? என்பது மிக முக்கியமான பயம்! இதற்கு சுலபமான பதில்-
நீங்கள் இனியும் ரொம்ப நாட்களுக்கு இன்னொருவன் காலை நக்கிக் கொண்டிருக்க முடியாது. சுயமான அறிவை வளர்த்தே ஆக வேண்டும். இன்று ஈராக் மேலும் ஈரான் மேலும் பொருளாதாரத் தடை போட்டது போல நாளை நம் நாட்டின் மேல் தடை போட்டால் மைக்ரோசாப்டும் சன் மைக்ரோ சிஸ்டமும் கூடாரத்தை காலி செய்து விட்டு போய் விடுவான்கள். அப்போது நீங்கள் யாரிடம் போய் கையேந்தி நிற்பீர்கள்? தொழில்நுட்பத்தில் கூட தன்னிறைவான சூழல் கட்டாயம் தேவை. அதற்கு இதுவும் ஒரு துவக்கம்.. அதுவும் போக இன்று வலையில் இலவசமாகவே இதன் நுணுக்கங்களைச் சொல்லித் தரும் ஆன்லைன் கம்யூனிட்டிகள் உண்டு. பிரச்சினை உங்கள் சோம்பேரித்தனமும் அடுத்தவன் வாயை பார்த்துக் கொண்டு நிற்கும் வழக்கமான அடிமைப் புத்தியும் தான்!
இன்றைக்குக் கல்வி என்பது வயிற்றை நிரப்பிக் கொள்ள வழி சொல்லித் தரும் ஒரு மீடியம் என்றாகி விட்டதால், இந்த அடிமைப் புத்தியில் இருந்து மீண்டெழுவது கொஞ்சம் சவாலான காரியம் தான். கொஞ்சமாவது சிந்திக்கும் திறன் கொண்டவர்கள் இந்தக் காரியத்தை முன்னெடுக்க வேண்டும். இன்று பொருளாதாரம் என்பது கணிணித் தொழில்நுட்பம் சார்ந்து வளர்ந்து வரும் சூழலில் பொருளாதாரத் தன்னிறைவு என்பதும் தொழில்நுட்பத் தன்னிறைவு என்பதும் ஒரே நாணயத்தின் இரண்டு பக்கங்கள் போன்றது.
1991. கணிப்பொறிகளின் வன்பொருட்கள் ஆங்காங்கே தறிகெட்டு பல தரங்களில், அளவுகளில், வேகங்களில் உற்பத்தி செய்யப்பட்டுக் கொண்டிருந்த காலகட்டம். 21ம் நூற்றாண்டு கணினியுகம் என்று தீர்மானித்த அந்த பத்தாண்டுகளின் ஆரம்பம். கணினி சிப்பங்கள், வன் தட்டுகள், நினைவக அட்டைகள், பல்லூடகங்கள், விசைப் பலகையிலிருந்து சுட்(ண்)டெலி வரை அனைத்தும் பல வடிவங்களில், பல அளவுகளில், பல தொழில்நுட்பங்களின் மட்டைகளால் அடிபட்டு, நேர்த்தியான பந்தாக உருமாறிக் கொண்டிருந்த காலகட்டம்.
ஒரு பக்கம் கணிணிகளின் உடல் என்று வர்ணிக்கப்படும் வன்பொருட்கள் வளர்ந்து வந்த வேகத்துக்கு, அவற்றின் உயிர் அல்லது அவற்றின் உயிரை வழிநடத்தும் அறிவு அல்லது மனம் என்று சொல்லப்படும் மென்பொருட்கள் ஈடு கொடுத்தனவா என்றால் அது மிகப்பெரிய கேள்விக் குறியாகவே இருந்தது.
அதற்கு மிக முக்கியக் காரணம் இயங்குதளங்கள். அவை உருவாக்கிய மாபெரும் வெற்றிடத்தை நிரப்ப வேண்டிய கட்டாயத்தில் இருந்தது கணினி உலகம்.
DOS என்றழைக்கப்பட்ட இயங்குதளம் பில் கேட்ஸால் சந்தைப்படுத்தப்பட்டு புகழுச்சியில் இருந்தது. தனிக்கணினி உபயோகிப்பாளர்கள் (PC) வேறு வாய்ப்பே இன்றி டாஸ் இயங்குதளத்தை உபயோகப்படுத்திக் கொண்டிருந்தனர். அப்போது வேறு இயங்கு தளங்களே இல்லையா? என்று கேட்டால், இருந்தன. ஆப்பிள் மேக் இருந்தது. ஆனால், அதன் விலை மிக அதிகமாக இருந்தது. அனைவரும் பயன்படுத்த முடியாவண்ணம் இருந்தது. மேலும், டாஸ் இயங்கு தளத்தை யாரும் எளிதில் நகலெடுத்து இலவசமாகவே உபயோகப்படுத்த முடியும் என்றிருந்த போது யாரும் ஏன் விலைகொடுத்து வேறு இயங்கு தளத்தை வாங்கப் போகின்றார்கள்?
இன்னொரு உலகமும் இயங்கி வந்தது அதன் பெயர் யுனிக்ஸ். யுனிக்ஸ் இயங்குதளம் பெரிய வழங்கிகள், பெரிய நிறுவனங்களின் கணினிகளில் உபயோகப்படுத்தப்பட்டு வந்தது. அது விலைப்பட்டியலில் முதல் இடத்தில் இருந்த காலமும் உண்டு. அவ்வளவு பெரிய விலைக்கு அஞ்சி தனிக்கணினியாளர்கள் அதன் பக்கம் கூட நெருங்க வில்லை என்பதே உண்மை. இத்தனைக்கும் யுனிக்ஸின் மூல வரிகள் பெல் லேப்ஸின் ஆதரவில் பல பல்கலைக்கழகங்களில் பாடங்களாய் நடத்தப்பட்டு வந்தது என்பது குறிப்பிடத்தக்கது.
இந்தச் சூழ்நிலையில் தான் மினிக்ஸ் (Minix) என்னும் இயங்குதளம் உருவானது. இதை உருவாக்கியவர் Andrew S. Tanenbaum.
ஆண்டி (Andy) என்று செல்லமாக அழைக்கப்பட்டவரும், ஆம்ஸ்டெர்டாமில் ஒரு பல்கலைக்கழகத்தில் கணினித்துறை விரிவுரையாளராகவும் பணியாற்றிய Andrew S. Tanenbaum, 1987ல் மாணவர்களுக்குக் கற்றுத் தருவதற்காக உருவாக்கிய ஒரு திறப்பு மூல இயங்குதள மென்பொருளே மினிக்ஸ். (Mini-Unix) என்ற பொருள் படும் படி அதன் பெயரை வைத்திருந்தார் அவர். அது அப்போது உலகெங்கும் புழக்கத்தில் இருந்த 8086 சிப்பங்களுக்காக எழுதப்பட்ட மென்பொருள்.
அது ஒன்றும் அத்தனை சிறப்பான இயங்குதளம் அன்று. ஆயினும் அதன் மூல வரிகள் உலகெங்கும் கிடைத்தன. யார் வேண்டுமானாலும் அதன் 12000 வரிகளையும் பெறும் வாய்ப்பு அவரது 'Operating Systems: Design and Implementation' என்னும் புத்தகம் வாயிலாகக் கிடைத்தது. அது மொத்தமும் சி மொழியிலும் அசெம்பிளி மொழியிலும் இருந்தது. அவரது அழகிய சொல்லாற்றலால், கணினித்துறை போகும் பாதை குறித்தும், தன் மென்பொருள் இயங்குதளத்தில் மாற்றங்களை தகுந்த வாறு ஏற்படுத்துவதன் மூலம் என்னவெல்லாம் சாதிக்க இயலும் என்பது குறித்தும் அவர் குறித்து வைத்திருந்த விஷயங்கள் அனைத்தும் அன்றைய கணினித்துறை பயின்ற இளைஞர்கள் அனைவருக்கும் ஒரு உத்வேகமும், வழிகாட்டுதலும் தந்தது என்றால் அது மிகையாகாது.
அப்படிப்பட்டவர்களில் ஒருவர் தான் லினஸ் பெனிடிக்ட் டோர்வல்ட்ஸ் (Linus Benedict Torvalds).
1969, டிசம்பர் 28ம் தேதி ஒரு குளிர்கால இரவில், பின்லாந்தின் ஹெல்சின்க்கியில் திரு நீல்ஸ் டோட்வால்ட்ஸ்க்கும் (Nils Torvalds) திருமதி அன்னா டோர்வால்ட்ஸ்க்கும் (Anna Torvalds) பிறந்தவர் லினஸ்.
ஹெல்சிக்கி பல்கலைக்கழகத்தில் 1988 முதல் 1996 வரை பயின்ற லினஸ், 1991ல் துடிப்பு மிக்க ஒரு இளைஞர். மணல் நிற முடி கொண்ட அந்த அழகு மைந்தர் கணினியில் மென்பொருள் எல்லைகளைத் தொட நினைக்கையில் அவருக்குத் தடையாய் இருந்தது அதன் இயங்கு தள மென்பொருள். மினிக்ஸ் அப்போது புழக்கத்தில் இருந்த போதும் அது ஒரு மாணவர்களின் இயங்குதளமாய் இருந்ததன்றி அதை அனைவரும் முக்கியமாகத் தொழில்துறையில் உபயோகிக்கும் வண்ணம் இல்லை.
இந்தச் சமயத்தில் இன்னொரு பெருந்தகை பற்றியும் குறிப்பிட வேண்டும்.
ரிச்சர்ட் ஸ்டால்மேன் பற்றி நாம் அறிந்து கொள்ள வேண்டியது நிறைய இருக்கின்றது.
1953ல் மண்ணுக்கு வந்த இவர் (இவரே ஒரு தனி சரித்திரம்!), 1988 வாக்கில் உருவாக்கிய இயக்கம் க்னூ என்று அனைவரும் அழைக்கும் GNU அமைப்பாகும்.
இது தான் க்னூவின் இலச்சினை!
இதன் நோக்கங்களாவன:
* இலக்கவியல் விடுதலை - Digital freedom * இலவச மென்பொருள் சித்தாந்தம் - Free software philosophy * இலவச மென்பொருள் வரையறை - Free Software Definition * இலவச மென்பொருட்களின் வரலாறு - History of free software
பில்கேட்ஸ் அவர்களால் எழுதப்பட்ட ஒத்த சிந்தனையாளர்களுக்கான திறந்த கடிதமும் இதற்கு ஊக்குவித்தது என்றால் அது மிகையாகாது! மைக்ரோசாப்டின் பேசிக் மென்பொருளைச் சில ஆர்வலர்கள் (70 பேர்!) நகலெடுத்து ஒரு கூட்டத்தின் போது இலவசமாய் பரிமாறிக் கொண்டனர். அதனால் வருத்தமுற்ற கேட்ஸ் அவர்களுக்கு எழுதிய கடிதம் அது! 1976, பிப்ரவரி 3ம் தேதியிட்ட அந்தக் கடிதமும் க்னூ உருவாக ஒரு காரணம் என்பர்!
இது தமக்கிடப்பட்ட சவாலாகவும் கருதினர் சிலர்! இன்னும் சிலரோ பில்கேட்ஸை இன்னும் வெறுப்படையச் செய்ய இன்னும் பல நகலெடுத்தனர் என்பதும் உண்மை!
நாம் ஏன் மைக்ரோசாப்டின் அல்லது எந்த ஒரு நிறுவனத்தின் மென்பொருளையும் சார்ந்திருக்க வேண்டும்? இலவசமாகவே ஒரு இயங்குதளம் இருந்தால் யாரிடமும் இப்படி பேச்சு வாங்க வேண்டியதில்லையே என்று எண்ணிய ரிச்சர்ட் ஸ்டால்மேன், க்னூ இயங்குதளம் என்ற பெயரில் இயங்குதளம் அமைக்கக் கனவு கொண்டார். 1983லேயே இயக்கமும் ஆரம்பித்தார்!
GNU என்பதன் விரிவாக்கம் (GNU is NOT Unix) ஆகும்!
இத்திட்டம் யுனிக்ஸ் இயக்குதளத்தை ஒத்த திறந்த ஆணைமூல இயக்குதளம் ஒன்றினை உருவாக்குதலை நோக்கமாக கொண்டிருந்தது.
இயக்கம் ஆரம்பித்ததோடு நில்லாமல் GCC (சி மொழி தொகுப்பி) என்னும் மிக அருமையான மென்பொருள் எழுதி அதை இன்னும் பயன்படத்தக்க வகையில் அப்போதே எழுதியிருப்பது ஆச்சரியமே!
1990ல் க்னூ செயல் திட்டம் ஏறத்தாழ நிறைவடையும் நிலையை அண்மித்தது. ஓர் இயக்குதளத்துக்கு தேவையான செயலிகள், காம்பைலர்கள், உரைத்தொகுப்பிகள், யுனிக்சை ஒத்த ஆணைமுகப்பு (command shell) போன்றவை அனைத்தும் செய்து முடிக்கப்பட்டுவிட்டன. மிக அடிப்படை நிலையில் இருக்கும் கரு (கருனி) ( kernel) ஒன்றை உருவாக்கும் பணி மட்டுமே முற்றுப்பெறவில்லை. அப்போது GNU Hurd என்ற கரு (கருனி) வடிவமைக்கப்பட்டவண்ணமிருந்தாலும், அது போதாததாகவே உணரப்பட்டது.
ரிச்சர்டின் தத்துவம் என்னவென்றால், ஒரு மென்பொருள் இலவசமாகப் பகிர்ந்து கொள்ளத்தக்கதாகவும், நகலெடுக்கத்தக்கதாகவும் இருந்தால் மட்டுமே அதிலிருந்து சிறப்பான செயல்பாடுகளைப் பெற முடியும் என்பதே அது.
1991ம் ஆண்டு, ஆகஸ்டு மாதம் 25ம் தேதி வரலாற்றுச் சிறப்பு மிக்க கீழ்க்கண்ட பதிவு, மினிக்ஸ் செய்திக்குழுமத்துக்கு லினஸால் பதியப்பெற்றது.
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI> Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki
Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready.I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system(due to practical reasons) among other things). I've currently ported bash(1.08) and gcc(1.40),and things seem to work.This implies that I'll get something practical within a few months, andI'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-) Linus (torvalds@kruuna.helsinki.fi) PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.
தான் மினிக்ஸ் போன்றே, மினிக்ஸ் மூல வரிகளின்றி, GCC மொழியில் தொகுக்கக்கூடிய ஒரு இலவச இயங்குதளத்தை உருவாககிக் கொண்டிருப்பதாகவும் கூடிய விரைவில் வெளியிடப் போவதாகவும் இந்த உலகுக்கு அறிவித்த அற்புதப் பதிவு இது!
இந்தப் பதிவிலிருந்து என்ன தெரிகின்றது? லினஸுக்கே அவரது புதிய இயங்குதளத்தில் அவ்வளவாக நம்பிக்கை இல்லை என்று தானே?
அது சரி. இத்தனை தன்னடக்கமாய் கைகளைக் கட்டிக் கொண்டு சிரித்துக் கொண்டிருக்கும் மனிதரிடமிருந்து வேறெப்படி கடிதம் வந்திருக்கக் கூடும்?
அதற்கடுத்த மாதத்தில் அவரே பதிவிட்ட வரலாற்றுப் பதிவு இது.
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: Free minix-like kernel sources for 386-AT Message-ID: <1991Oct5.054106.4647@klaava.Helsinki.FI> Date: 5 Oct 91 05:41:06 GMT Organization: University of Helsinki Do you pine for the nice days of minix-1.1, when men were men and wrote their own device drivers? Are you without a nice project and just dying to cut your teeth on a OS you can try to modify for your needs? Are you finding it frustrating when everything works on minix? No more all-nighters to get a nifty program working? Then this post might be just for you :-) As I mentioned a month(?)ago, I'm working on a free version of a minix-lookalike for AT-386 computers. It has finally reached the stage where it's even usable (though may not be depending on what you want), and I am willing to put out the sources for wider distribution. It is just version 0.02 (+1 (very small) patch already), but I've successfully run bash/gcc/gnu-make/gnu-sed/compress etc under it. Sources for this pet project of mine can be found at nic.funet.fi (128.214.6.100) in the directory /pub/OS/Linux. The directory also contains some README-file and a couple of binaries to work under linux (bash, update and gcc, what more can you ask for :-). Full kernel source is provided, as no minix code has been used. Library sources are only partially free, so that cannot be distributed currently. The system is able to compile "as-is" and has been known to work. Heh. Sources to the binaries (bash and gcc) can be found at the same place in /pub/gnu.
அதில் தன் இலவச குறு இயங்குதளத்துக்கு அவர் இட்ட பெயர் தான் லினக்ஸ். அந்தச் சிறிய விதை வேரூன்றி உலகெங்கிலும் தன் அகலமான விழுதினை ஆழமாகப் பதிக்கும் ஆலமரமாக மாறும் என்றாவது நினைத்திருப்பாரா லினஸ் அப்போது?
நிச்சயமாக இல்லை என்றே சொல்லலாம்.
அடுத்த சில வாரங்களிலேயே லினக்ஸ் 0.03 பதிப்பு வெளியாயிற்று. டிசம்பர் மாத்திலேயே (இரண்டே மாதங்களில்) 0.10 பதிப்பு வெளி வந்தது. இருந்த போதிலும் லினக்ஸ் அடிப்படை வடிவிலேயே இருந்து வந்தது. அப்போதைய AT வன் தட்டில் மட்டுமே இயங்க முடிந்தது ஒரு குறைபாடாக இருந்தது. 0.11 பதிப்பு பல மொழிகளுக்கான வசதி, பிளாப்பி டிரைவர் மென்பொருள், நவீன திரை உத்திகள் (VGA,EGA,HGA) ஆகியவற்றைக் கொண்டிருந்த்து.
0.12 என்றிருந்த பதிப்பு எண், மாயாஜாலம் போல் 0.95 மற்றும் 0.96 என்று மாறி கூடிய விரைவில் உலகெங்கும் பிரதியெடுக்கப்பட்டு பறந்தது!
துரோணர் ஏகலைவனைக் கடிதம் மூலம் சந்திக்கும் வாய்ப்பும் அமைந்தது. ஆண்டி லினஸுக்கு எழுதிய கடிதத்தில் இவ்வாறு குறிப்பிட்டிருந்தார்!
"I still maintain the point that designing a monolithic kernel in 1991 is a fundamental error. Be thankful you are not my student. You would not get a high grade for such a design :-)" (Andrew Tanenbaum to Linus Torvalds)
அதில், "நீங்கள் என்னுடைய மாணாக்கனாக இல்லாதிருந்தது ஒரு வகையில் நல்லதே. அனைத்து விஷயங்களும் பொருந்திய இத்தகைய ஒரு கரு மென்பொருளைக் கொள்கையளவில் கூட என் மனம் ஏற்றுக் கொள்ளாது. என்னிடம் படித்திருந்தால் நீங்கள் தேர்வடைந்திருக்க மாட்டீர்கள்" என்று குறிப்பிட்டுள்ளார்! மேலும் "லினக்ஸ் பழைமையானது. புதுமையில்லாதது" என்றும் குறிப்பிட்டிருந்தார்.
அது லினஸுக்கு மனத்தளர்வை ஏற்படுத்தியிருக்கக் கூடும்! அவர் சாதாரணமான மாணவராய் இருந்தால்!
ஆனால், தான் கொண்ட லட்சியத்தில் உறுதியாயிருந்த லினஸ் கூடிய விரைவிலேயே தனது கூட்டமைப்பின் சாதனையால் நிரூபித்தார்.
பதிலடியும் கொடுத்தார்!
Your job is being a professor and researcher: That's one hell of a good excuse for some of the brain-damages of minix. (Linus Torvalds to Andrew Tanenbaum)
மினிக்ஸின் பல குறைபாடுகளுக்கு நீங்கள் விரிவுரையாளராகவும், ஆராய்ச்சியாளராகவும் இருப்பதே மன்னிக்கத்தக்கதாகிவிட்டது என்ற பொருள் படும் படி எழுதியிருந்தார்.
சரி, அதையெல்லாம் விடுவோம்!
முதலில் லினக்ஸ் கூடாரத்தில் நூறு பேர் இணைந்தனர். பின் ஆயிரமாயினர். பின் லட்சங்களாயினர்!
இன்னும் என்னென்னவெல்லாம் நடந்தது? கொஞ்சம் கொஞ்சமாய்க் காண்போம்!
லினஸ் எத்தனை எளிமையானவர் என்பதைக் காண அவரது வலைத்தளத்துக்குச் சென்று காண்போமா?
இயங்குதளம் என்றால் என்ன? அது ஏன் தேவை என்ற கேள்வி இங்கு வரக்கூடும்.
ஒரு கணினியில் இயங்குதளமானது குறைந்தபட்சம் கீழ்க்கண்ட பணிகளை இணைந்து செய்ய வேண்டும். பெயருக்கேற்றாற்போல் கணினி வெற்றிகரமாக இயங்குவதற்குப் போடப்பட்ட ஒரு தளமாக இருக்க வேண்டும். மென்பொருள், பயனர், வன்பொருள் ஆகியவற்றை இணைக்கும் பாலமாகவும் இருக்க வேண்டும்.
சரி, ஒரு இயங்குதளம் என்னவெல்லாம் செய்ய வேண்டும் தெரியுமா? 1. செயல் நிர்வாகம் (Process Management) -
இயங்குதளமானது ஒரு கணினியின் செயல்பாடுகளைத் திறம்பட நிர்வாகம் செய்ய வேண்டும். ஒரு கணினி பல செயல்கள் செய்ய வேண்டிய கருவியாகும். (உ-ம்: திரையில் செய்தி காட்டுதல், விசைப்பலகையிலிருந்து உள்ளீடு பெறுதல், வன் தட்டிலிருந்து தகவல் கொணர்தல், அல்லது சேமித்தல்). இச்செயல்களில் எவற்றிற்கு முன்னுரிமை கொடுக்கவேண்டும், (Preference) எவற்றைப் பின்புலத்திலேயே தொடரச் செய்யலாம் (Background process) என்றெல்லாம் தீர்மானிக்க வேண்டியது ஒரு இயங்குதளத்தின் கடமை.
இது தவிர, ஒரு பயனர் ஒரே நேரத்தில் பல செயலிகளைத் துவக்கி இருக்கலாம். அவற்றையும் திறம்பட நிர்வகிக்க வேண்டியது ஒரு இயங்குதளம். தற்போது வரும் கணினிகள் இரண்டுக்கும் மேற்பட்ட மையச் செயற் சிப்பங்களைக் கொண்டுள்ளது (CPU). இவை ஒரே நேரத்தில் வெவ்வேறு செயல்கள் செய்யத் தக்கவை. அவற்றிற்குத் தேவையான கட்டளைகளைத் தரும் வல்லமை இயங்குதளத்திற்கு இருக்க வேண்டும்.
2. நினைவக மேலாண்மை:
கணினியில் இருவகை நினைவகங்கள் இருப்பது அனைவரும் அறிந்ததே. மின்சாரத்தைத் துண்டித்ததும் மறந்த் விடும் அடிப்படை நினைவகத்தில் தான் அனைத்து மென்பொருள் கட்டளைகளும், அவை கணக்கிட உதவும் தகவல்களும் வசதியாக வைத்து அனைத்து வன்பொருட்களுக்கும் பரிமாறப்படுகின்றன. அவை சரியான முறையில் சரியான வன்பொருட்களுக்குச் செல்கின்றனவா என்று நிர்வகிக்க வேண்டியது இயங்குதளத்தின் கடமையாகும்.
வன் தட்டு, மென் தட்டு (பிளாப்பி), குறுந்தட்டு, பேனா நினைவகங்கள் என இருக்கும் இரண்டாம் கட்ட நினைவகங்களில் இருந்தும், தேவையான தகவல்களைத் தேவையான நேரத்தில் எடுக்கவும், அதைச் சரியாக மீண்டும் சேமிக்கவும் இயங்குதளம் உதவ வேண்டும். உதாரணமாக, நாம் ஒரு பெரிய படத்தை வரைந்து கொண்டே, ஒரு புதிய திரைப்படப் பாடலும் கேட்டுக் கொண்டிருக்கலாம். பாடல் பாடச்செய்யும் மென்பொருளுக்கு இசைக் கோப்பும், படம் வரையும் மென்பொருளுக்கு படம் சம்பந்தப்பட்ட கோப்பும் அனுப்பப்படவேண்டும்! மாற்றி அனுப்பினால் என்னாகும் என்று யோசித்துப் பாருங்கள்!
மொத்த அடிப்படை நினைவகம் மிகக் குறைவாகவே இருக்கும். காரணம் அது வேகமாக இருக்க வேண்டும். வேகமாக வேகமாக செலவும் அதிகரிக்கும். எனவே, அடிப்படை நினைவகம் மொத்த வன் தட்டு நினைவகத்தைக் காட்டிலும் மிகக் குறைவாகவே இருக்கும். எனவே தேவைப்படும் போதெல்லாம் மாற்று நினைவகம் (Swap Memory) வன் தட்டில் இருந்து எடுத்து உபயோகிக்கும் திறமான மாய நினைவகம் (Virtual Memory) என்றழைக்கப்படும் தொழில்நுட்பத்தையும் இயங்குதளம் கொண்டிருக்க வேண்டும்.
3. கோப்பு அமைப்பு:
0,1 இவற்றின் அடிப்படையிலேயே கட்டளைகளும், தகவல்களும் கணினியில் இயங்குகின்றன என்பது நாம் அறிந்ததே. அவற்றை முறைப்படுத்திச் சேமிக்க கோப்பு அமைப்பு (File systems) சிறந்த முறையில் இருந்தால் தான் ஒரு இயங்குதளம் தேவைப்படும் நேரத்தில் தேவைப்படும் கோப்பை செம்மையாக எடுத்துத் தர ஏதுவாக இருக்கும். இதுவும் ஒரு முக்கியமான பணியாகும்.
4. வன்பொருட்கள் நிர்வாகம்:
இது ஒரு சவால்கள் நிறைந்த பணியாகும். தற்போது கணினியில் எதைத் தான் இணைக்கலாம் என்ற வரையறை இல்லாமல் போயிற்று. இன்னும் சில காலத்தில் முடி காய வைக்கும் கருவிக்குக் கூட USB செருகி வந்து விடக் கூடும்! காலத்துக்குத் தக்கவாறு குளிர்ந்த காற்றோ, சூடான காற்றோ வரவைக்கக் கூடும்.
ஒலி வாங்கி, ஒலி பெருக்கி, வலையமைப்பு இடைமுக அட்டை, சமிக்ஞை மாற்றி (modem), மனிதரிடைமுகக் கருவிகள் (Human Interface Devices), கம்பியில்லாத் தொழில்நுட்ப வன்பொருட்கள், சுட்டெலிகள், விளையாட்டுக் குச்சிகள் (Joy stick), அச்சிடும் இயந்திரங்கள், புகைப்படக் கருவிகள், அசைபடக் கருவிகள், இசையமைப்புக் கருவிகள், இசை சேமிக்கும் கருவிகள், அலைபேசிகள், படம் வருடிகள், தொடுதிரைகள் என்று நான் இங்கு பட்டியலிட்டிருப்பது பத்து சதவீதம் கூட இருக்காது.
யூ.எஸ்.பி. வழியாக அதிகபட்சம் 256 வகையான கருவிகளை இணைக்கலாமாம். இன்னும் தீக்கம்பி (Firewire) முறைகளின் மூலமெல்லாம் இன்னும் அதிகமான கருவிகளை இணைக்க முடியும் என்று நினைக்கின்றேன்.
நிற்க.
இவையனைத்தையும் செருகியவுடன், இது இந்தக் கருவி தான். இந்தப் பயன்பாட்டுக்காகத் தான் செருகப்பட்டிருக்கின்றது என்று உடனே இயங்குதளம் கண்டறிந்து செயல்படவேண்டும். என்ன தான் 0,1 மூலமே தகவல்களை அனுப்பிப் பெற்றாலும், அவற்றின் தொழில்நுட்பத்துக்குத் தக்கவாறு கருவி வகையமைப்பு (Device Driver) இருக்க வேண்டும். அப்போது தான் இயங்குதளமானது அதன் மூலமாக தொழில்நுட்பப் புதுமைகளை ஏற்றுக் கொள்ள இயலும்.
5. பயனர் இடைமுகம்: (User Interface)
பயனர் இடைமுகம் என்பது மிக முக்கியமான ஒரு பணியாகும். இடைமுகம் என்பது வன்பொருள் மற்றும் மென்பொருளுக்கும் பயனருக்கும் இடையே செயல்படும் பாலமாகும்.
முன்பெல்லாம் பயனர் இடைமுகம் வெறும் வார்த்தைகளாகத் தட்டச்சு செய்து உள்ளீடு செய்யவும், திரையில் வெளிச்சப் புள்ளிகளில் எழுத்துக்களைக் காட்டியும் இருந்து வந்தது. (Text Based)
பின்பு சித்திரப் பயனர் இடைமுகம் (Graphical User Interface) வந்த பின்னர், சுட்டெலி மூலம் எளிதில் சிறு படங்களைச் சொடுக்கித் தங்கள் வேலைகளைச் செய்ய முடிந்தது. மேலும், எழுத்துக்கள் மட்டுமின்றி, வரைபடங்கள், அசைபடங்கள், இசை என்று அனைத்தின் மூலமும் தகவல்களைப் பரிமாறிக் கொள்ளும் ஆச்சரியப் பெட்டியாகக் கணினி மாற முடிந்தது.
எனவே ஒரு இயங்குதளமானது இவ்விரண்டு (எழுத்து மற்றும் சித்திர) பயனர் இடைமுகத்திலும் பயனருக்கு எளிமையாக இருந்தால் அது வெற்றி பெறும் என்பதில் ஐயமில்லை தானே?
6. பாதுகாப்பு மேலாண்மை: (Security Management)
இதைப்பற்றி எழுதிக் கொண்டே போகலாம்! உங்களுக்கே அலுத்துப் போகும். வைரஸுகளில் இருந்து, மின் வெட்டு வரை ஏற்படும் பிரச்னைகளால், உங்களின் விலைமதிப்பில்லாத தகவல்களில் இருந்து கணினி செயல்படும் வன் பொருட்கள் வரை எதுவும் பாதிக்கப்படக் கூடும். அவற்றிற்குப் பாதுகாப்பு வழங்கும் காவலனாக ஒரு நல்ல இயங்குதளம் பணி புரிய வேண்டும்.
பயனர் நிர்வாகம் சிறப்பாகச் செய்ய வேண்டும். ஒரு இயங்குதளம், ஒரே மூலாதாரத்தைப் (Resource) பலர் பகிர்ந்து கொள்ளும் இந்தக் கால கட்டத்தில் பயனர் அனுமதி, கோப்பு அனுமதி, மூலாதார அனுமதி ஆகியனவற்றைக் கொள்கை ரீதியாக திறம்படச் செய்ய வேண்டும். அப்போது தான் பாதுகாப்பு ஸ்திரப்படுத்தப்படும்.
7. மென்பொருள் செயல் படுத்தும் திறன், வேகம், சக்தி சிக்கனம், கை தூக்கி விடுதல், சாரதி போன்ற பல்வேறு இதரப் பணிகள்:
இயங்குதளம் இத்தனையும் செய்தாலும், ஒரு பயனருக்குத் தேவையான அனைத்து மென்பொருட்களையும் இயங்க வைக்கக் கூடியதாக இருக்க வேண்டும். உதாரணமாக இன்றைய காலகட்டத்தில், சாதாரண கூட்டல் கழித்தல் கணக்கிலிருந்து, விண்கலம் கட்டுப்பாட்டில் வைத்திருப்பது வரை மென்பொருட்கள் இருக்கின்றன. ஏன்? ஒரு விமானத்தைப் பார்க்காமலேயே, விமானம் ஓட்டுவது எப்படி என்று பழகிக் கொடுக்கும் ஊக்கி (Simulation) மென்பொருட்கள் இருக்கின்றன. இப்படி எல்லா மென்பொருட்களும் இயங்க வேண்டும்.
பின்புல தகவல் தள வழங்கி (Back end database server), இணைய வழங்கி என்று இன்னும் பல மென்பொருட்கள் இருக்கின்றன. அவையும் இயங்க வேண்டும்.
அடுத்ததாக வேகம். மேற்கண்ட அனைத்தும் கண்மூடிக் கண் திறப்பதற்குள் முடிக்க இயங்குதளம் துணை நிற்க வேண்டும். இல்லையென்றால் கணினி மூலம் செய்வதில் அர்த்தமே இல்லை தானே?
சக்தி சிக்கனம்: Power Management இன்று பலரும் மடிக்கணினி உபயோகிக்கின்றோம். அவற்றின் சக்தியைச் சிக்கனமாய்ச் செலவழிப்பதிலும் இயங்குதளம் துணை நிற்க வேண்டும்.
கைதூக்கி விடுதல் - Backward Compatibility - நாம் ஏற்கனவே பழைய கணினி வைத்திருக்கக் கூடும். அவற்றில் பழைய இயங்குதளமும் இயங்கக் கூடும். இப்போது ஒரு புதிய இயங்குதளம் நிறுவினாலும் கூட, அவற்றில் இருக்கும் தகவல்களை உபயோகப்படுத்திக் கொள்வதாக இருந்தால் தான் வேலை மிச்சமாகும். எனவே அதற்கும் இயங்குதளம் உதவி புரிய வேண்டும். மேலும் இயங்குதளத்தில் புதிய வசதிகள் இணைத்தாலும் அவற்றையும் சீரிய முறையில் ஏற்றிக் கொள்ள (Upgrade) இயங்குதளம் இடம் தரவேண்டும்.
சாரதி!? ஆம், ஒரு இயங்குதளம் அத்தனை பாரத்தையும் சுமக்கும் கழுதை தான்! அது தான் அனைத்தையும் கட்டி இழுக்க வேண்டும்! பயனர் ஒய்யாரமாகப் பவனி வர உதவும் சாரதியாக இயங்குதளம் இருக்க வேண்டும்.
இப்போதே மூச்சை முட்டுகின்றது தானே! இன்னும் பலப்பல செயல்கள் இருக்கின்றன! இவையனைத்தும் இசைந்து செய்வதே ஒரு இயங்குதளமாகும்!
சரி. இயங்குதளம் மட்டும் உருவாக்கினால் போதுமா? ஒரு இயங்குதளத்துக்குரிய மேலே சொன்ன அத்தனை பண்புகளும், குண நலன்களும் லினக்ஸிடம் இருக்கின்றதா? அவ்வாறு இருந்தால் தானே அதை அனைவரும் உபயோகிக்க இயலும்? என்ற கேள்விகள் உங்களை மொய்ப்பது தெரிகின்றது.
ஒரு வயல்வெளியைப் பார்க்கின்றீர்கள். எத்தனை அழகாய் இருக்கின்றது? வரிசை வரிசையாய் நாற்றுக்கள். உரமிடப்பட்டு, வாய்க்கால் வெட்டி ஒவ்வொரு நாற்றுக்கும் அறிவியல் முறையில் நீர் பாய்ச்சப்பட்டு, களைகள் எடுக்கப்பட்டு எத்தனை நேர்த்தியாக விவசாயம் நடக்கின்றது? நாம் உண்ணும் அரிசி, கோதுமை முதல் காய்கறிகள் அனைத்தும் வயல்வெளியிலிருந்தே நமக்குக் கிடைக்கின்றன. மாடுகள், ஆடுகள், நாய்கள் போன்ற வீட்டு விலங்குகளே உபயோகப்படுத்தப் படுகின்றன.
இப்போது ஒரு வனாந்திரப்பகுதியைக் காணுங்கள். ஒவ்வொரு செடி கொடியும் இஷ்டத்திற்கு என்னவென்றோ எதற்கென்றோ தெரியாமல் கன்னா பின்னாவென்று பின்னிப் பிணைந்து, சூரிய வெளிச்சமே ஊடுருவ முடியாத படி வளர்கின்றன. எங்கு காணினும் பசுமையாய் இருக்கின்றது. தண்மையாகவும் இருக்கின்றது. அங்கு கிடைக்கும் கனிகள் இயல்பிலேயே ருசிக்கின்றன. பலவித மூலிகைகளும் கிடைக்கின்றன. குரங்கு, மான் முதல் அனைத்து வனவிலங்குகளும் அங்கே இருக்க இடம் கிடைக்கின்றது.
என்ன இது? லினக்ஸ் கதையா அல்லது விவசாய முறையா என்று கேட்கின்றீர்கள் தானே?
இதில் வயல்வெளி என்பது, முறையான நிறுவனங்கள் தங்கள் நிறுவனங்களில், திறமை வாய்ந்த மென்பொருள் வல்லுநர்களைக் கொண்டு, நேர்த்தியான முறையில், முன்கூட்டியே இது தான் தரப்போகின்றோம் என்று திட்டமிட்டு, ஒவ்வொருவருக்கும் தேவையான ஊட்டச்சத்தை(!)க் கொடுத்து மென்பொருள் உருவாக்குவது போல! பலர் அதன் மூலம் பயனடைகின்றார்கள். கிட்டத்தட்ட அனைவருமே எனலாம்!
இனி, வனாந்திரம் அல்லது காடு என்பது பலவித மென்பொருளாளர்களும், வன்பொருளாளர்களும், மாணவர்களும், பல நிறுவனங்களைச் சார்ந்தவர்களும், ஏன் பொதுமக்களும் கூட தங்கள் பங்களிப்பை ஒரு கட்டமைப்பின்றி வழங்கி, அதன் மூலம் பயன்பெறும் திறப்பு மூல நிரலிகளைக் குறிப்பதாகக் கொள்ளலாம். அங்கும் கனிவகைகள், மூலிகைகள் என்று பல கிடைக்கக் கூடும்! ஏற்கனவே சொன்னது போல் குரங்குகள் முதல் மான் வரை வனவிலங்குகள் (!
) இருக்கக் கூடும்!
சரி, இரண்டிலும் தேவையான அளவு நம்மால் பலன் பெற இயலும் தானே!?
இனி மீண்டும் லினக்ஸுக்கு வருகின்றேன்.
லினக்ஸில் பங்கு பெற்றவர்கள் அனைவருமே சுயநலத்தை விட்டொழித்த முனிவர்கள் என்று சொல்வதற்கில்லை. ஹேக்கர்கள் (சரியான தமிழ்ப்பதம் தேடிக் கொண்டிருக்கின்றேன்!) என்றழைக்கப்படும் தெனாவட்டுக்காரர்கள், தன்னிச்சை ஆர்வலர்கள் ஆகியோர்கள் தான்.
உலகில் எப்போதுமே ஒரு பொருளை மூடிவைக்க வைக்க அதன் மவுசு கூடிக் கொண்டே போகும்! எதைப் பார்க்காதே என்று சொல்கின்றோமோ அதைத் தான் பார்க்கவேண்டும் என்று துடிக்கும் இளைஞர் கூட்டம். எதைச் செய்யாதே என்கின்றோமோ, அதைச் செய்தால் என்ன? என்று இளைஞர்களுக்குத் தோன்றுவது சகஜம், இயற்கை என்பதை நாம் அனைவரும் ஒப்புக் கொண்டு தான் ஆக வேண்டும்.
EULA என்று கேள்விப்பட்டிருப்பீர்கள். அதாவது End User License Agreement என்பது அதன் விரிவாக்கம் ஆகும்! சாதாரணமாக மைக்ரோசாப்ட் மென்பொருட்கள் எதை நிறுவ முயற்சித்தாலும் முதலில் வருவது இது தான்! எதையுமே வாசித்துப் பார்க்காமல், கீழே சரியென்று குறியிட்டு ஒத்துக் கொள்வோமே (Accept) அது தான் EULA. அதை முதன் முதலில் வெற்றிகரமாய் சாதித்துக் காட்டியது மைக்ரோசாப்ட் எனலாம். அதாவது நீங்கள் மென்பொருளை அவர்களிடம் வாங்கவில்லை. அதன் உபயோகப்படுத்தும் உரிமை மட்டுமே வாங்குகின்றீர்கள். எந்த நேரத்திலும் அதைப் பறித்துக் கொள்ளும் உரிமை மென்பொருள் நிறுவனத்துக்கு உண்டு. உங்கள் பதிப்பை நீங்கள் வாங்கிவிட்டதால் அதில் என்ன வேண்டுமென்றாலும் செய்து விட முடியாது. உதாரணத்துக்கு பின்பொறி (Reverse Engineering) செய்ய முடியாது.
எதையும் செய்யாதே என்றால் தான் செய்யத் துடித்திருப்போமே நம்மாட்கள். எனவே அதை உண்டு இல்லை என்று சின்னாபின்னப் படுத்திப் பார்ப்பதில் இளைஞர்களுக்குக் கொள்ளை ஆசை! சில சமயங்களில் இத்தகைய இளைஞர்களை மென்பொருள் நிர்வாகமே தம் ஓட்டைகளைக் கண்டறிய இவர்களை வேலைக்கமர்த்துவது சகஜமாகும். இவர்களை நேர்மையான கொள்ளைக்காரர்கள் (Ethical Hackers) என்பார்கள்!
அந்நாளில் (1991 வாக்கில்) இளவட்டங்கள் பலர் இணைய தளங்கள் பலவற்றின் பாதுகாப்பு நடவடிக்கை, பெட்டகங்களைத் திறந்து பார்ப்பதில் ஆர்வம் கொண்டிருந்தனர். அதற்கென்று அவர்களுக்கு இயங்குதள மென்பொருள் தேவைப்பட்டது. அந்த மென்பொருளை லினக்ஸ் வழங்கியது என்றால் அது மிகையாகாது! அதன் மூலம் ஹேக் செய்யலாம் என்றதும், அனைவரும் அதன் மூலம் ஹேக் செய்ததுடன், அனைவரும் அதன் ரசிகர்களாய் மாறினர்! ரசிகர்களே இயக்குநர்களானால் எப்படி இருக்கும்?! அப்படித் தான் ஆகிவிட்டது லினக்ஸின் தலைவிதி!
சரி, அப்படியானால், கொள்ளைக்காரர்களின் கைவண்ணம் தான் லினக்ஸா? அதை நம்ப முடியுமா? காவல்காரர்களையே நம்ப முடியாத இந்தக் காலத்தில், கொள்ளைக் காரர்களை நம்பி நம்மால் எப்படி இ(ய)றங்க முடியும்?
ஏற்கனவே பார்த்தது போல் ஒரு இயங்கு தளம் வெற்றியடைய வேண்டுமானால் அதில் இயங்கும் மென்பொருட்களும் வெற்றிகரமாக இயங்க அது ஒத்துழைக்க வேண்டும். உதாரணமாக இயங்குதளம் நன்றாக இருந்து அதில் இயங்கும் அலுவலக மென்பொருட்கள் சரியில்லை என்றால் அதன் பாதிப்பு இயங்குதளத்தின் சந்தையிலும் ஏற்படும்.
லினக்ஸ் கூட்டுறவில் தயாரான ஒரு இயங்குதளம். திறப்பு மூல முறையைக் கொண்டது. சரி, இந்த உரிமை முறை அத்தனை எளிதானதா என்றால், சிக்கலில் மைக்ரோசாப்டின் EULA உரிமத்துக்குக் கொஞ்சமும் குறைவில்லை என்றே சொல்லலாம்.
அட, இலவசமாய் மூல நிரல்களைத் தருவதிலும் குழப்படியா? என்று நீங்கள் கேட்பது காதில் விழுகின்றது.
GPL எனப்படும் General Public Licence முறை தான் GNU வால் அங்கீகரிக்கப்பட்டதாகும். அந்த உரிமைப்படி, நீங்கள் திறப்பு மூலத்தை நினைத்த படியெல்லாம் உபயோகப்படுத்தி விட முடியாது. என்ன இது? பின்னே எதற்கு அந்த உரிமை? என்கின்றீர்கள் தானே?
ஒரு தனி மனித சுதந்திரம் என்பது, உங்களுக்கு கை நீட்டிக் கொள்ள இடம் அளிப்பது தான். ஆனால், அது மற்றொருவரின் மூக்கின் நுனியை இடித்து விடக் கூடாது என்று கேள்விப்பட்டிருப்பீர்கள்.
அது போல இங்கே திறப்பு மூல நிரலி முறை சரியாக இயங்க வேண்டுமானால், நீங்கள் எந்த வகையில் அந்த உரிமையைப் பெற்றீர்களோ, அதே உரிமை உங்களிடம் இருந்து பெறுபவரும் பெற்றிருக்க வேண்டும். இதன் பெயர் Copyleft (Copyright ன் எதிர்ப்பதம்!). எடுத்துக்காட்டாக, திறப்பு மூல உரிமை மூலம் மூல வரிகளைப் பெற்று ஒரு மென்பொருள் நீங்கள் உங்கள் வரிகளையும் அதில் சேர்த்து உருவாக்குகின்றீர்கள் என்று வைத்துக் கொள்வோம். அந்த மென்பொருளை நீங்கள் விற்கலாம் தவறில்லை. ஆனால், உங்கள் மூலவரிகளையும் சேர்த்தே தரவேண்டும். அதாவது நீங்கள் எந்த வகையில் உரிமை பெற்றீர்களோ, அதே உரிமை உங்களிடம் இருந்து பெறுபவரும் பெற வேண்டுமே.
இனி, இந்த உரிமை வேண்டாம் என்று நினைப்போரும் பலர் உண்டு. அதாவது பலரின் சரக்கை உபயோகித்தாலும், எனது விலைமதிப்பற்ற சொந்தச் சரக்கும் அதில் உள்ளது. எனவே, அதை எப்படி என்னால் தாரை வார்க்க இயலும்? என்று கேட்பவர்களும் இருப்பதால், வேறு பல உரிமங்களும் உண்டாயின.
உதாரணமாக BSD, LGPL,MIT ஆகிய இலவச உரிமை முறைகள் போக இருமுக உரிம முறை (Dual Licensing)யும் உண்டு. அதாவது ஒரே மென்பொருள் இலவசமாகவும் கிடைக்கும், விலைகொடுத்தும் வாங்கலாம். விலைகொடுத்து வாங்கினால் விற்பனைக்குப் பின் நிறைய சேவைகள் கிடைக்கும்.
நான் ஒன்றும் மென்பொருள் உருவாக்கும் பொறியாளர் இல்லை. எனக்குத் தேவை இலவச மென்பொருள். அது திறப்பு மூலத்துடன் வந்தாலும் என்னால் அதில் ஒன்றும் மாற்ற இயலாது. அதில் எழுதி இருப்பதை மாற்றும் அளவிற்குத் தெரிந்திருந்தால், அப்படி மாற்றுவதற்குப் பதிலாக நானே ஒரு மென்பொருள் தயாரித்து இருப்பேனே என்று கேட்பவர்கள் தான் அதிகம்! அப்படியே கொஞ்சம் கொஞ்சம் தெரிந்திருந்தாலும், அதை மாற்றி அவர்களே உபயோகித்துக் கொள்பவர்கள் தான் அதிகம். அதை விற்றுக் காசாக்க நினைப்பவர்கள் பெரிய நிறுவனத்தார்களாகவே இருப்பார்கள். எனவே தான் இத்தகைய ஒரு உரிமக் கட்டுப்பாட்டை பொது உரிமை முறை வைத்திருக்கின்றது.
சரி, இப்படி உரிமைகளைப் பற்றி விவாதித்துக் கொண்டே போனால், அப்புறம் இதுவே பெரிய தொடர்கதையாகிவிடும். எனவே இத்துடன் முடித்துக் கொண்டு லினக்ஸின் கதையைத் தொடர்வோம்.
ஒரு எண்ணின் (அந்த எண்ணைத் தவிர) மற்ற வகுத்திகளின் கூட்டுத்தொகை அந்த எண்ணிற்கு சமமாக இருந்தால் அந்த எண் பூரண எண் (Perfect Number) எனப்படும்.
அந்த வகையில் மிகச் சிறிய பூரண எண் 6 (வகுத்திகள் 1,2,3) 6 = 1 + 2 + 3
அடுத்த பூரண எண் 28 (வகுத்திகள் 1,2,3,4,7,14) 28 = 1 + 2 + 3 + 4 + 7 + 14
பூரண எண்களைக் கண்டறிய ஒரு முறையை முதன் முதலில் யூக்ளிட் என்பவர் கண்டறிந்தார். அதாவது (2^n) -1 என்பது பகா எண்ணாக (Prime Number) இருந்தால் 2^(n-1) * ((2^n)-1) என்பது எப்பொழுதும் இரட்டைப் படை பூரண எண்ணைத் தரும். ஏறக்குறைய 2000 ஆண்டுகள் கழித்து ஆய்லர் என்பவர் இந்த சூத்திரத்தால் அனைத்து இரட்டைப்படை பூரண எண்களையும் கணக்கிட முடியும் என நிரூபித்தார்.
எனினும், இது வரை ஒரு ஒற்றைப் படை பூரண எண் கூடக் கண்டறியப் படவில்லை. ஒற்றைப்படை பூரண எண் இருக்கமுடியாது என்பதும் இதுவரை நிரூபிக்கப்படவில்லை.
நீங்கள் கண்டறிங்களேன்.
இந்தப் பூரண எண்களுக்கென்று சில புதிரான குண நலன்கள் உள்ளன. அனைத்துப் பூரண எண்களுமே 1+2+3+4+... என்ற தொடர் கூட்டலின் ஒரு பகுதியே!
உதாரணம்:
1+2+3 = 6
1+2+3+4+5+6+7 = 28
6ஐத் தவிர மற்ற அனைத்துப் பூரண எண்களையும் 1^3 + 3^3 + 5^3+... என்ற தொடர் கூட்டலின் ஒரு பகுதியாக எழுத முடியும்.
உதாரணம்: 1^3 + 3^3 = 28
ஒவ்வொரு பூரண எண்ணின் (6 ஐத்தவிர) இலக்க மூலம் (Digital Root) எப்போதும் 1 ஆகத் தான் இருக்கும்.
உதாரணம்: 28 2 + 8 = 10 1 + 0 = 1
496 4 + 9 + 6 = 19 1+9 = 10 1 + 0 = 1
சில பெரிய்ய்ய்ய்ய்ய பூரண எண்களையும் காண்போம்.
இது வரை கண்டறிந்ததிலேயே மிகப் பெரிய பூரண எண் (2^756838 * ((2^756839) -1).
இந்த எண் 4,55,663 இலக்கங்கள் உடையது!
இதோ பூரண எண்களின் அட்டவணை!
கணினியால் கூட யூகிக்க முடியாத எண்ணைக் கண்டறிவதன் அவசியம் தற்போது வந்துள்ளது எண் கையெழுத்தினால். (Digital Signature).
RSA அல்காரிதத்தின் படி ஒரு பகா எண்ணை எடுத்து அதன் மூலம் இரு வெவ்வேறு சாவிகள் உருவாக்கி ஒன்றை அனுப்புபவரிடமும் இன்னொன்றை பெறுபவரிடமும் கொடுக்கிறார்கள். இதுவே டிஜிட்டல் கையெழுத்து. அந்தப் பகா எண்ணை யூகிக்க முடிந்தால்? அவ்வளவு தான்! கோடிக்கணக்கில் பணம் போயே போய் விடும்.
எனவே இது போன்ற எண்களின் பண்புகள், ஒரு எண்ணை வைத்து அடுத்த எண்ணினைக் கண்டறிய முடியுமா முடியாதா? என்பது போன்ற ஆராய்ச்சிகளுக்கு எல்லையும் இல்லை, மதிப்புக்கும் அளவு இல்லை.
நட்பு எண்களும் பூரண எண்களைப் போலவே தான். இரண்டு எண்களில் ஒரு எண்ணின் வகுத்திகளின் கூட்டுத் தொகை மற்றொரு எண்ணிற்குச் சமமாக இருப்பின் அந்த எண்கள் நட்பு எண்கள் (Amicable Numbers) என்றழைக்கப்படுகின்றன.
இந்த நட்பு எண்களை முதன் முதலில் அறிமுகப்படுத்தியவர் கணித மேதை பிதாகரஸ்.
மிகச் சிறிய நட்பு எண் 220,284 ஆகும்.
1636ல் தான் கணித மேதை பெர்மாட் என்பவரால் மற்றொரு ஜோடி நட்பு எண்கள் (17296,18416) கண்டுபிடிக்கப்பட்டன. டெஸ்காட்ஸ் என்பவர் மூன்றாவது ஜோடி எண்களைக் (9363584,9437053) கண்டறிந்தார்.
18ம் நூற்றாண்டில் ஆய்ல் என்பவர் 64
ஜோடி நட்பு எண்களின் பட்டியலை வெளியிட்டார். இவற்றில் இரண்டு ஜோடி நட்பு எண்கள் தவறானவை என்று பின்னால் நிரூபிக்கப்பட்டது. :(
1830ல் மற்றொரு ஜோடி நட்பு எண்கள் லைஜண்டர் என்பவரால் கண்டறியப்பட்டது.
இன்னொரு விந்தையும் நடந்தது. 1867ல் ஒரு 16 வயது இத்தாலி சிறுவன் நிகோலோ பகனினி என்வனால் 1184ம் 1210ம் நட்பு எண்கள் என்று அறிவித்த போது கணித உலகமே இன்ப அதிர்ச்சியில் உறைந்தது! ஏனெனில் இது தான் இரண்டாவது ஜோடி நட்பு எண்களாகும். 20 நூற்றாண்டுகளுக்குப் பின்னர் இவ்வாறு கண்டறிந்தது ஒரு அதிசயம் தான்!
இன்று 600க்கும் மேற்பட்ட நட்பு எண் ஜோடிகள் கண்டறியப்பட்டுள்ளன.
இதுவரை கண்டறியப்பட்டுள்ள நட்பு ஜோடிகளில் இரண்டுமே இரட்டை எண்ணாகவோ, அல்லது இரண்டுமே ஒற்றை எண்ணாகவோ இருக்கின்றன. ஒரு இரட்டை எண், ஒரு ஒற்றை எண் கொண்ட நட்பு ஜோடி இன்னும் கண்டறியப்படவில்லை.
இந்த நட்பு எண்களின் இலக்க மூலம் எப்பொழுதும் 9 ஆகவே இருப்பது ஏன் என்பதும் யாராலும் புரிந்து கொள்ள இயலா ரகசியம்!
சில சமயங்களில் இரண்டுக்கும் மேற்பட்ட எண்களில் தொடர் சங்கிலியாக தொடர்புகள் காணப்படுகின்றன. அவ்வாறு காணப்படும் தொடர் எண்களை சமூக எண்கள் (Social Numbers) என்றழைக்கின்றனர்.
1918ல் பிரெஞ்சுக் கணித மேதை பௌலட் 5 இணைப்புகளுள்ள ஒரு தொடர் எண் சங்கிலியையும் (12496,14288,15472,14536,14264) 28 இணைப்புகளுடைய மற்றொரு தொடர்பு எண் சங்கிலியையும் அறிவித்தார்.
மூன்று இணைப்புகளுடைய சங்கிலித் தொடர் எண்கள் இன்னும் கண்டறியப்படவில்லை.