बूटलोडर को कहाँ संग्रहीत किया जाता है - ROM, RAM या अन्य जगहों पर?


30

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

तो यह बूटलोडर वास्तव में कहाँ स्थित है? क्या अलग-अलग ऑपरेटिंग सिस्टम अपने बूटलोडर को अलग-अलग जगहों पर स्टोर करते हैं?

जवाबों:


43

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

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

पीसी BIOS के साथ, यह डिस्क से बूट करने का निर्णय लेने वाले डिस्क से पहले सेक्टर को लोड और निष्पादित करता है, जो आमतौर पर पहली हार्ड डिस्क का पता लगाया जाता है। एक हार्ड डिस्क के पहले सेक्टर को कन्वेंशन करके, जिसे मास्टर बूट रिकॉर्ड कहा जाता है, में एक डॉस विभाजन तालिका होती है जो डिस्क पर विभाजन के स्थानों को सूचीबद्ध करती है, और बूट लोडर के लिए कुछ स्थान छोड़ देती है। उबंटू GRUB बूट लोडर का उपयोग करता है, जो लोड करने और निष्पादित करने के लिए एमबीआर में पर्याप्त कोड रखता है /boot/grub/core.img। आम तौर पर इस फाइल की एक प्रति एमबीआर के बाद के क्षेत्रों में रखी जाती है, लेकिन पहले विभाजन से पहले, और वह वास्तव में एमबीआर लोड होती है, क्योंकि /boot/grub/core.imgएमबीआर में उपलब्ध बहुत ही सीमित स्थान में ठीक से करने के लिए बहुत मुश्किल है। ।

ग्रब कोर छवि में बेस ग्रब कोड होता है, साथ ही किसी भी मॉड्यूल को एक्सेस करने की आवश्यकता होती है /boot/grubताकि यह वहां अतिरिक्त मॉड्यूल लोड कर सके, और ग्रब कॉन्फिग फ़ाइल जो यह बताती है कि ऑपरेटिंग सिस्टम को बूट किया जा सकता है, और जहां वे मिल सकते हैं।

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


यहाँ एक पैराग्राफ है जो ग्लेन ब्रुकशायर के कंप्यूटर विज्ञान, एन ओवरव्यू के A small portion of a computer's main memory where the CPU expects to find its initial program is constructed from special nonvolatile memory cells. Such memory is known as read-only memory(ROM) अनुसार है। मुख्य मेमोरी दो भागों, रैम और रोम से बनी होती है। मैं सिर्फ यह जानना चाहता हूं कि क्या तथाकथित बूटलोडर मुख्य मेमोरी के रोम भाग पर स्थापित है ... @Sergey
xczzhh

@xczzhh - हाँ BIOS को रोम में संग्रहीत किया जाता है, जो विभाजन में मौजूद बूटलोडर का पता लगाता है। किसी भी OS को स्थापित करने पर, यह संबंधित BOOTLOADER का पता लगाने के लिए BIOS में एक प्रकार का ध्वज बनाता है।
atenz

1
@xczzhh, नहीं, बूट लोडर हार्ड ड्राइव या किसी अन्य डिस्क पर है। यह ओएस के साथ स्थापित किया गया है। जब तक आप अपने मदरबोर्ड निर्माता से अपडेट डाउनलोड और इंस्टॉल नहीं करते हैं, तब तक रोम कभी नहीं बदलता है।
Psusi

EFI इसके बजाय EFI एप्लिकेशन का उपयोग करता है। यह NVRAM में EFI एप्लिकेशन को लोड करता है
Suici Doga

@SuiciDoga, नहीं, EFI एप्लिकेशन (जो मूल रूप से कुछ फर्मवेयर अपग्रेड यूटिलिटीज और बूट लोडर तक सीमित हैं) हार्ड डिस्क के EFI सिस्टम विभाजन में संग्रहीत हैं। NVRAM वह जगह है जहाँ EFI बूट क्रम जैसे कुछ विन्यास चर को संग्रहीत करता है।
Psusi

23

ROM मुख्य मेमोरी में नहीं है:

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

