2011-01-28 14 views
7

लिनक्स और 32 बिट x86 आर्क को ध्यान में रखते हुए सुलभ 4 जीबी एड्रेस स्पेस के 3: 1 विभाजन हैं। उपयोगकर्ता स्थान 0-3 जीबी आवंटित किया जाता है जबकि 3-4 जीबी कर्नेल को आवंटित किया जाता है। वर्चुअल एड्रेस जो 3 जीबी से बड़ा है और इसलिए कर्नेल एड्रेस स्पेस में स्थित है, उसे भौतिक पते में बदल दिया गया है? पेज टेबल टेबल में आ जाएगा?कर्नेल वर्चुअल एड्रेस ट्रांसलेशन

उत्तर

5

मेल गोर्मन की पुस्तक Understanding the Linux Virtual Memory Manager में कुछ जानकारी है।

संक्षिप्त उत्तर: हां, कर्नेल वर्चुअल एड्रेस 3 जीबीबी में भौतिक पता 0 का अनुवाद करने के लिए पेज टेबल सेट करता है। (धारा 3.7.1)। इसमें कर्नेल को लोड किया गया भौतिक स्थान शामिल है (आमतौर पर x86 पर 1 एमबी)।

+0

उत्तर के लिए धन्यवाद। कुछ Googling करने के बाद मैंने पाया एक #define PAGE_OFFSET जो 3GB (विन्यास) है और कर्नेल आभासी पता है कि वहाँ बस गिरी आभासी पता है और इसलिए पृष्ठ सारणी का कोई उपयोग नहीं से PAGE_OFFSET घटाकर प्राप्त भौतिक पता करने के लिए एक के बाद एक के लिए मानचित्रण है। अगर मैं गलत हूं कृपया मुझे सही। – user593575

+1

वह सरल मैपिंग virt_to_phys() के कार्यान्वयन को आसान बनाता है: जैसा कि आपने कहा था, बस PAGE_OFFSET घटाएं। लेकिन पेजिंग सक्षम है - यह वर्चुअल पतों के अनुवाद को हार्डवेयर में भौतिक करने की अनुमति देता है, क्योंकि निर्देश प्राप्त किए जाते हैं और डेटा तक पहुंचा जा सकता है। –

+0

मुझे आपका अंक मिला। वर्चुअल पता कर्नेल या उपयोगकर्ता स्थान से संबंधित होने पर पेजिंग सक्षम होने पर पृष्ठ सारणी हमेशा उपयोग की जाती है। (हां !!! मैं मतदान नहीं कर सकता क्योंकि इसे न्यूनतम 15 अंक की आवश्यकता है) – user593575

संबंधित मुद्दे