कहें कि मैं निम्नानुसार/dev/zero का उपयोग करके mmap के साथ एक बड़ी मेमोरी (40 एमबी) आवंटित करता हूं।एमएमएपी/dev/zero
fd = open("/dev/zero", O_RDWR);
a = mmap (0, 4096e4, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FILE, fd, 0);
क्या मैं समझता हूँ कि गिरी शून्य करने के लिए यादें प्रारंभ हो जाएगा के रूप में पृष्ठों भौतिक स्मृति में लाया जाता है है (मुझे लगता है कि आधुनिक लिनक्स कर्नेल मांग पेजिंग उपयोग करें)। तो उदाहरण के लिए, जब पहला पृष्ठ स्पर्श किया जाता है और इसलिए भौतिक स्मृति में लाया जाता है, तो कर्नेल अपने सभी 4096 बाइट्स को शून्य में प्रारंभ कर देगा, फिर जब दूसरा पृष्ठ छुआ हो, तो यह वही होता है।
क्या मेरी समझ सही है?
लघु जवाब: हाँ – hirschhornsalz
जब तक स्पर्श का मतलब है के रूप में लिखते हैं, हाँ। अन्यथा, यदि आप केवल शून्य पृष्ठ से पढ़ते हैं, तो वास्तव में एक शून्य पृष्ठ होता है, जिसे पहले लिखने पर गाय किया जाएगा। – ninjalj
यह एंड्रॉइड 5.0 पर कड़ी मेहनत कर देगा, क्योंकि SELinux इस तरह की अजीबता को अवरुद्ध करेगा। यही कारण है कि क्रोम में इंकस्केप एंड्रॉइड पर शुरू नहीं होता है। – pelya