आम तौर पर :

  • ROM मेमोरी साइज में बहुत छोटे हैं। ये मेमोरी गैर-वाष्पशील है, इस अर्थ में, रोम में संग्रहीत प्रोग्राम बिजली बंद होने के साथ मिट नहीं जाता है।
  • ROM का उपयोग स्थायी कार्यक्रमों को संग्रहीत करने के लिए किया जाता है, जो आपके हार्डवेयर को सही ढंग से निष्पादित करने के लिए बहुत आवश्यक हैं।
  • ROM का एक विशिष्ट उदाहरण BIOS चिप है। जहाँ बहुत ही निम्न स्तर के बूटिंग और हार्डवेयर को आरम्भ करने का कार्यक्रम संग्रहीत किया जाता है

आपने उल्लेख किया है कि, आपने एक लेख पढ़ा जहां लेखक ने कहा, "ROM मुख्य मेमोरी का एक हिस्सा है"। यह भ्रामक है, क्योंकि आमतौर पर मुख्य मेमोरी उन प्रकारों की मेमोरी को संदर्भित करती है जो अस्थिर हैं, जैसे कि RAM। लेकिन हाँ, यदि आप किसी PC की संपूर्ण मेमोरी स्पेस के लिए Main Memory शब्द का उपयोग करते हैं , तो ROM उस मेमोरी स्पेस का एक हिस्सा है। आपको ध्यान देना चाहिए कि आम तौर पर मुख्य मेमोरी ROM के रूप में प्रकार की मेमोरी को बाहर करती है

कहाँ बूटलोडर संग्रहीत है:

आधुनिक प्रणाली दो चरण बूट लोडिंग का उपयोग करती है। पहले चरण में हार्ड डिस्क के एक सेक्टर (बूट-सेक्टर कहा जाता है) से एक छोटा प्रोग्राम लोड किया जाता है। बदले में यह छोटा कार्यक्रम डिस्क में कुछ प्रोग्राम लोड करता है, जिसे बूटलोडर कहा जाता है। और अंत में बूटलोडर OS को लोड करता है।

उबंटू प्रणाली के कार्यकाल में, प्रक्रिया निम्नानुसार है:

  1. आपके पीसी को चालू करने के बाद, BIOS (जो कि रोम में संग्रहीत होता है) स्वचालित रूप से पीसी हार्डवेयर के विभिन्न भागों को चलाता है और आरंभ करता है। फिर यह परिभाषित पहले बूट डिवाइस (आमतौर पर हार्ड डिस्क) में एक विशिष्ट क्षेत्र की जांच करता है। यह सेक्टर बूट-सेक्टर है, जो आकार में 512 बाइट्स है।

  2. बूट-सेक्टर में प्रोग्राम मेमोरी (प्रथम चरण) में लोड किया जाता है। इस छोटे से कार्यक्रम में यह जानकारी है कि इसे कौन से प्रोग्राम को मेमोरी में लोड करना चाहिए और वह प्रोग्राम डिस्क या बूट डिवाइस में कहां स्थित है। यह उस प्रोग्राम को लोड करता है। उबंटू में, यह है /boot/grub/core.img

  3. दूसरे चरण में, द ओएस-लोडर, GRUB, कर्नेल और प्रारंभिक रैम डिस्क को मेमोरी में लोड करके और कर्नेल को हैंड्स-ओवर कंट्रोल करके उबंटू को लोड करता है। फिर कर्नेल सभी आवश्यक कार्यक्रमों जैसे प्रदर्शन प्रबंधक, गुई आदि को चलाता है और लोड करता है।

तो, हम स्पष्ट रूप से कह सकते हैं, कि बूटलोडर को न तो रोम में संग्रहीत किया जाता है, न ही रैम में, यह वास्तव में हार्ड डिस्क (या अन्य बूट डिवाइस, जैसे कि बूट करने योग्य सीडीरॉम, यूएसबी ड्राइव आदि) पर संग्रहीत होता है, ठीक पहले क्षेत्र में बोल रहा है। हार्ड डिस्क, जो आकार 512 बाइट्स की है और जिसे अक्सर बूट-सेक्टर के रूप में जाना जाता है । और यह बूटलोडर ओएस-लोडर को लोड करता है (उबंटू में, यह ग्रब है) जो हार्ड डिस्क (अर्थात /boot/grub/फ़ोल्डर) में भी रहता है , और यह कार्य ओएस (जैसे, उबंटू) लोड कर रहा है।

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

