2014-10-30 7 views
6

मैं इस पृष्ठ के उदाहरण से ptys के बारे में पढ़ रहा हूं: http://rachid.koucha.free.fr/tech_corner/pty_pdip.html। मेरे पास दो प्रश्न हैं:पीटीआई और पाइप के बीच अंतर

  • एक पीटीई और पाइप का उपयोग करने के बीच अंतर, या सबसे महत्वपूर्ण अंतर क्या अंतर है? जो मैंने पढ़ा है, दोनों इंटर-प्रोसेस संचार के लिए हैं, लेकिन एक पीटीआई के साथ प्रक्रिया "इसे सामान्य टर्मिनल की तरह व्यवहार कर सकती है"। इसका क्या मतलब है?

  • "नियंत्रण टर्मिनल" क्या है? मैंने उनके बारे में पढ़ा है लेकिन वे समझ नहीं सकते कि वे वास्तव में क्या हैं। नियंत्रण टर्मिनल हमेशा प्रक्रिया को सौंपा पीटीआई है?

+0

क्या मेरा प्रश्न खराब है ? मुझे कोई जवाब नहीं दिख रहा है और सोच रहा था कि क्या मैंने कुछ गलत पूछा है – kprincipe

+0

नहीं, आपका प्रश्न अच्छा है (मुझे अपने बारे में सोचने में याद है)। हालांकि, यह बहुत व्यापक है, और गैर-तकनीकी रूप से जवाब देने में मुश्किल है, जबकि आपके द्वारा उल्लेख किया गया लेख पहले से ही बहुत अच्छा है। मैं पीटीवी के लिए –

+0

के नीचे एक उत्तर देने का प्रयास करूंगा, यह भी देखें http://en.wikipedia.org/wiki/Pseudo_terminal – nos

उत्तर

9

article आप उत्कृष्ट है, और सुधार करने के लिए कठिन है का उल्लेख है, लेकिन यह नहीं बल्कि तकनीकी है। मैं एक कम तकनीकी व्याख्या (!, मेरे साथ सहन यूनिक्स गुरु)

एक पाइप सिर्फ एक यूनिडायरेक्शनल डेटा चैनल है देने की कोशिश करेंगे: यह केवल एक छोर पर लिखा जा सकता है, और अन्य पर पढ़ें। बिडरेक्शनल इंटर-प्रोसेस संचार के लिए आपको हमेशा दो पाइप की आवश्यकता होगी। पाइप चारों ओर बिट्स को स्थानांतरित करने के लिए उत्कृष्ट हैं, लेकिन अधिक के लिए नहीं।

पीटी (स्यूडोटेर्मिनल) दोनों सिरों पर पढ़ और लिखा जा सकता है, लेकिन यह केवल एक द्विपक्षीय डेटा चैनल से कहीं अधिक है। इसे समझने के लिए, वास्तविक टर्मिनल पर एक नज़र रखना उपयोगी होता है: एक अंत में एक कीस्ट्रोक पढ़ने और एक टेलीलेट या स्क्रीन पर अक्षर भेजने की प्रक्रिया होती है। दूसरी तरफ एक असली मानव एक कीबोर्ड पर टक्कर लगी है और ऊपर उल्लिखित स्क्रीन पर घूर रही है। केवल एक छोर में फ़ाइल डिस्क्रिप्टर होता है, दूसरा अंत सिर्फ एक कनेक्टर और केबल होता है।

ऐतिहासिक रूप से, टर्मिनल ने कई विशेषताओं को विकसित किया है जिन्हें उन पर चल रहे कार्यक्रमों (जैसे 'इको मोड' या 'कैननिकल मोड' द्वारा नियंत्रित किया जा सकता है, termios (3) देखें) इसके अलावा, एक टर्मिनल उपयोगकर्ता को उपरोक्त तरीके से -निश्त कनेक्टर और केबल) संकेत भेजते हैं जिनका उपयोग 'नौकरी नियंत्रण' के लिए किया जा सकता है, उदाहरण के लिए पृष्ठभूमि में अग्रभूमि नौकरी डालने के लिए CTRL-Z टाइप करके।

