X, Xorg और D-Bus: क्या अंतर है?


35

GUI प्रोग्रामिंग में कुछ चीजें करने के लिए सीखने की प्रक्रिया में (जैसे, किसी एप्लिकेशन के लिए स्क्रीन पर स्थान को जलाना), मुझे विंडो मैनेजर के बारे में अधिक सीखना होगा, आमतौर पर लिनक्स पर X11 (मुझे यकीन नहीं है कि वहाँ भी डिस्ट्रो हैं , जो X11 के अलावा और कुछ का उपयोग करते हैं, हालांकि मैंने वायलैंड के बारे में सुना है , जो अभी तक किसी में लागू नहीं है।)

मैं प्रोग्रामिंग के लिए काफी नया हूं, और अधीर; इसलिए मैं इसमें गोता लगा रहा हूं। अब मैं ICCCM पढ़ रहा हूं, और अधिक सीखने की उम्मीद के साथ। हालाँकि यह दस्तावेज़ एक ऐसी जनता के लिए लक्ष्य रखता है जो मुझसे ज्यादा (रास्ता) जानती है। इसलिए मुझे कुछ जानकारी मिली, और मैं कुछ स्पष्टीकरण प्राप्त करना पसंद करूंगा।

ICCCM उद्धरण की धारा 2 :

ध्यान दें कि एक मालिक और एक अनुरोधकर्ता के बीच स्थानांतरित सभी डेटा को आमतौर पर एक्स संस्करण 11 वातावरण में सर्वर के माध्यम से जाना चाहिए। एक ग्राहक यह नहीं मान सकता है कि कोई अन्य ग्राहक समान फाइलें खोल सकता है या सीधे संवाद भी कर सकता है। अन्य क्लाइंट पूरी तरह से अलग नेटवर्किंग तंत्र के माध्यम से सर्वर से बात कर सकता है (उदाहरण के लिए, एक क्लाइंट DECnet और दूसरा टीसीपी / आईपी हो सकता है)। इस प्रकार, डेटा के अप्रत्यक्ष संदर्भ (जैसे फ़ाइल नाम, होस्ट नाम और पोर्ट नंबर, और इसी तरह) को पारित करने की अनुमति केवल तभी दी जाती है जब दोनों ग्राहक विशेष रूप से सहमत हों।

जहां तक ​​मैं समझता हूं, एक्स विंडो मैनेजर को टॉप ऑफ एक्स सर्वर (धन्यवाद विकिपीडिया) पर बनाया गया है। ऊपर दिए गए उद्धरण में: यह कहता है कि क्लाइंट DECnet या टीसीपी / आईपी का उपयोग कर सर्वर से संवाद कर सकता है। अब तक मैंने सोचा था कि "सर्वर" भाषण का एक आंकड़ा था, अब मुझे संदेह हो रहा है: क्या एक्स सर्वर एक "वेब सर्वर" के रूप में एक सर्वर है? मुझे इसके कार्य / परिभाषा को कैसे समझना चाहिए?

फिर, अक्सर X11, Xorg, X सर्वर और / या X विंडो मैनेजर के संदर्भ होते हैं। यह भ्रामक हो जाता है: X11 एक बंडल है जिसमें Xorg और X Window मैनेजर शामिल है? यदि हां, तो क्या इस X11 बंडल में कुछ और है?

एक्स को माउस या कीबोर्ड या किसी अन्य प्रकार के इनपुट की भी आवश्यकता है: क्या यह एक्स सर्वर के कार्यों का भी हिस्सा है? क्या एक्स विंडो मैनेजर केवल प्रदर्शन के बाद सख्ती से देख रहा है?

अंत में, ऊपर दिए गए उद्धरण में ग्राहक के एक दूसरे के साथ संवाद करने या न करने का भी उल्लेख किया गया है: इसने मुझे डी-बस की याद दिला दी, जो कि मैंने सीखने के उद्देश्यों के लिए थोड़ा उपयोग किया है। डी-बस के साथ आप विंडो इवेंट भी ट्रिगर कर सकते हैं। यह मुझे थोड़ा उलझन में है कि कार्यक्रमों को एक दूसरे के साथ कैसे संवाद करना चाहिए: * एक्स सर्वर का उपयोग करके या डी-बस का उपयोग करने वाले कार्यक्रमों के बीच क्या अंतर है? *

यह शर्म की बात है कि यह जानकारी किसी तरह अस्पष्ट बनी हुई है, इसे सीखना कठिन है, लेकिन उम्मीद है कि आप इस पर कुछ प्रकाश ला सकते हैं :) धन्यवाद।

जवाबों:


61

