Terminal capabilities
कम्प्यूटिंग और दूरसंचार में, एक टर्मिनल की क्षमताएं विभिन्न अंतिम विशेषताएं हैं, जो एक शुद्ध टेलीटाइपराइटर से उपलब्ध हैं और उससे परे हैं, जो होस्ट सिस्टम (और उन पर चलने वाले प्रोग्राम) का उपयोग कर सकते हैं। वे (मुख्य रूप से) नियंत्रण कोड और पलायन कोड हैं जिन्हें टर्मिनल पर भेजा या प्राप्त किया जा सकता है। टर्मिनल पर भेजे गए एस्केप कोड विभिन्न कार्य करते हैं जो एक सी. आर. टी. टर्मिनल (और सॉफ्टवेयर टर्मिनल एमुलेटर) करने में सक्षम है, लेकिन एक टेलीटाइपराइटर नहीं है; जैसे कि टर्मिनल के कर्सर को स्क्रीन पर स्थिति में ले जाना, स्क्रीन के सभी या कुछ हिस्सों को साफ़ करना और स्क्रॉल करना, संलग्न प्रिंटर उपकरणों को चालू और बंद करना, प्रोग्रामिंग प्रोग्रामेबल फ़ंक्शन कुंजियाँ, प्रदर्शन रंग और विशेषताओं को बदलना (जैसे कि रिवर्स वीडियो), और प्रदर्शन शीर्षक स्ट्रिंग्स को सेट करना। टर्मिनल से प्राप्त एस्केप कोड फंक्शन कुंजी, तीर कुंजी और अन्य विशेष कुंजी (होम कुंजी, एंड कुंजी, हेल्प कुंजी, पी. जी. यू. पी. कुंजी, पी. जी. डी. एन. कुंजी, इंसर्ट कुंजी, डिलीट कुंजी आदि) कीस्ट्रोक जैसी चीजों को दर्शाते हैं। यूनिक्स और पोसिक्सः टर्मकैप, टर्मिन्फो, आदि। यूनिक्स और अन्य पोसिक्स-अनुरूप प्रणालियों में जो पोसिक्स टर्मिनल इंटरफेस का समर्थन करते हैं, इन क्षमताओं को डेटाबेस में एन्कोड किया जाता है जो एक सिस्टम प्रशासक द्वारा कॉन्फ़िगर किए जाते हैं और टर्मिनफो लाइब्रेरी (जो पुरानी टर्मकैप लाइब्रेरी का स्थान लेती है) के माध्यम से प्रोग्रामों से एक्सेस किए जाते हैं, जिस पर बदले में शाप और एनकर्स लाइब्रेरी जैसे पुस्तकालय बनाए जाते हैं, जिनके द्वारा एप्लिकेशन प्रोग्राम खिड़कियों, संवाद बक्से, बटन, लेबल, इनपुट फ़ील्ड, मेनू आदि के साथ पाठ्य उपयोगकर्ता इंटरफेस प्रदान करने के लिए टर्मिनल क्षमताओं का उपयोग करते हैं। इरादा यह है कि यह अनुप्रयोग कार्यक्रमों को वास्तविक अंतिम विशेषताओं से स्वतंत्र होने की अनुमति देता है। उन्हें अपने कोड में किसी भी नियंत्रण कोड या पलायन अनुक्रम को हार्डवायर करने की आवश्यकता नहीं है, और इसलिए क्षमताओं की एक श्रृंखला के साथ टर्मिनलों की एक श्रृंखला पर उपयोग करने में कोई समस्या नहीं है। टर्मकैप ("अंतिम क्षमताओं" के लिए) पुस्तकालय को बीएसडी प्रणालियों के लिए विकसित किया गया था। यह फ़ाइल में संग्रहीत डेटाबेस का उपयोग करता है। इस डेटाबेस में अभिलेखों की एक श्रृंखला होती है (जिनमें से प्रत्येक में फ़ाइल में एक या अधिक पंक्तियाँ होती हैं, जो प्रत्येक पंक्ति के अंत में बैकस्लैश वर्णों से जुड़ी होती हैं जो निम्नलिखित पर जारी रहती हैं) जिनमें से प्रत्येक एक विशेष टर्मिनल की क्षमताओं का प्रतिनिधित्व करता है। अभिलेख के क्षेत्रों में अंतिम प्रकार का नाम, या नाम शामिल होते हैं, जिसके बाद कोलन द्वारा अलग की गई क्षमताओं का एक क्रम होता है। क्षमता क्षेत्र स्वयं तीन समूहों में आते हैंः टर्मिनल की विशेषताएँ इनमें ऐसी चीजें शामिल हैं जैसे कि टर्मिनल के प्रदर्शन में पंक्तियों और स्तंभों की (नाममात्र) संख्या, क्या आउटपुट स्वचालित रूप से अगली पंक्ति पर लपेटता है जब यह एक रेखा के अंत तक पहुंचता है, और इसी तरह आगे। टर्मिनल को आउटपुट के रूप में भेजे गए नियंत्रण अनुक्रम इनमें नियंत्रण कोड और टर्मिनल को भेजे गए पलायन अनुक्रम शामिल होते हैं ताकि यह कुछ क्रिया कर सके (जरूरी नहीं कि एक प्रदर्शन क्रिया हो)। सबसे सरल में से एक का उदाहरण स्क्रीन को साफ़ करने के लिए आउटपुट अनुक्रम है, जो कुछ प्रकार के टर्मिनल पर फॉर्म फ़ीड (ए. एस. सी. आई. आई.) वर्ण हो सकता है, लेकिन, मान लीजिए, एक टर्मिनल पर पलायन अनुक्रम हो सकता है जिसके लिए ए. एन. एस. आई. पलायन अनुक्रम की आवश्यकता होती है। टर्मिनल द्वारा इनपुट के रूप में भेजे गए नियंत्रण अनुक्रम इनमें नियंत्रण कोड और पलायन अनुक्रम शामिल हैं जो टर्मिनल विभिन्न कार्यों और घटनाओं का प्रतिनिधित्व करने के लिए मेजबान को भेजता है, जैसे कि कार्य कुंजी और तीर कुंजी को दबाया जा रहा है। टर्मिनफो ("अंतिम जानकारी") पुस्तकालय को सिस्टम V प्रणालियों के लिए विकसित किया गया था। यह एक निर्देशिका के भीतर कई फ़ाइलों में संग्रहीत एक डेटाबेस का उपयोग करता है, जो विभिन्न प्रकार से (विभिन्न यूनिसेज और पोसिक्स-संगत प्रणालियों पर), या यहां तक कि हो सकता है। (इसका स्थान लिनक्स के विभिन्न वितरणों में समान भी नहीं है।) टर्मकैप डेटाबेस के विपरीत, टर्मिन्फो डेटाबेस को संकलित किया जाता है, एक मशीन-पठनीय डेटाबेस जिसे एक उपयोगिता कार्यक्रम द्वारा मानव-पठनीय स्रोत फ़ाइल प्रारूप से बनाया जाता है। उन्हें एक अन्य उपयोगिता कार्यक्रम द्वारा मशीन-पठनीय रूप से मानव-पठनीय रूप में विघटित किया जा सकता है। "vt100" टर्मिनल परिभाषा के मानव-पठनीय रूप को आउटपुट करने का आदेश, उदाहरण के लिए, हैः infocmp vt100 एक मशीन-पठनीय प्रारूप का उपयोग अनावश्यक ओवरहेड से बचने के लिए था, टर्मकैप लाइब्रेरी जैसे सिस्टम का उपयोग करने वाले एप्लिकेशन प्रोग्रामों में, रिकॉर्ड के क्षेत्रों को पढ़ने के लिए डेटाबेस सामग्री को बार-बार पार्स करना। लक्ष्य टर्मिनल प्रकार के लिए डेटाबेस रिकॉर्ड खोजने के लिए डेटाबेस सामग्री को पार्स करने के समान ओवरहेड से बचने के लिए कई फ़ाइलों का उपयोग किया गया था। टर्मिनल प्रकार का नाम सूचकांक, प्रभावी रूप से, यूनिक्स/पोसिक्स फ़ाइल सिस्टम की साधारण निर्देशिका संरचना है। मूल रूप से, यूनिक्स में कई फ़ाइलों वाली बड़ी निर्देशिकाओं के साथ गंभीर प्रदर्शन समस्याएं थीं, और इस प्रकार टर्मिन्फो दो-स्तरीय संरचना का उपयोग करता है, जो निर्देशिका प्रविष्टियों को पहले अक्षर से उप-निर्देशिकाओं की एक श्रृंखला में विभाजित करता है। यूनिक्स सिस्टम पर उपयोग किए जाने वाले हाल के फ़ाइल सिस्टम प्रारूपों को इस तरह की समस्याओं से ज्यादा नुकसान नहीं होता है (क्योंकि उनकी ऑन-डिस्क निर्देशिका संरचनाएं अब प्रविष्टियों की सरल सरणी नहीं हैं, बल्कि पेड़ों या हैश तालिकाओं में व्यवस्थित हैं) और इसलिए इस डिज़ाइन तत्व की आवश्यकता, जो अभी भी आधुनिक परिभाषाओं के कार्यान्वयन में मौजूद है, तब से गायब हो गई है। टर्मिनल क्षमताओं का प्रयोग करने के लिए उपयोगिता कार्यक्रम यूनिक्स सिस्टम पर, कमांड का उपयोग सिस्टम के डेटाबेस में एक विशिष्ट क्षमता को देखने के लिए किया जाता है, और इसे कमांड के मानक आउटपुट में आउटपुट किया जाता है (जो, संभवतः, वह टर्मिनल है जिसके द्वारा क्षमता द्वारा निरूपित कार्य किया जाना है)। सबसे सरल कार्यों में से एक स्क्रीन को साफ़ करना है। डेटाबेस फ़ील्ड का नाम जो इसके लिए आउटपुट अनुक्रम को संग्रहीत करता है, इसलिए स्क्रीन को साफ़ करने के लिए प्रोग्राम के लिए कमांड तर्क स्पष्ट हैं एक अन्य ऑपरेशन टर्मिनल को एक ज्ञात डिफ़ॉल्ट स्थिति (वर्ण विशेषताओं, फोंट, रंगों आदि) में आरंभ करना या रीसेट करना है। इसके लिए कमांड हैंः tput init और tput रीसेट आम तौर पर कमांड TERM एनवायरनमेंट वेरिएबल द्वारा निर्दिष्ट टर्मिनल प्रकार का उपयोग करता है, जो पोसिक्स टर्मिनल इंटरफेस के नियंत्रक एनवायरनमेंट वेरिएबल में से एक है। हालाँकि, इसे कमांड-लाइन विकल्प के साथ डेटाबेस में एक अलग टर्मिनल प्रकार देखने के लिए मजबूर करने के लिए ओवरराइड किया जा सकता है। इसलिए, उदाहरण के लिए, डेटाबेस (आमतौर पर एक डी. ई. सी. वी. टी. 100 टर्मिनल) में "वी. टी. 100" नामक टर्मिनल के प्रकार के लिए उपयुक्त रीसेट अनुक्रम जारी करने के लिए, पर्यावरण चर में निर्दिष्ट टर्मिनल प्रकार की परवाह किए बिना, आदेश हैः टी. पी. टी.-टी. वी. टी. 100 रीसेट संदर्भ क्या स्रोतों का समर्थन करता है।