बेर मशीन: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{short description|Computer without an operating system}}
{{short description|Computer without an operating system}}
{{Redirect|Bare metal}}[[कंप्यूटर]] विज्ञान में, नंगे मशीन (या नंगे धातु) एक कंप्यूटर को एक हस्तक्षेप [[ऑपरेटिंग सिस्टम]] के बिना तर्क हार्डवेयर पर सीधे निर्देश निष्पादित करने के लिए संदर्भित करता है। आधुनिक ऑपरेटिंग सिस्टम विभिन्न चरणों के माध्यम से विकसित हुए, प्राथमिक से लेकर आज तक जटिल, अत्यधिक संवेदनशील सिस्टम जिसमें कई सेवाएं शामिल हैं। प्रोग्राम करने योग्य कंप्यूटर के विकास के बाद (जिसमें विभिन्न प्रोग्राम चलाने के लिए भौतिक परिवर्तन की आवश्यकता नहीं थी) लेकिन ऑपरेटिंग सिस्टम के विकास से पहले, बिना किसी सिस्टम सॉफ़्टवेयर परत के [[मशीन भाषा]] का उपयोग करके सीधे कंप्यूटर हार्डवेयर पर अनुक्रमिक निर्देश निष्पादित किए गए थे। इस दृष्टिकोण को आधुनिक ऑपरेटिंग सिस्टम के लिए बेअर मशीन अग्रदूत कहा जाता है। आज यह ज्यादातर समय-महत्वपूर्ण विलंबता आवश्यकताओं के साथ [[ अंतः स्थापित प्रणाली |अंतः स्थापित प्रणाली]] और [[फर्मवेयर]] पर लागू होता है, जबकि पारंपरिक प्रोग्राम एक ऑपरेटिंग सिस्टम पर ओवरले किए गए [[रनटाइम सिस्टम]] द्वारा चलाए जाते हैं।
{{Redirect|अरक्षित धातु}}[[कंप्यूटर]] विज्ञान में बेर मशीन (या बेर धातु) एक कंप्यूटर को एक हस्तक्षेप [[ऑपरेटिंग सिस्टम]] के बिना तर्क हार्डवेयर पर सीधे निर्देश निष्पादित करने के लिए संदर्भित करता है। आधुनिक ऑपरेटिंग सिस्टम विभिन्न चरणों के माध्यम से विकसित हुए प्राथमिक से लेकर आज तक जटिल अत्यधिक संवेदनशील सिस्टम जिसमें कई सेवाएं सम्मिलित हैं। प्रोग्राम करने योग्य कंप्यूटर के विकास के बाद (जिसमें विभिन्न प्रोग्राम चलाने के लिए भौतिक परिवर्तन की आवश्यकता नहीं थी) किंतु ऑपरेटिंग सिस्टम के विकास से पहले बिना किसी सिस्टम सॉफ़्टवेयर परत के [[मशीन भाषा]] का उपयोग करके सीधे कंप्यूटर हार्डवेयर पर अनुक्रमिक निर्देश निष्पादित किए गए थे। इस दृष्टिकोण को आधुनिक ऑपरेटिंग सिस्टम के लिए बेअर मशीन अग्रदूत कहा जाता है। आज यह ज्यादातर समय-महत्वपूर्ण विलंबता आवश्यकताओं के साथ [[ अंतः स्थापित प्रणाली |अंतः स्थापित प्रणाली]] और [[फर्मवेयर]] पर प्रयुक्त होता है जबकि पारंपरिक प्रोग्राम एक ऑपरेटिंग सिस्टम पर ओवरले किए गए [[रनटाइम सिस्टम]] द्वारा चलाए जाते हैं।


== लाभ ==
== लाभ ==


