विण्डोविंग सिस्टम

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

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

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

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

एक प्रदर्शन सर्वर प्रोटोकॉल नेटवर्क सक्षम या यहां तक ​​कि नेटवर्क पारदर्शिता भी हो सकता है, जो पतले ग्राहकों के कार्यान्वयन की सुविधा प्रदान करता है।

प्रदर्शन सर्वर
एक डिस्प्ले सर्वर या विंडो सर्वर एक प्रोग्राम है जिसका प्राथमिक कार्य अपने क्लाइंट के इनपुट और आउटपुट को बाकी ऑपरेटिंग सिस्टम, हार्डवेयर और एक दूसरे से समन्वयित करना है। डिस्प्ले सर्वर अपने ग्राहकों के साथ डिस्प्ले सर्वर प्रोटोकॉल, एक संचार प्रोटोकॉल पर संचार करता है, जो नेटवर्क-पारदर्शी या केवल नेटवर्क-सक्षम हो सकता है।

प्रदर्शन सर्वर किसी भी ग्राफिकल यूजर इंटरफेस, विशेष रूप से विंडोिंग सिस्टम में एक महत्वपूर्ण घटक है।

X11


प्रदर्शन सर्वर का एक उदाहरण X.Org सर्वर है, जो कर्नेल के शीर्ष पर चलता है (आमतौर पर एक यूनिक्स-जैसा कर्नेल, जैसे Linux या BSD)। यह उपयोगकर्ता इनपुट डेटा प्राप्त करता है (उदाहरण के लिए लिनक्स पर evdev से) और इसे अपने ग्राहकों में से एक को पास करता है। प्रदर्शन सर्वर अपने ग्राहकों से डेटा भी प्राप्त करता है; यह डेटा को प्रोसेस करता है, यह कंपोज़िटिंग करता है और लिनक्स पर यह डेटा को तीन कर्नेल घटकों में से एक को पास करता है - प्रत्यक्ष प्रतिपादन प्रबंधक, ग्राफिक्स निष्पादन प्रबंधक या  केएमएस चालक । घटक डेटा को  फ्रेम बफर  में लिखता है और फ्रेमबफर की सामग्री को कनेक्टेड स्क्रीन पर प्रेषित किया जाता है और प्रदर्शित किया जाता है। X GLX पर निर्भर है।

प्रदर्शन सर्वर अवधारणा के कार्यान्वयन में से एक एक्स विंडो सिस्टम है, विशेष रूप से इसका वास्तव में उपयोग किया जाने वाला संस्करण - X.Org सर्वर और Xlib और XCB क्लाइंट लाइब्रेरी। X.Org सर्वर एक डिस्प्ले सर्वर है, लेकिन इसके वर्तमान कार्यान्वयन में यह कंपोज़िटिंग करने के लिए एक दूसरे प्रोग्राम, कंपोज़िटिंग विंडो मैनेजर पर निर्भर करता है। उदाहरण हैं मुटर (विंडो मैनेजर) या केविन।

X11 डिस्प्ले सर्वर प्रोटोकॉल को लागू करने वाले डिस्प्ले सर्वर के उल्लेखनीय उदाहरण X.Org सर्वर, XFree86, XQuartz और Cygwin/X हैं, जबकि X11 डिस्प्ले सर्वर प्रोटोकॉल को लागू करने वाले क्लाइंट लाइब्रेरी Xlib और XCB हैं।

वेलैंड


वेलैंड (प्रदर्शन सर्वर प्रोटोकॉल) को लागू करने वाले डिस्प्ले सर्वर को वायलैंड कंपोज़िटर  कहा जाता है। किसी भी डिस्प्ले सर्वर की तरह, एक वेलैंड कंपोज़िटर अपने ग्राहकों के लिए इनपुट और आउटपुट को संभालने के लिए ज़िम्मेदार होता है और - X11 के विपरीत - अतिरिक्त रूप से संयोजन के लिए। उदाहरण वेस्टन (सॉफ्टवेयर),  मां (सॉफ्टवेयर), केविन या ज्ञानोदय (सॉफ्टवेयर) हैं।