आप यहां पांच प्रश्न पूछ रहे हैं, और बेहतर हो सकता है कि आप पांच प्रश्न पूछें jump लेकिन मैं इसमें कूद जाऊंगा:

  1. X एक सर्वर है और इसकी तुलना "वेब सर्वर" से की जा सकती है क्योंकि यह एक ऐसी प्रक्रिया है जो आने वाले कनेक्शनों के लिए सुनती है जो किसी विशेष प्रोटोकॉल (X प्रोटोकॉल) को बोलते हैं और यह उत्तर जारी करता है। कनेक्शन एक्स क्लाइंट से आते हैं, जो स्थानीय होस्ट या नेटवर्क पर एक्सेस किए गए रिमोट होस्ट पर हो सकता है।

  2. एक्स 11 एक्स प्रोटोकॉल का "प्रमुख संस्करण" है, जो कि स्थापना के बाद से विकसित हुआ है। एक्स 11 सबसे हालिया प्रोटोकॉल और सबसे आम है। (Xorg एक X सर्वर, X लाइब्रेरीज़ और क्लाइंट्स के एक संग्रह का कार्यान्वयन है, सभी X11 पर बात कर रहे हैं। अन्य कार्यान्वयन भी हैं: मोटे तौर पर एक्सफ़्री 86; हमिंगबर्ड एक्सेड जैसे वाणिज्यिक वाले; एक्स-एक्स-क्वार्ट्ज़ जैसे कांटे, जो मैक ओएस एक्स पर चलता है। )

  3. एक "विंडो मैनेजर" एक एक्स क्लाइंट है जो विंडोज़ का प्रबंधन करता है। इसमें आमतौर पर बेवेल / बॉर्डर, ड्रॉप शैडोज, एक मेनू बार जिसमें बटन आदि होते हैं, को सजाने की जिम्मेदारी होती है - और विंडो प्लेसमेंट के तर्क को संभालता है; समर्थन खिड़कियों को घसीटा जा रहा है, आकार परिवर्तन या फिर से व्यवस्थित किया जा रहा है, आदि।

  4. एक्स को इनपुट की आवश्यकता है और कर्नेल के साथ इसे प्रबंधित करने के लिए एक साझा जिम्मेदारी है। ऐतिहासिक रूप से, X ने बहुत सारे हार्डवेयर प्रबंधन स्वयं किए। आधुनिक समय में, लिनक्स प्लेटफॉर्म पर, एक्स धीरे-धीरे "छोटा" होता जा रहा है और लिनक्स कर्नेल को यह जिम्मेदारी सौंप रहा है। इस के फायदे हैं: छोटे एक्स कोडबेस; कर्नेल के साथ कम "क्रॉस-वियर्स" और एक्स दोनों एक ही सामान का प्रबंधन करने की कोशिश कर रहे हैं। (इसका एक उदाहरण लिनक्स इवेंट इंटरफ़ेस है, जहां चूहों आदि की घटनाओं की व्याख्या और अनुवाद कर्नेल और उसके ड्राइवरों द्वारा मानक इंटरफ़ेस में /dev/input/event*किया जाता है, जो एक्स सर्वर द्वारा खपत होती है)। ध्यान दें कि अन्य प्लेटफार्मों पर (बीएसडी, सोलारिस) एक्स अभी भी काफी अखंड है।

  5. प्रक्रियाओं के लिए कई, कई तरीके हैं जो एक दूसरे के साथ संवाद करते हैं। मेरा मानना ​​है कि एक्स क्लाइंट एक्स प्रोटोकॉल के माध्यम से बातचीत कर सकते हैं (उदाहरण के लिए, पारंपरिक एक्स विंडो प्रबंधकों को यह जानने की जरूरत है कि अन्य क्लाइंट विंडोज को कैसे सजाने के लिए बनाते हैं? पेजर्स को यह जानना आवश्यक है कि विंडो का आकार या स्थिति कब बदलती है, क्रम में। प्रतिबिंबित करें कि पेजर में)। डी-बस एक आधुनिक अंतर-प्रक्रिया संचार (IPC) तकनीक है जो अन्य विधियों की कमियों को दूर करने के लिए विकसित की गई है। यह एक्स विशिष्ट नहीं है।


अच्छा धन्यवाद! यह वास्तव में सहायक है। 5 प्रश्नों के बारे में: मुझे नहीं पता कि उस मामले में प्रोटोकॉल क्या है, लेकिन अगर कोई प्रशासक चाहता है कि मैं उन्हें विभाजित कर दूं, तो मैं इसके बारे में सुनूंगा। मुझे व्यक्तिगत रूप से एक दस्तावेज में यह पसंद है, और शीर्षक के उप-प्रश्नों के रूप में 5 प्रश्न देखें। एक बार फिर धन्यवाद।
बेंजामिन

प्रोटोकॉल hopping नहीं करने का बिंदु यह है कि X विंडो सिस्टम डिज़ाइन किया गया है ताकि एप्लिकेशन ("क्लाइंट") को एक ही होस्ट पर चलाने की आवश्यकता न हो, अर्थात आप किसी अन्य मशीन में लॉग इन कर सकते हैं, वहां एक प्रोग्राम चला सकते हैं, और विंडो आपकी स्क्रीन पर खुलती है एक स्थानीय अनुप्रयोग की तरह। यदि कोई अन्य कार्यक्रम "आपकी प्रक्रिया आईडी क्या है, तो मैं आपसे सीधे बात कर सकता हूं", इस प्रश्न का सही उत्तर देने का कोई तरीका नहीं है।
सिमोन रिक्टर

आप ऐसा नहीं करना चाह सकते हैं कि X सर्वर द्वारा साझा किया गया संसाधन एक या अधिक मॉनिटर और दो या अधिक इनपुट डिवाइस (कीबोर्ड, माउस) से
युक्त डिस्प्ले है

निश्चित रूप से सभी 5 प्रश्नों को एक साथ मददगार। धन्यवाद।
हार्वे

@ हिल्ड कियोस्क कॉन्फ़िगरेशन में टचस्क्रीन के मामले में आपके पास एक इनपुट डिवाइस के रूप में कुछ हो सकता है।
शादुर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.