एम्बेडेड सिस्टम

एम्बेडेड सिस्टम्स के विभिन्न प्रकार

एम्बेडेड सिस्टम्स का विस्तार आधुनिक जीवन के सभी पहलुओं तक है और उनके प्रयोग के अनेक उदाहरण उपलब्ध हैं।
दूरसंचार तंत्र अपने नेटवर्क के टेलीफोन स्विच से लेकर अंतिम-प्रयोक्ता के मोबाइल फोन तक विभिन्न एम्बेडेड सिस्टम्स का प्रयोग करते हैं।
कम्प्यूटर नेटवर्किंग में डाटा का मार्ग-निर्धारण करने के लिए समर्पित रूटर्स तथा नेटवर्क ब्रिज का प्रयोग किया जाता है।
उपभोक्ता इलेक्ट्रॉनिक्स में पर्सनल डिजिटल असिस्टंट्स (PDAs), mp3 प्लेयर्स, मोबाइल फोन, वीडियोगेम कंसोल, डिजिटल कैमरा, DVD प्लेयर्स, GPS रिसीवर्स तथा प्रिंटर्स शामिल हैं।
अनेक घरेलू उपकरणों जैसे माइक्रोवेव ओवन, वाशिंग मशीन तथा डिश-वाशर में लचीलापन, दक्षता और विशेषताएं प्रदान करने के लिए एम्बेडेड सिस्टम्स को शामिल किया जाता है।
उन्नत HVAC तंत्र दिन के समय तथा मौसम के साथ बदल सकने वाले तापमान को अधिक सटीक रूप से और दक्षतापूर्वक नियंत्रित करने के लिए नेटवर्क-युक्त थर्मोस्टैट का प्रयोग करते हैं।
घरों के स्वचालन में तारयुक्त- और बेतार-नेटवर्किंग का प्रयोग किया जाता है, जिसका प्रयोग बत्तियों, वातावरण, सुरक्षा, ऑडियो/वीडियो, निगरानी इत्यादि को नियंत्रित करने के लिए किया जा सकता है, जिनमें से सभी में संवेदनशीलता एवं नियंत्रण के लिए एम्बेडेड सिस्टम्स का प्रयोग हो सकता है।
हवाई-यातायात से लेकर वाहनों के यातायात तक परिवहन तंत्रों में एम्बेडेड सिस्टम का प्रयोग बढ़ता जा रहा है।
नए हवाई-जहाज़ों में जड़त्वीय मार्गदर्शन तंत्रों (Inertial guidance systems) तथा GPS रिसीवर्स जैसी उन्नत वैमानिकी का प्रयोग किया जाता है, जिनमें महत्वपूर्ण सुरक्षा आवश्यकताएं भी होती हैं।
विभिन्न विद्युत् यंत्र- ब्रशविहीन DC मोटर्स, प्रवर्तन (Induction) मोटर्स तथा DC मोटर्स- इलेक्ट्रिक/इलेक्ट्रॉनिक मोटर नियंत्रकों का प्रयोग कर रहे हैं।
वाहनों (ऑटोमोबाइल्स), विद्युत् वाहनों तथा संकरित वाहनों में दक्षता को अधिकतम सीमा तक बढ़ाने और प्रदूषण को कम करने के लिए एम्बेडेड सिस्टम्स का प्रयोग बढ़ता जा रहा है।
अन्य स्वचालित सुरक्षा तंत्रों में एंटी-लॉक ब्रेकिंग सिस्टम (ABS), इलेक्ट्रॉनिक स्थिरता नियंत्रण (ESC/ESP), कर्षण नियंत्रण (TCS), तथा स्वचालित फोर-व्हील ड्राइव शामिल हैं।
महत्वपूर्ण संकेतों के निरीक्षण, ध्वनि को बढ़ाने के लिए इलेक्ट्रॉनिक स्टेथोस्कोप तथा गैर-आक्रमणशील आतंरिक निरीक्षण के लिए विभिन्न चिकीत्सकीय चित्रणों (PET, SPECT, CT, MRI) के लिए एम्बेडेड सिस्टम्स के बढ़ते प्रयोग के साथ चिकित्सीय उपकरण लगातार उन्नत होते जा रहे हैं।
छोटे कम्प्यूटर्स पर आधारित सामान्यत: वर्णित एम्बेडेड सिस्टम्स के अतिरिक्त, बेतार संवेदक नेटवर्किंग में उन्नति के साथ ही छोटे बेतार उपकरणों की एक नई श्रेणी, जिसे मोट्स (motes) कहा जाता है, बहुत तेज़ी से लोकप्रिय हो रही है। बेतार संवेदक नेटवर्किंग, WSN, लघुरूपण का प्रयोग करती है, जो पूर्ण बेतार उप-तंत्रों को परिष्कृत संवेदकों के साथ जोड़ने के लिए उन्नत IC रचना द्वारा संभव हुआ है और लोगों तथा कंपनियों को भौतिक-विश्व में असंख्य वस्तुओं का मापन कर पाने और IT निरीक्षण तथा नियंत्रण तंत्रों के माध्यम से इस जानकारी पर कार्य कर पाने में सक्षम बनाता है। ये मोट्स पूरी तरह स्व-सम्पूर्ण होते हैं और ये कई वर्षों तक एक बैटरी स्रोत की सहायता से चलेंगे, जिसके बाद बैटरियों को बदलने या चार्ज करने की आवश्यकता होगी।

