2010-09-12 17 views
6

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

बहुत धन्यवाद, साइमन

उत्तर

1

सैंडबॉक्सिंग अलगाव केवल, जब वर्चुअलाइजेशन आमतौर पर हार्डवेयर (आभासी मशीन) के कुछ प्रकार के अनुकरण का मतलब है इसका मतलब है। बिना सैंडबॉक्सिंग के हमारे साथ वर्चुअलाइजेशन हो सकता है।

7

ये अवधारणाएं विभिन्न समस्याओं का समाधान करती हैं: जब हम वर्चुअलाइज करते हैं, तो हम मशीन की भौतिक सीमाओं को छिपाने हैं। दूसरी ओर, सैंडबॉक्सिंग, मशीन पर पहुंच पर कृत्रिम सीमा सेट करती है। एक प्रतिनिधि समानता के रूप में स्मृति पर विचार करें।

स्मृति का वर्चुअलाइजेशन प्रत्येक प्रोग्राम को 32- या 64-बिट स्पेस में हर पते तक पहुंचने की अनुमति देना है, भले ही वह भौतिक RAM न हो।

स्मृति की सैंडबॉक्सिंग एक प्रोग्राम को किसी अन्य डेटा को देखने से रोकने के लिए है, भले ही वे स्मृति में neigboring कोशिकाओं पर कब्जा कर सकते हैं।

दो अवधारणाओं निश्चित रूप से आभासी स्मृति के आम क्रियान्वयन में जुड़े हुए हैं। हालांकि, यह कार्यान्वयन का एक सुविधाजनक आर्टिफैक्ट है, क्योंकि हार्डवेयर पेज तालिका केवल कर्नेल द्वारा ही पहुंच योग्य है।

विचार करें कि उन्हें अलग से लागू करने के लिए, एक x86 मशीन पर: आप कभी डिस्क पर अदला-बदली (वर्चुअलाइजेशन बिना sandboxing) के बिना पेज तालिकाओं का उपयोग कार्यक्रमों 'स्मृति को अलग कर सकते हैं। वैकल्पिक रूप से, आप पूर्ण वर्चुअल मेमोरी को कार्यान्वित कर सकते हैं, लेकिन हार्डवेयर पेज टेबल पर एप्लिकेशन-स्तरीय पहुंच भी दे सकते हैं ताकि वे जो चाहें देख सकें (सैंडबॉक्सिंग के बिना वर्चुअलाइजेशन)।

+0

हम इन दो अवधारणाओं की तुलना वेब ब्राउज़र प्लगइन्स और साइट विशिष्ट ब्राउज़र से कैसे करते हैं? मेरा मानना ​​है कि ब्राउजर प्लगइन्स अपनी स्मृति और एक्सेस के लिए वीएम और सैंडबॉक्सिंग की तुलना में विभिन्न ह्युरिस्टिक्स का पालन करते हैं। – RBT

0

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

3

वास्तव में 3 अवधारणाओं है कि आप यहाँ से muddling कर रहे हैं। पहला और सबसे महत्वपूर्ण ओएस द्वारा प्रदान किया जाता है और यह क्या करता है यह समानांतर में चल रहे अनुप्रयोगों के लिए मेमोरी स्पेस को अलग करता है। और इसे virtual memory कहा जाता है।

Virtual memory प्रणालियों में, ओएस के रूप में वास्तविक भौतिक स्मृति पर अनुप्रयोगों के द्वारा देखा स्मृति पता मैप करता है। इस प्रकार अनुप्रयोगों के लिए मेमोरी स्पेस को अलग किया जा सकता है ताकि वे कभी टकरा सकें।

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

लेकिन आभासी स्मृति सैंडबॉक्सिंग लागू करने के लिए एक ही रास्ता नहीं है।उदाहरण के लिए टीसीएल प्रोग्रामिंग भाषा आपको interp कमांड के माध्यम से गुलाम दुभाषियों को तुरंत चालू करने की अनुमति देती है। दास दुभाषिया अक्सर एक सैंडबॉक्स को लागू करने के लिए प्रयोग किया जाता है क्योंकि यह एक अलग वैश्विक अंतरिक्ष में चलता है। ओएस के दृष्टिकोण से दो दुभाषिया एक ही प्रक्रिया में एक ही स्मृति स्थान में चलते हैं। लेकिन क्योंकि, सी स्तर पर, दो दुभाषिया कभी भी डेटा संरचनाओं को साझा नहीं करते हैं (जब तक स्पष्ट रूप से प्रोग्राम नहीं किया जाता) वे प्रभावी ढंग से अलग होते हैं।

अब, तीसरी अवधारणा वर्चुअलाइजेशन है। जो वर्चुअल मेमोरी और सैंडबॉक्सिंग दोनों से फिर से अलग है। जबकि वर्चुअल मेमोरी एक तंत्र है कि, ओएस के परिप्रेक्ष्य से, सैंडबॉक्स एक-दूसरे से प्रक्रिया करते हैं, वर्चुअलाइजेशन एक तंत्र है जो सैंडबॉक्स एक दूसरे से ऑपरेटिंग सिस्टम करता है। इसमें सॉफ़्टवेयर का उदाहरण शामिल है: Vmware, Parallels Desktop, Xen और kernel virtual machine

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

  • कोई संबंधित समस्या नहीं^_^