2009-10-08 12 views
8

मुझे जल्द ही एक थीसिस विषय चुनना है और मैं एक आर्किटेक्चर के लिए एक ऑपरेटिंग सिस्टम को लागू करने पर विचार कर रहा हूं जो x86 नहीं है (मैं एआरएम या एवीआर की ओर झुका रहा हूं)। कारण मैं x86 से परहेज कर रहा हूं क्योंकि मैं एम्बेडेड प्लेटफ़ॉर्म के साथ कुछ अनुभव प्राप्त करना चाहता हूं और मैं (संभवतः गलत तरीके से) मानता हूं कि छोटे पैमाने पर किए जाने पर कार्य आसान हो सकता है। क्या किसी के पास वेबसाइट या संसाधनों के लिए कोई संकेतक है जहां इसके कुछ उदाहरण हैं। यदि अधिकांश स्टैक ओवरफ़्लो पर ओएसडीव के सभी प्रश्न नहीं हैं, तो मैंने सबसे अधिक पढ़ा है, और मुझे AvrFreaks और OSDev के बारे में भी पता है। इसके अतिरिक्त यदि किसी को इस क्षेत्र में अनुभव हुआ है और दृष्टिकोण या मंच के संबंध में कुछ सलाह देना चाहता है तो इसकी सराहना की जाएगी।एक गैर-x86 ऑपरेटिंग सिस्टम का विकास

धन्यवाद

+0

या मूल अमीगा के लिए एक्सेक (अमिगास) के क्लोन के लिए मेरी तलाश में आप मुझसे जुड़ सकते हैं। ;-) –

उत्तर

7

एक (आरटी) ओएस का विकास करना एक छोटा काम नहीं है। हालांकि यह बहुत शैक्षिक है। आपको सलाह है कि हार्डवेयर को स्वतंत्र बनाना शुरू करें। पीसी एक अच्छा प्रारंभिक बिंदु है क्योंकि यह आई/ओ संभावनाओं और अच्छी डीबगिंग के साथ आता है। यदि आप एक प्रकार का वर्चुअल मशीन एप्लिकेशन बनाते हैं, तो आप सरल प्लेटफार्म क्षमताओं के साथ कुछ बना सकते हैं (कंसोल आउटपुट, कुछ बटन/संकेतक एक अच्छी शुरुआत हैं)। इसके अलावा, आप आउटपुट समय के लिए फ़ाइलों का उपयोग कर सकते हैं (शेड्यूल) यदि आप 'बेयर मेटल' शुरू करते हैं तो आपको स्क्रैच से शुरू करना होगा। एक एलईडी (चालू/बंद/झपकी) पर डिबगिंग बहुत कठिन और समय लेने वाला है। मेरी दूसरी सलाह है कि आप अपने दायरे को जल्दी परिभाषित करें: क्या यह शेड्यूलर, संचार तंत्र या फाइल सिस्टम है जिस पर आप रुचि रखते हैं ...? जीवन भर में लंबे समय तक सभी चीजें आसानी से खत्म हो सकती हैं।

Samek, Miro, Practical UML Statecharts in C/C++ में माइक्रोक्रोनल पर कुछ दिलचस्प अनुभाग शामिल हैं। यह मेरी पसंदीदा किताबों में से एक है। Advanced PIC Microcontroller Projects in C: From USB to RTOS with the PIC 18F Series आपकी कुछ रुचियों को कवर करता है; मैंने अभी तक इसे पढ़ा नहीं है। Operating Systems: Internals and Design Principles भी अच्छी अंतर्दृष्टि ला सकता है। इसमें शेड्यूलर से नेटवर्क स्टैक तक के सभी पहलुओं को शामिल किया गया है। सौभाग्य!

2

Contiki अनुसंधान करने के लिए एक अच्छी बात हो सकती है। यह बहुत छोटा है, माइक्रोकंट्रोलर पर चलता है, और ओपन सोर्स है। इसमें नेटवर्किंग और संचार की दिशा में भारी पूर्वाग्रह है, लेकिन शायद आप उन हिस्सों को छोड़ सकते हैं और कर्नेल पर ध्यान केंद्रित कर सकते हैं।