इतिहास

1930-40 के दशकों में कम्प्यूटर के शुरुआती वर्षों में, कम्प्यूटर्स कभी-कभी किसी एक कार्य को करने के प्रति समर्पित होते थे, परन्तु आज के एम्बेडेड कम्प्यूटर्स द्वारा किये जाने वाले अधिकांश प्रकार के कार्यों को कर पाने के लिए वे अत्यधिक बड़े और महंगे थे। हालांकि, प्रोग्रामेबल नियंत्रकों की अवधारणा समय के साथ पारंपरिक विद्युत्-यांत्रिकीय अनुक्रमकों से शुरू होकर, ठोस अवस्था वाले उपकरणों से होती हुई, कम्प्यूटर प्रौद्योगिकी तक विकसित हुई।
चार्ल्स स्टार्क ड्रेपर (Charles Stark Draper) द्वारा MIT इंस्ट्रूमेंटेशन लैबोरेटरी में विकसित किया गया अपोलो गाइडेंस कम्प्यूटर शुरूआती उल्लेखनीय आधुनिक एम्बेडेड सिस्टम्स में से एक था। इस परियोजना के प्रारम्भ में, अपोलो गाइडेंस कम्प्यूटर को अपोलो परियोजना की सबसे जोखिमपूर्ण वस्तु माना गया था क्योंकि आकार तथा वजन को कम करने के लिए इसमें मोनोलिथिक इंटीग्रेटेड सर्किट का प्रयोग किया गया था, जो उस समय नई-नई विकसित हुई थी। बड़े पैमाने पर उत्पादित शुरूआती एम्बेडेड सिस्टम, मिनटमैन (Minuteman) मिसाइल के लिए 1961 में जारी किया गया ऑटोनेटिक्स D-17 (Autonetics D-17) गाइडेंस कम्प्यूटर था। यह ट्रांज़िस्टर तर्क से बनाया गया था और इसमें मेन मेमोरी के लिए एक हार्ड-डिस्क थी। 1966 में जब मिनटमैन II का उत्पादन शुरू हुआ, तो D-17 के स्थान पर एक नए कम्प्यूटर का प्रयोग किया जाने लगा, जिसमें पहली बार बड़े पैमाने पर इंटीग्रेटेड सर्किट का प्रयोग किया गया था। इस अकेले कार्यक्रम ने ही क्वैड नैण्ड गेट ICs की कीमत $1000/प्रति IC से घटाकर $3/प्रति IC कर दी, जिससे वाणिज्यिक उत्पादों में उनका प्रयोग कर पाना संभव हो गया।
1960 के दशक के प्रारम्भिक अनुप्रयोगों के बाद से, एम्बेडेड सिस्टम की कीमत में कमी आई है और प्रोसेसिंग शक्ति और कार्यात्मकता में एक नाटकीय वृद्धि हुई है। उदाहरण के लिए, पहले माइक्रोप्रोसेसर, इंटेल 4004 (Intel 4004), की रचना कैल्क्यूलेटर तथा अन्य छोटे तंत्रों के लिए की गई थी, लेकिन फिर भी इसमें अनेक बाह्य मेमोरी और समर्थन चिप्स की आवश्यकता थी। सन् 1978 में, नैशनल इंजीनियरिंग मैनुफैक्चरर्स एसोसियेशन ने प्रोग्रामेबल माइक्रोकंट्रोलर्स के लिए एक "मानक" जारी किया, जिसमें एकल बोर्ड वाले कम्प्यूटर्स, अंकीय तथा घटना-आधारित कम्प्यूटर्स सहित लगभग किसी भी कम्प्यूटर पर आधारित कंट्रोलर्स शामिल थे।
माइक्रोप्रोसेसर्स और माइक्रोकंट्रोलर्स की लागत कम हो जाने के कारण घुंडी-आधारित (Knob-based) महंगे एनालॉग घटकों, जैसे पोटेंशियोमीटर्स और वेरिएबल कैपेसिटर्स के स्थान पर माइक्रोप्रोसेसर द्वारा पढ़ी जाने वाली अप/डाउन बटनों या घुंडियों का कुछ उपभोक्ता उत्पादों में भी प्रयोग कर पाना साध्य हो गया। 1980 के दशक के मध्य तक, पूर्ववर्ती अधिकांश सामान्य बाहरी सिस्टम घटकों को प्रोसेसर की चिप में ही एकीकृत कर दिया गया था और माइक्रोकंट्रोलर्स के इस आधुनिक रूप ने और अधिक व्यापक प्रयोग की अनुमति दी, जो दशक के अंत तक लगभग सभी इलेक्ट्रॉनिक्स उपकरणों के लिए अपवाद न रह कर मानक बन गए थे।
जिन अनुप्रयोगों के लिए एम्बेडेड सिस्टम्स का प्रयोग किया जाता है, माइक्रोकंट्रोलर्स के एकीकरण ने आगे उन क्षेत्रों में और वृद्धि की, जिनमें पारंपरिक रूप से एक कम्प्यूटर का प्रयोग करने का विचार न किया गया होता। एक सामान्य-उद्देश्य और अपेक्षाकृत कम लागत वाले माइक्रोकंट्रोलर को अक्सर अनेक पृथक घटकों द्वारा किये जाने वाले कार्य को करने के लिए प्रोग्राम किया जा सकता है। हालांकि इस सन्दर्भ में एम्बेडेड सिस्टम एक पारंपरिक समाधान की तुलना में अधिक जटिल होता है, जिसमें से अधिकांश जटिलता स्वत: माइक्रोकंट्रोलर में ही समाहित होती है। बहुत कम अतिरिक्त घटकों की आवश्यकता होगी और अधिकांश डिजाइन प्रयास सॉफ्टवेयर में शामिल होते हैं। सॉफ्टवेयर के अमूर्त स्वरूप के कारण इसका प्रोटोटाइप बनाना और नए दोहरावों का परिक्षण करना, एम्बेडेड प्रोसेसर का प्रयोग न करने वाली नई सर्किट की रचना और निर्माण करने की तुलना में बहुत अधिक सरल हो जाता है।

