2013-07-16 4 views
6

के भीतर कार्यक्षमता की तरह कार्यक्षमता की तरह मैं एक लिनक्स कर्नेल मॉड्यूल में हूं, और vmalloc() कहता हूं, मैं कुछ मेमोरी आवंटित करता हूं। मैं स्मृति को अनुमति, लिखना और निष्पादित करना चाहता हूं। ऐसा करने का साफ और उचित तरीका क्या है? असल में, यह आम तौर पर mprotect() पर कॉल करने के बराबर है, लेकिन कर्नेल स्पेस में।mprotect() लिनक्स कर्नेल

अगर मैं पेज की पैदल दूरी पर करते हैं, pgd_offset(), pud_offset(), pmd_offset(), pte_offset_map(), और फिर pte_mkwrite(), मैं त्रुटियों को जोड़ने जब मैं 2.6.39 पर इसे करने की कोशिश में चलाने। साथ ही, ऐसा लगता है कि यदि मैं पेज चल रहा हूं, तो यह एक हैक है, और वहां एक क्लीनर और अधिक उपयुक्त विधि होनी चाहिए।

मेरा कर्नेल मॉड्यूल एक लोड करने योग्य मॉड्यूल होगा, इसलिए आंतरिक प्रतीक मेरे लिए उपलब्ध नहीं हैं।

धन्यवाद, आपके मार्गदर्शन के लिए, अग्रिम में।

उत्तर

0

क्या आपने do_mprotect() [कर्नेल फ़ंक्शन mprotect()] से सीधे आविष्कार करके कोशिश की है?

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