आधुनिक 64-बिट इंटेल चिप पीसी किस मोड में बूट सेक्टर चलाते हैं?


12

मुझे पता है कि पुरानी मशीनों के साथ 286s, बूट ड्राइव के पहले सेक्टर से लोड किए गए पहले 512 बाइट्स 0000: 7C00 मेमोरी में 16-बिट वास्तविक मोड में चलाए गए थे, लेकिन आधुनिक 64-बिट आर्किटेक्चर के बारे में क्या?

संपादित करें: मुझे लगता है कि यह इसके बारे में सोचने पर एक गलत सवाल है। बूट लोडर का लेखक किस मोड विधानसभा निर्देश का उपयोग करने का निर्देश है, का सही है? हार्डवेयर वही करता है जो उसे बताया जाता है। फिर मेरा सवाल यह होना चाहिए कि विंडोज 7, मैक ओएस एक्स (नवीनतम) और जीआरयूबी जैसे 64-बिट मशीनों का उपयोग करने वाले प्रमुख ओएस बूट लोडर किस मोड पर हैं?

जवाबों:


12

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

यदि आप एक फ्लॉपी ड्राइव को पकड़ सकते हैं, तो उस पर MS-DOS (या FreeDOS ) डालें , और आज के कंप्यूटर में फंस गए, यह बूट करना शुरू कर देगा।

यह बूट कोड का कार्य है संरक्षित मोड में स्विच करना, मेमोरी प्रोटेक्शन सेट करना आदि। इसलिए आपका अनुमान आंशिक रूप से सही है। बूट लोडर x86 वास्तविक मोड के रूप में निष्पादन शुरू करता है और संरक्षित मोड में स्विच करता है, वास्तव में "कर्नेल" (रिंग 0) मोड में ओएस कर्नेल को निष्पादित करना शुरू करता है।

अधिक जानकारी के लिए, आप Windows NT स्टार्टअप प्रक्रिया पर विकिपीडिया लेख पर जा सकते हैं , जिसमें इस विषय पर कुछ विवरण हैं।


haimg, उस लिंक और स्पष्टीकरण के लिए धन्यवाद। @Deshe, सबसे अच्छा जवाब लेने के लिए क्षमा करें।
mring

अब समय इस संपादित करने के लिए है, अन्यथा आप अपने खुद के जवाब से असहमत :-)
डैनियल बेक

13

आधुनिक 64-बिट आर्किटेक्चर के बारे में क्या?

यह उस फर्मवेयर से निर्भर करता है जो आधुनिक 64-बिट मशीन पर आधुनिक 64-बिट आर्किटेक्चर के साथ है। haimgका जवाब x86 दुनिया के लिए कुछ पाँच-छह साल पहले का है, लेकिन आज x86 दुनिया के लिए पुराना है।

पुराना पीसी / एटी फ़र्मवार

उन आधुनिक 64-बिट मशीनों में से कुछ में पुराने पीसी / एटी स्टाइल फर्म हैं। जैसा कि अन्य उत्तरों में उल्लेख किया गया है, वे एक डिस्क के सेक्टर # 0 से बूटस्ट्रैप प्रोग्राम को लोड करते हैं और चलाते हैं, जैसा कि पीसी / एटी ने किया था। यह पुराना PC / AT बूटस्ट्रैप प्रक्रिया है।

नई ईएफआई फर्मवर

अन्य आधुनिक 64-बिट मशीनों में नई ईएफआई फर्म हैं। ये एक डिस्क के क्षेत्र # 0 से बूटस्ट्रैप प्रोग्राम लोड नहीं है सब पर । वे EFI बूट प्रबंधक को लोड करके और EFI बूट लोडर अनुप्रयोग चलाकर बूटस्ट्रैप करते हैं । ऐसे कार्यक्रम संरक्षित मोड में चलाए जाते हैं। यह ईएफआई बूटस्ट्रैप प्रक्रिया है।

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

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


बूटस्ट्रैप प्रक्रिया का लिंक टूटा हुआ / मृत प्रतीत होता है। मुझे कोई प्रतिस्थापन नहीं मिल रहा है।
SLM

यह तुम्हारा? - jdebp.eu/FGA/pcat-boot-process.html
slm

1
और अब मुझे पता है कि आपका नाम यूआरएल 8-8 को देख रहा है। जासूसी करने की कोशिश करना नोटिस में मदद नहीं कर सकता।
SLM

मुझे लगता है कि आपने ntlworld से चीजें स्थानांतरित की हैं, क्या यह सही है?
SLM

1 के लिए संभावित प्रतिस्थापन URL - jdebp.eu/FGA/pcat-boot-process.html । मेरा भगवान पीपीएल कॉपी / पेस्ट अपने A'er भर में। यहां तक ​​कि इस विकिपीडिया के पास यह A'er उद्धृत है - en.wikipedia.org/wiki/Talk%3AReal_mode
SLM

1

जहाँ तक मुझे पता है, बूट कोड हमेशा कर्नेल मोड में चलता है।

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

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


1

इंटेल मैनुअल वॉल्यूम 3 सिस्टम प्रोग्रामिंग गाइड 325384-053US जनवरी 2015:

2.2 संचालन का तरीका

प्रोसेसर को पावर-अप या रीसेट के बाद वास्तविक-पता मोड में रखा जाता है।

बस किक के लिए, मैनुअल से एक अच्छा चित्र:

यहाँ छवि विवरण दर्ज करें

GRUB संरक्षित मोड में मल्टीबूट ओएस शुरू करता है। मल्टीबूट विनिर्देश 0.6.96 मशीन राज्य :

'CR0' बिट 0 (PE) सेट होना चाहिए।

GRUB और x86_64 के बारे में निश्चित नहीं है।


GRUB संरक्षित मोड में मल्टीबूट विनिर्देश अनुपालन ओएस शुरू करता है। इसमें * बीएसडी शामिल हैं, लेकिन जहां तक ​​मुझे पता है, लिनक्स इस विनिर्देश का पालन नहीं करता है और अपनी बात करता है। मल्टीबूट विनिर्देश अनुपालन ओएस बूट करते समय, GRUB कॉन्फ़िगरेशन multibootकीवर्ड का उपयोग करता है ; लिनक्स के लिए, समर्पित हैं linux, linux16और, GRUB के यूईएफआई संस्करणों में, linuxefiकीवर्ड, GRUB को लिनक्स-विशिष्ट बूट प्रोटोकॉल का उपयोग करने के लिए कह रहे हैं।
टेल्कोएम

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