यूज़र इंटरफ़ेस

एम्बेडेड सिस्टम्स यूज़र इंटरफ़ेस विहीन-केवल एक कार्य के प्रति समर्पित- से लेकर आधुनिक कम्प्यूटर डेस्कटॉप ऑपरेटिंग सिस्टम्स के समान दिखाई देने वाले जटिल ग्राफिकल यूज़र इंटरफ़ेस तक की श्रेणी में होते हैं।
सरल एम्बेडेड सिस्टम उपकरण एक सरल मेनू सिस्टम के साथ बटनों, LEDs, ग्राफिक या कैरेक्टर LCDs (उदाहरणार्थ लोकप्रिय HD44780 LCD) का प्रयोग करते हैं।
कुछ अधिक परिष्कृत उपकरण स्पर्श संवेदनशीलता (Touch Sensing) से युक्त ग्राफिकल स्क्रीन का या स्क्रीन पर बनी बटनों (Screen-Edge Buttons) का प्रयोग करते हैं, जो लचीलापन प्रदान करने के साथ ही प्रयोग किये जा रहे स्थान में भी कमी लाती है: बटनों का अर्थ स्क्रीन के अनुसार बदल सकता है और चयन में वांछित विकल्प की ओर सूचित करने का प्राकृतिक व्यवहार शामिल होता है। हैण्डहेल्ड सिस्टम्स में अक्सर सूचक उपकरण के लिए एक "जॉयस्टिक बटन" के साथ स्क्रीन होती है।
कुछ तंत्र क्रमिक (उदा. RS-232, USB, I²C इत्यादि) या नेटवर्क (उदा. ईथरनेट) संयोजन की सहायता से दूरस्थ रूप से यूज़र इंटरफ़ेस प्रदान करते हैं। स्थापित क्लाएंट सॉफ्टवेयर तथा तारों की आवश्यकता होने के बावजूद यह पद्धति सामान्यत: अनेक लाभ देती है: एम्बेडेड सिस्टम्स की क्षमताओं को बढ़ाती है, प्रदर्शन की लागत बचाती है, BSP को सरल बनाती है, PC पर उपयोगी यूज़र इंटरफ़ेस के निर्माण की अनुमति देती है। एम्बेडेड उपकरण पर चल रहे एम्बेडेड वेब सर्वर तथा PC पर वेब ब्राउज़र में चल रहे यूज़र इंटरफेस का संयोजन (IP कैमरों और नेटवर्क रूटर्स के लिए विशिष्ट) इस दिशा में एक सुस्थापित मॉडल है।