वायलैंड कंपोजिटर वायलैंड क्लाइंट्स के साथ वायलैंड (डिस्प्ले सर्वर प्रोटोकॉल) पर संवाद करते हैं। यह प्रोटोकॉल परिभाषित करता है कि क्लाइंट EGL (OpenGL) रेंडरिंग API का उपयोग करके सीधे फ्रेमबफ़र में डेटा लिख ​​सकते हैं। डिस्प्ले सर्वर अभी भी यह तय करता है कि कौन सी विंडो शीर्ष पर है और इस प्रकार उपयोगकर्ता को दिखाई देती है और अभी भी evdev से अपने ग्राहकों को इनपुट डिवाइस से संबंधित डेटा पास करने के लिए ज़िम्मेदार है।

कुछ Linux डेस्कटॉप वितरण, जैसे Fedora (ऑपरेटिंग सिस्टम) में कुछ हद तक Wayland का उपयोग किया जाता है। यह मोबाइल कंप्यूटिंग के लिए भी अच्छी तरह से अनुकूल है और इसे अपनाया गया है, उदाहरण के लिए, स्मार्टफोन- और टैबलेट-केंद्रित प्रोजेक्ट Tizen, Sailfish OS और AsteroidOS द्वारा।

वेलैंड का कार्यान्वयन मेरा लाइसेंस, libwayland-client  और लिबवेलैंड-सर्वर लाइब्रेरी के तहत उपलब्ध है।

ChromeOS में वेलैंड समर्थन जोड़ने का प्रयास जारी है।

मैं
मीर (सॉफ्टवेयर) अपने स्वयं के मीर डिस्प्ले सर्वर प्रोटोकॉल के साथ आता है जो कि एक्स11 और वेलैंड द्वारा उपयोग किए जाने वाले प्रोटोकॉल से अलग है। मीर अतिरिक्त रूप से X11 प्रोटोकॉल का समर्थन करता है। यह कैननिकल लिमिटेड द्वारा विकसित किया गया था और इसका उद्देश्य उबंटू (ऑपरेटिंग सिस्टम) के लिए पसंद का डिस्प्ले सर्वर होना था। 2017 तक, इसे उबंटू के डेस्कटॉप संस्करणों के लिए वायलैंड डिस्प्ले सर्वर से बदल दिया गया है।

GPLv3 के तहत उपलब्ध मीर डिस्प्ले सर्वर, लिबमिर-सर्वर और लिबमिर-क्लाइंट लाइब्रेरी के कार्यान्वयन हैं।

सरफेसफ्लिंगर
Google ने सरफेसफ्लिंगर नामक एक डिस्प्ले सर्वर विकसित किया एंड्रॉइड (ऑपरेटिंग सिस्टम) के लिए (मुख्य रूप से मोबाइल उपकरणों के लिए एक अन्य लिनक्स कर्नेल-आधारित ऑपरेटिंग सिस्टम):

एंड्रॉइड में सब कुछ एक सतह पर प्रस्तुत किया जाता है; सतहों को अनुप्रयोगों द्वारा निर्मित किया जाता है और एक कतार में रखा जाता है जिसे सरफेसफ्लिंगर द्वारा प्रबंधित किया जाता है। फिर भी एक अन्य एंड्रॉइड-विशिष्ट समाधान ग्रालोक है। ग्रालोक डिवाइस मेमोरी को संभालता है यानी यह आवंटन, मध्यस्थता करता है, यह एंड्रॉइड/लिनक्स बाड़ फाइल डिस्क्रिप्टर के माध्यम से सिंक्रनाइज़ेशन को संभालता है। ग्रालोक अन्य समाधानों के साथ प्रतिस्पर्धा करता है जैसे उदा। मेसा का सामान्य बफर प्रबंधन  (जीबीएम) या एनवीडिया का ईजीएलस्ट्रीम। Gralloc Hardware_abstraction#In_operating_systems|हार्डवेयर अमूर्त परत (HAL) का उपयोग उन बफ़र्स को आवंटित करने के लिए किया जाता है जो सतहों को रेखांकित करते हैं।

Android में कंपोज़िंग के लिए, सरफेस को सरफेसफ्लिंगर को भेजा जाता है, जो कंपोज़िंग करने के लिए OpenGL ES का उपयोग करता है।

हार्डवेयर कम्पोजर एचएएल (एचडब्ल्यूसी) को एंड्रॉइड 3.0 में पेश किया गया था और पिछले कुछ वर्षों में लगातार विकसित हुआ है। इसका प्राथमिक उद्देश्य उपलब्ध हार्डवेयर के साथ समग्र बफ़र्स के लिए सबसे कुशल तरीका निर्धारित करना है। एचएएल के रूप में, इसका कार्यान्वयन डिवाइस-विशिष्ट है और आमतौर पर डिस्प्ले हार्डवेयर ओईएम द्वारा किया जाता है।

