2009-06-10 9 views
7

मैं WWDC 2009 मुख्य वक्ता के रूप और कुछ किसी Windows 7/Vista के बारे में कहा मुझे उत्सुक हो गया देख रहा था ..डीएलएल और रजिस्ट्री के साथ समस्या क्या है?

वक्ता ने दावा किया है, क्योंकि यह अभी भी इस तरह DLLs और रूप में एक ही प्रौद्योगिकियों का इस्तेमाल किया है कि 7 अभी भी एक गरीब ऑपरेटिंग सिस्टम था रजिस्ट्री। उनके दावे कितने सटीक हैं और ओएस एक्स कितना अलग है? यहां तक ​​कि ओएस एक्स गतिशील रूप से पुस्तकालयों को लोड किया गया है? मुझे लगता है कि रजिस्ट्री चीज़ में कुछ वजन हो सकता है ..

क्या कोई मुझे प्रत्येक ओएस की रणनीति में अंतर बता सकता है?

मैं यहाँ fanboys उत्तेजित करने के लिए कोशिश कर रहा है नहीं कर रहा हूँ या कुछ भी, मैं सिर्फ पता है कि कैसे दोनों ऑपरेटिंग सिस्टम सामान्य रूप में समस्याओं से निपटने के लिए चाहते हैं ..

धन्यवाद,

क्रेब

+0

तो, वैसे भी, मुझे लगता है कि सवाल अभी भी खड़ा है .. यदि डीएलएस और रजिस्ट्रियां कम हैं, तो उन्हें क्या बनाता है? ओएस एक्स का उपयोग डीएलएस और रजिस्ट्रियों से बेहतर है, अगर प्रवक्ता ने जो कहा है वह सच है? – krebstar

उत्तर

4

DLLs

ओएस एक्स और Windows के बीच प्रमुख अंतर यह है कि विंडोज ऐतिहासिक दृष्टि से हर किसी के शेयर कोड होने (अर्थात आप एक DLL स्थापित करते हैं, हर किसी के लिए इसका इस्तेमाल कर सकते हैं) द्वारा अंतरिक्ष/स्मृति को बचाने की कोशिश है। ऐप्पल स्थिर रूप से संकलित करता है (अच्छी तरह से, वास्तव में नहीं, लेकिन यह भी हो सकता है) सभी अनुप्रयोगों में सभी गैर-सिस्टम पुस्तकालयों। डिस्क स्पेस/मेमोरी को बर्बाद करता है, लेकिन ऐप परिनियोजन बनाता है रास्ता आसान और कोई संस्करण समस्या नहीं है।

रजिस्ट्री

ओएस एक्स एक रजिस्ट्री है, वे सिर्फ फ्लैट फ़ाइलें plists कहा जाता हो, एक जादू घटक ज्यादातर जहां यह नहीं है सिवाय एक फाइल सिस्टम की तरह है कि के बजाय। ऐप्पल के दृष्टिकोण से एक मशीन से दूसरी मशीन में माइग्रेट करना आसान हो जाता है, जबकि विंडोज़ का दृष्टिकोण तेजी से स्मृति में होता है, और ऐप को एक बड़ी पर्फ हिट के बिना आसानी से "देखने" की अनुमति देता है (यानी एक ऐप एक कुंजी बदलता है और दूसरा तुरंत इसके बारे में पता है)।

अंत में

मुख्य वक्ता के रूप प्रस्तुतकर्ता की उस पर पूरा, 10.6 ज्यादातर 10.5 रूप में एक ही कोड है, जो ज्यादातर के रूप में 10.4 एट अल एक ही कोड था, है जैसे Win7 ज्यादातर विस्टा, जो ज्यादातर सर्वर है '03, इत्यादि दूर एक ऑपरेटिंग सिस्टम में बहुत अधिक परीक्षण कोड को हर रिलीज को फेंकने के लिए है, खासकर यदि आप वास्तव में अपने ग्राहकों के ऐप्स को काम करना चाहते हैं।

+0

धन्यवाद, यह बहुत स्पष्ट था .. :) इसे सबसे अच्छा जवाब के रूप में स्वीकार करते हुए, हालांकि बैरी वार्क भी अच्छा है .. – krebstar

+0

यह कहने में असमर्थ है कि सभी गैर-सिस्टम पुस्तकालय स्थिर रूप से ऐप में जुड़े हुए हैं ओएस एक्स पर बंडल। हालांकि ऐप बंडलों में ढांचे (गतिशील रूप से जुड़े पुस्तकालय) हो सकते हैं, और कुछ गैर-सिस्टम ढांचे को बंडल करते हैं, सिस्टम-व्यापी या उपयोगकर्ता-व्यापी लाइब्रेरी/फ्रेमवर्क फ़ोल्डर में ढांचे को स्थापित करना भी संभव है जहां उनका उपयोग किया जा सकता है कई अनुप्रयोगों से। ओएस एक्स ऐप्स जो ड्रैग 'एन ड्रॉप इंस्टाल करने योग्य नहीं हैं (यानी उन्हें एक पूर्ण इंस्टॉलर की आवश्यकता होती है) आम तौर पर इन ढांचे को स्थापित करने के लिए इंस्टॉलर का उपयोग करते हैं। –

+0

सभी व्यावहारिक उद्देश्यों और उद्देश्यों के लिए, केवल वे लोग जो फ्रेमवर्क बना सकते हैं वे ऐप्पल हैं, अन्यथा प्रत्येक ऐप एक .pkg फ़ाइल बन जाता है। –

-4

DLL के बुरे बदलाव होते रहते हैं मुक्ति के बाद से वे अपने आप को संचालित करने में असमर्थ हैं, उन्हें एक और रैपर निष्पादन योग्य (स्वचालित रूप से) कहा जाता है, जो अनिश्चित ओवरहेड जोड़ता है और यह बताता है कि कौन से पुस्तकालय वास्तव में उपयोग में हैं। एक और कम महत्वपूर्ण दोष, सिस्टम के लिए पुस्तकालय साझा करने में असमर्थता है। * निक्स सिस्टम अपने आप से चल रहे शीर्ष स्तर पर या बड़े रैपर (जैसे केडी-इनिट) के तहत पुस्तकालयों को मौजूद करके इससे बचते हैं, पुस्तकालयों को किसी भी एप्लिकेशन द्वारा साझा किया जा सकता है, जिसका अर्थ है कि प्रत्येक पुस्तकालय की केवल एक प्रति आवश्यक है, और आप किसी भी समय एक पुस्तकालय को आसानी से आवश्यकतानुसार मार सकते हैं।

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

+0

क्षमा करें, मैंने सोचा था कि डीएलएल साझा करना संभव था? हम्म .. =/वैसे भी उत्तर के लिए धन्यवाद :) – krebstar

+3

दरअसल, डीएलएल का उपयोग करने के लिए किसी भी रैपर निष्पादन योग्य की आवश्यकता नहीं होती है, इन्हें सीधे अनुप्रयोगों द्वारा उपयोग किया जाता है। इसके अलावा, अनुप्रयोग निश्चित रूप से डीएलएल साझा कर सकते हैं। साझा करने का एक उदाहरण विंडोज़ सिस्टम डीएलएल या .NET GAC असेंबली हैं। –

+0

डीएलएल के बारे में यहां टिप्पणियां बहुत गलत हैं। डीएलएल की प्रक्रिया (और अक्सर) प्रक्रियाओं के बीच पूरी तरह से साझा की जा सकती है। – Foredecker

7

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

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

+0

+1 अच्छा उत्तर धन्यवाद :) – krebstar

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