आशा है कि यह उत्तर मदद करेगा।


अधिक जानकारी के लिए, आप इन लिंक पर जाना चाहते हैं:

  1. http://en.wikipedia.org/wiki/Read-only_memory
  2. http://en.wikipedia.org/wiki/Random-access_memory

2
ROM अब लगभग एक दशक से RAM से तेज नहीं है। वास्तव में, एक आधुनिक BIOS जो पहली चीज़ करता है, वह रैम में ही कॉपी होती है क्योंकि रैम बहुत तेज होती है।
डेविड श्वार्ट्ज

1
@DavidSchwartz, अब एक दशक से अधिक हो गया है। 90 के दशक के मध्य में उपयोग किए जाने वाले प्रत्येक पीसी BIOS में गति के लिए रैम में बायोस को छाया देने का एक विकल्प था।
Psusi

@ अनवर, मेन मेमोरी का लिंक मर चुका है।
द मैट

15

एक x86- संगत प्रोसेसर हमेशा तथाकथित "वास्तविक" मोड में शुरू होता है, जो एक 16-बिट मोड है जिसमें 1 मेगाबाइट पता योग्य मेमोरी उपलब्ध है। उस पते के स्थान से, 640K कार्यक्रमों के लिए उपलब्ध हैं, और ऊपर दिए गए पते अलग-अलग उपकरणों के लिए मैप किए जाते हैं ।

उदाहरण के लिए, 0xA000: 0x0000 से शुरू होने वाले पते वीडियो रैम के लिए मैप किए जाते हैं, इसलिए, वहाँ डेटा लिखने से वास्तव में स्क्रीन पर वीडियो एडेप्टर की मेमोरी डिस्प्ले करने वाले पिक्सेल के लिए डेटा लिखना होगा।

इसी तरह, BIOS ROM की शुरुआत 0xF000: 0000 से होती है, इसलिए जब CPU चालू होता है, तो बस उस पूर्व-निर्धारित पते से एक-एक करके निर्देशों को निष्पादित करना शुरू कर देता है। BIOS ROM में प्रारंभिक प्रोग्राम होता है जो "पावर-ऑन सेल्फ टेस्ट", या POST प्रदर्शन करके शुरू होता है। विकिपीडिया से:

BIOS सॉफ्टवेयर पीसी में बनाया गया है, और पीसी पर चलने वाला पहला कोड ('बूट फर्मवेयर') है। जब पीसी शुरू होता है, तो BIOS के लिए पहला काम पावर-ऑन सेल्फ-टेस्ट होता है, जो सिस्टम डिवाइस जैसे सीपीयू, रैम, वीडियो डिस्प्ले कार्ड, कीबोर्ड और माउस, हार्ड डिस्क ड्राइव, ऑप्टिकल डिस्क ड्राइव और को पहचानता है और पहचानता है। अन्य हार्डवेयर। BIOS तब एक परिधीय उपकरण ('बूट डिवाइस' के रूप में निर्दिष्ट) पर बूट लोडर सॉफ़्टवेयर को ढूँढता है, जैसे कि हार्ड डिस्क या सीडी / डीवीडी, और उस सॉफ़्टवेयर को लोड और निष्पादित करता है, जिससे यह पीसी को नियंत्रित करता है। 2 इस प्रक्रिया को बूटिंग या बूटिंग के रूप में जाना जाता है, जो बूटस्ट्रैपिंग के लिए कम है।

BIOS फर्मवेयर डिस्क से मेमोरी में पहले सेक्टर को पढ़ने और एक छोटे प्रोग्राम पर नियंत्रण पारित करने के लिए जिम्मेदार है, जो फिर से, एक विशिष्ट पते पर स्थित है। एमबीआर बूटलोडर तो ओएस सीधे लोड हो रहा है शुरू कर सकते हैं (जैसा कि MS-DOS के साथ भी थी) या "दूसरे चरण" है, जो एक एकल डिस्क क्षेत्र के दायरे तक सीमित नहीं है लोड करने के लिए।

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

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