एक pty कोई वास्तविक टर्मिनल जहां दोनों समाप्त होता है की तरह है फ़ाइल वर्णनकर्ता हैं: गुलाम अंत की जानकारी देता (है कि एक प्रक्रिया:

  • गुलाम अंत वास्तव में कोई वास्तविक टर्मिनल की तरह बर्ताव "निम्न प्रक्रिया") से पढ़ा जा सकता है, और इसे लिख सकता है, लेकिन टर्मिनल एटिब्यूट्स जैसे इको मोड या इंटरप्ट कैरेक्टर (जैसे CTRL + C) भी सेट कर सकता है। यह आमतौर पर यह भी अवगत नहीं होगा कि वास्तविक स्क्रीन और कीबोर्ड से कनेक्ट नहीं है।

  • मास्टर अंत, और अधिक एक कीबोर्ड और उपयोग के लिए टेली टाइप की तरह लग रहा मनुष्यों द्वारा नहीं, बल्कि अन्य प्रक्रियाओं के द्वारा: किसी भी प्रक्रिया है कि मास्टर अंत खोल दिया है इसे करने के लिए लिख सकते हैं, और गूंज प्राप्त होगा (लेकिन केवल यदि निम्न प्रक्रिया ने दास पर ECHO विशेषता सेट की है)। यह (अधिकांश आधुनिक इकाइयों पर भी) उस सत्र को नियंत्रित कर सकता है जिसमें दास को टर्मिनल नियंत्रित करना), उदाहरण के लिए CTRL + Z भेजकर।

को समझने के लिए क्या एक को नियंत्रित करने के लिए टर्मिनल है, इसे फिर से उपयोगी है परिदृश्य में जहाँ कोई वास्तविक उपयोगकर्ता एक असली टर्मिनल पर प्रवेश होने के बारे में सोचना।उपयोगकर्ता "सत्र" शुरू कर सकता है, यानी प्रक्रियाओं का संग्रह, उनमें से कुछ अग्रभूमि नौकरियों में, पृष्ठभूमि में अन्य।

अराजकता को रोकने के लिए, एक नियंत्रण टर्मिनल (यानी इसके साथ जुड़े कर्नेल संरचना) ट्रैक करता है कि कौन सी प्रक्रियाएं अग्रभूमि या पृष्ठभूमि नौकरी में हैं, और कौन सी प्रक्रियाओं को पढ़ने और लिखने की अनुमति है। जब भी कोई प्रक्रिया कुछ अवैध कोशिश करती है (जैसे नियंत्रण प्रक्रिया टर्मिनल से पढ़ने की पृष्ठभूमि प्रक्रिया) ऑपरेशन विफल हो जाएगा (EIO के साथ) और पूरे काम को कर्नेल (सिग्नल SIGTTIN का उपयोग करके)

यह दिखाता है कि, बस एक वास्तविक टर्मिनल के साथ, केवल एक पीटीआई का दास अंत एक नियंत्रित टर्मिनल हो सकता है, और यह अवधारणा केवल यूनिक्स सिस्टम पर समझ में आता है जो नौकरी नियंत्रण (किसी भी यूनिक्स सिस्टम, आजकल) का समर्थन करता है

+0

मैं अब बेहतर समझता हूं, मैं नियंत्रण टर्मिनल के साथ थोड़ा उलझन में हूं, नियंत्रण टर्मिनल है प्रक्रिया दास को मिलती है या दास नियंत्रण टर्मिनल है? – kprincipe

+0

एक प्रक्रिया को कभी "टर्मिनल" नहीं कहा जाता है। एक पीटीआई का दास अंत एक सत्र के नियंत्रण टर्मिनल हो सकता है। सत्र में सबसे पुरानी प्रक्रिया को "सत्र नेता" कहा जाता है (यह अक्सर किसी प्रकार का खोल होता है) और आमतौर पर (लेकिन जरूरी नहीं) यह प्रक्रिया है जो नियंत्रण प्रक्रिया टर्मिनल को पृष्ठभूमि या अग्रभूमि में अन्य प्रक्रिया समूहों को रखने के लिए निर्देश देती है। एक अर्थ में आप इस प्रक्रिया को "टर्मिनल कंट्रोलर" कह सकते हैं, लेकिन कभी भी "नियंत्रण टर्मिनल" –

+0

ओह मुझे नहीं लगता है कि पीटीआई वर्चुअल टर्मिनल प्रोग्राम की तरह है जो प्रबंधन करता है कि प्रोग्राम कैसे इंटरैक्ट करते हैं और संसाधनों का उपयोग करते हैं – kprincipe

संबंधित मुद्दे