क्या आपको लगता है कि प्रबंधित OSes एक अच्छा विचार है? [बन्द है]


15

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

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

इस बारे में आपकी राय क्या है?


जब से मैं उच्च स्तरीय भाषाओं के प्रति पक्षपाती हूं, मुझे इसका उत्तर देने में डर लगता है क्योंकि वे एकमात्र ऐसी भाषा हैं जिसका मैंने उपयोग किया है
TheLQ

2
कभी तेज कंप्यूटर के साथ, मुझे लगता है कि यह एक बड़ी बात है। हालांकि, यदि MSFT इसे लागू करता है, तो यह या तो बहुत अच्छा होगा या बहुत कुछ सोख लेगा - कोई बीच में नहीं है।
अय्यूब

ध्यान दें कि "विरासत क्रड" वही है जो मौजूदा अनुप्रयोगों को चलाता है। वास्तव में उपयोग करने के लिए कुछ होने के महत्व को कम मत समझो।

जवाबों:


8

मुझे लगता है कि यह एक और मामला है जहां "यह निर्भर करता है"।

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

यह कंसोल गेम और पीसी गेम के बीच अंतर की तरह है। पूर्व को ठीक से पता है कि उन्हें किस हार्डवेयर के साथ काम करने की आवश्यकता है, उस ज्ञान का उपयोग कर सकते हैं जबकि बाद में ग्राफिक्स कार्ड, साउंड कार्ड, हार्ड डिस्क स्पीड आदि की व्यापक विविधता के साथ सामना करने में सक्षम होना चाहिए।

हालांकि, ऐसे एप्लिकेशन होंगे (जैसे कि गेम्स!) जिसमें निम्न स्तर की पहुंच की आवश्यकता होती है और फिर भी "मूल रूप से" चलाने की आवश्यकता होगी।

प्रबंधित भाषाओं की तरह आपको नौकरी के लिए उपयुक्त उपकरण का उपयोग करना होगा।


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

@ लोरेंजो गेम्स पहले से ही कंप्यूटर पर पर्याप्त जोर देते हैं, इसलिए प्रदर्शन हिट महत्वपूर्ण है। हालांकि, मुझे यकीन नहीं है कि अगर सभी वीएम करता है तो मूल प्रदर्शन कॉल पर कितना असर होगा
TheLQ

4
@ एलक्यू: मुद्दा यह है कि गेम में पहले से ही "निम्न स्तर के सामान" से निपटने की ज़रूरत नहीं है क्योंकि हमेशा कुछ मिडलवेयर (डायरेक्टएक्स, ओपन जीएल और इतने पर) होते हैं। बेशक वे कम्प्यूटेशनल रूप से गहन हैं, लेकिन मिडलवेयर का उपयोग करना पहले से ही एक प्रदर्शन हिट है। यह सिर्फ एक प्रबंधित (और jitted) मिडलवेयर होगा।
जादूगर 40

3
यदि ओएस जेटिंग का ख्याल रखता है, तो आप प्रबंधित कोड के साथ समाप्त होते हैं जो "देशी" कोड के रूप में अधिक या कम गति से चलता है। याद रखें, यदि आपके पास प्रोग्राम पर असेंबली जैसा नियंत्रण होना चाहिए , तो आप हमेशा बाइट-कोड में सीधे प्रोग्राम का उपयोग कर सकते हैं।
चिन्मय कांची

3
Afaik, MS Singularity को इस तथ्य से एक महत्वपूर्ण प्रदर्शन को बढ़ावा मिलता है कि इसे कर्नेल मोड और उपयोगकर्ता मोड के बीच बिल्कुल भी स्विच करने की आवश्यकता नहीं है। फोर्किंग बहुत सस्ता हो जाता है, भी।
१६००

3

आम तौर पर मुझे लगता है कि वे एक अच्छे विचार हैं, लेकिन चूंकि उनमें से बहुत सारे नहीं हैं या पूरी तरह से पके हुए हैं, इसलिए यह बताना बहुत कठिन है कि वे वास्तविक दुनिया में कैसा प्रदर्शन करेंगे। मैं चाहता हूं कि एमएस ने विलक्षणता परियोजना को अपडेट किया था ताकि हम देख सकें कि वह कहां जा रहा था, लेकिन मेरा अनुमान है कि इसमें से कुछ को विंडोज के कुछ संस्करण में काम किया जा रहा है।


3

मुझे लगता है कि पूरी तरह से प्रबंधित ओएस का लाभ बहुत बड़ा है और यह वास्तव में भविष्य हो सकता है, लेकिन इसे जाने के लिए कई वर्षों की आवश्यकता होगी।

