ऑपरेटिंग सिस्टम का निर्माण मुख्य रूप से दो कारकों पर निर्भर करता है – (1) जिस कम्प्यूटर पर यह कार्य कर रहा है, उसके आर्किटेक्चरल कारक (फिचर्स) पर और (2) इसके एप्लिकेशन डोमेन के फिचर्स पर।
ऑर्किटेक्चरल फिचर्स पर निर्भरता का कारण सिस्टम की सभी फंक्शनल युनिट्स पर पूरे नियंत्रण की आवश्यकता है। इसलिए ऑपरेटिंग सिस्टम को एड्रेसिंग स्ट्रक्चर, इंटरप्ट स्ट्रक्चर, VO ऑर्गेनाइजेशन और कम्प्यूटर सिस्टम के मेमोरी सुरक्षा फिचर्स की जानकारी की आवश्यकता होती है। ऑपरेटिंग सिस्टम की पॉलीसी इसके एप्लिकेशन डोमेन पर निर्भर करती है। उदाहरण के लिए, CPU शेड्यूलिंग पॉलीसी इस बात पर निर्भर रहती है कि ऑपरेटिंग सिस्टम का उपयोग टाइम शेयरिंग के लिए किया जाएगा या रियलटाइम एप्लिकेशन के लिए। इन दो बातों पर निर्भरता के कारण भित्र आर्किटेक्चरम् और एप्लिकेशन डोमेन वाले कम्प्यूटर पर ऑपरेटिंग सिस्टम का उपयोग करने में कठिनाइयां आती है ।
यहाँ हम दो कम्प्यूटर सिस्टम और पर समान एप्लिकेशन डोमेन के लिए एक ऑपरेटिंग सिस्टम के विकास का उदाहरण लेते हैं। ये दोनों ऑपरेटिंग सिस्टम आपस में विशिष्ट ऑपरेटिंग सिस्टम ऑर्किटेक्चर कोड को लेकर भिन्न हैं। कोड के शेष भाग पर जो सम्पूर्ण ऑपरेटिंग सिस्टम कोड के परिणाम के रूप में होता है, किसी प्रकार, को आर्किटेक्चरल निर्भरता नहीं रहती है। यह निम्नलिखित प्रकार से c, और c₂ के लिए ऑपरेटिंग सिस्टम के विकास को जानने का प्रयास करेगा ।
1. कम्प्यूटर सिस्टम c1 के लिए ऑपरेटिंग सिस्टम का निर्माण करें। इसे ऑपरेटिंग सिस्टम-1 नाम दें।
2. कम्प्यूटर सिस्टम c2 के लिए ऑपरेटिंग सिस्टम बनाने के लिए सिस्टम-1 में परिवर्तन करें अर्थात ऑपरेटिंग सिस्टम-2 का निर्माण अर्थात c2 के लिए स्टोर बनाकर ऑपरेटिंग सिस्टम का निर्माण करें।
प्रारंभिक ऑपरेटिंग सिस्टम के ठोस स्ट्रक्चर के कारण इस सिद्धांत को कई समस्याओं का सामना करना पड़ा था। इसलिए ऑपरेटिंग सिस्टम विशिष्ट आर्किटेक्चर और उनके कोड के आआधारित भागों के बीच स्पष्ट संबंध नहीं बना पाते थे। इस प्रकार, सभी आधारभूत प्रयासों का मूल्यांकन इसके विशिष्ट आर्किटेक्चर भागों के आकार के स्थान पर ऑपरेटिंग सिस्टम के कोड के पूरे आकार के द्वारा किया जाता था। पहले इस समस्या का समाधान खोजने के लिए एक ऐसे ऑपरेटिंग सिस्टम का विकास किया गया था, जो विशिष्ट आर्किटेक्चर और एक आपरेटिंग सिस्टम के आर्किटेक्चर पर आधारित भागों को अलग-अलग करता था। इससे ऑपरेटिंग सिस्टम को भिन्न कम्प्यूटर सिस्टम के लिए उनकी अधिकांश संरचना का उपयोग करने में मदद मिलती है।
जब ऑपरेटिंग सिस्टम का निर्माण उच्च स्तरीय लैग्वेज कोड में किया गया हो, तब वह भिन्न ऑपरेटिंग सिस्टम को आपस में कोड का उपयोग करने की अनुमति देता है। यह जानने के लिये कि कैसे विशिष्ट आर्किटेक्चर और आर्किटेक्चर आधारित भागों को अलग रखा जा सकता है, एक ऑपरेटिंग सिस्टम के भागों की प्रकृति को जानना होगा। ऑपरेटिंग सिस्टम के ये भाग रिसोर्सेस को संचालित करते हैं- जैसे, कम्प्यूटर सिस्टम के प्रोसेसर, उसकी मेमोरी, आदि। मॉड्यूल की रिसोर्सेस नियंत्रण क्रियाओं का वर्गीकरण निम्न बिन्दुओं के अंतर्गत किया जा सकता है:
1. पॉलिसी द्वारा रिसोर्सेस के उपयोग पर नियंत्रण ।
2. पॉलिसी के कार्यान्वयन का मेकेनिज्म ।
पॉलीसियाँ सामान्यतः आर्किटेक्चर से स्वतंत्र होती है, जबकि मैकेनिज्म आर्किटेक्चर पर निर्भर होता है। पॉलिसी रूटिन वाला मॉडल आर्किटेक्चर पर आधारित है और मेकेनिज्म वाला भाग विशिष्ट आर्किटेक्चर पर आधारित है। पॉलिसी रूटिन्स आवश्यकतानुसार मेकेनिज्म का उपयोग कर सकते हैं। इस तरह के आपरेटिंग सिस्टम को मेकेनिज्म मॉडल को पुनः लिखकर तथा पॉलिसी मॉडल के साथ जोड़कर, एक नए कम्प्यूटर सिस्टम में लोड किया जा सकता है।
सरंचनात्मक सिद्धांत को लेयर्डनाइजेशन के उपयोग द्वारा क्रियान्वित किया जा सकता है, जो मशीनों के विस्तार पर आधारित है। प्रत्येक सॉफ्टवेयर लेयर नए फिर जोड़कर आर्किटेक्चर को क्षमता को बढ़ाती है। परिणामस्वरूप आर्किटेक्चरल इंटरफेस को, युजर इंटरफेस के विकट ले जातो है। उदाहरण के लिए सबसे नीचे वाली लेयर पर एक मशीन है, जिसमें शेड्यूलिंग, मेमोरी मेनेजमेंट और कंट्रोल के लिए इनबिल्ट मेकेनिज्म है। यह ऊपर वाली लेयर के कार्य को आसान बनाती है।
प्रत्येक लेयर का उससे जुड़ी हुई लेयर के साथ उच्च स्तरीय इंटरफेस के द्वारा संपर्क होता है। इसलिए, एक युजर कमांड सबसे नीचे वाली लेयर तक पहुंचने के लिए सभी लेयर से होकर गुजरती है। सबसे नीचे वाली लेयर का सीधा संपर्क आर्किटेक्चर से होता है। इस लेयर को ऑपरेटिंग सिस्टम कर्नल (ऑपरेटिंग सिस्टम को कंट्रोल इकाई) कहा जाता है। कई आधुनिक ऑपरेटिंग सिस्टम, विशेषकर युनिक्स, इस तरह के ऑपरेटिंग सिस्टम स्ट्रक्चर का उपयोग करते हैं। इस तरह के ऑपरेटिंग सिस्टम लोड किया जाना ऑपरेटिंग सिस्टम कर्नल के आकार द्वारा निर्धारित होता है ।
कर्नल ऑपरेटिंग सिस्टम का मेकेनिज्म –
कर्नल निम्नलिखित परिस्थितियो में नियंत्रण करता है:
1. जब सिस्टम में कोई विशिष्ट स्थिति पैदा हो जाए।
2. जब ऑपरेटिंग पॉलिसी मॉड्यूल को स्पष्ट रूप से कर्नल मेकेनिज्म की आवश्यकता हो ।
पहले वाली स्थिति में प्रवेश, बाधित मेकेनिज्म प्रोसेसिंग के माध्यम से होता है, जिससे यह पता चलता है कि रूकावट हार्डवेयर में बाधा आने से आई है। दूसरी स्थिति में, किसी प्रकार की सॉफ्टवेयर संबंधी बाधा के कारण नियंत्रण ऑपरेटिंग सिस्टम पॉलिसी मॉडल से हटकर कर्नल के पास चला जात है। इस प्रकार, दोनों ही परिस्थितियों में कर्नल का प्रवेश बाधित मेकेनिज्म प्रोसेसिंग के द्वारा होता है। इसी कारण ऑपरेटिंग सिस्टम कर्नल को बाधाओं से चलने वाला अर्था इंटरप्ट-ड्रिवन कहा जाता है।
ऑपरेटिंग सिस्टम कर्नल की कमियाँ:
संक्षेप में ऑपरेटिंग सिस्टम मॉडल की समस्याएं निम्नलिखित है:
1 ऑपरेटिंग सिस्टम कर्नल में अच्छ क्षमता होती है। हालांकि इसमें आर्किटेक्चर आधारित कोड भी हो सकते हैं, जो पा को कम करते हैं।
2. कर्नल आधारित लेयर्ड ऑर्किटेक्चर में विस्तार की कमी होती है। इसका कारण यह है कि नए फक्शन को जोड़ने के लिए कई ऑपरेटिंग सिस्टम को लेयर्स में बदलाव करना पड़ते है। अर्थात नए सॉफ्टवेयर इन्टरस्ट्स को कर्नल में स्थित कोड को सक्रिय करने में सक्षम होना चाहिये ।
3. कर्नल का आकार बहुत छोटा नहीं होता है, इस कारण इसकी विश्वसनीयता कम होती है ।
4. कर्नल बड़ी मात्रा में कॉल को सपोर्ट करता है, जिनमें से अधिकांश का बार-बार प्रयोग होता है। विभिन्न वर्जन पर उनके कार्यान्वयन पर अधिक विश्वास नहीं किया जा सकता है।
माइक्रोकर्नल ऑपरेटिंग सिस्टम का मेकेनिज्म:
ऑपरेटिंग सिस्टम माइक्रोकर्नल ऑपरेटिंग सिस्टम कोड का एक अनिवार्य घटक है। यह आर्किटेक्चर आधारित कोड को चलाने के लिए आवश्यक सहायता उपलब्ध करवाता है। इससे लेयर इंटरफेस उपलब्ध नहीं होता है, बल्कि यह कुछ अच्छे डाक्यूमेन्टेड ऑपरेटिंग सिस्टम काल्स को आधार प्रदान करता है। इससे वहन क्षमता और विश्वसनीयता निश्चित रूप से बढ़ती हैं। इससे विस्तार में भी वृद्धि होती है। क्योकि पहले प्रोसेस शेड्युलिंग जैसे घटको को ऑपरेटिंग सिस्टम कर्नल का एक भाग माना जाता था, परंतु ये घटक अब इससे बाहर ऑपरेटिंग सिस्टम में रहते हैं। इसी कारण टाइम शेयरिंग और डेडिकेटेड रियल टाइम सिस्टम के कार्यान्वयन के लिये समान माइक्रोकर्नल का उपयोग संभव है।