1
+0

संदर्भ के लिए धन्यवाद, यह वर्तमान में मेरे बुकशेल्फ़ पर बैठा है, यह पिछले साल मेरे ऑपरेटिंग सिस्टम आर्किटेक्चर विषय के लिए संदर्भ पाठ था =] – mdec

2

यदि आप एआरएम चुनते हैं, तो एआरएम सिस्टम डेवलपर गाइड (स्लॉस, साइम्स, राइट) की एक प्रति चुनें। Link to Amazon

अध्याय 11 महान स्पष्टीकरण और नमूना कोड के साथ, एक सरल एम्बेडेड ऑपरेटिंग सिस्टम के कार्यान्वयन पर चर्चा करता है।

4

ऐसा लगता है कि आपको जीन लैब्रोसे की पुस्तक MicroC/OS की एक प्रति प्राप्त करनी चाहिए।

ऐसा लगता है कि उसने इसे अभी भी अपडेट किया होगा।

http://micrium.com/page/press_room/news/id:40

http://micrium.com/page/home

यह एक अच्छी तरह से प्रलेखित पुस्तक एक RTOS कई एम्बेडेड प्रोसेसर के लिए सी में लिखे और पोर्टेड की अंदरूनी कामकाज का वर्णन है। आप इसे x86 पर भी चला सकते हैं, और उसके बाद किसी अन्य प्रोसेसर को संकलित कर सकते हैं।

2

एआरएम और एवीआर चाक और पनीर हैं - आपने इसे बहुत व्यापक रूप से स्कॉप्ड किया है!

आप एवीआर की तुलना में एआरएम के लिए एक बहुत ही अलग और अधिक परिष्कृत ओएस का उत्पादन कर सकते हैं (जब तक कि आप शायद AVR32 के बारे में बात नहीं कर रहे हों - जो एक पूरी तरह से अलग वास्तुकला है?)।

एवीआर इस बिंदु पर कहीं अधिक बाधा डालता है कि यह कार्य आपके थीसिस के दायरे के लिए तुच्छ हो सकता है। यहां तक ​​कि एआरएम निर्दिष्ट करने से यह बहुत कम नहीं होता है; कम अंत एआरएम भागों में छोटी ऑन-चिप यादें हैं, कोई एमएमयू और सरल परिधीय नहीं है; उच्च अंत भागों में एक एमएमयू, डेटा/निर्देश कैश, अक्सर एक जीपीयू, कभी-कभी एक एफपीयू, हार्डवेयर जावा बाइटकोड निष्पादन, और कई अन्य जटिल परिधीय होते हैं। 'एआरएम' शब्द में एआरएम 7, एआरएम 9, एआरएम 11, कॉर्टेक्स एम 3, कॉर्टेक्स एम 8, साथ ही एएसआईसी और एफपीजीए पर उपयोग के लिए कई आर्किटेक्चर शामिल हैं - तो आपको शायद इसे कम करने की आवश्यकता है?

यदि आप एआरएम चुनते हैं, तो these resources पर एक नज़र डालें। विशेष रूप से हाइटेक्स से अंदरूनी सूत्रों की गाइड, और "जीएनयू के साथ नंगे धातु के एआरएम बिल्डिंग", वे आपको अपने बोर्ड को 'अप' पाने में मदद करेंगे और आपके ओएस के लिए शुरुआती बिंदु बनायेंगे।

1

मेरी पहली बात यह है कि मैं आपके थीसिस विषय को काफी संकीर्ण करना चाहता हूं। ओएस सर्वव्यापी, अच्छी तरह से शोध और विकसित हैं। आप किस उपन्यास विचार को आगे बढ़ाने की उम्मीद करते हैं?