एक अच्छा प्रबंधित ऑपरेटिंग सिस्टम आपको प्रबंधित किए गए सभी एंट्री पॉइंट प्रदान करेगा, जिन्हें आपको प्रबंधित करने की आवश्यकता के बिना हर निम्न स्तर की चीज़ करने की आवश्यकता है: बिना किसी बाधा के पकड़ना और उपकरणों के साथ I / O का प्रदर्शन करना। C # भी असुरक्षित कोड (पॉइंटर्स से निपटने) की अनुमति देता है, लेकिन इसे केवल "डिवाइस ड्रायवर" (जो सिर्फ एक अन्य प्रकार की सॉफ़्टवेयर पृथक प्रक्रिया होगी) की अनुमति होगी।

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


क्या आप सुनिश्चित हैं कि संदर्भ स्विच की आवश्यकता नहीं है? आपको अभी भी एक साथ कई कार्यक्रम चलाने की आवश्यकता है।
जॉब

यदि वीएम में प्रोग्राम और कोड दोनों चलते हैं तो कोई संदर्भ स्विच नहीं हो सकता है। हालाँकि, इसे HLU भाषा में MMU को फिर से लागू करने की आवश्यकता होगी, इसलिए मुझे वास्तव में संदेह है कि बहुत प्रदर्शन लाभ होगा।
मैकीज पीचोटका

2

प्रबंधित ओएस शायद किसी तरह माइक्रोकर्नेल हैं - आप सुरक्षा के नाम पर प्रदर्शन का त्याग करते हैं।

इसके समान समस्याएँ हो सकती हैं क्योंकि इसमें 2 भागों में विभाजन कोड की आवश्यकता होती है:

  • सी / एसेंबलर में लिखा गया निम्न स्तर का कर्नेल
  • प्रबंधित भाषा में लिखा गया उच्च स्तरीय कर्नेल

सुरक्षित रूप से एचएल भाषा में प्रवेश / छोड़ने पर लागत के आधार पर यह माइक्रोकर्नेल के समान समस्याओं को लागू कर सकता है - संभवतः थोड़ा तेज (एचएल तेज है तो पूर्ण संदर्भ स्विच लेकिन उदाहरण के लिए IIRC JNI काफी महंगा है)।

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

इसके अलावा एचएल भाषा निम्न-स्तरीय संचालन में कुशल नहीं है। हालांकि सॉफ्टवेयर आमतौर पर "अच्छा" कोडिंग अभ्यास के साथ डिज़ाइन किया गया है, इसलिए ड्राइवर आवश्यक नहीं हैं। मुझे नहीं लगता कि वे कम से कम कुछ त्रुटियों से रक्षा करेंगे क्योंकि गुठली के लिए कभी-कभी हाथ से चलने वाली स्मृति की आवश्यकता होती है।

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

उदाहरण के लिए, आप अचानक मनमाने ढंग से बिंदुओं को अप्रचलित कर देते हैं।

OS स्वाभाविक रूप से निम्न स्तर का है। आप हार्डवेयर को न केवल 'मनमाने ढंग से पॉइंटर' के लिए पास करते हैं, बल्कि संभवतः भौतिक पते के बजाय वर्चुअल वर्चुअल। कुछ डीएमए केवल 16MiB मेमोरी को ही संभाल सकते हैं। हालांकि इस तरह के ओएस बहुत कुछ सरल कर सकते हैं लेकिन इससे पतों से छुटकारा नहीं मिलेगा।

और अगर अच्छी तरह से लिखा गया है, तो आपको एक टन की विरासत से छुटकारा मिल जाएगा जो कि वर्तमान में अधिकांश आधुनिक ओएसिस के पास है।

  1. बहुत सारी विरासत हार्डवेयर हैं। बहुत कुछ तो सॉफ्टवेयर में। आप पहले वास्तविक मोड में शुरू करते हैं, फिर A20 गेट (पूछें नहीं) को सुरक्षित मोड में और फिर लॉन्ग मोड में सक्षम करें।
  2. एपीआई / एबीआई संगतता अच्छा है। कहो कि उन्होंने ऐसा ओएस लिखा है - आप इस पर क्या चलाएंगे? फ़ायरफ़ॉक्स - nope (C और C ++ WinAPI का उपयोग करके)। जावा - शायद इसे ikvm के माध्यम से पोर्ट करने या कुछ मामूली मुद्दों की आवश्यकता थी - जब तक कि यह जेएनआई का उपयोग करने में खुशी न हो। मुझे लगता है कि MSSQL (और निश्चित रूप से Oracle, MySQL, Postgresql ...) प्रबंधित भाषा में नहीं लिखा गया है, इसलिए यह सर्वर के लिए फिट नहीं होगा।
  3. यहां तक ​​कि बग संगतता "अच्छा" है। AFAIK MS बहुत समय बिताता है बस परीक्षण और जाँच करता है कि क्या कुछ सॉफ़्टवेयर API का उपयोग स्मार्ट (गलत तरीके से) नहीं कर रहा है। जैसे कि freeइसके बाद पॉइंटर का उपयोग करने की समस्या जब विंडोज वास्तव में स्मृति को मुक्त करना शुरू कर दिया।

