Terminal capabilities
કમ્પ્યુટિંગ અને ટેલિકમ્યુનિકેશન્સમાં, ટર્મિનલની ક્ષમતાઓ વિવિધ ટર્મિનલ સુવિધાઓ છે, જે શુદ્ધ ટેલીટાઇપરાઇટરમાંથી ઉપલબ્ધ છે તેનાથી ઉપર અને બહાર છે, જેનો યજમાન પ્રણાલીઓ (અને તેમના પર ચાલતા કાર્યક્રમો) ઉપયોગ કરી શકે છે. તેઓ (મુખ્યત્વે) નિયંત્રણ કોડ્સ અને એસ્કેપ કોડ્સ છે જે ટર્મિનલ પર મોકલી અથવા પ્રાપ્ત કરી શકાય છે. ટર્મિનલ પર મોકલવામાં આવેલા એસ્કેપ કોડ વિવિધ કાર્યો કરે છે જે સી. આર. ટી. ટર્મિનલ (અને સોફ્ટવેર ટર્મિનલ એમુલેટર) સક્ષમ હોય છે, પરંતુ તે ટેલીટાઇપરાઇટર નથી; જેમ કે ટર્મિનલના કર્સરને સ્ક્રીન પરની સ્થિતિ પર ખસેડવું, સ્ક્રીનના તમામ અથવા ભાગોને સાફ અને સ્ક્રોલ કરવું, જોડાયેલ પ્રિન્ટર ઉપકરણોને ચાલુ અને બંધ કરવું, પ્રોગ્રામિંગ પ્રોગ્રામેબલ ફંક્શન કીઓ, ડિસ્પ્લે રંગો અને વિશેષતાઓ (જેમ કે રિવર્સ વીડિયો) બદલવી, અને ડિસ્પ્લે ટાઇટલ સ્ટ્રિંગ્સ સેટ કરવી. ટર્મિનલમાંથી મેળવેલા એસ્કેપ કોડ ફંક્શન કી, એરો કી અને અન્ય વિશેષ કી (હોમ કી, એન્ડ કી, હેલ્પ કી, PgUp કી, PgDn કી, ઇન્સર્ટ કી, ડીલીટ કી વગેરે) જેવા કીસ્ટ્રોક સૂચવે છે. યુનિક્સ અને પોસિક્સઃ ટર્મકેપ, ટર્મિન્ફો, વગેરે. યુનિક્સ અને અન્ય પોસિક્સ-સુસંગત સિસ્ટમો કે જે પોસિક્સ ટર્મિનલ ઇન્ટરફેસને ટેકો આપે છે, તેમાં આ ક્ષમતાઓ ડેટાબેઝમાં એન્કોડ કરવામાં આવે છે જે સિસ્ટમ એડમિનિસ્ટ્રેટર દ્વારા રૂપરેખાંકિત કરવામાં આવે છે અને ટર્મિન્ફો લાઇબ્રેરી (જે જૂની ટર્મકેપ લાઇબ્રેરીનું સ્થાન લે છે) દ્વારા પ્રોગ્રામ્સમાંથી એક્સેસ કરવામાં આવે છે, જેના પર બદલામાં કર્ઝ અને એનકર્સિસ લાઇબ્રેરીઓ જેવી લાઇબ્રેરીઓ બનાવવામાં આવે છે, જેના દ્વારા એપ્લિકેશન પ્રોગ્રામ્સ વિન્ડોઝ, ડાયલોગ બોક્સ, બટનો, લેબલ્સ, ઇનપુટ ફીલ્ડ્સ, મેનુઓ વગેરે સાથે ટેક્સ્ટ્યુઅલ વપરાશકર્તા ઇન્ટરફેસો પ્રદાન કરવા માટે ટર્મિનલ ક્ષમતાઓનો ઉપયોગ કરે છે. હેતુ એ છે કે આ એપ્લિકેશન પ્રોગ્રામ્સને વાસ્તવિક અંતિમ લાક્ષણિકતાઓથી સ્વતંત્ર રહેવાની મંજૂરી આપે છે. તેમને તેમના કોડમાં કોઈપણ નિયંત્રણ કોડ અથવા એસ્કેપ સિક્વન્સને હાર્ડવાયર કરવાની જરૂર નથી, અને તેથી ક્ષમતાઓની શ્રેણી સાથે ટર્મિનલ્સની શ્રેણી પર ઉપયોગમાં લેવાતી સમસ્યાઓ નથી. ટર્મકેપ લાઇબ્રેરી ("અંતિમ ક્ષમતાઓ" માટે) બીએસડી સિસ્ટમો માટે વિકસાવવામાં આવી હતી. તે ફાઇલમાં સંગ્રહિત ડેટાબેઝનો ઉપયોગ કરે છે. આ ડેટાબેઝમાં રેકોર્ડ્સની શ્રેણીનો સમાવેશ થાય છે (જેમાંની દરેક ફાઇલમાં એક અથવા વધુ રેખાઓ હોય છે, જે દરેક રેખાના અંતે બેકસ્લેશ અક્ષરો દ્વારા જોડાયેલી હોય છે જે નીચેની એક પર ચાલુ રહે છે) જેમાંથી દરેક ચોક્કસ ટર્મિનલની ક્ષમતાઓને રજૂ કરે છે. રેકોર્ડના ક્ષેત્રોમાં અંતિમ પ્રકારનાં નામ અથવા નામોનો સમાવેશ થાય છે, જે પછી કોલોન દ્વારા અલગ કરવામાં આવેલી ક્ષમતાઓનો ક્રમ હોય છે. ક્ષમતા ક્ષેત્રો પોતે ત્રણ જૂથોમાં આવે છેઃ ટર્મિનલની લાક્ષણિકતાઓ આમાં ટર્મિનલના પ્રદર્શનમાં (નજીવી) પંક્તિઓ અને સ્તંભોની સંખ્યા જેવી બાબતોનો સમાવેશ થાય છે, જ્યારે આઉટપુટ લીટીના અંત સુધી પહોંચે છે ત્યારે તે આપમેળે આગળની લાઇન પર લપેટી લે છે કે કેમ, અને તેથી આગળ. ટર્મિનલ પર આઉટપુટ તરીકે મોકલવામાં આવેલા નિયંત્રણ ક્રમમાં નિયંત્રણ કોડ અને ટર્મિનલ પર મોકલવામાં આવેલા એસ્કેપ ક્રમનો સમાવેશ થાય છે જેથી તે કેટલીક ક્રિયા કરી શકે (પ્રદર્શન ક્રિયા જરૂરી નથી). સૌથી સરળ ઉદાહરણોમાંનું એક સ્ક્રીનને સાફ કરવા માટેનો આઉટપુટ ક્રમ છે, જે અમુક પ્રકારના ટર્મિનલ પર ફોર્મ ફીડ (ASCII) અક્ષર હોઈ શકે છે, પરંતુ કહીએ તો તે ટર્મિનલ પરનો એસ્કેપ ક્રમ હોઈ શકે છે જેને એએનએસઆઈ એસ્કેપ સિક્વન્સની જરૂર હોય છે. ટર્મિનલ દ્વારા ઇનપુટ તરીકે મોકલવામાં આવેલા કંટ્રોલ સિક્વન્સમાં કંટ્રોલ કોડ્સ અને એસ્કેપ સિક્વન્સનો સમાવેશ થાય છે જે ટર્મિનલ યજમાનને વિવિધ ક્રિયાઓ અને ઘટનાઓનું પ્રતિનિધિત્વ કરવા માટે મોકલે છે, જેમ કે ફંક્શન કી અને તીર કી દબાવવામાં આવે છે. ટર્મિનફો ("અંતિમ માહિતી") લાઈબ્રેરી સિસ્ટમ V સિસ્ટમો માટે વિકસાવવામાં આવી હતી. તે ડિરેક્ટરીની અંદર બહુવિધ ફાઇલોમાં સંગ્રહિત ડેટાબેઝનો ઉપયોગ કરે છે, જે વિવિધ રીતે (વિવિધ યુનિસીસ અને પોસિક્સ-સુસંગત સિસ્ટમો પર) અથવા તો હોઈ શકે છે. (તેનું સ્થાન લિનક્સના વિવિધ વિતરણોમાં સમાન પણ નથી.) ટર્મકેપ ડેટાબેઝથી વિપરીત, ટર્મિન્ફો ડેટાબેઝ સંકલિત કરવામાં આવે છે, એક મશીન-વાંચી શકાય તેવો ડેટાબેઝ જે યુટિલિટી પ્રોગ્રામ દ્વારા માનવ-વાંચી શકાય તેવા સ્રોત ફાઇલ ફોર્મેટમાંથી બનાવવામાં આવે છે. તેમને અન્ય ઉપયોગિતા કાર્યક્રમ દ્વારા મશીન-વાંચી શકાય તેવા સ્વરૂપમાંથી માનવ-વાંચી શકાય તેવા સ્વરૂપમાં વિઘટિત કરી શકાય છે. "vt100" ટર્મિનલ વ્યાખ્યાના માનવ-વાંચી શકાય તેવા સ્વરૂપને આઉટપુટ કરવાનો આદેશ, ઉદાહરણ તરીકે, છેઃ ઇન્ફોકેમ્પ vt100 મશીન-વાંચી શકાય તેવા ફોર્મેટનો ઉપયોગ બિનજરૂરી ઓવરહેડને ટાળવા માટે હતો, ટર્મકેપ લાઇબ્રેરી જેવી સિસ્ટમોનો ઉપયોગ કરતા એપ્લિકેશન્સ પ્રોગ્રામ્સમાં, રેકોર્ડના ક્ષેત્રોને વાંચવા માટે ડેટાબેઝ સામગ્રીને વારંવાર પદચ્છેદન કરવું. બહુવિધ ફાઇલોનો ઉપયોગ લક્ષ્ય ટર્મિનલ પ્રકાર માટે ડેટાબેઝ રેકોર્ડ શોધવા માટે ડેટાબેઝ સામગ્રીને પદચ્છેદન કરવાના સમાન ઓવરહેડને ટાળવા માટે હતો. ટર્મિનલ પ્રકાર નામ અનુક્રમણિકા, અસરકારક રીતે, યુનિક્સ/પોસિક્સ ફાઇલસિસ્ટમનું સામાન્ય ડિરેક્ટરી માળખું છે. મૂળરૂપે, યુનિક્સમાં ઘણી ફાઇલો ધરાવતી મોટી ડિરેક્ટરીઓ સાથે ગંભીર કામગીરીની સમસ્યાઓ હતી, અને આમ ટર્મિન્ફો બે-સ્તરની રચનાનો ઉપયોગ કરે છે, જે ડિરેક્ટરી એન્ટ્રીઓને પ્રથમ અક્ષર દ્વારા પેટા ડિરેક્ટરીઓની શ્રેણીમાં વિભાજિત કરે છે. યુનિક્સ સિસ્ટમો પર ઉપયોગમાં લેવાતા વધુ તાજેતરના ફાઇલસિસ્ટમ બંધારણો આવી સમસ્યાઓથી વધુ પીડાતા નથી (કારણ કે તેમની ઓન-ડિસ્ક ડિરેક્ટરી માળખાં હવે એન્ટ્રીઓના સરળ એરે નથી, પરંતુ વૃક્ષો અથવા હેશ કોષ્ટકોમાં ગોઠવવામાં આવે છે) અને તેથી આ ડિઝાઇન તત્વની જરૂરિયાત, જે હજુ પણ આધુનિક પરિભાષાઓના અમલીકરણમાં અસ્તિત્વમાં છે, તે ત્યારથી અદ્રશ્ય થઈ ગઈ છે. યુનિક્સ સિસ્ટમો પર, આદેશનો ઉપયોગ સિસ્ટમના ડેટાબેઝમાં ચોક્કસ ક્ષમતા જોવા માટે થાય છે, અને તેને આદેશના પ્રમાણભૂત આઉટપુટમાં આઉટપુટ કરવા માટે થાય છે (જે, સંભવતઃ, ટર્મિનલ છે જેના દ્વારા ક્ષમતા દ્વારા દર્શાવવામાં આવેલ કાર્ય કરવામાં આવે છે). સૌથી સરળ કામગીરીઓમાંની એક છે સ્ક્રીનને સાફ કરવી. ડેટાબેઝ ક્ષેત્રનું નામ કે જે આના માટે આઉટપુટ ક્રમને સંગ્રહિત કરે છે, તેથી સ્ક્રીનને સાફ કરવા માટે પ્રોગ્રામની આદેશ દલીલો સ્પષ્ટ છે અન્ય કામગીરી ટર્મિનલને જાણીતી મૂળભૂત સ્થિતિ (અક્ષર વિશેષતાઓ, ફોન્ટ્સ, રંગો વગેરે) માં પ્રારંભ અથવા રીસેટ કરી રહી છે. આ માટેના આદેશો છેઃ tput init અને tput રીસેટ સામાન્ય રીતે આદેશ TERM પર્યાવરણ ચલ દ્વારા નિર્દિષ્ટ અંતિમ પ્રકારનો ઉપયોગ કરે છે, જે પોસિક્સ ટર્મિનલ ઇન્ટરફેસના નિયંત્રિત પર્યાવરણ ચલમાંથી એક છે. જો કે, આદેશ માટે આદેશ-વાક્ય વિકલ્પ સાથે ડેટાબેઝમાં એક અલગ ટર્મિનલ પ્રકાર જોવા માટે દબાણ કરવા માટે આને ઓવરરાઇડ કરી શકાય છે. તેથી, ઉદાહરણ તરીકે, ડેટાબેઝમાં "vt100" નામના ટર્મિનલના પ્રકાર માટે યોગ્ય રીસેટ ક્રમ જારી કરવા માટે (સામાન્ય રીતે DEC VT100 ટર્મિનલ), પર્યાવરણ ચલમાં નિર્દિષ્ટ ટર્મિનલ પ્રકારને ધ્યાનમાં લીધા વિના, આદેશ છેઃ tput-T vt100 રીસેટ સંદર્ભો કયા સ્રોતોનો ઉપયોગ કરે છે તે આધાર આપે છે.