उस ने कहा, AvrXबहुत छोटा माइक्रोक्रोनल है जिसे मैंने पेशेवर रूप से एवीआर माइक्रोकंट्रोलर पर उपयोग किया है। यह असेंबली में लिखा गया है। एक व्यक्ति ने इसे सी को बंद करना शुरू किया, लेकिन बंदरगाह समाप्त नहीं किया है। या तो पोर्ट को सी और/या एवीआर 32 आर्किटेक्चर में सी पोर्ट बनाने के लिए मूल्यवान होगा।

1

एक ओएस किसी भी प्रोसेसर के साथ कसकर जोड़ा नहीं जाएगा, इसलिए एआरएम या x86 कोई फर्क नहीं पड़ता। यह एक बड़ा विषय होगा, अगर हम चर्चा करते हैं कि एआरएम एम्बेडेड है और x86 नहीं है। वैसे भी, ऐसे कई स्थान हैं जिनमें एम्बेडेड सॉफ्टवेयर विकास के लिए x86 प्रोसेसर का उपयोग किया जाता है।

मुझे लगता है कि अधिकांश कर्नेल कोड केवल सादा सी lanugage होगा। कई मुफ्त ओएस जो पहले से ही उपलब्ध हैं, उदाहरण के लिए, एम्बेडेड लिनक्स, इट्रॉन, मिनिक्स इत्यादि का मुफ्त संस्करण ... यह एक कठिन काम होगा।

लेकिन दूसरी तरफ, आप जो कोशिश कर सकते हैं, पोर्ट एम्बेडेड लिनक्स प्लेटफॉर्म पर है जिसमें यह अभी तक काम नहीं कर रहा है। यह दुनिया के लिए वास्तव में उपयोगी होगा।

2

मूर्खतापूर्ण जैसा लगता है, मुझे हाल ही मेंमंच में दिलचस्पी थी और अधिक अनुभवी मित्रों की मदद से कुछ हैकिंग चाल सीखने के लिए। इसके लिए एक ओएस लिखने में रुचि रखने वाले व्यक्ति के लिए this thread भी था (हालांकि उसका प्राथमिक इरादा नहीं)।

मुझे लगता है कि Arduino इस तरह के प्रयासों के लिए एक शैक्षिक उपकरण के रूप में बहुत बुनियादी और सीधा है। यदि यह बिल फिट बैठता है तो इसे जांचने का प्रयास करना उचित हो सकता है।

1

एक आरटीओएस लगभग कभी वास्तुकला विशिष्ट नहीं है। नेट पर उपलब्ध किसी भी आरटीओएस आर्किटेक्चर का संदर्भ लें और आप देखेंगे कि एक सीपीयू/हार्डवेयर अबास्ट्रक्शन लेयर सीपीयू को बाहर निकाल देता है। बोर्ड विशिष्ट भाग (कॉम बंदरगाहों, टाइमर इत्यादि जैसे परिधीय सौदों के साथ सौदा) बोर्ड समर्थन पैकेज द्वारा सारणीबद्ध होते हैं।

आरंभ करने के लिए, आरटीओएस में बहु-थ्रेडिंग कार्य आपकी पसंद के सीपीयू के लिए एक सरल संदर्भ स्विच कोड को कार्यान्वित करने का प्रयास करें; इसमें थ्रेड संदर्भ बनाने, संदर्भ सहेजने और सहेजे गए संदर्भ को पुनर्स्थापित करने के लिए कोड शामिल होगा। यह कोड आपके हार्डवेयर अबास्ट्रक्शन परत का आधार बन जाएगा। प्रारंभिक विकास को चयनित सीपीयू के लिए सॉफ़्टवेयर सिम्युलेटर का उपयोग करके आसानी से पूरा किया जा सकता है।

मैं उस पोस्टर से सहमत हूं जिसने पुस्तक पढ़ने के लिए सुझाव दिया है, यूसीओएस -2 द्वितीय जीन लैब्रोसे द्वारा। संदर्भ स्विच कोड के नमूने, विशेष रूप से x86 के लिए, केवल एक Google खोज दूर होना चाहिए!

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