जब आप उस कंप्यूटर पर उबंटू स्थापित करते हैं जिस पर विंडोज है, तो GRUB MBR में स्थापित हो जाएगा और आप उबंटू और विंडोज दोनों को बूट कर पाएंगे।

हालाँकि, यदि विंडोज उबंटू के बाद स्थापित किया गया है, तो GRUB को विंडोज बूटलोडर से बदल दिया जाएगा और आपको फिर से बूट करने में सक्षम होने के लिए GRUB को फिर से स्थापित करना होगा।


मुझे लगता है कि वह जानना चाहता है कि क्या विंडोज बूटलोडर और GRUB एक साथ मिल सकते हैं या नहीं। यूईएफआई, जीपीटी डिस्क एमबीआर का उपयोग नहीं करते हैं यह उन्हें कैसे प्रभावित करता है ?।
उड़ी हेरेरा

BIOS ROM F000: खंड में स्थित है, जो कि 1 MB से नीचे है। 640k A000 :, से नीचे के खंडों से है, जो वास्तविक मोड OS और उपयोग करने के लिए प्रोग्राम के लिए उपलब्ध हैं।
psusi

@psusi: आप सही कह रहे हैं, मैंने उस हिस्से को दोबारा बनाया है
सर्गेई

जवाब के लिए धन्यवाद। क्या आपका मतलब है कि एक ऑपरेटिंग सिस्टम को बूट करने के लिए कई बूटलोडर्स (BIOS में एक, और MBR में एक और?) शामिल हैं। यह मेरे लिए नया है ... :)
xczzhh

@xczzhh ठीक है, BIOS में कोड को "बूटलोडर" नहीं कहा जाता है, जो डिस्क पर संग्रहीत है। मैंने इसे स्पष्ट करने के लिए अपना उत्तर अपडेट किया।
सेर्गेई

4

बूटलोडर को ROM में होने और MBR में होने के बारे में आप जो कहते हैं, उसके बीच का टकराव संभवतः बूटलोडर के किसी कोड के लिए इस्तेमाल होने के कारण होता है, जो कंप्यूटर को कुछ उपयोगी बनाने के लिए कोड को लोड करने के लिए न्यूनतम लोड करने के लिए कैसे काम करता है, प्रत्येक सहित मल्टी-स्टेज बूट में स्थिति।

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

ऐतिहासिक रूप से, इस समस्या के कुछ अलग-अलग समाधान थे, लेकिन इन दिनों हम ROM (कुछ हद तक सख्ती से EEPROM) में कुछ कोड के साथ शुरू करते हैं, जो इसे अलग-अलग उपकरणों को देखने के लिए और उन्हें बारी-बारी से आजमाकर देखने के लिए पर्याप्त है। बूट।

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

ROM में इस कोड को कभी-कभी बूटलोडर कहा जाता है ।

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

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

यह कोड बहुत छोटा होगा क्योंकि इसमें फिट होने के लिए केवल लगभग 400 बाइट्स हैं, इसलिए कुछ भी वास्तविक करने के लिए, यह कुछ और कोड लोड करेगा, जो बड़ा हो सकता है क्योंकि इसे इस बाधा से निपटने की आवश्यकता नहीं है।

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

यह कोड संभवतः प्रक्रिया का अंतिम चरण हो सकता है। यदि आपके पास केवल एक ही OS है, या यदि आपके सिस्टम के सभी OS संगत बूट-लोडर का उपयोग करते हैं (जैसे दो लिनक्स स्थापित हैं जो दोनों GRUB का उपयोग करते हैं, तो जो भी GRUB अंतिम बार अपडेट किया गया था, उनमें से किसी एक में बूट करने की पेशकश कर सकता है) मेनू (यदि वांछित है) एक कर्नेल में लोड करता है, और ऑपरेटिंग सिस्टम पर नियंत्रण पास करता है।

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