मुझे लगता है कि यह माइक्रोकर्नेल के रूप में एक ही समय के आसपास लोकप्रियता हासिल करेगा।


2

व्यक्तिगत रूप से, मुझे लगता है कि प्रबंधित ओएस का विचार साम्यवाद की तरह एक सा है: सिद्धांत में अच्छा है, लेकिन लागू करने के लिए अव्यावहारिक है।

समस्या यह है कि मैं प्रबंधित ओएस को खरोंच से ओएस को पूरी तरह से फिर से लिखने के बिना लाने के लिए कोई रास्ता नहीं देखता (और मुझे आशा है कि कोई मुझे इस हिस्से पर गलत साबित कर सकता है)। साथ ही, आप दशकों से अप्रबंधित कोड को प्रबंधित OS में कैसे फिट करते हैं?

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

अंत में, Microsoft या Apple जैसी कंपनी ग्राहकों को प्रबंधित OS कैसे बेचने जा रही है? क्या औसत कंप्यूटर उपयोगकर्ता भी परवाह करेंगे कि उनका ओएस प्रबंधित है या अप्रबंधित है?

ऊपर उल्लेख किया गया है, मुझे आशा है कि मैं गलत हूं और प्रबंधित OSes एक वास्तविकता होने जा रहा है। लेकिन मुझे संदेह है। यदि हम इसे कभी नहीं देखते हैं, तो यह संभवतः एक या दो दशक तक नहीं होगा।


2
ओएस कर्नेल स्वीकृति के लिए बहुत महत्वपूर्ण नहीं है। MS ने पूरी तरह से नया, असंगत-से-कुछ NT कर्नेल तैयार किया, और यह एक सफलता थी। Apple ने अपनी कर्नेल आर्किटेक्चर को काफी बदल दिया (और इसके CPU आर्किटेक्चर, तीन बार), और अभी भी पनप रहा है। कुंजी मौजूदा सॉफ्टवेयर और पोर्टिंग में आसानी के साथ संगतता है। संगतता और / या वर्चुअलाइजेशन परतें जो पुराने कोड से नए कोड के लिए चिकनी संक्रमण की अनुमति देती हैं, प्रबंधित ओएस में अनुचित रूप से कठोर नहीं दिखती हैं।
9000

2

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

आईबीएम पहले से ही अपने मेनफ्रेम सिस्टम पर ऐसा करता है (वे इसे केवल कुछ और कहते हैं), इसलिए यह मेरे विचार में है कि इससे पहले कि यह आम जनता के लिए उपलब्ध सिस्टम पर होगा।

अगर आपका Google लैपटॉप (जो क्रोम चलाता है और मूल रूप से और कुछ नहीं) तो प्रबंधित कोड पर चलता है या नहीं?


1

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

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

कैविएट (निश्चित रूप से) है कि Unsafeऔर संबंधित वर्गों के गलत उपयोग से ऑपरेटिंग सिस्टम क्रैश हो सकता है या ट्रैक नीचे हो सकता है।


0

मुझे डेस्कटॉप कंप्यूटर के लिए उनकी उपयोगिता पर संदेह है। लेकिन समय मुझे इस बिंदु पर गलत साबित कर सकता है।

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

अब ASP.NET अनुप्रयोगों की मेजबानी के लिए एक आभासी सर्वर पर कुछ विलक्षणता स्थापित करना, जो अधिक समझ में आता है। यह मानते हुए कि वे इसे एक हल्का ओएस रख सकते हैं।


1
जब आप कर सकते हैं, तो विंडोज को पूरी तरह से खोदना अच्छा है।
अय्यूब

1
सैंडबॉक्स ब्राउज़र और अन्य इंटरनेट-फेसिंग चीज़ों की प्रवृत्ति संभवतः यह बताती है कि प्रबंधित, या कम से कम कम्पार्टमेंटलाइज़्ड, ओएस या डेस्कटॉप भी वांछनीय है।
9000
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.