मैक ओएस एक्स की विंडोिंग प्रणाली की वास्तुकला क्या है?


34

मैं इससे परिचित हूं कि X11 सिस्टम कैसे काम करता है, जहां क्लाइंट एक सॉकेट के माध्यम से सर्वर प्रक्रिया से जुड़ते हैं और अपनी ओर से कुछ ऑपरेशन करने के लिए विंडो सर्वर को ऑपरेशन भेजते हैं।

लेकिन मुझे समझ नहीं आ रहा है (और मुझे अच्छे दस्तावेज नहीं मिले) यह वर्णन करते हुए कि मैक ओएस एक्स पर एक जीयूआई एप्लिकेशन विंडो सिस्टम के साथ कैसे इंटरैक्ट करता है। कुछ प्रश्न जिनमें मैंने शामिल किया है:

  • एक ऐप विंडोिंग सिस्टम से घटनाओं को कैसे प्राप्त करता है?
  • क्या ऐप को कर्नेल, या कुछ विंडो सिस्टम सर्वर के साथ रजिस्टर करने की आवश्यकता है?
  • विंडोिंग सिस्टम कैसे अनुरोध करता है कि कोई ऐप उसके डिस्प्ले को अपडेट करे?
  • ऐप पुन: डिस्प्ले ऑपरेशन कैसे शुरू करता है?
  • वहाँ एक सॉकेट-आधारित प्रोटोकॉल, या विंडो सिस्टम के लिए कुछ अन्य RPC प्रणाली है?
  • क्या विंडोिंग सिस्टम, या एप्लिकेशन, का सीधा हार्डवेयर एक्सेस है?
  • क्लाइंट ऐप्स और विंडोिंग सिस्टम के बीच कौन से ऑपरेशन उपलब्ध हैं?

जवाबों:


14

यह वही है जो मैं अब तक इकट्ठा करने में सक्षम हूं:

अनुप्रयोग किसी प्रकार के निजी API पर WindowServer प्रक्रिया से संवाद करते हैं, WindowServer प्रक्रिया वह है जो वास्तव में हार्डवेयर ईवेंट (माउस, कीबोर्ड) प्राप्त करता है और जो क्लाइंट एप्लिकेशन को भेजता है। (यह अभी भी एक खुला प्रश्न है: यदि वे किसी भी प्रोटोकॉल का उपयोग करते हैं, तो क्या वे मैक पोर्ट और एमआईजी का उपयोग करते हैं, या कुछ सॉकेट-आधारित एपीआई, निश्चित नहीं हैं)।

कुछ जानकारी यहाँ है:

https://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/OSX_Technology_Overview/GraphicsTechnologies/GraphicsTechnologies.html#//apple_ref/doc/uid/TP40001067-CH273-SW1

WindowServer क्वार्ट्ज कंपोजिटर है। आमतौर पर अनुप्रयोग क्वार्ट्ज 2 डी एपीआई का उपयोग करते हैं जो कि कोरग्राफिक्स एपीआई (सीजीएक्सएक्सएक्सएक्स फंक्शंस) में उजागर होते हैं। अनुप्रयोग CoreGraphics "Contexts" (CGContext) बनाते हैं और वहां आकर्षित होते हैं। क्या संदर्भ को धकेल दिया जाता है जब इसे बड़े बिटमैप के रूप में किया जाता है, या यदि ऑपरेशन को सर्वर पर भेजा जाता है जैसे कि वे X11 पर हैं, तब भी एक खुला प्रश्न है।

WindowServer प्रक्रिया के कुछ पहलुओं को नियंत्रित करने के लिए एक सीमित एपीआई को उजागर किया गया है, जिस तरह की कॉन्फ़िगरेशन सेटिंग्स आमतौर पर सेटिंग्स एप्लिकेशन से की जाती हैं, लेकिन इस बात पर कोई दस्तावेज नहीं है कि ऐप वास्तव में सर्वर से ग्राफिक अनुरोध या पंप संदेशों को कैसे संवाद करते हैं, इसके अलावा अन्य कार्बन / कोको एपीआई उजागर।


लिंक टूट गया है
मिक

3

"कोको क्या है?" कोको बुनियादी बातों गाइड के खंड नीचे से ऊपर वास्तुकला के महान चित्र का एक गुच्छा है।


2
(क्षमा करें, अभी तक नोट पोस्ट नहीं किया जा सकता है): क्वार्ट्ज या कोर ग्राफिक्स ओएस एक्स में ड्राइंग और विंडोिंग सिस्टम है (क्विकड्रॉ की जगह)। कोर ग्राफिक्स कोको का एक हिस्सा है (एक पूर्ण के रूप में कोको, जीडीआई, डायरेक्ट 2 डी या एक्स के बजाय संपूर्ण Win32 एपीआई के लिए अधिक तुलनीय है
केली क्लोवर्स

2

ओएस एक्स इंटर्नल के लिए सबसे अच्छा संसाधन अमित सिंह का मैक ओएस एक्स इंटर्नल है । यह आश्चर्यजनक रूप से विस्तृत है, लेकिन दुर्भाग्य से केवल OS X को 10.4 तक कवर किया गया है। Google पुस्तकों का पूर्वावलोकन है

ओएस एक्स के लिए ऐप्पल का प्रलेखन भी एक अच्छा संसाधन है, और स्पष्ट रूप से अधिक अद्यतित है।


1

XQuartz X.org X विंडो सिस्टम का ओपन-सोर्स प्रोजेक्ट है जो मैक ओएस एक्स पर चलता है। उनके डेवलपर विकी और मेलिंग लिस्ट को आपके सवालों में मदद करनी चाहिए, ऐसा लगता है कि आपको प्रोजेक्ट में शामिल किसी व्यक्ति को जवाब देने के लिए गहराई से शामिल करने की जरूरत है।


4
सही है, लेकिन यह केवल XQuartz को कवर करता है, जो सिर्फ एक प्रोग्राम है जो उनके वास्तविक विंडोिंग सिस्टम से बात करता है। सवाल यह था कि इस विंडोिंग सिस्टम में XQuarts या फ़ाइंडर जैसी ऐप्स कैसे बात करती हैं
Miguel.de.icaza

1

पूर्व MacOS संस्करणों में, QuickDraw द्वारा लिफ्टिंग की गई थी; OS X में, जिसे कोको द्वारा अधिगृहित किया गया है ...

यह X11 के समानांतर नहीं है। उदाहरण के लिए, X11 में ऑडियो शामिल नहीं है, लेकिन कोको करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.