क्वार्ट्ज कंपोजिटर
ऑपरेटिंग सिस्टम के Apple के macOS परिवार के लिए, क्वार्ट्ज कंपोजिटर विंडोिंग सिस्टम में एक डिस्प्ले सर्वर और एक विंडो मैनेजर के कार्यों को पूरा करता है।

डेस्कटॉप विंडो प्रबंधक
Microsoft Windows के लिए, Windows Vista से आगे, डेस्कटॉप विंडो मैनेजर ग्राफिकल यूजर इंटरफेस को प्रस्तुत करने के लिए हार्डवेयर त्वरण के उपयोग को सक्षम करता है। यह मूल रूप से नए विंडोज एयरो उपयोगकर्ता अनुभव के कुछ हिस्सों को सक्षम करने के लिए बनाया गया था, जो पारदर्शिता, 3डी विंडो स्विचिंग और अधिक जैसे प्रभावों की अनुमति देता है। यह विंडोज सर्वर 2008 के साथ भी शामिल है, लेकिन डेस्कटॉप अनुभव सुविधा और संगत ग्राफिक्स ड्राइवरों को स्थापित करने की आवश्यकता है। विंडोज 8 के बाद से DWM को अक्षम नहीं किया जा सकता है और यदि कोई उपयुक्त ग्राफिक्स कार्ड स्थापित नहीं है तो यह Software_rendering है।

यूनिक्स जैसे ऑपरेटिंग सिस्टम के लिए

 * 8½ (प्लान 9)|8½ और बेल लैब्स से प्लान 9 के लिए रियो (विंडोिंग सिस्टम)
 * फ्रेमबफरयूआई इन-कर्नेल विंडोिंग सिस्टम
 * एचपी विंडोज/9000 (एचपी-यूएक्स के शुरुआती संस्करणों पर)
 * नीलम PERQ के लिए
 * प्रबंधक (एमजीआर)
 * मेतीस
 * मीर (सॉफ्टवेयर)
 * एनईडब्ल्यूएस / ओपन विंडोज ़
 * अगला कदम
 * कक्षीय (रेडॉक्स (ऑपरेटिंग सिस्टम))
 * क्यूटी विस्तारित
 * क्वार्ट्ज कंपोजिटर ( Mac OS X )
 * सनव्यू
 * ट्विन (विंडो सिस्टम) (टेक्स्ट विन्डोज़)
 * डब्ल्यू विंडो सिस्टम
 * वेलैंड (प्रदर्शन सर्वर)
 * एक्स विंडो सिस्टम
 * एक्सफ़ास्ट
 * Xynth

विंडोज एनटी के लिए | विंडोज एनटी-फैमिली ऑपरेटिंग सिस्टम

 * Microsoft Windows (Windows Vista और बाद के संस्करण) में डेस्कटॉप विंडो मैनेजर (DWM)
 * रिएक्टोस
 * क्लासिक खोल
 * पोक्की
 * रेट्रोयूआई
 * तावीज़ डेस्कटॉप

वर्ल्ड वाइड वेब विंडोिंग सिस्टम

 * डोजो टूलकिट
 * एक्सट (जावास्क्रिप्ट लाइब्रेरी)
 * टिब्को सॉफ्टवेयर जनरल इंटरफ़ेस
 * वेबडब्ल्यूएम

अन्य

 * डोमेन/ओएस#यूजर इंटरफेस
 * ग्राफिक्स पर्यावरण प्रबंधक
 * अंतर्ज्ञान (अमिगा)
 * माइक्रोविंडो
 * मिनीजीयूआई
 * ऊहग
 * दृष्टि
 * ओपन वीएमएस # ग्राफिकल यूजर इंटरफेस (वैक्स वर्कस्टेशन सॉफ्टवेयर)

कुछ सिस्टम जैसे माइक्रोसॉफ्ट विंडोज का इतिहास ( विन्डोज़ एक्सपी, विंडोज 9x और पहले), क्लासिक मैक ओएस (संस्करण मैक ओएस 9 और इससे पहले), और पाम ओएस में एक विंडोिंग सिस्टम होता है जो ओएस के साथ एकीकृत होता है।

यह भी देखें

 * प्रदर्शन सर्वरों की सूची
 * ग्राफिकल यूजर इंटरफेस का इतिहास
 * विजेट टूलकिट
 * डेस्कटॉप वातावरण