नंगी मशीन
This article includes a list of general references, but it lacks sufficient corresponding inline citations. (May 2021) (Learn how and when to remove this template message) |
कंप्यूटर विज्ञान में, बेयर मशीन (या बेयर मेटल) एक ऐसे कंप्यूटर को संदर्भित करता है जो बिना किसी हस्तक्षेप वाले ऑपरेटिंग सिस्टम के सीधे लॉजिक हार्डवेयर पर निर्देशों को निष्पादित करता है। आधुनिक ऑपरेटिंग सिस्टम विभिन्न चरणों से होकर विकसित हुए हैं, प्राथमिक से लेकर आज के जटिल, अत्यधिक संवेदनशील सिस्टम तक जिसमें कई सेवाएँ शामिल हैं। प्रोग्रामयोग्य कंप्यूटर के विकास के बाद (जिसमें विभिन्न प्रोग्रामों को चलाने के लिए भौतिक परिवर्तनों की आवश्यकता नहीं होती थी) लेकिन ऑपरेटिंग सिस्टम के विकास से पहले, अनुक्रमिक निर्देशों को बिना किसी सिस्टम सॉफ़्टवेयर परत के सीधे मशीन भाषा का उपयोग करके कंप्यूटर हार्डवेयर पर निष्पादित किया जाता था। इस दृष्टिकोण को आधुनिक ऑपरेटिंग सिस्टम का बेयर मशीन अग्रदूत कहा जाता है। आज यह ज्यादातर समय-महत्वपूर्ण विलंबता आवश्यकताओं के साथ अंतः स्थापित प्रणाली और फर्मवेयर पर लागू होता है, जबकि पारंपरिक प्रोग्राम एक ऑपरेटिंग सिस्टम पर रनटाइम सिस्टम द्वारा चलाए जाते हैं।
लाभ
किसी दिए गए एप्लिकेशन के लिए, अधिकांश मामलों में, बेयर-मेटल कार्यान्वयन कम मेमोरी का उपयोग करते हुए तेजी से चलेगा और इसलिए अधिक शक्ति कुशल होगा। ऐसा इसलिए है क्योंकि किसी भी प्रोग्राम की तरह, ऑपरेटिंग सिस्टम को चलाने के लिए कुछ निष्पादन समय और मेमोरी स्पेस की आवश्यकता होती है, और अब बेयर-मेटल पर इनकी आवश्यकता नहीं है। उदाहरण के लिए, कोई भी हार्डवेयर सुविधा जिसमें इनपुट और आउटपुट शामिल हैं, सीधे बेयर-मेटल पर पहुंच योग्य हैं, जबकि ओएस का उपयोग करने वाली एक ही सुविधा को कॉल को सबरूटीन पर रूट करना होगा, जो रनिंग समय और मेमोरी का उपभोग करता है।[1]
नुकसान
किसी दिए गए एप्लिकेशन के लिए, बेयर-मेटल प्रोग्रामिंग को ठीक से काम करने के लिए अधिक प्रयास की आवश्यकता होती है और यह अधिक जटिल है क्योंकि ऑपरेटिंग सिस्टम द्वारा प्रदान की गई और एप्लिकेशन द्वारा उपयोग की जाने वाली सेवाओं को जरूरतों के संबंध में फिर से लागू करना पड़ता है। ये सेवाएँ हो सकती हैं:
- सिस्टम बूट (अनिवार्य)
- मेमोरी प्रबंधन: हार्डवेयर संसाधनों और बाह्य उपकरणों के संबंध में कोड और डेटा का भंडारण स्थान (अनिवार्य)
- रुकावटों से निपटना (यदि कोई हो)
- कार्य शेड्यूलिंग, यदि एप्लिकेशन एक से अधिक कार्य कर सकता है
- परिधीय प्रबंधन (यदि कोई हो)
- त्रुटि प्रबंधन, यदि वांछित या आवश्यक हो
बेयर-मेटल प्रोग्राम को डीबग करना कठिन है क्योंकि:
- कोई सॉफ़्टवेयर त्रुटि अधिसूचनाएं नहीं हैं और न ही दोष प्रबंधन, जब तक कि उन्हें लागू और मान्य नहीं किया गया हो।
- कोई मानक आउटपुट नहीं है, जब तक कि इसे लागू और मान्य नहीं किया गया हो।
- जिस मशीन पर प्रोग्राम लिखा जाता है वह वही नहीं हो सकती जहां प्रोग्राम निष्पादित होता है, इसलिए लक्ष्य हार्डवेयर या तो एक एमुलेटर/सिम्युलेटर या एक बाहरी डिवाइस है। यह बेयर-मेटल प्रोग्राम को लक्ष्य (फर्मवेयर#फ्लैशिंग) पर लोड करने, प्रोग्राम निष्पादन शुरू करने और लक्ष्य संसाधनों तक पहुंचने का एक तरीका स्थापित करने के लिए बाध्य करता है।
बेयर-मेटल प्रोग्रामिंग आमतौर पर हार्डवेयर भाषा के करीब का उपयोग करके की जाती है, जैसे कि रस्ट (प्रोग्रामिंग भाषा), सी ++, सी (प्रोग्रामिंग भाषा), असेंबली भाषा, या यहां तक कि छोटी मात्रा में कोड या बहुत नए प्रोसेसर मशीन कोड के लिए सीधे।[2] पिछले सभी मुद्दों का अनिवार्य रूप से मतलब यह है कि बेयर-मेटल प्रोग्राम बहुत कम ही सॉफ्टवेयर पोर्टेबिलिटी वाले होते हैं।
उदाहरण
प्रारंभिक कंप्यूटर
प्रारंभिक कंप्यूटर, जैसे कि पीडीपी-11, प्रोग्टक्कर मारना र को मशीन कोड में आपूर्ति किए गए प्रोग्राम को रैम में लोड करने की अनुमति देते थे। प्रोग्राम के परिणामी संचालन की निगरानी ब्लिंकनलाइट्स द्वारा की जा सकती है, और आउटपुट चुंबकीय टेप, प्रिंट डिवाइस या कंप्यूटर डेटा भंडारण से प्राप्त किया जा सकता है।
एंबेडेड सिस्टम
एम्बेडेड सिस्टम में बेयर मशीन प्रोग्रामिंग आम बात बनी हुई है, जहां microcontroller या माइक्रोप्रोसेसर अक्सर एक अलग ऑपरेटिंग सिस्टम को लोड किए बिना, सीधे मोनोलिथिक, एकल-उद्देश्यीय सॉफ़्टवेयर में बूट होते हैं। इस तरह के उपकरणों के नियंत्रण के लिए सॉफ्टवेयर संरचना में भिन्न हो सकते हैं, लेकिन सबसे सरल रूप में एक अनंत मुख्य लूप शामिल हो सकता है, जो इनपुट की जांच करने, कार्रवाई करने और आउटपुट लिखने के लिए जिम्मेदार सबरूटीन्स को कॉल करता है।
विकास
नंगे मशीनों के उपयोग के दृष्टिकोण ने नए विचारों के लिए मार्ग प्रशस्त किया जिसने ऑपरेटिंग सिस्टम के विकास को गति दी।
इस दृष्टिकोण ने निम्नलिखित की आवश्यकता पर प्रकाश डाला:
- कोड और डेटा दोनों को आसानी से दर्ज करने के लिए इनपुट/आउटपुट (आई/ओ) डिवाइस:
- कंप्यूटर कीबोर्ड जैसे इनपुट डिवाइस बनाए गए। ये आवश्यक थे, क्योंकि पहले के कंप्यूटरों में अक्सर अद्वितीय, कुंठित और जटिल इनपुट डिवाइस होते थे।
उदाहरण के लिए, डिवाइस के सामने का हिस्सा पर टॉगल स्विच की एक श्रृंखला का उपयोग करके प्रोग्राम को हाथ से पीडीपी-11 में लोड किया गया था। कीबोर्ड इन पुराने इनपुट उपकरणों से कहीं बेहतर हैं, क्योंकि मशीन में इनपुट करने के लिए टॉगल स्विच का उपयोग करने की तुलना में कोड या डेटा टाइप करना बहुत तेज़ होगा। ब्रांड या कीमत की परवाह किए बिना, कीबोर्ड बाद में लगभग हर कंप्यूटर पर मानक बन जाएगा।
- कंप्यूटर मॉनीटर जैसे आउटपुट डिवाइस का बाद में व्यापक रूप से उपयोग किया जाने लगा और आज भी इसका उपयोग किया जाता है। उन्होंने खुद को पहले के आउटपुट डिवाइसों, जैसे कि अल्टेयर 8800 पर ब्लिंकनलाइट्स, जो कंप्यूटर की स्थिति का संकेत देगा, की तुलना में एक बड़ी सुविधा साबित कर दिया।
कंप्यूटर मॉनिटर किसी प्रोग्राम के आउटपुट को उपयोगकर्ता के अनुकूल तरीके से आसानी से प्रदर्शित कर सकता है। उदाहरण के लिए, किसी को कंप्यूटर के हार्डवेयर की स्थिति को समझने के लिए एक विशिष्ट प्रारंभिक कंप्यूटर और उसके डिस्प्ले सिस्टम, जिसमें रोशनी की एक श्रृंखला शामिल होती है, के बारे में गहराई से जानकारी होनी चाहिए। इसके विपरीत, जो कोई भी पढ़ सकता है उसे आधुनिक सिस्टम पर अच्छी तरह से डिज़ाइन किए गए [[प्रयोक्ता इंटरफ़ेस डिज़ाइन]] को समझने में सक्षम होना चाहिए, बिना उस कंप्यूटर के हार्डवेयर के बारे में कुछ भी जानने के लिए जिस पर प्रोग्राम चलाया जा रहा है।
- तेज़, सस्ता, अधिक व्यापक रूप से उपलब्ध कंप्यूटर डेटा भंडारण#प्रोग्रामों को गैर-वाष्पशील मेमोरी में संग्रहीत करने के लिए भंडारण उपकरणों का पदानुक्रम। इसकी आवश्यकता थी, क्योंकि कंप्यूटर को उपयोगी तरीके से उपयोग करने के लिए हाथ से कोड टाइप करना बोझिल था, जो सिस्टम द्वारा अस्थिर मेमोरी में सहेजने के कारण हर रिबूट पर खो जाता था।
- एक सुविधाजनक उच्च स्तरीय भाषा और ऐसी उच्च स्तरीय भाषा के लिए संबंधित मशीन कोड के लिए एक अनुवादक की आवश्यकता।
- लाइब्रेरी (कंप्यूटिंग) मॉड्यूल को लिंक करने के लिए लिंकर (कंप्यूटिंग), जो उपयोगकर्ता द्वारा लिखा जा सकता है या सिस्टम पर पहले से ही उपलब्ध हो सकता है।
- कंप्यूटर डेटा स्टोरेज से निष्पादनयोग्य को रैंडम एक्सेस मेमोरी में लोड करने के लिए लोडर#भंडारण का पदानुक्रम।
- प्रोग्राम द्वारा उत्पन्न आउटपुट की हार्ड कॉपी तैयार करने के लिए उपयुक्त I/O डिवाइस, जैसे प्रिंटर (कंप्यूटिंग)।
यह भी देखें
संदर्भ
- ↑ Gordon, Abel; Amit, Nadav; Har'El, Nadav; Ben-Yehuda, Muli; Landau, Alex; Schuster, Assaf; Tsafrir, Dan (2012). "या". ACM SIGPLAN Notices. 47 (4): 411–422. doi:10.1145/2248487.2151020.
- ↑ "बेअर मेटल सी++ के लिए प्रैक्टिकल गाइड". Retrieved December 16, 2022.
अग्रिम पठन
- Silberschatz, A.; Galvin, Peter; Gagne, Greg (2003). Operating System Concepts. ISBN 9780471250609.