एम्बेडेड सिस्टम्स में प्रोसेसर्स

एम्बेडेड प्रोसेसर्स को मोटे तौर पर दो श्रेणियों में विभाजित किया जा सकता है: सामान्य माइक्रोप्रोसेसर्स (μP) तथा माइक्रोकंट्रोलर्स (μC), जिनमें लागत व आकार को कम करने के लिए एक चिप पर बहुत अधिक उपकरण होते हैं। पर्सनल कम्प्यूटर तथा सर्वर बाज़ार के विपरीत, बुनियादी CPU संरचना का एक पर्याप्त बड़ी मात्रा में प्रयोग किया जाता है; वॉन न्यूमन और साथ ही हारवर्ड संरचना की विभिन्न श्रेणियां, RISC और साथ ही गैर-RISC तथा VLIW; शब्दों की लम्बाई 4-बिट से 64-बिट और उससे अधिक (मुख्यत: DSP प्रोसेसर्स में) तक भिन्न हो सकती है, हालांकि आदर्श 8/16 बिट बना हुआ है। अधिकांश संरचनाएं अनेक भिन्न संस्करणों और आकारों के साथ उपलब्ध हैं और जिनमें से अनेक का उत्पादन विभिन्न कंपनियों द्वारा भी किया जाता है।
सामान्य संरचनाओं की एक लंबी, लेकिन अभी भी अपूर्ण सूची है: 65816, 65C02, 68HC08, 68HC11, 68k, 8051, ARM, AVR, AVR32, Blackfin, C167, Coldfire, COP8, Cortus APS3, eZ8, eZ80, FR-V, H8, HT48, M16C, M32C, MIPS, MSP430, PIC, PowerPC, R8C, SHARC, ST6, SuperH, TLCS-47, TLCS-870, TLCS-900, Tricore, V850, x86, XE8000, Z80, AsAP आदि।

