X विंडो सिस्टम क्लाइंट-सर्वर आर्किटेक्चर का उपयोग करता है। एक्स सर्वर उस मशीन पर चलता है जिसमें डिस्प्ले (मॉनिटर + इनपुट डिवाइस) होता है, जबकि एक्स क्लाइंट किसी अन्य मशीन पर चला सकते हैं, और एक्स प्रोटोकॉल का उपयोग करके एक्स सर्वर से कनेक्ट कर सकते हैं (सीधे नहीं, बल्कि लाइब्रेरी का उपयोग करके, जैसे Xlib, या अधिक आधुनिक गैर-अवरुद्ध घटना-संचालित XCB)। एक्स प्रोटोकॉल को एक्स्टेंसिबल होने के लिए डिज़ाइन किया गया है, और इसमें कई एक्सटेंशन हैं (देखें xdpyinfo(1)
)।
एक्स सर्वर केवल निम्न स्तर के ऑपरेशन करता है, जैसे कि विंडोज़ बनाना और नष्ट करना, ड्रॉइंग ऑपरेशन करना (आजकल ज्यादातर ड्राइंग क्लाइंट पर की जाती है और सर्वर पर एक इमेज के रूप में भेजी जाती है), विंडोज़ पर इवेंट भेजते हैं, ... आप देख सकते हैं कि कितना कम एक एक्स सर्वर चलाकर करता है X :1 &
(किसी अन्य एक्स सर्वर द्वारा पहले से उपयोग किए गए किसी भी नंबर का उपयोग करें) या Xephyr :1 &
(एक्सपीयर आपके वर्तमान एक्स सर्वर पर एम्बेडेड एक्स सर्वर चलाता है) और फिर xterm -display :1 &
चलकर नए एक्स सर्वर पर स्विच करना (आपको एक्स प्राधिकरण स्थापित करने की आवश्यकता हो सकती है) का उपयोग करते हुए xauth(1)
)।
जैसा कि आप देख सकते हैं, एक्स सर्वर बहुत कम करता है, यह टाइटल बार नहीं खींचता है, विंडो मिनिमाइजेशन / आइकॉनिफिकेशन नहीं करता है, विंडो प्लेसमेंट का प्रबंधन नहीं करता है ... बेशक, आप मैन्युअल रूप से कमांड चलाने वाले विंडो प्लेसमेंट को नियंत्रित कर सकते हैं जैसे xterm -geometry -0-0
, लेकिन आपके पास आमतौर पर एक विशेष एक्स क्लाइंट होगा जो उपरोक्त चीजें कर रहा है। इस क्लाइंट को विंडो मैनेजर कहा जाता है । एक बार में केवल एक विंडो मैनेजर सक्रिय हो सकता है। आप अब भी पिछले आदेशों के नंगे X सर्वर खुला है, तो आप उस पर एक विंडो प्रबंधक को चलाने के लिए कोशिश कर सकते हैं, जैसे twm
, metacity
, kwin
, compiz
, larswm
, pawm
, ...
जैसा कि हमने कहा, एक्स केवल निम्न स्तर के संचालन करता है, और पुशबट्टन, मेनू, टूलबार के रूप में उच्च स्तर की अवधारणाएं प्रदान नहीं करता है, ... ये टूलकिट नामक पुस्तकालयों द्वारा प्रदान किए जाते हैं , जैसे: Xaw, GTK, Qt, FLTK, ...
डेस्कटॉप वातावरण एक एकीकृत उपयोगकर्ता अनुभव प्रदान करने के लिए डिज़ाइन किए गए कार्यक्रमों का संग्रह है। इसलिए डेस्कटॉप वातावरण आमतौर पर पैनल, एप्लिकेशन लॉन्चर, सिस्टम ट्रे, कंट्रोल पैनल, कॉन्फ़िगरेशन इन्फ्रास्ट्रक्चर (जहां सेटिंग्स को बचाने के लिए) प्रदान करता है। कुछ प्रसिद्ध डेस्कटॉप वातावरण KDE (Qt टूलकिट का उपयोग करके बनाया गया), Gnome (GTK का उपयोग करके), प्रबुद्धता (अपने टूलकिट पुस्तकालयों का उपयोग करके), ...
कुछ आधुनिक डेस्कटॉप प्रभाव 3 डी हार्डवेयर का उपयोग करके सबसे अच्छा किया जाता है। तो एक नया घटक दिखाई देता है, समग्र प्रबंधक । X एक्सटेंशन, XComposite एक्सटेंशन, समग्र प्रबंधक को विंडो सामग्री भेजता है। समग्र प्रबंधक उन सामग्रियों को बनावट में परिवर्तित करता है और उन्हें कई मायनों में (अल्फा सम्मिश्रण, 3 डी अनुमानों, ...) की रचना करने के लिए ओपनजीएल के माध्यम से 3 डी हार्डवेयर का उपयोग करता है।
इतना समय पहले नहीं, एक्स सर्वर ने हार्डवेयर उपकरणों से सीधे बात की। इस डिवाइस को संभालने का एक महत्वपूर्ण हिस्सा OS कर्नेल पर जा रहा है: DRI (X और डायरेक्ट रेंडरिंग क्लाइंट द्वारा 3D हार्डवेयर तक पहुंच की अनुमति ), evdev (इनपुट डिवाइस हैंडलिंग के लिए एकीकृत इंटरफ़ेस), KMS (कर्नेल में ग्राफ़िक्स मोड सेट करना) , GEM / TTM (बनावट स्मृति प्रबंधन)।
इसलिए, डिवाइस हैंडलिंग की जटिलता के साथ अब ज्यादातर एक्स के बाहर, सरलीकृत विंडो सिस्टम के साथ प्रयोग करना आसान हो गया। वायलैंड एक विंडो सिस्टम है जो कम्पोजिट मैनेजर कॉन्सेप्ट पर आधारित है, यानी विंडो सिस्टम कंपोजिट मैनेजर है। वेलैंड उस उपकरण से निपटने का उपयोग करता है जो एक्स से बाहर निकल गया है और ओपनजीएल का उपयोग करके रेंडर करता है।
यूनिटी के लिए, यह एक डेस्कटॉप वातावरण है जिसे नेटबुक के लिए उपयुक्त यूजर इंटरफेस के लिए बनाया गया है।