Seventh Edition Unix terminal interface
સાતમી આવૃત્તિ યુનિક્સ ટર્મિનલ ઇન્ટરફેસ એ સામાન્યીકૃત અમૂર્ત છે, જેમાં પ્રોગ્રામ્સ માટે એપ્લિકેશન પ્રોગ્રામિંગ ઇન્ટરફેસ અને વપરાશકર્તાઓ માટે વર્તણૂકીય અપેક્ષાઓનો સમૂહ બંનેનો સમાવેશ થાય છે, જે સાતમી આવૃત્તિ યુનિક્સમાં ઐતિહાસિક રીતે ઉપલબ્ધ છે. તેને મોટે ભાગે પોસિક્સ ટર્મિનલ ઈન્ટરફેસ દ્વારા હટાવી દેવામાં આવ્યું છે. વિભાવનાઓ અને ઝાંખી સાતમી આવૃત્તિ યુનિક્સ અને યુનિક્સ/32વી દ્વારા પ્રદાન કરાયેલ અને બીએસડી આવૃત્તિ 4 દ્વારા જૂના ટર્મિનલ ડ્રાઇવર તરીકે રજૂ કરાયેલ ટર્મિનલ ઇન્ટરફેસ એક સરળ હતું, જે મોટે ભાગે ટર્મિનલ તરીકે ટેલીટાઇપરાઇટર તરફ સજ્જ હતું. ઇનપુટને એક સમયે એક લાઇનમાં દાખલ કરવામાં આવતું હતું, જેમાં ઓપરેટિંગ સિસ્ટમમાં ટર્મિનલ ડ્રાઇવર (અને ટર્મિનલ પોતે નહીં) સરળ લાઇન એડિટિંગ ક્ષમતાઓ પૂરી પાડે છે. કર્નલ દ્વારા બફર જાળવવામાં આવ્યું હતું જેમાં સંપાદન થયું હતું. ટર્મિનલ ઇનપુટ વાંચતી એપ્લિકેશનો બફરની સામગ્રી ત્યારે જ પ્રાપ્ત કરશે જ્યારે અંતિમ વાક્ય સંપાદન માટે ટર્મિનલ પર કી દબાવવામાં આવે. ટર્મિનલથી સિસ્ટમ પર મોકલવામાં આવેલી ચાવી સંપાદન બફરની સમગ્ર વર્તમાન સામગ્રીને ભૂંસી નાખશે ("કિલ"), અને સામાન્ય રીતે '@"પ્રતીક તરીકે પ્રદર્શિત થશે અને ત્યારબાદ પ્રિન્ટની સ્થિતિને નવી ખાલી લીટી પર ખસેડવા માટે નવી લાઇન ક્રમ હશે. ટર્મિનલથી સિસ્ટમમાં મોકલવામાં આવેલી ચાવી સંપાદન બફરના અંતથી છેલ્લા અક્ષરને ભૂંસી નાખશે, અને સામાન્ય રીતે '#' પ્રતીક તરીકે પ્રદર્શિત થશે, જેને વપરાશકર્તાઓએ અગાઉના અક્ષરના 'રબઆઉટ' તરીકે ઓળખવું પડશે (ટેલિટાઇપરાઇટર કાગળ પર છાપ્યા પછી અક્ષરોને ભૂંસી નાખવામાં શારીરિક રીતે સક્ષમ નથી). પ્રોગ્રામિંગના દૃષ્ટિકોણથી, ટર્મિનલ ઉપકરણમાં બૉડ દર પ્રસારિત અને પ્રાપ્ત કરવા, "ભૂંસી નાંખો" અને "કિલ" અક્ષરો (જે રેખા સંપાદન કરે છે, સમજાવ્યા મુજબ), "ઇન્ટરપ્ટ" અને "ક્વિટ" અક્ષરો (જે બધી પ્રક્રિયાઓ માટે ટર્મિનલ એક નિયંત્રક ટર્મિનલ હતું તેના માટે સંકેતો ઉત્પન્ન કરે છે), "સ્ટાર્ટ" અને "સ્ટોપ" અક્ષરો (સોફ્ટવેર પ્રવાહ નિયંત્રણ માટે વપરાય છે), "એન્ડ ઓફ ફાઇલ" અક્ષર (રીડ () સિસ્ટમ કોલ દ્વારા બફરમાંથી કાઢી નાખવામાં આવ્યા સિવાય કેરેજ રીટર્નની જેમ કામ કરે છે અને તેથી સંભવિત રીતે શૂન્ય-લંબાઈનું પરિણામ પાછું આપે છે) અને કર્નલના ટર્મિનલ ડ્રાઇવર દ્વારા સ્થાનિક પ્રતિધ્વનિનું અનુકરણ કરવામાં આવ્યું હતું કે કેમ તે નિર્ધારિત કરતા વિવિધ મોડ ફ્લેગ, મોડેમ પ્રવાહ નિયંત્રણ સક્ષમ કરવામાં આવ્યું હતું કે કેમ, વિવિધ આઉટપુટ વિલંબની લંબાઈ, મેપિંગ માટે સાતમી આવૃત્તિ યુનિક્સમાં ટર્મિનલ માટે ત્રણ ઇનપુટ સ્થિતિઓ હતીઃ લાઇન સ્થિતિ (જેને "રાંધેલ" સ્થિતિ પણ કહેવાય છે) લાઇન સ્થિતિમાં લાઇન શિસ્ત તમામ લાઇન સંપાદન કાર્યો કરે છે અને "વિક્ષેપ" અને "છોડો" નિયંત્રણ અક્ષરોને ઓળખે છે અને તેમને પ્રક્રિયાઓમાં મોકલવામાં આવતા સંકેતોમાં રૂપાંતરિત કરે છે. વપરાશકર્તા દ્વારા રીટર્ન દબાવીને લાઇન એડિટિંગ પૂર્ણ થયા પછી, ટર્મિનલમાંથી વાંચતા એપ્લિકેશન પ્રોગ્રામ્સ સંપૂર્ણ રેખાઓ પ્રાપ્ત કરે છે. બ્રેક મોડબ્રેક મોડ એ બે કેરેક્ટર-એટ-અ-ટાઇમ મોડ્સમાંથી એક છે. (સ્ટીફન આર. બોર્ને મજાકમાં તેને "અડધી રાંધેલી" અને તેથી "દુર્લભ" રીત તરીકે ઓળખાવી.) રેખા શિસ્ત કોઈ રેખા સંપાદન કરતી નથી, અને રેખા સંપાદન કાર્યો માટેના નિયંત્રણ ક્રમને સામાન્ય અક્ષર ઇનપુટ તરીકે ગણવામાં આવે છે. ટર્મિનલમાંથી વાંચતા એપ્લિકેશન પ્રોગ્રામ્સ વાંચવા માટેની ઇનપુટ કતારમાં ઉપલબ્ધ થતાં જ તરત જ અક્ષરો પ્રાપ્ત કરે છે. જો કે, "ઇન્ટરપ્ટ" અને "ક્વિટ" નિયંત્રણ અક્ષરો, તેમજ મોડેમ ફ્લો નિયંત્રણ અક્ષરો, હજુ પણ ખાસ રીતે નિયંત્રિત કરવામાં આવે છે અને ઇનપુટ સ્ટ્રીમમાંથી દૂર કરવામાં આવે છે. કાચા મોડરો મોડ એ બે કેરેક્ટર-એટ-એ-ટાઇમ મોડ્સમાંથી અન્ય છે. રેખા શિસ્ત કોઈ રેખા સંપાદન કરતી નથી, અને રેખા સંપાદન કાર્યો અને વિવિધ વિશેષ અક્ષરો ("વિક્ષેપ", "બહાર નીકળો" અને પ્રવાહ નિયંત્રણ) બંને માટે નિયંત્રણ ક્રમને સામાન્ય અક્ષર ઇનપુટ તરીકે ગણવામાં આવે છે. ટર્મિનલમાંથી વાંચતા એપ્લિકેશન્સ પ્રોગ્રામ્સ તરત જ અક્ષરો પ્રાપ્ત કરે છે, અને સમગ્ર અક્ષર પ્રવાહને અપરિવર્તિત રીતે પ્રાપ્ત કરે છે, જેમ તે ટર્મિનલ ઉપકરણમાંથી જ આવ્યો હતો. પોસિક્સ ટર્મિનલ ઇન્ટરફેસમાં, આ સ્થિતિઓને માત્ર બે ઇનપુટ સ્થિતિઓની પ્રણાલી દ્વારા રદ કરવામાં આવી છેઃ કેનોનિકલ અને નોન-કેનોનિકલ. પોસિક્સ ટર્મિનલ ઇન્ટરફેસમાં સિગ્નલ-જનરેટિંગ વિશેષ અક્ષરોનું સંચાલન ઇનપુટ મોડથી સ્વતંત્ર છે, અને અલગથી નિયંત્રિત કરી શકાય તેવું છે. નિયંત્રણ ટર્મિનલ સાતમી આવૃત્તિ યુનિક્સમાં કોઈ અંતિમ કાર્ય નિયંત્રણ નહોતું અને પ્રક્રિયા જૂથને આજકાલ જે માનવામાં આવે છે તે માનવામાં આવતું ન હતું. સિસ્ટમની દરેક પ્રક્રિયામાં કાં તો એક જ નિયંત્રણ ટર્મિનલ હતું, અથવા કોઈ નિયંત્રણ ટર્મિનલ નહોતું. પ્રક્રિયા તેના નિયંત્રણ ટર્મિનલને તેના પેરેન્ટ પાસેથી વારસામાં મેળવે છે. કંટ્રોલિંગ ટર્મિનલ ત્યારે હસ્તગત કરવામાં આવ્યું હતું જ્યારે કોઈ કંટ્રોલિંગ ટર્મિનલ ઓપન () સાથેની પ્રક્રિયા એ ટર્મિનલ ઉપકરણ ફાઇલ છે જે પહેલેથી જ કોઈ અન્ય પ્રક્રિયા માટે કંટ્રોલિંગ ટર્મિનલ નથી. સમાન નિયંત્રણ ટર્મિનલ ધરાવતી તમામ પ્રક્રિયાઓ એક જ પ્રક્રિયા જૂથનો ભાગ હતી. એપ્લિકેશન પ્રોગ્રામિંગ ઇન્ટરફેસ આ તમામ સ્થિતિઓ અને નિયંત્રણ અક્ષરોની પૂછપરછ કરવા અને તેમાં ફેરફાર કરવા માટેનું પ્રોગ્રામેટિક ઇન્ટરફેસ ioctl () સિસ્ટમ કોલ હતું. (આ છઠ્ઠી આવૃત્તિ યુનિક્સના એસ્ટિટી () અને જીટીટી () સિસ્ટમ કૉલ્સને બદલે છે.) જો કે "ભૂંસી નાંખો" અને "મારી નાંખો" અક્ષરો તેમના ડિફોલ્ટ્સમાંથી સુધારી શકાય તેવા હતા અને, સાતમી આવૃત્તિ પછીના ઘણા વર્ષો સુધી વિકાસની જડતાનો અર્થ એ હતો કે તેઓ ટર્મિનલ ઉપકરણ ડ્રાઇવરોમાં પૂર્વ-સેટ ડિફોલ્ટ્સ હતા, અને ઘણી યુનિક્સ સિસ્ટમો પર, જેણે લોગિન પ્રક્રિયાના ભાગ રૂપે ફક્ત ટર્મિનલ ઉપકરણ સેટિંગ્સમાં ફેરફાર કર્યો હતો, સિસ્ટમ લોગિન સ્ક્રિપ્ટ્સમાં જે વપરાશકર્તાએ વપરાશકર્તાનામ અને પાસવર્ડ દાખલ કર્યા પછી ચાલી હતી, લોગિન અને પાસવર્ડ પ્રોમ્પ્ટ્સ પરની કોઈપણ ભૂલોને ટેલીટાઇપરાઇટર ટર્મિનલ્સમાંથી વારસામાં મળેલા ઐતિહાસિક સંપાદન મુખ્ય અક્ષરોનો ઉપયોગ કરીને સુધારવી પડી હતી. પ્રતીકાત્મક સ્થિરાંકો, જેમના મૂલ્યો નિશ્ચિત અને વ્યાખ્યાયિત હતા, અને પ્રોગ્રામેટિક ઇન્ટરફેસની ડેટા સ્ટ્રક્ચર વ્યાખ્યાઓ sgtty.h સિસ્ટમ હેડરમાં વ્યાખ્યાયિત કરવામાં આવી હતી. ioctl () ઓપરેશન્સ ioctl () ઓપરેશન્સ નીચે મુજબ હતીઃ sgttib ડેટા સ્ટ્રક્ચર ટર્મિનલ સિસ્ટમ કોલ્સ દ્વારા ઉપયોગમાં લેવાતું એક ડેટા સ્ટ્રક્ચર એ sgttib સ્ટ્રક્ચર છે, જેની C પ્રોગ્રામિંગ લેંગ્વેજ વ્યાખ્યા નીચે મુજબ છેઃ સ્ટ્રક્ટ sgttib {ચાર sg _ ispeed;// ઇનપુટ સ્પીડ ચાર sg _ ospeed;// આઉટપુટ સ્પીડ ચાર sg _ erase;// કેરેક્ટર ચાર sg _ કિલ ભૂંસી નાખો;// કિલ કેરેક્ટર ચાર sg _ ફ્લેગ્સ;// કંટ્રોલ ફ્લેગ્સ; પોસિક્સ ટર્મિનલ ઇન્ટરફેસથી વિપરીત, સાતમી આવૃત્તિ યુનિક્સ ટર્મિનલ ઇન્ટરફેસે સીધા ડેટા સ્ટ્રક્ચરમાં ઇનપુટ અને આઉટપુટ બૉડ રેટ રેકોર્ડ કર્યા હતા. sg _ ispeed અને sg _ ospeed ક્ષેત્રોમાં ઇનપુટ અને આઉટપુટ ઝડપ DEC DH-11 ની હતી, અને તે સંખ્યાઓ 0 થી 15 હતી, જે પ્રતીકાત્મક સ્થિરાંકો (ચડતા ક્રમમાં) B0, B50, B75, B110, B134, B150, B200, B300, B 600, B1200, B1800, B2400, B4800, B9600, EXTA અને EXTB દ્વારા રજૂ થાય છે, જ્યાં બૉડ દર નામ પ્રમાણે હતો (છેલ્લા બે "બાહ્ય A" અને "બાહ્ય B"). શૂન્યના બૉડ દરને સુયોજિત કરવાથી ટર્મિનલ ડ્રાઇવરને મોડેમ બંધ કરવાની ફરજ પડી (જો ટર્મિનલ મોડેમ ઉપકરણ હતું). sg _ erase અને sg _ ક૊લ્લ ક્ષેત્રો અનુક્રમે "ભૂંસી નાંખો" અને "મારી નાંખો" અક્ષરોના અક્ષર મૂલ્યો હતા, જે અનુક્રમે "અને" માટે (ASCII) મૂલ્યોમાં મૂળભૂત હતા. sg _ flags ક્ષેત્રે નીચેના કોષ્ટકની જેમ વિવિધ ઇનપુટ અને આઉટપુટ નિયંત્રણ ફ્લેગનો ઉલ્લેખ કર્યો છે. ટીચાર ડેટા સ્ટ્રક્ચર ટર્મિનલ સિસ્ટમ કોલ્સ દ્વારા ઉપયોગમાં લેવાતી એક ડેટા સ્ટ્રક્ચર એ ટીચાર સ્ટ્રક્ચર છે, જેની સી પ્રોગ્રામિંગ લેંગ્વેજ વ્યાખ્યા નીચે મુજબ છેઃ સ્ટ્રક્ટ ટીચાર {ચાર ટી _ ઇન્ટ્રક;// ઇન્ટરપ્ટ ચાર ટી _ ક્યુટક;// ક્વિટ ચાર ટી _ સ્ટાર્ટક;// સ્ટાર્ટ ચાર ટી _ સ્ટોપક;// સ્ટોપ ચાર ટી _ ઇઓએફસી;// ફાઇલ ચાર ટી _ બ્રૅકનો અંત;// બ્રેક (સમાન અસર સાથે હાર્ડવાયર્ડ એલએફ અક્ષરનો વિકલ્પ); આ ક્ષેત્રોના મૂલ્યો વિવિધ પ્રોગ્રામેટિકલી રૂપરેખાંકિત કરી શકાય તેવા વિશેષ અક્ષરોના મૂલ્યો હતા. કોઈપણ ક્ષેત્રમાં A-1 મૂલ્યે ટર્મિનલ ડ્રાઇવર દ્વારા તેની ઓળખને નિષ્ક્રિય કરી દીધી. સંદર્ભ ગ્રંથસૂચિ એપ્લિકેશન પ્રોગ્રામિંગ ઇન્ટરફેસ બેલ લેબ્સ યુનિસીસ બર્કલે સોફ્ટવેર ડિસ્ટ્રિબ્યુશન કમ્પ્યુટર ટર્મિનલ્સ ટેકનિકલ કોમ્યુનિકેશન