बने बनाए कम्प्यूटर बोर्ड्स

PC/104 तथा PC/104+ छोटे, कम मात्रा में एम्बेडेड तथा मज़बूत बनाए गए (Ruggedized), अधिकांशत: x86-आधारित, सिस्टम्स के लिए अभीष्ट पूर्व-निर्मित (Ready made) कम्प्यूटर बोर्ड्स के लिए मानकों के उदाहरण हैं। अक्सर ये DOS, [[लिनक्स [Linux] [Linux]]], NetBSD या किसी एम्बेडेड रीयल-टाइम ऑपरेटिंग सिस्टम, जैसे MicroC/OS-II, QNX या VxWorks, का प्रयोग करते हैं। कभी-कभी ये बोर्ड्स गैर-x86 प्रोसेसर्स का प्रयोग भी करते हैं।
कुछ विशिष्ट अनुप्रयोगों, जिनमें छोटा आकार या ऊर्जा-दक्षता प्राथमिक चिंताएं न हों, में प्रयुक्त घटक सामान्य-उद्देश्य वाले x86 पर्सनल कम्प्यूटर्स में प्रयुक्त घटकों के साथ सुसंगत हो सकते हैं। कुछ बोर्ड्स, जैसे VIA EPIA श्रेणी, PC-सुसंगत लेकिन अत्यधिक एकीकृत, भौतिक रूप से छोटे होने के कारण इस कमी को पूरा करने में सहायता करते हैं या इनमें कुछ ऐसे लक्षण होते हैं, जो एम्बेडेड इंजीनियर्स को इनकी ओर आकर्षित करते हैं। इस पद्धति का लाभ यह है कि सामान्य सॉफ्टवेयर विकास के लिए प्रयुक्त सॉफ्टवेयर विकास उपकरणों के साथ कम-लागत सामग्री वाले घटकों का प्रयोग किया जा सकता है। इस प्रकार बनाए गए सिस्टम्स को भी एम्बेडेड माना जाता है क्योंकि वे बड़े उपकरणों में एकीकृत किये जाते हैं और किसी एकल भूमिका की पूर्ति करते हैं। ATMs तथा आर्केड मशीनें, जिनमें अनुप्रयोग के लिए विशिष्ट कोड होता है, इस पद्धति का प्रयोग करने वाले उपकरणों के उदाहरण हो सकते हैं।
हालांकि, अधिकांश पूर्व-निर्मित एम्बेडेड सिस्टम्स बोर्ड्स PC-केन्द्रित नहीं होते और ISA या PCI बसों का प्रयोग नहीं करते. जब एक सिस्टम-ऑन-अ-चिप (System-on-a-chip) प्रोसेसर शामिल होता है, तो पृथक घटकों को जोड़ने वाली एक मानक बस के होने से कुछ लाभ हो सकता है और हार्डवेयर और सॉफ्टवेयर उपकरणों, दोनों के लिए वातावरण बहुत भिन्न हो सकता है।
एक सामान्य डिजाइन शैली एक छोटे, शायद एक व्यापारिक कार्ड के आकार के, सिस्टम मॉड्यूल, उच्च घनत्व वाली BGA चिप्स, जैसे ARM-आधारित एक सिस्टम-ऑन-अ-चिप प्रोसेसर तथा बाह्य उपकरण, भंडारण के लिए बाहरी फ्लैश मेमोरी तथा रनटाइम मेमोरी के लिए DRAM का प्रयोग करती है। मॉड्यूल विक्रेता सामान्यत: बूट सॉफ्टवेयर प्रदान करेगा और इस बात को सुनिश्चित करेगा कि एक ऑपरेटिंग सिस्टम का चुनाव किया गया है, जिनमें सामान्यत: [[लिनक्स [Linux]]] और कुछ रीयल-टाइम विकल्प शामिल होते हैं। इन मॉड्यूल्स का उत्पादन, उन संगठनों द्वारा बड़े पैमाने पर किया जा सकता है जो इनके विशेषीकृत परीक्षण मुद्दों से परिचित हों और अनुप्रयोग-विशिष्ट बाहरी उपकरणों के साथ बहुत छोटे पैमाने पर बने पारंपरिक मेनबोर्ड्स के साथ जोड़ा जा सकते है। गमस्टिक्स (Gumstix) उत्पाद पंक्तियां इस मॉडल का एक लिनक्स [Linux]-केन्द्रित उदाहरण हैं।

