கணினியானது எண்களை கணக்கிடும் கணிப்பானைவிட அதிவேகமாக செயல்படும்நிலையில் இவைகளை(கணினிகளை) அதிவேக கணிப்பான்கள் என அழைக்காமல் ஏன் “கணினிகள்” என்று அழைக்கப்படுகின்றன என்ற கேள்வி நம் அனைவரின் மனதிலும் எழும் நிற்க.
ஒரு நவீன கணினியானது இணையத்தில் உலாவரஉதவுகிறது, இசை,கானொளி காட்சி ஆகியவற்றை இயக்குகிறது, கானொளிகாட்சி விளையாட்டுகளையும் திரைப்படங்களுக்கான அழகான வரைகலையையும் உருவாக்குகிறது, சிக்கலான வானிலை முன்னறிவிப்புகளை செய்கின்றது, தொற்றுநோய்களின் அபாயங்களை உருவகப் படுத்துகிறது , அவை எப்போது நம்மை தாக்கக்கூடும் என கணிக்கிறது, அதுமட்டுமல்லாது கட்டடக்கலை , பொறியியல் ஆகியவற்றிற்கான வரைபடங்களை நம்முடைய நடைமுறை வாழ்க்கையில் கொண்டு வருகிறது, மேலும் நாம் கற்பனை செய்யக்கூடிய அனைத்து பணிகளையும் செயல் படுத்திடு கின்றது. இவை அனைத்தையும் கணினிகள் எவ்வாறு செயற்படுத்திடு கின்றதெனில் இந்த சிக்கல்கள் அனைத்தும் எண் ணிம சமன்பாடுகளாக வெளியிடப்பட்டு செயல்படுத்தப்படுகின்றன, மேலும் கணினியின் CPU எனும் மைய செயலாக்க அலகு ஆனது உண்மையில் ஒரு எளிய கணிப்பானை விட சற்று அதிகமாகவே செயல்டு கின்றது. அதனால்தான் இவைகளை “கணினிகள்” என்று அழைக்கப்படுகின்றன .
அதனோடு தரவுகளை எழுத ஒரு வன்தட்டுக்கு அல்லது ஒரு படத்தைக் காண்பிக்க ஒரு கணினியின் திரைக்கு சமிக்ஞைகளை அனுப்புவதற்காக அவற்றை ஒரு CPU இலிருந்து பெறுவதற்காக, அது பல்வேறு கட்டளைகளையும் வழிமுறைகளையும் பெற வேண்டி யுள்ளது. இந்த கட்டளைகள் அனைத்தும் “குறிமுறை (code )” வடிவத்தில் வருகின்றன, இது CPU புரிந்துகொள்வதை போன்ற அதே மொழியை “பேசும்” ஒரு நிரலை அதே எண்ணிம வடிவில் யாராவது ஒருவரால் எழுதமுடியும் என்று சொல்வது ஒரு மிக கடுமையான வழியாகும். அதாவது ஒரு CPU ஆனது இயந்திர மொழியை மட்டுமே எளிதாக ப் புரிந்து கொள்கிறது, அவை பெரும்பாலும் நம்மால் (மனிதனால் )புரிந்துகொள்ள முடியாத எண்ணிம வடிவ எண்களின் வரிசைகளில் அமைந்திருக்கின்றன, இந்நிலையில் மனிதர்களால் இவைகளை கைமுறையாக எழுதமுடியாது. அதற்கு பதிலாக, சி, சி ++, ஜாவா, பைதான் போன்ற நிரலாக்க மொழிகளின் வாயிலாக மனிதர்களால் படித்தறிய முடிகின்ற கட்டளைவரிகளை எழுதப்பட்டபின்னர் கணினிகளில் CPU படித்திடுமாறான வடிவமைப்பில் மாற்றி செயல் படுத்தப்பட்டு நம்மால் பயன்படுத்தி கொள்ளப்படுகிறது. அதாவது நம்மால் படித்தறியக்கூடிய கட்டளை வரிகளை இந்த கணினி மொழிகளால் பாகுபடுத்தப்பட்டு CPU புரிந்துகொள்வதற்கேற்ப இயந்திர மொழியில் தொகுக்கப்படுகின்றன, பின்னர் அவை CPU க்கு வழங்கப் படு கின்றன. இந்நிலையில் அவை புரிந்து கொள்ள முடியாத மொழியில் ஒரு CPU ஐ அறிவுறுத்த முயற்சித்தால், CPU க்கு தான் என்ன செய்வேண்டும் என்றே தெரியாமல் அப்படியே செயல்படாமல் நின்றுவிடும் ஒரு x86_64 RHEL இன் image இலிருந்து ஒரு ராஸ்பெர்ரி பை துவக்க முயற்சிப்பதன் மூலம் தவறான தகவல்தொடர்புக்கான அத்தகைய முயற்சியின் எதிர்பாராத முடிவுகள் வருவதை தெரிந்துமுடியும். அது செயல்பட முடிந்தால் நன்றாக இருக்கும், ஆனால் அவ்வாறு செயல்படாது .
ஒரு புதிய கட்டமைப்பிற்கு ஒரு OS ஐ பதிவேற்றம் (Porting)செய்தல்
RT-Thread எனும் செயல்திட்டம் உட்பொதிக்கப்பட்ட-கணினி நிலாளர்களுக்கு ஒரு திறமூல இயக்க முறைமையை (OS) வழங்குகிறது. உட்பொதிக்கப்பட்ட இடம் மிகவும் மாறுபட்டது, ஏராளமான பொருட்களுக்கான இணையம் (IoT), தனிப்பயன் தொழில்துறை , பொழுதுபோக்கு சாதனங்கள். ஆகியவற்றில் நாம் எந்த சாதனத்தைப் பயன்படுத்துகின்றோம் என்பதைப் பொருட்படுத்தாமல், உட்பொதிக்கப்பட்ட நிரலாக்கத்தை அனைவருக்கும் எளிதாக்குவதே இந்த RT-Threadஇன் குறிக்கோளாகும். சில நேரங்களில், ஒரு OS ஐ புதிய கட்டமைப்பு ஒன்றிற்கு கொண்டு செல்வது, அதே கட்டமைப்பின் சில்லுக்காக இருந்தாலும், சற்று மாறுபட்ட அறிவுறுத்தல்களுடன் அல்லது புதிய கட்டமைப்புகளுடன். இந்த சிக்கலை அணுகுவது முதலில் கொஞ்சம் அச்சுறுத்தலாக இருக்கும் எங்கிருந்து துவங்குவது அல்லது எவ்வாறு துவங்குவது என்ற விவரம் நமக்குத் தெரியாத நிலையில். புதிய சிப்பின்(chip ) கட்டமைப்பிற்கு RTOS ஐ அனுப்பியபோது RT-Thread பராமரிப்பாளர்களால் கற்றுக்கொள்ளப்பட்ட பாடங்கள் நமக்கு சிறந்த பாதைகளாக அமைகின்றன.
துவங்குவதற்கு முன் நாம் தெரிந்து கொள்ள வேண்டியவை
இவைஈடுசெய்ய முடியாத ஒரு செயல்முறையின் உயர் மட்ட பார்வையாகும். இவைநம்முடைய செயல் திட்டத்திற்கு ஏற்பவேறுபடலாம், ஆனால் சில செயல்கள் வேறுபட்டிருந்தாலும் கருத்தியல் ரீதியாக இவை உலகளாவியதாகும்:
1. சி-மொழி செயல்படுத்துகின்ற சூழலைத் தயாரித்திடுக
2. தொடர்ச்சியான வாயிலில் எழுத்துக்களை அனுப்பமுடியும், பெறமுடியும் என்பதை உறுதிப்படுத்திடுக
3. சூழல் விசையில் குறிமுறைவரி செயல்படுகிறது என்பதை உறுதிப்படுத்திடுக
4. வன்பொருளின் காலங்காட்டிகளை ஆதரித்திடுக
5. குறுக்கீடு வழக்கமானது என தொடர்ச்சியான வாயிலில் தரவைப் பெறமுடியும் , ஆய்வுசெய்திடமுடியும் என்பதை உறுதிப்படுத்திடுக
மாதிரியை செயல்படுத்துதல்
மிகவும் மேம்பட்ட கட்டமைப்புகளுக்கான, OS, பயனாளர்களின் பயன்பாடுகள் ஆகியவை வெவ்வேறு சலுகை மட்டங்களில் இயங்குகின்றன. இது OS இன் ஒருங்கிணைப்பையும் பாதுகாப்பையும் பாதிக்காமல் செயல்படு கின்றது குறிமுறைவரிகளைத் தடுக்கிறது. எடுத்துக்காட்டாக, ARMv7-A கட்டமைப்பில், ஒரு OS ஆனது பொதுவான கணினி பயன் முறையில் இயங்குகிறது, அதே நேரத்தில் ARMv8-A இல், ஒரு OS ஆனது EL2 அல்லது EL3 சலுகை மட்டத்தில் இயங்க முடியும். வழக்கமாக, ஒரு சிப்பானது துவக்கக் குறிமுறை வரிகளை இயக்கும் போது மிக உயர்ந்த சலுகை மட்டத்தில் இயக்குகின்றது. அதன்பிறகு, OS ஆனது சலுகை அளவை அதன் இலக்கு பயன்முறைக்கு ஏற்ப மாற்றிகொள்கிறது.
1. சி குறிமுறைவரிகளை செயல்டுத்துதல்
இந்த கட்டத்தின் முக்கிய செயல், தொகுதி யின் துவக்க சின்னம் (.bss) எனும் பகுதியை பூஜ்ஜியமாக அமைத்து, அடுக்குகளின் சுட்டிகளை அமைப்பதாகும். பொதுவாக சி-மொழி செயலாக்கங்களில், துவக்கப்படாத உலகளாவிய மாறிகள் , நிலையான மாறிகள் ஆகியவை .bss பிரிவில் சேமிக்கப்படுகின்றன, இது சேமிப்பக சாதனத்தில் எந்த இடத்தையும் ஆக்கிரமிக்காது. நிரல் ஏற்றப்படும் போது மட்டும், தொடர்புடைய இடம் நினைவகத்தில் ஒதுக்கப்பட்டு பூஜ்ஜியத்திலிருந்து துவக்கப்படுகின்றது. OS துவங்கும் போது, அது தானாகவே இந்த பணியைச் செய்கின்றது. மறுபுறம், OS ஆனது அடுக்குகளின் இடத்தை துவக்கி அடுக்குகளின் சுட்டிக்காட்டியாக அமைக்கின்றது. சி-மொழி நிரல்கள் ஒரு செயலிக்குள் நுழையும்போதும் வெளியேறும் போதும் அடுக்குகளில் உள்ளூர் மாறிகளைச் சேமித்து மீட்டெடுப்பதால், சி மொழியின் எந்தவொரு செயலிகளையும் செயல்படுத்து வதற்கு முன்பு அடுக்குகளின் சுட்டிக்காட்டி அமைக்கப்படுகின்றது. புதிதாக உருவாக்கப்பட்ட ஒவ்வொரு இழைக்கும் RT-Thread இந்த படிமுறையை செய்கின்றது.
2. குறைந்தது ஒரு தொடர்ச்சியான இயக்கியை பயன்படுத்துக
RT-Threadஆனது தொடர்ச்சியான பொருத்துவாயின் மூலம் தகவலையும் பதிவுகளையும் வெளியிடுகிறது, இது மாற்று செயல்பாட்டின் போது குறிமுறைவரிகளை பிழைத்திருத்த உதவுகிறது. இந்த கட்டத்தில், தொடர்ச்சியான பொருத்துவாயில்கள் வழியாக தரவுகளைப் பெறுவது தேவையில்லை. தொடர்ச்சியான பொருத்துவாயிலில் நட்புடனான, பழக்கமான RT-Thread வர்த்தகமுத்திரையை முதலில் பார்க்கின்றபோது நாம் சரியான பாதையில் செல்வதை அறிந்துகொள்ளலாம்!
3. சூழல் மாறுதலின் தர்க்கத்தை உறுதிப்படுத்துக
ஒரு பணியின் சூழல் அதன் முழு செயல்படுத்தலின் சூழலாகும், இதில் பொதுவான பதிவேடுகள், நிரலை எண்ணுபவை, அடுக்குகளின் சட்டகத்தின் இருப்பிடம் போன்ற பல உள்ளன. ஒரு புதிய நூலிழை (RT-Thread) உருவாக்கப் படும்போது, RT-Thread ஆனதுஅதன் சூழலை கைமுறையாக ஒதுக்கவும் அமைக்கவும் வேண்டும், இதன்மூலம் திட்டமிடுபவர் புதிய இழைக்கு மாறலாம், அது மற்றவைகளைப் போலவே. கவனம் செலுத்த மூன்று செய்திகள் உள்ளன:ஆ
முதலில், RT-Thread தொடங்கும் போது, குறுக்கீடுகள் இயல்பாகவே முடக்கப்படும். பணி அட்டவணை முதன் முறையாக இயக்கப்பட்டால் அவை இயக்கப்படும்; இந்த செயல்முறை சூழல்-மாறுதலின்போது இயந்திர மொழிமாற்றியின் மொழியில் செயல்படுத்தப்படுகிறது.
இரண்டாவதாக, ஒரு இழை வெளியேறும் போது அடுத்த திட்டமிடல் தொடங்குகின்றது, அதாவது சொந்தமான வளங்கள் செயலற்ற இழையால் மீட்டெடுக்கப்படுகின்றது.
மூன்றாவதாக, தரவுகளை அடுக்கிற்குள் தள்ளும் வரிசை, அடுக்கிலிருந்து தரவை வெளியேற்றும் வரிசையுடன் ஒத்ததாக இருக்க வேண்டும்.
பொதுவாக, முக்கிய செயலியும் msh இன் பணியகத்தினை பொதுவாக உள்ளிட விரும்புகின்றோம். இருப்பினும், இந்த கட்டத்தில் உள்ளீட்டு கட்டுப்பாட்டை அடைய முடியாது, ஏனெனில் தொடர்ச்சியான உள்ளீட்டு குறுக்கீடுகள் செயல்படுத்தப்படவில்லை. தொடர்ச்சியான குறுக்கீடுகள் செயல்படுத்தப்படும்போது,msh இன் உள்ளீடுகளை உருவாக்க முடியும்.
4. காலங்காட்டியை (timer) அமைத்தல்
RT-Thread இற்கு அவ்வப்போது குறுக்கீடுகளை உருவாக்க காலங்காட்டியானது தேவைப்படுகிறது; கணினி தொடக்கத்திலிருந்து கழிந்த ஆமோதிப்புகளை( ticks) எண்ணுவதற்கு இது பயன்படுகிறது. மென்பொருள் குறுக்கீடு செயலிகளை வழங்கவும், ஒரு பணியை திட்டமிடத் தொடங்கும்போது உருவாக்கமையத்திற்கு (kernel ) அறிவுறுத்தவும் ஆமோதிப்பு( tick) எண் பயன்படுத்தப்படுகிறது. நேர துண்டுகளின் மதிப்பை அமைப்பது ஒரு தந்திரமான வணிக செயலாகும். இது வழக்கமாக 10ms முதல் 1ms வரை இருக்கும். மெதுவான CPU இல் ஒரு சிறிய நேரத் துண்டைத் தேர்வுசெய்தால், பெரும்பாலான நேரம் பணி மாறுதலுக்காக செலவிடப் படுகிறது வேறு எதையும் செய்வதற்கானத் தீங்கு விளைவிக்காது.
5. தொடர்ச்சியான வாயில் மிகச்சரியாக செயல்படுகிறது என்பதை உறுதிப்படுத்துக
இந்த கட்டத்தில், தொடர்ச்சியான வாயிலில் RT-Thread ஆனது msh உடன் தொடர்புகொள்கின்றது. கட்டளைகளை அனுப்பி, உள்ளீட்டு (Enter)விசையை அழுத்தி, msh இன் கட்டளையை இயக்கி முடிவுகளைக் காணமுடியும் என பார்த்தோம். இந்த செயல்முறை பொதுவாக செயல்படுத்த கடினமானதன்று. தொடர்ச்சியான வாயில் சரியாக செயல்பட்டவுடன், பதிவேற்ற செயல்முறை அடிப்படையில் செய்யப்படுகிறது!
எச்சரிக்கை : தொடர்ச்சியான வாயிலின் குறுக்கீடு கையாளப்பட்ட பிறகு சில தளங்களில் குறுக்கீடு சுட்டியை அழிக்க மறக்கவேண்டாம்.
தொடர்ந்து செயலில் இருந்திடுக
நம்முடைய செயல்திட்டத்தை வெவ்வேறு சில்லுகளின் கட்டமைப்புகளுக்கு அனுப்ப, நாம் குறிவைக்கும் சிப்பின் கட்டமைப்பைப் பற்றி தெளிவாக தெரிந்துகொள்க. நம்முடைய செயல்திட்டத்தின் மிக முக்கியமான தகவல்களில் அடிப்படைக் குறிமுறைவரிகளைப் பற்றி தெரிந்து கொள்க. சிப்பின் கையேட்டை பல நடைமுறை பணி அனுபவங்களுடன் குறுக்காக-மேற்வையிடுவதன் மூலம், சிப்பின் சலுகை பயன்முறை, பதிவு செய்தல் , தொகுத்தல் முறை ஆகியவற்றைக் கற்றுக்கொள்க