ज्यादातर जब हम लिनक्स के संदर्भ में बूटलोडर के बारे में बात करते हैं , तो हम आम तौर पर रॉम कोड (यह लिनक्स का हिस्सा नहीं है, या लिनक्स को स्थापित करके बदल दिया जाता है) का मतलब नहीं है। जब हम करते update-grubहैं तो हम द्वितीयक बूटलोडर को बदल रहे होते हैं, जो आमतौर पर किसी विशेष इंस्टॉलेशन के बूट में होता है। जब हम install-grubइसे बदल रहे हैं और एमबीआर में प्राथमिक बूटलोडर भी है, तो यह जानने के लिए पर्याप्त कोड है कि कहां / बूट है (शायद एक सॉफ्टवेयर RAID शुरू होता है जैसा कि यह जाता है) और लोड करेगा और निष्पादित करेगा जब यह, स्वयं निष्पादित हो जाता है ।

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

* उन दिनों में जहां कोई व्यक्ति ROM और RAM दोनों का उपयोग करता है, यह अलग था। उदाहरण के लिए एक ZX स्पेक्ट्रम पर, ROM 16kiB होगा और इसमें एक BASIC दुभाषिया शामिल होगा, इसलिए आपको इसके 48kiB या 128KiB (पृष्ठांकित) या RAM में कुछ लोड करने के लिए शुरुआती बिंदु देना होगा, (इस मामले में, यह अनिवार्य रूप से बूट हो रहा है। उस BASIC दुभाषिया और फिर उस टेप में बूट करने के लिए उस का उपयोग करते हुए), BASIC दुभाषिया से कार्यों का एक पूरा गुच्छा था जो RAM में प्रोग्राम का उपयोग कर सकता है (क्यों एक ट्रिगर फ़ंक्शन लिखता है जब कंप्यूटर पहले से ही ज्ञात स्थिति में एक है विशेष रूप से जब आप अपने सभी अपने कोड में चलाने के लिए केवल 48kiB है)। यह रॉम भी उसी तरह से दिखाई देता था जैसे RAM, अलग-अलग पते पर। ऐसे मामले में ROM रैम के रूप में मुख्य मेमोरी का एक हिस्सा था, लेकिन लिखने योग्य नहीं था।


0

एक न्यूनतम काम करने का उदाहरण बनाएं और उन अवधारणाओं को समझने के लिए एक एमुलेटर पर इसे चलाएं:

printf '\364%509s\125\252' > main.img
qemu-system-x86_64 -hda main.img

यह एक सुपर सरल "बूटलोडर" है जो एकल hltनिर्देश करता है । अधिक जानकारी: https://stackoverflow.com/a/32483545/895245

इसके बाद आप इसे वास्तविक हार्डवेयर पर चला सकते हैं:

sudo dd if=main.img of=/dev/sdX

और अपने कंप्यूटर पर USB प्लग करना, और उससे बूट करना।

जब आप ऐसा करते हैं, तो यह स्पष्ट हो जाता है कि बूटलोडर एक ऐसी चीज है जो USB या हार्ड डिस्क जैसे स्थायी भंडारण डिस्क पर रहती है।

ROM पर रहने वाला कोड वह कोड है जो हमारे लिए बूटलोडर को शुरू करता है, जिसे फर्मवेयर (या कम सटीक BIOS) कहा जाता है ।


0

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

आजकल आईपीएल कोड pROMs में रहता है जिसे जब बारी लोड में निष्पादित किया जाता है और वांछित ऑपरेटिंग सिस्टम लोड (बूटअप) के अनुरूप किसी भी द्वितीयक बूट लोडर को निष्पादित करता है। सेकेंडरी लोडर IPL कोड के द्वारा ज्ञात या पता करने वाले सेटअप के किसी भी हिस्से पर किसी भी माध्यम पर हो सकता है।


-1

बूट लोडर आमतौर पर हार्ड ड्राइव के पहले सेक्टर में होता है, जिसे आमतौर पर मास्टर बूट रिकॉर्ड कहा जाता है।

चियर्स

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.