मैं बूट लोडर और सिस्टम के लिए दप नया नहीं हूँ, लेकिन मैं कारण के मूल पता नहीं है क्यों सामान्य कार्यक्रम 0x8000
पर शुरू होता है। मुझे पता है कि पता 0x8000
सामान्य सी/सी ++ कार्यक्रम में प्रारंभ पते के रूप में उपयोग किया गया है।सामान्य कार्यक्रम आमतौर पर 0x8000 पर क्यों शुरू होता है?
एक सामान्य कार्यक्रम के लिए बूटलोडर का न्यूनतम आकार 0x8000
तक का समय लग रहा है? या ROM का न्यूनतम ब्लॉक आकार है जिसे बूटलोडर 32 केबी को आवंटित किया जाना चाहिए? या कोई और कारण है?
मैं देखने के एक आभासी पते बिंदु से, इस बारे में जानना चाहते हैं ऐतिहासिक या तार्किक, और।
मैं सभी, आपके समय की सराहना करते हैं और इस के साथ मदद। प्रश्न को और स्पष्ट करने के लिए, प्रश्न वर्चुअल एड्रेस से संबंधित है जो भौतिक के साथ नहीं है।
मैं मूल रूप से देखने का भौतिक स्मृति पते के बिंदु से आर की राय से सहमत हैं।
विविध विशिष्ट प्रणाली कहने के बिना, उदाहरण के लिए लिनक्स (यहां तक कि एंड्रॉइड में), सामान्य आरटीओएस (न्यूक्लियस, और अन्य, विशेष रूप से एआरएम लिंकर सेक्शन), वे सभी एड्रेस एड्रेस जनरल प्रोग्राम के रूप में पता 0x8000 का उपयोग करते हैं। जैसे कि crt_begin.o, crt.o, आदि नामक इस क्षेत्र में लोडर के साथ 0x0 पर स्थित है।
इसलिए मुझे लगता है कि सामान्य प्रोग्राम के लिए बूटलोडर का न्यूनतम आकार 32 केबी ब्लॉक आकार पर विचार कर रहा है यदि यह बूट समय (बूट बूट) में बूटरोम में स्थित होगा।
Ummm, लेकिन मुझे यकीन है नहीं कर रहा हूँ ...
आप यहां किस प्रणाली के बारे में बात कर रहे हैं? –
मेरे पास इसके लिए कोई विश्वसनीय स्रोत नहीं है, लेकिन मैं एक योग्य अनुमान लगा सकता हूं। 0xFF के लिए अनुदेश समर्थन प्राप्त था - ऐतिहासिक कई प्रोसेसर, विशेष रूप से 8 बिट, सुविधा कहते हैं [शून्य पेज] (http://en.wikipedia.org/wiki/Zero_page) जिसका अर्थ है कि पतों 0x00 पर स्मृति कोशिकाओं पड़ा है तेजी से निष्पादित करें। मेरा मानना है कि यह मोटोरोला द्वारा दिनों में वापस पेश किया गया था, क्योंकि उनके पास पुराने एमसीयू पर 6800 की तरह मेमोरी मैप किए गए I/O रजिस्ट्रार थे। -> – Lundin
इसलिए आप चाहते हैं कि मेमोरी का पहला क्षेत्र राम कोशिकाओं या विशेष रजिस्टरों द्वारा कब्जा कर लिया जाए । यह तब समझ में आता है कि शून्य पृष्ठ के बाद आने वाले पता स्थान का हिस्सा एक ही प्रकृति का है: रैम और/या पंजीयक। यह बहुत सारे केबी ले जाएगा, शायद 0x6000 या कुछ ऐसे। मुझे लगता है कि रोम (प्रोग्राम मेमोरी) को किसी भी पते पर रखना सुविधाजनक था और 0x8000 सुविधाजनक था। मैं काफी हद तक निश्चित हूं कि इस प्रश्न का उत्तर मोटोरोला प्रोसेसर डिज़ाइनों में पाया जा सकता है। – Lundin