मैं कुछ एआरएम प्रोसेसर के लिए एक शौक ऑपरेटिंग सिस्टम लिखने के बारे में सोच रहा हूं। एआरएम एमपीयू के साथ कई लोकप्रिय एकल-बोर्ड कंप्यूटर हैं, इसलिए मैं बस उन में से एक को खरीदना चाहता था (अधिक खुले प्रलेखन के साथ एक को चुनना)। जब मुझे पता चला तो मैं हैरान रह गया, यहां तक कि वास्तव में पर्याप्त मेमोरी वाले बोर्ड में मेमोरी मैनेजमेंट यूनिट के साथ एमपीयू नहीं है।
जैसा कि मैंने हमेशा i386 + प्रोसेसर के साथ काम किया है और कुछ और कभी नहीं (कुछ माइक्रोचिप PICs को छोड़कर), मैं अब उलझन में हूं और निश्चित नहीं हूं कि अगर कोई काम कर रहे ऑपरेटिंग सिस्टम को लिख सकता है जिसकी कार्यक्षमता सीमित नहीं होगी जब OS की तुलना लिखित होगी MMU के साथ MPUs के लिए।
मैं "एमएमयू" या "अनुकरण" के लिए कुछ समाधानों के बारे में सोच सकता था और मुझे कुछ प्रश्न मिले हैं:
- 16 और 32-बिट मोड में इंटेल प्रोसेसर पर विभिन्न कार्यों द्वारा मेमोरी के विभिन्न ब्लॉकों का उपयोग करने के लिए सेगमेंट और सेगमेंट चयनकर्ताओं का उपयोग करने का एक तरीका है। इसका मतलब है कि मैं x86 पर टास्क स्विच करते समय सेगमेंट रजिस्टर की सामग्री को बदलकर मेमोरी स्पेस बदल सकता था। क्या स्मृति विभाजन के लिए कोई सामान्य अवधारणाएं हैं जिनका उपयोग एआरएम वास्तुकला पर किया जा सकता है?
- निष्पादन योग्य के बजाय एक लिंक किए गए ऑब्जेक्ट फ़ाइल को लोड करके मैं उसी तरह से मेमोरी के टुकड़ों पर कार्य करने के लिए रिलोकेशन (फिक्स-अप) या स्थिति स्वतंत्र कोड का उपयोग कर सकता था जैसे कि मैंने पेजिंग संरचनाओं का उपयोग करके मेमोरी को मैप किया। क्या यह पर्याप्त प्रभावी होगा?
- मैंने ARM प्रोसेसर पर मेमोरी प्रोटेक्शन यूनिट्स के बारे में भी पढ़ा है। क्या ये मददगार हो सकते हैं?
क्या MMU के बिना सिस्टम पर कार्यों के प्रबंधन के कोई "सामान्य" तरीके हैं?