2014-09-16 10 views
25

आरटीओएस और एंबेडेड लिनक्स एम्बेडेड सिस्टम प्रोग्रामिंग के लिए उपयोग किया जाता है। एंबेडेड लिनक्स स्वयं एक आरटीओएस है? क्या कोई तुलना या अंतर सूचीबद्ध कर सकता है?आरटीओएस और एंबेडेड लिनक्स के बीच क्या अंतर है?

+1

एक आरटीओएस (वास्तविक समय ऑपरेटिंग सिस्टम) सॉफ्टवेयर है जिसमें निर्धारक व्यवहार है। घटनाओं को एक समय की बाधा के भीतर संभाला जाता है। एंबेडेड लिनक्स एक आरटीओएस नहीं है क्योंकि ईवेंट/इंटरप्ट आमतौर पर स्थगित प्रक्रियाओं या 'निचले आधे' कोड द्वारा नियंत्रित होते हैं जो विलंबता की गारंटी नहीं दे सकते हैं। हालांकि, एम्बेडेड लिनक्स के लिए लिनक्स के आरटीओएस कार्यान्वयन रहे हैं। मुझे लगता है कि पवन नदी (इंटेल) इसका एक संस्करण भेजती है। –

+0

http://unix.stackexchange.com/questions/41133/what-are-the-main-differences-between-those-linux-distro-vs- सामान्य- दैनिक-linux –

+0

"वास्तविक समय लिनक्स कर्नेल का उपयोग किया जाता है। कर्नेल प्रतिक्रिया वास्तविक समय में है या निर्धारक है। " http://embeddedcraft.org/embedlinuxdesktoplinux.html – thePiGrepper

उत्तर

38

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

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

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

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

एम्बेडेड लिनक्स के साथ एक और मुद्दा यह है कि इसे महत्वपूर्ण CPU संसाधनों, शायद> 200 एमआईपीएस, 32 बिट प्रोसेसर, आदर्श रूप से एक एमएमयू, 4 एमबी रॉम और 16 एमबी रैम के साथ बूट करने के लिए आवश्यक है (जिसमें कई सेकंड लग सकते हैं)। दूसरी तरफ एक आरटीओएस मिलीसेकंड में हो सकता है, जो कि 8-बिट से कम में माइक्रोकंट्रोलर पर 8-बिट से ऊपर चलाया जा सकता है। स्पष्ट रूप से "मुक्त" होने के बावजूद वॉल्यूम उत्पादन के लिए सिस्टम लागत पर इसका महत्वपूर्ण प्रभाव हो सकता है।

बड़ा RTOS उत्पादों है कि (उदाहरण के लिए, QNX में), और कई RTOS अपनी मूल असली करने के लिए एक POSIX एपीआई (आमतौर पर माध्यमिक प्रदान इस तरह के गतिशील लोड हो रहा है, फ़ाइल सिस्टम, नेटवर्किंग, जीयूआई के रूप में एक GPOS की सुविधाओं में से कुछ दिखा रहे हैं -टाइम एपीआई) उदाहरण के लिए VxWorks और फिर QNX, ताकि लिनक्स और यूनिक्स के लिए विकसित कोड का एक बड़ा सौदा अपेक्षाकृत आसानी से पोर्ट किया जा सके। ये बड़े और व्यापक आरटीओएस उत्पाद स्केलेबल रहते हैं, ताकि कार्यक्षमता की आवश्यकता न हो। तुलना में लिनक्स में अब तक सीमित स्केलेबिलिटी है।

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