ASIC और FPGA समाधान

सिस्टम-ऑन-अ-चिप (SoC), अत्यधिक-बड़ी-मात्रा में एम्बेडेड सिस्टम्स के लिए एक सामान्य विन्यास है, जिसमें अनेक प्रोसेसर्स, मल्टीप्लायर्स, कैशे तथा इंटरफ़ेस युक्त एक पूरा सिस्टम किसी एकल चिप पर होता है। SoCs को एक अनुप्रयोग-विशिष्ट एकीकृत सर्किट (ASIC) के रूप में या एक फील्ड-प्रोग्रामेबल गेट ऐरे (FPGA) का प्रयोग करके लागू किया जा सकता है।

उच्च बनाम कम मात्रा

उच्च मात्रा वाले सिस्टम्स, जैसे पोर्टेबल म्युज़िक प्लेयर्स या मोबाइल फोन के लिए, लागत को कम करना सामान्यत: डिजाइन के दौरान प्राथमिक विचार होता है। इंजीनियर्स विशिष्टत: ऐसे हार्डवेयर का चयन करते हैं, जो आवश्यक कार्यों को लागू करने के लिए केवल "पर्याप्त" हो।
प्रोग्राम्स को सीमित करके या ऑपरेटिंग सिस्टम को किसी रीयल-टाइम ऑपरेटिंग सिस्टम द्वारा प्रतिस्थापित करके सामान्य उद्देश्य वाले कम्प्यूटर्स को निम्न मात्रा वाले या प्रोटोटाइप एम्बेडेड सिस्टम्स के लिए अनुकूलित किया जा सकता है।

एम्बेडेड सॉफ्टवेयर संरचनाएं

विभिन्न प्रकार की सॉफ्टवेयर संरचनाओं का प्रयोग प्रचलित है।

सरल नियंत्रण लूप

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

इंटरप्ट द्वारा नियंत्रित सिस्टम

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

सहकारी मल्टी-टास्किंग

एक नॉन-प्रिएम्पटिव मल्टी टास्किंग सिस्टम भी एक सरल नियंत्रण लूप योजना के समान ही होता है, अंतर केवल इतना है कि लूप एक API में छिपा होता है। प्रोग्रामर कार्यों की एक श्रृंखला को परिभाषित करता है और प्रत्येक कार्य को अपना स्वयं का एक वातावरण प्राप्त होता है, जिसमें इसे "क्रियान्वित" किया जाता है। जब कोई कार्य निष्क्रिय (Idle) होता है, तो वह एक निष्क्रिय रूटीन को कॉल करता है, जिसे सामान्यत: "pause", "wait", "yield", "nop" (नो ऑपरेशन का संक्षिप्त रूप) आदि कहा जाता है।
इसके लाभ और हानियां नियंत्रण लूप के समान ही हैं, अंतर केवल इतना है कि नया सॉफ्टवेयर जोड़ना सरल होता है, केवल एक नया कार्य लिखा जाता है या इसे क्यू-इन्टरप्रेटर में जोड़ दिया जाता है।

प्रिएम्पटिव मल्टी-टास्किंग या मल्टी-थ्रेडिंग