किसी दिए गए एप्लिकेशन के लिए, ज्यादातर मामलों में, कम मेमोरी का उपयोग करते हुए एक नंगे धातु का कार्यान्वयन तेजी से चलेगा और इसलिए अधिक ऊर्जा कुशल होगा। ऐसा इसलिए है क्योंकि ऑपरेटिंग सिस्टम, किसी भी प्रोग्राम के रूप में, चलाने के लिए कुछ निष्पादन समय और मेमोरी स्पेस की आवश्यकता होती है, और ये नंगे-धातु पर अब आवश्यक नहीं हैं।
किसी दिए गए एप्लिकेशन के लिए ज्यादातर स्थिति में कम मेमोरी का उपयोग करते हुए एक बेर धातु का कार्यान्वयन तेजी से चलेगा और इसलिए अधिक ऊर्जा कुशल होगा। ऐसा इसलिए है क्योंकि ऑपरेटिंग सिस्टम, किसी भी प्रोग्राम के रूप में चलाने के लिए कुछ निष्पादन समय और मेमोरी स्पेस की आवश्यकता होती है, और ये बेर -धातु पर अब आवश्यक नहीं हैं। उदाहरण के लिए कोई भी हार्डवेयर सुविधा जिसमें इनपुट और आउटपुट सम्मिलित हैं सीधे बेर -धातु पर पहुंच योग्य हैं, जबकि ओएस का उपयोग करने वाली एक ही सुविधा को कॉल को सबरूटीन में रूट करना चाहिए चलने वाले समय और मेमोरी का उपभोग करना चाहिए।<ref>{{Cite journal|url=https://dl.acm.org/doi/pdf/10.1145/2248487.2151020|doi = 10.1145/2248487.2151020|title = या|year = 2012|last1 = Gordon|first1 = Abel|last2 = Amit|first2 = Nadav|last3 = Har'El|first3 = Nadav|last4 = Ben-Yehuda|first4 = Muli|last5 = Landau|first5 = Alex|last6 = Schuster|first6 = Assaf|last7 = Tsafrir|first7 = Dan|journal = ACM SIGPLAN Notices|volume = 47|issue = 4|pages = 411–422}}</ref>
उदाहरण के लिए, कोई भी हार्डवेयर सुविधा जिसमें इनपुट और आउटपुट शामिल हैं, सीधे नंगे-धातु पर पहुंच योग्य हैं, जबकि ओएस का उपयोग करने वाली एक ही सुविधा को कॉल को सबरूटीन में रूट करना चाहिए, चलने वाले समय और मेमोरी का उपभोग करना चाहिए।<ref>{{Cite journal|url=https://dl.acm.org/doi/pdf/10.1145/2248487.2151020|doi = 10.1145/2248487.2151020|title = या|year = 2012|last1 = Gordon|first1 = Abel|last2 = Amit|first2 = Nadav|last3 = Har'El|first3 = Nadav|last4 = Ben-Yehuda|first4 = Muli|last5 = Landau|first5 = Alex|last6 = Schuster|first6 = Assaf|last7 = Tsafrir|first7 = Dan|journal = ACM SIGPLAN Notices|volume = 47|issue = 4|pages = 411–422}}</ref>
== हानि                ==
 
किसी दिए गए एप्लिकेशन के लिए बेयर-मेटल प्रोग्रामिंग को ठीक से काम करने के लिए अधिक प्रयास की आवश्यकता होती है और यह अधिक जटिल है क्योंकि ऑपरेटिंग सिस्टम द्वारा प्रदान की जाने वाली सेवाओं और एप्लिकेशन द्वारा उपयोग की जाने वाली सेवाओं को आवश्यकताओं के संबंध में फिर से प्रयुक्त करना पड़ता है। ये सेवाएं हो सकती हैं:
 
== नुकसान ==
किसी दिए गए एप्लिकेशन के लिए, बेयर-मेटल प्रोग्रामिंग को ठीक से काम करने के लिए अधिक प्रयास की आवश्यकता होती है और यह अधिक जटिल है क्योंकि ऑपरेटिंग सिस्टम द्वारा प्रदान की जाने वाली सेवाओं और एप्लिकेशन द्वारा उपयोग की जाने वाली सेवाओं को आवश्यकताओं के संबंध में फिर से लागू करना पड़ता है। ये सेवाएं हो सकती हैं:
* सिस्टम बूट (अनिवार्य)
* सिस्टम बूट (अनिवार्य)
* मेमोरी प्रबंधन: हार्डवेयर संसाधनों और बाह्य उपकरणों (अनिवार्य) के संबंध में कोड और डेटा का भंडारण स्थान
* मेमोरी प्रबंधन: हार्डवेयर संसाधनों और बाह्य उपकरणों (अनिवार्य) के संबंध में कोड और डेटा का संचयन स्थान
* व्यवधान प्रबंधन (यदि कोई हो)
* व्यवधान प्रबंधन (यदि कोई हो)
* टास्क शेड्यूलिंग, यदि एप्लिकेशन एक से अधिक कार्य कर सकता है
* टास्क शेड्यूलिंग यदि एप्लिकेशन एक से अधिक कार्य कर सकता है
* बाह्य उपकरणों का प्रबंधन (यदि कोई हो)
* बाह्य उपकरणों का प्रबंधन (यदि कोई हो)
* त्रुटि प्रबंधन, यदि वांछित या आवश्यक हो
* त्रुटि प्रबंधन यदि वांछित या आवश्यक हो


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


बेयर-मेटल प्रोग्रामिंग आमतौर पर [[ जंग (प्रोग्रामिंग भाषा) |जंग (प्रोग्रामिंग भाषा)]] , [[C++]], C (प्रोग्रामिंग लैंग्वेज), [[ सभा की भाषा |सभा की भाषा]] , या यहां तक ​​​​कि कोड की थोड़ी मात्रा या बहुत नए प्रोसेसर [[मशीन कोड]] के लिए क्लोज-टू-हार्डवेयर लैंग्वेज का उपयोग करके की जाती है।<ref>{{Cite web|url=https://arobenko.gitbooks.io/bare_metal_cpp/content|title=बेयर मेटल सी++ के लिए प्रैक्टिकल गाइड|access-date=December 16, 2022}}</ref> पिछले सभी मुद्दों का अनिवार्य रूप से मतलब है कि नंगे धातु कार्यक्रम बहुत ही कम [[सॉफ्टवेयर पोर्टेबिलिटी]] हैं।
बेयर-मेटल प्रोग्रामिंग सामान्यतः [[ जंग (प्रोग्रामिंग भाषा) |जंग (प्रोग्रामिंग भाषा)]] , [[C++]], C (प्रोग्रामिंग भाषा), [[ सभा की भाषा |सभा की भाषा]] या यहां तक ​​​​कि कोड की थोड़ी मात्रा या बहुत नए प्रोसेसर [[मशीन कोड]] के लिए क्लोज-टू-हार्डवेयर भाषा का उपयोग करके की जाती है।<ref>{{Cite web|url=https://arobenko.gitbooks.io/bare_metal_cpp/content|title=बेयर मेटल सी++ के लिए प्रैक्टिकल गाइड|access-date=December 16, 2022}}</ref> पिछले सभी उद्देश्यों का अनिवार्य रूप से अर्थ है कि बेर धातु कार्यक्रम बहुत ही कम [[सॉफ्टवेयर पोर्टेबिलिटी]] हैं।


== उदाहरण ==
== उदाहरण ==


=== शुरुआती कंप्यूटर ===
=== प्रारंभिक कंप्यूटर ===
शुरुआती कंप्यूटर, जैसे कि [[PDP-11]], ने प्रोग्[[ टक्कर मारना ]]र्स को एक प्रोग्राम लोड करने की अनुमति दी, जो मशीन कोड में दिया गया था, RAM में। कार्यक्रम के परिणामी संचालन को [[ब्लिंकनलाइट्स]] द्वारा मॉनिटर किया जा सकता है, और [[चुंबकीय टेप]], प्रिंट डिवाइस या [[कंप्यूटर डेटा भंडारण]] से प्राप्त आउटपुट।
प्रारंभिक कंप्यूटर जैसे कि [[PDP-11|पीडीपी]]-[[PDP-11|11]] ने प्रोग्रामर्स को एक प्रोग्राम लोड करने की अनुमति दी जो रैम को मशीन कोड में दिया गया था। कार्यक्रम के परिणामी संचालन की मॉनिटर चुंबकीय टेप प्रिंट उपकरणों या संचयन से प्राप्त प्रकाश और आउटपुट द्वारा की जा सकती है।


=== एंबेडेड सिस्टम ===
=== एंबेडेड सिस्टम ===


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


== विकास ==
== विकास ==


नंगे मशीनों का उपयोग करने के दृष्टिकोण ने नए विचारों का मार्ग प्रशस्त किया जिसने ऑपरेटिंग सिस्टम के विकास के विकास को गति दी।
बेर मशीनों का उपयोग करने के दृष्टिकोण ने नए विचारों का मार्ग प्रशस्त किया जिसने ऑपरेटिंग सिस्टम के विकास के विकास को गति दी।


इस दृष्टिकोण ने निम्नलिखित की आवश्यकता पर प्रकाश डाला:
इस दृष्टिकोण ने निम्नलिखित की आवश्यकता पर प्रकाश डाला:


* इनपुट/आउटपुट (I/O) डिवाइस कोड और डेटा दोनों को आसानी से दर्ज करने के लिए:
* इनपुट/आउटपुट (I/O) उपकरण कोड और डेटा दोनों को आसानी से दर्ज करने के लिए:
** [[इनपुट डिवाइस]], जैसे [[कंप्यूटर कीबोर्ड]], बनाए गए। ये आवश्यक थे, क्योंकि पहले के कंप्यूटरों में अक्सर अद्वितीय, कुंद और जटिल इनपुट डिवाइस होते थे।
** [[इनपुट डिवाइस]], जैसे [[कंप्यूटर कीबोर्ड]], बनाए गए। ये आवश्यक थे क्योंकि पहले के कंप्यूटरों में अधिकांशतः अद्वितीय कुंद और जटिल इनपुट उपकरण होते थे।


उदाहरण के लिए, डिवाइस के [[ सामने का हिस्सा |सामने का हिस्सा]] पर टॉगल स्विच की एक श्रृंखला का उपयोग करके प्रोग्राम को पीडीपी-11 में हाथ से लोड किया गया था। कीबोर्ड इन पुराने इनपुट उपकरणों से कहीं बेहतर हैं, क्योंकि यह मशीन में इनपुट करने के लिए टॉगल स्विच का उपयोग करने की तुलना में कोड या डेटा टाइप करने के लिए बहुत तेज़ होगा। ब्रांड या कीमत की परवाह किए बिना कीबोर्ड बाद में लगभग हर कंप्यूटर में मानक बन गए।
उदाहरण के लिए उपकरण के [[ सामने का हिस्सा |सामने का भाग]] पर टॉगल स्विच की एक श्रृंखला का उपयोग करके प्रोग्राम को पीडीपी-11 में हाथ से लोड किया गया था। कीबोर्ड इन पुराने इनपुट उपकरणों से कहीं उत्तम हैं क्योंकि यह मशीन में इनपुट करने के लिए टॉगल स्विच का उपयोग करने की तुलना में कोड या डेटा टाइप करने के लिए बहुत तेज़ होगा। ब्रांड या कीमत की परवाह किए बिना कीबोर्ड बाद में लगभग हर कंप्यूटर में मानक बन गए।


*[[ कंप्यूटर मॉनीटर | कंप्यूटर मॉनीटर]] जैसे [[आउटपुट डिवाइस]] बाद में व्यापक रूप से उपयोग किए जाएंगे, और आज भी हैं। वे पहले के आउटपुट उपकरणों, जैसे [[अल्टेयर 8800]] पर ब्लिंकनलाइट्स, जो कंप्यूटर की स्थिति का संकेत देते थे, की तुलना में एक बड़ी सुविधा साबित हुए।
*[[ कंप्यूटर मॉनीटर | कंप्यूटर मॉनीटर]] जैसे [[आउटपुट डिवाइस|आउटपुट]] उपकरण बाद में व्यापक रूप से उपयोग किए जाएंगे और आज भी हैं। वे पहले के आउटपुट उपकरणों जैसे [[अल्टेयर 8800]] पर ब्लिंकनलाइट्स जो कंप्यूटर की स्थिति का संकेत देते थे की तुलना में एक बड़ी सुविधा सिद्ध हुए।


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


* तेज़, सस्ता, अधिक व्यापक रूप से उपलब्ध कंप्यूटर डेटा स्टोरेज # गैर-वाष्पशील मेमोरी में प्रोग्राम स्टोर करने के लिए स्टोरेज डिवाइस का पदानुक्रम। यह आवश्यक था, क्योंकि कंप्यूटर को उपयोगी तरीके से उपयोग करने के लिए हाथ से कोड टाइप करना बोझिल था, जो सिस्टम को वाष्पशील मेमोरी में सहेजने के कारण प्रत्येक [[ रिबूट |रिबूट]] पर खो जाएगा।
* तेज़ सस्ता अधिक व्यापक रूप से उपलब्ध कंप्यूटर डेटा संचयन या गैर-वाष्पशील मेमोरी में प्रोग्राम संचयन करने के लिए संचयन उपकरण का पदानुक्रम यह आवश्यक था क्योंकि कंप्यूटर को उपयोगी विधि से उपयोग करने के लिए हाथ से कोड टाइप करना बोझिल था जो सिस्टम को वाष्पशील मेमोरी में सहेजने के कारण प्रत्येक [[ रिबूट |रिबूट]] पर खो जाएगा।
* एक सुविधाजनक उच्च-स्तरीय भाषा और ऐसी उच्च-स्तरीय भाषा के लिए संबंधित मशीन कोड के लिए एक अनुवादक की आवश्यकता।
* एक सुविधाजनक उच्च-स्तरीय भाषा और ऐसी उच्च-स्तरीय भाषा के लिए संबंधित मशीन कोड के लिए एक अनुवादक की आवश्यकता है।
* [[लिंकर (कंप्यूटिंग)]] [[ पुस्तकालय (कम्प्यूटिंग) |पुस्तकालय (कम्प्यूटिंग)]] मॉड्यूल को लिंक करने के लिए, जो उपयोगकर्ता द्वारा लिखा जा सकता है या सिस्टम पर पहले से उपलब्ध हो सकता है।
* [[लिंकर (कंप्यूटिंग)]] [[ पुस्तकालय (कम्प्यूटिंग) |पुस्तकालय (कम्प्यूटिंग)]] मॉड्यूल को लिंक करने के लिए जो उपयोगकर्ता द्वारा लिखा जा सकता है या सिस्टम पर पहले से उपलब्ध हो सकता है।
* कंप्यूटर डेटा स्टोरेज # स्टोरेज के पदानुक्रम से [[ रैंडम एक्सेस मेमोरी |रैंडम एक्सेस मेमोरी]] में [[निष्पादन]] योग्य लोड करने के लिए लोडर।
* कंप्यूटर डेटा संचयन या संचयन के पदानुक्रम से [[ रैंडम एक्सेस मेमोरी |रैंडम एक्सेस मेमोरी]] में [[निष्पादन]] योग्य लोड करने के लिए लोडर।
* उपयुक्त I/O डिवाइस, जैसे कि [[प्रिंटर (कंप्यूटिंग)]] प्रोग्राम द्वारा उत्पन्न आउटपुट की [[हार्ड कॉपी]] तैयार करने के लिए।
* उपयुक्त I/O डिवाइस, जैसे कि [[प्रिंटर (कंप्यूटिंग)]] प्रोग्राम द्वारा उत्पन्न आउटपुट की [[हार्ड कॉपी]] तैयार करने के लिए।


Line 63: Line 60:


* {{cite book|first1=A.|last1=Silberschatz|first2=Peter|last2=Galvin|first3=Greg|last3=Gagne|title=Operating System Concepts|year=2003|isbn=9780471250609|url=https://archive.org/details/operatingsystemc0006silb|url-access=registration}}
* {{cite book|first1=A.|last1=Silberschatz|first2=Peter|last2=Galvin|first3=Greg|last3=Gagne|title=Operating System Concepts|year=2003|isbn=9780471250609|url=https://archive.org/details/operatingsystemc0006silb|url-access=registration}}
[[Category: कंप्यूटर की कक्षाएं]] [[Category: सॉफ्टवेयर का इतिहास]] [[Category: ऑपरेटिंग सिस्टम]]


[[Category: Machine Translated Page]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:Created On 15/05/2023]]
[[Category:Created On 15/05/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Missing redirects]]
[[Category:Pages with script errors]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:ऑपरेटिंग सिस्टम]]
[[Category:कंप्यूटर की कक्षाएं]]
[[Category:सॉफ्टवेयर का इतिहास]]

Latest revision as of 09:36, 15 June 2023

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

लाभ

किसी दिए गए एप्लिकेशन के लिए ज्यादातर स्थिति में कम मेमोरी का उपयोग करते हुए एक बेर धातु का कार्यान्वयन तेजी से चलेगा और इसलिए अधिक ऊर्जा कुशल होगा। ऐसा इसलिए है क्योंकि ऑपरेटिंग सिस्टम, किसी भी प्रोग्राम के रूप में चलाने के लिए कुछ निष्पादन समय और मेमोरी स्पेस की आवश्यकता होती है, और ये बेर -धातु पर अब आवश्यक नहीं हैं। उदाहरण के लिए कोई भी हार्डवेयर सुविधा जिसमें इनपुट और आउटपुट सम्मिलित हैं सीधे बेर -धातु पर पहुंच योग्य हैं, जबकि ओएस का उपयोग करने वाली एक ही सुविधा को कॉल को सबरूटीन में रूट करना चाहिए चलने वाले समय और मेमोरी का उपभोग करना चाहिए।[1]

हानि

किसी दिए गए एप्लिकेशन के लिए बेयर-मेटल प्रोग्रामिंग को ठीक से काम करने के लिए अधिक प्रयास की आवश्यकता होती है और यह अधिक जटिल है क्योंकि ऑपरेटिंग सिस्टम द्वारा प्रदान की जाने वाली सेवाओं और एप्लिकेशन द्वारा उपयोग की जाने वाली सेवाओं को आवश्यकताओं के संबंध में फिर से प्रयुक्त करना पड़ता है। ये सेवाएं हो सकती हैं:

  • सिस्टम बूट (अनिवार्य)
  • मेमोरी प्रबंधन: हार्डवेयर संसाधनों और बाह्य उपकरणों (अनिवार्य) के संबंध में कोड और डेटा का संचयन स्थान
  • व्यवधान प्रबंधन (यदि कोई हो)
  • टास्क शेड्यूलिंग यदि एप्लिकेशन एक से अधिक कार्य कर सकता है
  • बाह्य उपकरणों का प्रबंधन (यदि कोई हो)
  • त्रुटि प्रबंधन यदि वांछित या आवश्यक हो

बेयर-मेटल प्रोग्राम को डिबग करना कठिन है क्योंकि:

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

बेयर-मेटल प्रोग्रामिंग सामान्यतः जंग (प्रोग्रामिंग भाषा) , C++, C (प्रोग्रामिंग भाषा), सभा की भाषा या यहां तक ​​​​कि कोड की थोड़ी मात्रा या बहुत नए प्रोसेसर मशीन कोड के लिए क्लोज-टू-हार्डवेयर भाषा का उपयोग करके की जाती है।[2] पिछले सभी उद्देश्यों का अनिवार्य रूप से अर्थ है कि बेर धातु कार्यक्रम बहुत ही कम सॉफ्टवेयर पोर्टेबिलिटी हैं।

उदाहरण

प्रारंभिक कंप्यूटर

प्रारंभिक कंप्यूटर जैसे कि पीडीपी-11 ने प्रोग्रामर्स को एक प्रोग्राम लोड करने की अनुमति दी जो रैम को मशीन कोड में दिया गया था। कार्यक्रम के परिणामी संचालन की मॉनिटर चुंबकीय टेप प्रिंट उपकरणों या संचयन से प्राप्त प्रकाश और आउटपुट द्वारा की जा सकती है।

एंबेडेड सिस्टम

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

विकास

बेर मशीनों का उपयोग करने के दृष्टिकोण ने नए विचारों का मार्ग प्रशस्त किया जिसने ऑपरेटिंग सिस्टम के विकास के विकास को गति दी।

इस दृष्टिकोण ने निम्नलिखित की आवश्यकता पर प्रकाश डाला:

  • इनपुट/आउटपुट (I/O) उपकरण कोड और डेटा दोनों को आसानी से दर्ज करने के लिए:

उदाहरण के लिए उपकरण के सामने का भाग पर टॉगल स्विच की एक श्रृंखला का उपयोग करके प्रोग्राम को पीडीपी-11 में हाथ से लोड किया गया था। कीबोर्ड इन पुराने इनपुट उपकरणों से कहीं उत्तम हैं क्योंकि यह मशीन में इनपुट करने के लिए टॉगल स्विच का उपयोग करने की तुलना में कोड या डेटा टाइप करने के लिए बहुत तेज़ होगा। ब्रांड या कीमत की परवाह किए बिना कीबोर्ड बाद में लगभग हर कंप्यूटर में मानक बन गए।

  • कंप्यूटर मॉनीटर जैसे आउटपुट उपकरण बाद में व्यापक रूप से उपयोग किए जाएंगे और आज भी हैं। वे पहले के आउटपुट उपकरणों जैसे अल्टेयर 8800 पर ब्लिंकनलाइट्स जो कंप्यूटर की स्थिति का संकेत देते थे की तुलना में एक बड़ी सुविधा सिद्ध हुए।

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

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

यह भी देखें

संदर्भ

  1. 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.
  2. "बेयर मेटल सी++ के लिए प्रैक्टिकल गाइड". Retrieved December 16, 2022.