इस प्रकार के सिस्टम में कोड का एक निम्न-स्तरीय भाग एक टाइमर (इंटरप्ट से संयोजित) के आधार पर कार्यों या थ्रेड्स के बीच आदान-प्रदान (Switch) करता रहता है। इस स्तर पर सामान्यत: यह माना जाता है कि सिस्टम में एक "ऑपरेटिंग कर्नल" उपस्थित है। कितनी कार्यात्मकता की आवश्यकता है, इस पर निर्भर करते हुए, यह अवधारणात्मक रूप से समानांतर स्थिति में क्रियान्वित हो रहे अनेक कार्यों के प्रबंधन के लिए अधिक या कम जटिलताएं प्रस्तुत करता है।
चूंकि कोई भी कोड संभावित रूप से किसी अन्य कार्य के डाटा को हानि पहुंचा सकता है (MMU का प्रयोग करने वाले बड़े सिस्टम्स को छोड़कर), अत: प्रोग्राम्स की रचना एवं परीक्षण सतर्कतापूर्वक किया जाना चाहिए, तथा साझा किये गए डाटा का नियंत्रण किसी सिन्क्रोनाइज़ेशन रणनीति, जैसे सन्देश-पंक्ति (Message queue), सेमाफोर या किसी गैर-अवरोधी (Non-blocking) सिन्क्रोनाइज़ेशन योजना द्वारा अनिवार्य रूप से किया जाना चाहिए।
इन जटिलताओं के कारण, संगठनों द्वारा एक रीयल-टाइम ऑपरेटिंग सिस्टम को खरीदना एक सामान्य बात है, जो अनुप्रयोग प्रोग्रामर्स को, कम-से-कम बड़े सिस्टम्स के लिए, ऑपरेटिंग सिस्टम सेवाओं की बजाय उपकरणों की कार्यात्मकता पर ध्यान केन्द्रित करने की अनुमति देता है; मेमोरी आकार, प्रदर्शन तथा/या बैटरी जीवन-काल आदि की सीमाओं के कारण छोटे सिस्टम्स एक सामान्य (Generic) रीयल-टाइम सिस्टम से जुड़े अतिरिक्त खर्च को वहन नहीं कर सकते.

माइक्रोकर्नल तथा एक्सोकर्नल

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

बाह्य कस्टम ऑपरेटिंग सिस्टम्स

एम्बेडेड सिस्टम्स के एक छोटे भाग को सुरक्षित, सामयिक, विश्वसनीय या दक्ष व्यवहार की आवश्यकता होती है, जिसे उपरोक्त में से किसी एक संरचना द्वारा प्राप्त नहीं किया जा सकता. ऎसी स्थिति में संगठन एक उपयुक्त सिस्टम का निर्माण करता है।
कुछ स्थितियों में, विशेष तकनीकों का प्रयोग करके सिस्टम को एक "क्रियाविधि नियंत्रक (Mechanism Controller)" और एक पारंपरिक ऑपरेटिंग सिस्टम के साथ एक "प्रदर्शन नियंत्रक (Display Controller)" में विभाजित किया जा सकता है। एक संवाद तंत्र दोनों के बीच डाटा का आदान-प्रदान करता है।

अतिरिक्त सॉफ्टवेयर घटक

मूल ऑपरेटिंग सिस्टम के अलावा, अनेक एम्बेडेड सिस्टम्स में उच्च-परत वाले अतिरिक्त सॉफ्टवेयर घटक होते हैं। इन घटकों में CAN, TCP/IP, FTP, HTTP तथा HTTPS जैसे प्रोटोकॉल स्टैक होते हैं और इनमें FAT और फ्लैश मेमोरी प्रबंधन सिस्टम जैसी भंडारण क्षमताएं भी शामिल होती हैं। यदि एम्बेडेड उपकरण में ऑडियो तथा वीडियो क्षमताएं हैं, तो उपयुक्त ड्राइवर एवं कोडेक्स सिस्टम में उपस्थित होंगे। मोनोलिथिक कर्नल की स्थिति में, इनमें से अनेक सॉफ्टवेयर परतें शामिल होती हैं। RTOS श्रेणी में अतिरिक्त सॉफ्टवेयर घटकों की उपलब्धता वाणिज्यिक पेशकश पर निर्भर होती है।