ऑपरेटिंग सिस्टम

From indicwiki
Jump to navigation Jump to search

एक ऑपरेटिंग सिस्टम (ओएस) सिस्टम सॉफ्टवेयर है जो कंप्यूटर हार्डवेयर और सॉफ्टवेयर संसाधनों का प्रबंधन करता है, और कंप्यूटर प्रोग्राम के लिए सामान्य डेमॉन (कंप्यूटिंग) प्रदान करता है।

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

इनपुट और आउटपुट और मेमोरी आवंटन जैसे हार्डवेयर कार्यों के लिए, ऑपरेटिंग सिस्टम प्रोग्राम और कंप्यूटर हार्डवेयर के बीच मध्यस्थ के रूप में कार्य करता है,[1][2] हालाँकि एप्लिकेशन कोड आमतौर पर हार्डवेयर द्वारा सीधे निष्पादित किया जाता है और अक्सर OS फ़ंक्शन पर सिस्टम कॉल करता है या इसके द्वारा बाधित होता है। ऑपरेटिंग सिस्टम कई उपकरणों पर पाए जाते हैं जिनमें कंप्यूटर होता है – सेल्यूलर फोन और वीडियो गेम कंसोल से लेकर वेब सर्वर और सुपर कंप्यूटर तक।

निजी कंप्यूटर बाज़ार में, as of September 2023, माइक्रोसॉफ़्ट विंडोज़ ़ की बाजार हिस्सेदारी लगभग 68% है। Apple Inc. का macOS दूसरे स्थान (20%) पर है, और ChromeOS सहित Linux की किस्में सामूहिक रूप से तीसरे स्थान (7%) पर हैं।[3] मोबाइल ऑपरेटिंग सिस्टम क्षेत्र में (स्मार्टफोन और टैबलेट कंप्यूटर सहित), as of September 2023, एंड्रॉइड (ऑपरेटिंग सिस्टम)|एंड्रॉइड की हिस्सेदारी 68.92% है, इसके बाद ऐप्पल के आईओएस और आईपैडओएस 30.42% के साथ हैं, और अन्य ऑपरेटिंग सिस्टम .66% के साथ हैं।[4] सर्वर और सुपरकंप्यूटिंग क्षेत्रों में लिनक्स वितरण प्रमुख हैं। ऑपरेटिंग सिस्टम के अन्य विशिष्ट वर्ग (विशेष प्रयोजन ऑपरेटिंग सिस्टम),[5][6] जैसे अंतः स्थापित प्रणाली और रीयल-टाइम सिस्टम, कई अनुप्रयोगों के लिए मौजूद हैं। सुरक्षा-केंद्रित ऑपरेटिंग सिस्टम भी मौजूद हैं। कुछ ऑपरेटिंग सिस्टम की सिस्टम आवश्यकताएँ कम होती हैं (उदाहरण के लिए हल्के वजन वाला लिनक्स वितरण)। दूसरों की सिस्टम आवश्यकताएँ अधिक हो सकती हैं।

कुछ ऑपरेटिंग सिस्टम को इंस्टॉलेशन की आवश्यकता होती है या खरीदे गए कंप्यूटर (OEM -इंस्टॉलेशन) के साथ पहले से इंस्टॉल आ सकते हैं, जबकि अन्य सीधे मीडिया (यानी लाइव सीडी) या फ्लैश मेमोरी (यानी यूएसबी फ्लैश ड्राइव स्टिक) से चल सकते हैं।

ऑपरेटिंग सिस्टम के प्रकार[edit | edit source]

एकल-कार्य और बहु-कार्य[edit | edit source]

एक सिंगल-टास्किंग सिस्टम एक समय में केवल एक प्रोग्राम चला सकता है, जबकि एक कंप्यूटर मल्टीटास्किंग|मल्टी-टास्किंग ऑपरेटिंग सिस्टम एक से अधिक प्रोग्राम को समवर्ती कंप्यूटिंग चलाने की अनुमति देता है। यह समय-साझाकरण द्वारा प्राप्त किया जाता है, जहां उपलब्ध प्रोसेसर समय को कई प्रक्रियाओं के बीच विभाजित किया जाता है। ये सभी प्रक्रियाएं ऑपरेटिंग सिस्टम के कार्य-शेड्यूलिंग सबसिस्टम द्वारा समय-खंडों में बार-बार बाधित होती हैं। मल्टी-टास्किंग को प्रीमेप्टिव और सहकारी प्रकारों में चित्रित किया जा सकता है। प्रीएम्प्शन (कंप्यूटिंग) मल्टीटास्किंग में, ऑपरेटिंग सिस्टम सेंट्रल प्रोसेसिंग यूनिट के समय को काट देता है और प्रत्येक प्रोग्राम के लिए एक स्लॉट समर्पित करता है। यूनिक्स-जैसे ऑपरेटिंग सिस्टम, जैसे लिनक्स-साथ ही गैर-यूनिक्स-जैसे, जैसे अमिगाओएस-प्रीमेप्टिव मल्टीटास्किंग का समर्थन करते हैं। परिभाषित तरीके से अन्य प्रक्रियाओं को समय प्रदान करने के लिए प्रत्येक प्रक्रिया पर भरोसा करके सहकारी मल्टीटास्किंग हासिल की जाती है। 16-बिट कंप्यूटिंग|माइक्रोसॉफ्ट विंडोज के 16-बिट संस्करणों में सहकारी मल्टी-टास्किंग का उपयोग किया जाता है; 32-बिट कंप्यूटिंग|Windows NT और Win9x दोनों के 32-बिट संस्करणों में प्रीमेप्टिव मल्टी-टास्किंग का उपयोग किया गया।

एकल- और बहु-उपयोगकर्ता[edit | edit source]

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

वितरित[edit | edit source]

एक वितरित ऑपरेटिंग सिस्टम अलग-अलग, संगणक संजाल कंप्यूटरों के एक समूह का प्रबंधन करता है और उन्हें एक एकल कंप्यूटर के रूप में प्रदर्शित करता है, क्योंकि सभी संगणनाएँ वितरित कंप्यूटिंग (घटक कंप्यूटरों के बीच विभाजित) होती हैं।[8]


एम्बेडेड[edit | edit source]

एंबेडेड ऑपरेटिंग सिस्टम को एंबेडेड सिस्टम में उपयोग करने के लिए डिज़ाइन किया गया है। इन्हें कम स्वायत्तता वाली छोटी मशीनों (जैसे व्यक्तिगत डिजिटल सहायक) पर काम करने के लिए डिज़ाइन किया गया है। वे डिजाइन द्वारा बहुत कॉम्पैक्ट और बेहद कुशल हैं और सीमित मात्रा में संसाधनों के साथ काम करने में सक्षम हैं। विंडोज़ सीई और मिनिक्स 3 एम्बेडेड ऑपरेटिंग सिस्टम के कुछ उदाहरण हैं।

वास्तविक समय[edit | edit source]

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

लाइब्रेरी[edit | edit source]

एक लाइब्रेरी ऑपरेटिंग सिस्टम वह है जिसमें एक विशिष्ट ऑपरेटिंग सिस्टम द्वारा प्रदान की जाने वाली सेवाएँ, जैसे नेटवर्किंग, लाइब्रेरी (कंप्यूटिंग) के रूप में प्रदान की जाती हैं और एक यूनिकर्नेल बनाने के लिए एप्लिकेशन और कॉन्फ़िगरेशन कोड के साथ बनाई जाती हैं: एक विशेष, एकल पता स्थान ऑपरेटिंग सिस्टम, मशीन छवि जिसे क्लाउड या एम्बेडेड वातावरण में तैनात किया जा सकता है।[further explanation needed]

इतिहास[edit | edit source]

प्रारंभिक कंप्यूटर कैलकुलेटर की तरह एकल कार्यों की एक श्रृंखला को निष्पादित करने के लिए बनाए गए थे। बुनियादी ऑपरेटिंग सिस्टम सुविधाएँ 1950 के दशक में विकसित की गईं, जैसे कि निवासी मॉनिटर फ़ंक्शंस जो प्रसंस्करण को गति देने के लिए क्रमिक रूप से विभिन्न प्रोग्राम चला सकते थे। 1960 के दशक की शुरुआत तक ऑपरेटिंग सिस्टम अपने आधुनिक और अधिक जटिल रूपों में मौजूद नहीं थे।[9] हार्डवेयर सुविधाएँ जोड़ी गईं, जिससे क्रम पुस्तकालय , प्रोग्रामेबल इंटरप्ट कंट्रोलर और समानांतर कंप्यूटिंग का उपयोग सक्षम हो गया। 1980 के दशक में जब पर्सनल कंप्यूटर लोकप्रिय हो गए, तो उनके लिए बड़े कंप्यूटरों पर उपयोग किए जाने वाले ऑपरेटिंग सिस्टम की अवधारणा के समान ऑपरेटिंग सिस्टम बनाए गए।

1940 के दशक में, शुरुआती इलेक्ट्रॉनिक डिजिटल सिस्टम में कोई ऑपरेटिंग सिस्टम नहीं था। इस समय के इलेक्ट्रॉनिक सिस्टम को यांत्रिक स्विचों की पंक्तियों पर या प्लग बोर्ड पर जम्पर तारों द्वारा प्रोग्राम किया गया था। ये विशेष प्रयोजन प्रणालियाँ थीं, उदाहरण के लिए, सेना के लिए बैलिस्टिक तालिकाएँ तैयार करती थीं या छिद्रित कागज कार्डों पर डेटा से पेरोल चेक की छपाई को नियंत्रित करती थीं। प्रोग्रामयोग्य सामान्य-उद्देश्यीय कंप्यूटरों के आविष्कार के बाद, मशीन कोड (छिद्रित पेपर टेप पर बाइनरी अंक 0 और 1 की स्ट्रिंग से युक्त) पेश किया गया जिसने प्रोग्रामिंग प्रक्रिया को गति दी (स्टर्न, 1981)।[full citation needed]

File:IBM360-65-1.corestore.jpg
एक आईबीएम सिस्टम 360/65 ऑपरेटर पैनल। OS/360 का उपयोग 1966 से अधिकांश आईबीएम मेनफ्रेम कंप्यूटरों पर किया गया था, जिसमें अपोलो कार्यक्रम द्वारा उपयोग किए जाने वाले कंप्यूटर भी शामिल थे।

1950 के दशक की शुरुआत में, एक कंप्यूटर एक समय में केवल एक ही प्रोग्राम निष्पादित कर सकता था। प्रत्येक उपयोगकर्ता के पास सीमित अवधि के लिए कंप्यूटर का एकमात्र उपयोग होता था और वह पंच्ड पेपर कार्ड या छिद्रित टेप पर अपने प्रोग्राम और डेटा के साथ एक निर्धारित समय पर पहुंचता था। प्रोग्राम को मशीन में लोड किया जाएगा, और मशीन को प्रोग्राम पूरा होने या क्रैश (कंप्यूटिंग) होने तक काम करने के लिए सेट किया जाएगा। प्रोग्राम को आम तौर पर टॉगल स्विच और पैनल लाइट का उपयोग करके फ्रंट पैनल के माध्यम से डीबग किया जा सकता है। ऐसा कहा जाता है कि एलन ट्यूरिंग शुरुआती मैनचेस्टर मार्क 1 मशीन में माहिर थे, और वह पहले से ही सार्वभौमिक ट्यूरिंग मशीन के सिद्धांतों से एक ऑपरेटिंग सिस्टम की आदिम अवधारणा प्राप्त कर रहे थे।[9]

बाद में मशीनें प्रोग्रामों की लाइब्रेरी के साथ आईं, जो इनपुट और आउटपुट और संकलक (मानव-पठनीय असेंबली भाषा से मशीन कोड उत्पन्न करना) जैसे संचालन में सहायता के लिए उपयोगकर्ता के प्रोग्राम से जुड़ी होंगी। यह आधुनिक समय के ऑपरेटिंग सिस्टम की उत्पत्ति थी। हालाँकि, मशीनें अभी भी एक समय में एक ही काम चलाती थीं। इंग्लैंड में कैम्ब्रिज विश्वविद्यालय में, नौकरी की कतार एक समय में एक वॉशिंग लाइन (कपड़े की रस्सी) थी, जिसमें नौकरी की प्राथमिकता को इंगित करने के लिए अलग-अलग रंग के कपड़े-खूंटियों के साथ टेप लटकाए जाते थे।[citation needed]

1950 के दशक के अंत तक, ऐसे प्रोग्राम सामने आने लगे थे जिन्हें कोई ऑपरेटिंग सिस्टम के रूप में पहचान सकता था। सबसे पहले पहचाने जाने योग्य उदाहरण के रूप में अक्सर जीएम-एनएए आई/ओ का जिक्र किया जाता है, जिसे 1956 में आईबीएम 704 पर जारी किया गया था। पहला ज्ञात उदाहरण जो वास्तव में खुद को संदर्भित करता था वह शेयर ऑपरेटिंग सिस्टम था, जो जीएम-एनएए आई/ओ का एक विकास था, जिसे जारी किया गया था। मई 1960 में सिस्टम का वर्णन करने वाले एक पेपर में, जॉर्ज रेकमैन ने कहा:

The development of computer operating systems have materially aided the problem of getting a program or series of programs on and off the computer efficiently.[10]

अधिक प्रसिद्ध उदाहरणों में से एक जो अक्सर प्रारंभिक प्रणालियों की चर्चा में पाया जाता है, वह एटलस पर्यवेक्षक है, जो 1962 में एटलस (कंप्यूटर) पर चल रहा था।[11] सिस्टम का वर्णन करने वाले दिसंबर 1961 के एक लेख में इसे इसी रूप में संदर्भित किया गया था, लेकिन ऑपरेटिंग सिस्टम का संदर्भ सिस्टम के फैशन की तर्ज पर अधिक है। एटलस टीम ने स्वयं पर्यवेक्षक शब्द का प्रयोग किया,[12] जिसका उपयोग मॉनिटर के साथ-साथ व्यापक रूप से किया जाता था। प्रति ब्रिंच हैनसेन ने इसे ऑपरेटिंग सिस्टम के इतिहास में सबसे महत्वपूर्ण सफलता बताया।[13]


मेनफ्रेम[edit | edit source]

1950 के दशक के दौरान, मेनफ़्रेम कंप्यूटर पर ऑपरेटिंग सिस्टम के क्षेत्र में कई प्रमुख विशेषताएं सामने आईं, जिनमें प्रचय संसाधन , इनपुट/आउटपुट इंटरप्टिंग, डेटा बफर, कंप्यूटर मल्टीटास्किंग, स्पूलिंग, रनटाइम लाइब्रेरी, लिंकर (कंप्यूटिंग)|लिंक-लोडिंग और प्रोग्राम शामिल हैं। फ़ाइलों में एल्गोरिदम रिकॉर्ड को सॉर्ट करने के लिए। इन सुविधाओं को सभी अनुप्रयोगों द्वारा उपयोग किए जाने वाले एक अलग ऑपरेटिंग सिस्टम के बजाय एप्लिकेशन प्रोग्रामर के विकल्प पर एप्लिकेशन सॉफ़्टवेयर में शामिल किया गया था या शामिल नहीं किया गया था। 1959 में, शेयर ऑपरेटिंग सिस्टम को IBM 704 के लिए एक एकीकृत उपयोगिता के रूप में जारी किया गया था, और बाद में IBM 709 और IBM 7090 मेनफ्रेम में जारी किया गया था, हालाँकि इसे जल्दी ही 709, 7090 और 7094 पर IBM 7090/94 IBSYS/IBJOB द्वारा प्रतिस्थापित कर दिया गया था। जिसने बाद में 7040-PR-150 (IBM 7040|7040/7044) और 1410-PR-155 (IBM 1410/IBM 7010) ऑपरेटिंग सिस्टम को प्रभावित किया।

1960 के दशक के दौरान, आईबीएम के ओएस/360 ने संपूर्ण उत्पाद श्रृंखला में फैले एकल ओएस की अवधारणा पेश की, जो सिस्टम/360 मशीनों की सफलता के लिए महत्वपूर्ण थी। आईबीएम के वर्तमान मेनफ्रेम ऑपरेटिंग सिस्टम इस मूल सिस्टम के आईबीएम मेनफ्रेम ऑपरेटिंग सिस्टम का इतिहास हैं और आधुनिक मशीनें ओएस/360 के लिए लिखे गए अनुप्रयोगों के साथ पिछड़े संगत हैं।[citation needed]

OS/360 ने इस अवधारणा को भी आगे बढ़ाया कि ऑपरेटिंग सिस्टम उपयोग किए जाने वाले सभी सिस्टम संसाधनों पर नज़र रखता है, जिसमें मुख्य मेमोरी में प्रोग्राम और डेटा स्पेस आवंटन और सेकेंडरी स्टोरेज में फ़ाइल स्पेस और अपडेट के दौरान फ़ाइल लॉक करना शामिल है। जब किसी कारण से कोई प्रक्रिया समाप्त हो जाती है, तो इन सभी संसाधनों पर ऑपरेटिंग सिस्टम द्वारा पुनः दावा किया जाता है।

आईबीएम सिस्टम/360 मॉडल 67|एस/360-67 के लिए वैकल्पिक सीपी-67 प्रणाली ने वर्चुअल मशीनों की अवधारणा पर केंद्रित आईबीएम ऑपरेटिंग सिस्टम की एक पूरी श्रृंखला शुरू की। IBM S/360 श्रृंखला मेनफ्रेम पर उपयोग किए जाने वाले अन्य ऑपरेटिंग सिस्टम में IBM द्वारा विकसित सिस्टम शामिल हैं: DOS/360[lower-alpha 1] (डिस्क ऑपरेटिंग सिस्टम), टीएसएस/360 (टाइम शेयरिंग सिस्टम), टीओएस/360 (टेप ऑपरेटिंग सिस्टम), बीओएस/360 (बुनियादी ऑपरेटिंग सिस्टम), और आईबीएम एयरलाइन नियंत्रण कार्यक्रम (एयरलाइन कंट्रोल प्रोग्राम), साथ ही कुछ गैर-आईबीएम सिस्टम: मिशिगन टर्मिनल सिस्टम (मिशिगन टर्मिनल सिस्टम), म्यूजिक/एसपी (इंटरएक्टिव कंप्यूटिंग के लिए मल्टी-यूजर सिस्टम), और ओआरवीवाईएल (स्टैनफोर्ड टाइमशेयरिंग सिस्टम)।

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

1961 में, बरोज़ कॉर्पोरेशन ने बरोज़ MCP (मास्टर कंट्रोल प्रोग्राम) ऑपरेटिंग सिस्टम के साथ B5000 पेश किया। B5000 एक स्टैक मशीन थी जिसे बिना असेंबलर के विशेष रूप से उच्च-स्तरीय भाषाओं का समर्थन करने के लिए डिज़ाइन किया गया था;[lower-alpha 2] वास्तव में, MCP पहला OS था जो विशेष रूप से उच्च-स्तरीय भाषा (कार्यकारी प्रणाली समस्या उन्मुखी भाषा, ALGOL की एक बोली) में लिखा गया था। एमसीपी ने कई अन्य अभूतपूर्व नवाचार भी पेश किए, जैसे वर्चुअल मेमोरी का पहला व्यावसायिक कार्यान्वयन। यूनिसिस कंपनी के कंप्यूटरों की एमसीपी/क्लियरपाथ श्रृंखला में एमसीपी आज भी उपयोग में है।

UNIVAC, पहला वाणिज्यिक कंप्यूटर निर्माता, ने EXEC ऑपरेटिंग सिस्टम की एक श्रृंखला का उत्पादन किया।[14][15][16] सभी प्रारंभिक मुख्य-फ़्रेम प्रणालियों की तरह, यह बैच-उन्मुख प्रणाली चुंबकीय ड्रम, डिस्क, कार्ड रीडर और लाइन प्रिंटर का प्रबंधन करती थी। 1970 के दशक में, UNIVAC ने बड़े पैमाने पर समय साझा करने का समर्थन करने के लिए रियल-टाइम बेसिक (RTB) प्रणाली का निर्माण किया, जिसे डार्टमाउथ बीसी प्रणाली के अनुरूप भी बनाया गया था।

सामान्य विद्युतीय ने जनरल इलेक्ट्रिक कॉम्प्रिहेंसिव ऑपरेटिंग सुपरवाइज़र (GECOS) विकसित किया, जो मुख्य रूप से बैच प्रोसेसिंग का समर्थन करता था। हनीवेल द्वारा इसके अधिग्रहण के बाद, इसका नाम बदलकर सामान्य व्यापक ऑपरेटिंग सिस्टम (GCOS) कर दिया गया।

बेल लैब्स,[lower-alpha 3] जनरल इलेक्ट्रिक और एमआईटी ने मल्टीप्लेक्स सूचना और कंप्यूटिंग सेवा (मॉलटिक्स ) विकसित की, जिसने रिंग्ड सुरक्षा विशेषाधिकार स्तरों की अवधारणा पेश की।

डिजिटल इक्विपमेंट कॉर्पोरेशन ने अपनी विभिन्न कंप्यूटर लाइनों के लिए कई ऑपरेटिंग सिस्टम विकसित किए, जिनमें 36-बिट पीडीपी-10 क्लास सिस्टम के लिए TOPS-10 और TOPS-20 टाइम-शेयरिंग सिस्टम शामिल हैं। UNIX के व्यापक उपयोग से पहले, TOPS-10 विश्वविद्यालयों और प्रारंभिक ARPANET समुदाय में एक विशेष रूप से लोकप्रिय प्रणाली थी। RT-11 PDP-11 श्रेणी के मिनीकंप्यूटर के लिए एकल-उपयोगकर्ता वास्तविक समय OS था, और RSX-11 संबंधित बहु-उपयोगकर्ता OS था।

1960 के दशक के अंत से लेकर 1970 के दशक के अंत तक, कई हार्डवेयर क्षमताएं विकसित हुईं जो समान या पोर्ट किए गए सॉफ़्टवेयर को एक से अधिक सिस्टम पर चलाने की अनुमति देती थीं। प्रारंभिक प्रणालियों ने विभिन्न अंतर्निहित कंप्यूटर आर्किटेक्चर को एक श्रृंखला में अन्य के समान दिखने की अनुमति देने के लिए अपने सिस्टम पर सुविधाओं को लागू करने के लिए माइक्रोकोड का उपयोग किया था। वास्तव में, 360/40 के बाद अधिकांश 360 (360/44, 360/75, 360/91, 360/95 और 360/195 को छोड़कर) माइक्रोप्रोग्राम कार्यान्वयन थे।

1960 के दशक से इन प्रणालियों के लिए सॉफ्टवेयर में किए गए भारी निवेश के कारण अधिकांश मूल कंप्यूटर निर्माताओं ने हार्डवेयर के साथ-साथ संगत ऑपरेटिंग सिस्टम विकसित करना जारी रखा। उल्लेखनीय समर्थित मेनफ़्रेम ऑपरेटिंग सिस्टम में शामिल हैं:

माइक्रोकंप्यूटर[edit | edit source]

File:PC DOS 1.10 screenshot.png
पीसी डॉस एक प्रारंभिक पर्सनल कंप्यूटर ओएस था जिसमें एक कमांड-लाइन इंटरफ़ेस था।

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

1980 के दशक में, Apple कंप्यूटर Inc. (अब Apple Inc.) ने माइक्रो कंप्यूटर की अपनी लोकप्रिय Apple II श्रृंखला के साथ Mac (कंप्यूटर) पेश किया। मैकिंटोश में एक उन्नत ग्राफिकल यूज़र इंटरफ़ेस (जीयूआई) और एक माउस था; यह एक ऑपरेटिंग सिस्टम चलाता था जिसे बाद में क्लासिक मैक ओएस|(क्लासिक) मैक ओएस के नाम से जाना गया।

अक्टूबर 1985 में इंटेल 80386 सीपीयू चिप की शुरूआत,[17] 32-बिट कंप्यूटिंग|32-बिट आर्किटेक्चर और पेजिंग क्षमताओं के साथ, पर्सनल कंप्यूटरों को पहले के सुपरमिनी कंप्यूटर और मेनफ्रेम कंप्यूटर की तरह कंप्यूटर मल्टीटास्किंग ऑपरेटिंग सिस्टम चलाने की क्षमता प्रदान की। माइक्रोसॉफ्ट ने डेव कटलर को काम पर रखकर इस प्रगति का जवाब दिया, जिन्होंने डिजिटल उपकरण निगम के लिए ओपन VMS ऑपरेटिंग सिस्टम विकसित किया था। वह विंडोज़ एनटी ऑपरेटिंग सिस्टम के विकास का नेतृत्व करेंगे, जो माइक्रोसॉफ्ट के ऑपरेटिंग सिस्टम लाइन के आधार के रूप में काम करता रहेगा। एप्पल इंक के सह-संस्थापक स्टीव जॉब्स ने नेक्स्ट कंप्यूटर इंक की शुरुआत की, जिसने [[ अगला कदम ]] ऑपरेटिंग सिस्टम विकसित किया। NeXTSTEP को बाद में Apple Inc. द्वारा अधिग्रहित कर लिया जाएगा और FreeBSD के कोड के साथ macOS (नवीनतम नाम परिवर्तन के बाद macOS) के मूल के रूप में उपयोग किया जाएगा।

जीएनयू परियोजना की शुरुआत कार्यकर्ता और प्रोग्रामर रिचर्ड स्टॉलमैन द्वारा मालिकाना यूनिक्स ऑपरेटिंग सिस्टम के लिए एक पूर्ण मुफ्त सॉफ्टवेयर प्रतिस्थापन बनाने के लक्ष्य के साथ की गई थी। जबकि यह परियोजना UNIX के विभिन्न भागों की कार्यक्षमता की नकल करने में अत्यधिक सफल रही, GNU हर्ड कर्नेल का विकास अनुत्पादक साबित हुआ। 1991 में, फ़िनिश कंप्यूटर विज्ञान के छात्र लिनस टोरवाल्ड्स ने, इंटरनेट पर सहयोग करने वाले स्वयंसेवकों के सहयोग से, लिनक्स कर्नेल का पहला संस्करण जारी किया। पूर्ण ऑपरेटिंग सिस्टम बनाने के लिए इसे जल्द ही जीएनयू उपयोगकर्ता अंतरिक्ष घटकों और सिस्टम सॉफ़्टवेयर के साथ विलय कर दिया गया। तब से, दो प्रमुख घटकों के संयोजन को आमतौर पर सॉफ्टवेयर उद्योग द्वारा केवल लिनक्स के रूप में संदर्भित किया जाता है, एक नामकरण परंपरा जिसका स्टॉलमैन और फ्री सॉफ्टवेयर फाउंडेशन जीएनयू/लिनक्स नाम को प्राथमिकता देते हुए विरोध करते हैं। बर्कले सॉफ्टवेयर वितरण, जिसे बर्कले सॉफ्टवेयर डिस्ट्रीब्यूशन के नाम से जाना जाता है, 1970 के दशक में कैलिफोर्निया विश्वविद्यालय, बर्कले द्वारा वितरित यूनिक्स व्युत्पन्न है। कई मिनी कंप्यूटरों में स्वतंत्र रूप से वितरित और पोर्ट किया गया, अंततः इसे पीसी पर उपयोग के लिए भी शामिल किया गया, मुख्य रूप से फ्रीबीएसडी, नेटबीएसडी और ओपनबीएसडी के रूप में।

उदाहरण[edit | edit source]

यूनिक्स और यूनिक्स जैसे ऑपरेटिंग सिस्टम[edit | edit source]

<इमेजमैप> File:Unix history-simple.png|256px|thumb|यूनिक्स प्रणालियों का विकास default File:Unix history-simple.svg</imagemap>

यूनिक्स मूल रूप से असेंबली भाषा में लिखा गया था।[18] केन थॉम्पसन ने MULTICS प्रोजेक्ट में अपने अनुभव के आधार पर मुख्य रूप से BCPL पर आधारित B (प्रोग्रामिंग भाषा) लिखी। बी को सी (प्रोग्रामिंग भाषा) द्वारा प्रतिस्थापित किया गया था, और यूनिक्स, सी में फिर से लिखा गया, अंतर-संबंधित ऑपरेटिंग सिस्टम के एक बड़े, जटिल परिवार में विकसित हुआ जो हर आधुनिक ऑपरेटिंग सिस्टम में प्रभावशाली रहा है (ऑपरेटिंग सिस्टम का इतिहास देखें)।

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

यूनिक्स जैसी प्रणालियाँ विभिन्न प्रकार के कंप्यूटर आर्किटेक्चर पर चलती हैं। इनका उपयोग व्यवसाय में सर्वर (कंप्यूटिंग) के साथ-साथ शैक्षणिक और इंजीनियरिंग वातावरण में कार्यस्थानों के लिए बड़े पैमाने पर किया जाता है। मुफ़्त सॉफ़्टवेयर UNIX संस्करण, जैसे Linux और बर्कले सॉफ़्टवेयर वितरण, इन क्षेत्रों में लोकप्रिय हैं।

पांच ऑपरेटिंग सिस्टम द ओपन ग्रुप (यूनिक्स ट्रेडमार्क धारक) द्वारा यूनिक्स के रूप में प्रमाणित हैं। HP का HP-UX और IBM का IBM AIX दोनों मूल सिस्टम V यूनिक्स के वंशज हैं और केवल अपने संबंधित विक्रेता के हार्डवेयर पर चलने के लिए डिज़ाइन किए गए हैं। इसके विपरीत, सन माइक्रोसिस्टम्स का सोलारिस (ऑपरेटिंग सिस्टम) x86 और SPARC सर्वर और पीसी सहित कई प्रकार के हार्डवेयर पर चल सकता है। Apple का macOS, Apple के पहले (गैर-यूनिक्स) क्लासिक Mac OS का प्रतिस्थापन, एक हाइब्रिड कर्नेल-आधारित BSD वैरिएंट है जो NeXTSTEP, Mac (कर्नेल) और FreeBSD से प्राप्त हुआ है। IBM की z/OS UNIX सिस्टम सेवाओं में MKS Inc.|मोर्टिस कर्न्स के इंटरओपन उत्पादों पर आधारित एक शेल और उपयोगिताएँ शामिल हैं।

POSIX मानक की स्थापना करके यूनिक्स इंटरऑपरेबिलिटी की मांग की गई थी। POSIX मानक को किसी भी ऑपरेटिंग सिस्टम पर लागू किया जा सकता है, हालाँकि यह मूल रूप से विभिन्न यूनिक्स वेरिएंट के लिए बनाया गया था।

बीएसडी और उसके वंशज[edit | edit source]

File:First Web Server.jpg
वर्ल्ड वाइड वेब के लिए CERN httpd BSD पर आधारित NeXTSTEP पर चलता था।

यूनिक्स परिवार का एक उपसमूह बर्कले सॉफ्टवेयर वितरण परिवार है, जिसमें फ्रीबीएसडी, नेटबीएसडी और ओपनबीएसडी शामिल हैं। ये ऑपरेटिंग सिस्टम आमतौर पर वेबसर्वर पर पाए जाते हैं, हालांकि ये पर्सनल कंप्यूटर ओएस के रूप में भी कार्य कर सकते हैं। इंटरनेट का अधिकांश अस्तित्व बीएसडी के कारण है, क्योंकि नेटवर्क पर डेटा कनेक्ट करने, भेजने और प्राप्त करने के लिए आमतौर पर कंप्यूटर द्वारा उपयोग किए जाने वाले कई प्रोटोकॉल बीएसडी में व्यापक रूप से कार्यान्वित और परिष्कृत किए गए थे। वर्ल्ड वाइड वेब को पहली बार NeXTSTEP नामक BSD पर आधारित OS चलाने वाले कई कंप्यूटरों पर प्रदर्शित किया गया था।

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

1985 में Apple Inc. छोड़ने के बाद स्टीव जॉब्स ने NeXT|NeXT Inc. की स्थापना की, जो एक ऐसी कंपनी थी जो NeXTSTEP नामक BSD के भिन्न रूप पर चलने वाले हाई-एंड कंप्यूटर बनाती थी। इनमें से एक कंप्यूटर का उपयोग टिम बर्नर्स-ली द्वारा वर्ल्ड वाइड वेब बनाने के लिए पहले वेबसर्वर के रूप में किया गया था।

कीथ बॉस्टिक (सॉफ्टवेयर इंजीनियर) जैसे डेवलपर्स ने बेल लैब्स से उत्पन्न किसी भी गैर-मुक्त कोड को बदलने के लिए परियोजना को प्रोत्साहित किया। हालाँकि, एक बार ऐसा हो जाने पर, AT&T ने मुकदमा दायर कर दिया। दो साल के कानूनी विवादों के बाद, बीएसडी परियोजना ने कई मुफ्त डेरिवेटिव्स को जन्म दिया, जैसे कि नेटबीएसडी और फ्रीबीएसडी (दोनों 1993 में), और ओपनबीएसडी (1995 में नेटबीएसडी से)।

मैकओएस[edit | edit source]

macOS (पूर्व में Mac OS macOS मूल क्लासिक Mac OS का उत्तराधिकारी है, जो 1984 से Apple का प्राथमिक ऑपरेटिंग सिस्टम रहा है। अपने पूर्ववर्ती के विपरीत, macOS एक UNIX ऑपरेटिंग सिस्टम है जो प्रौद्योगिकी पर बनाया गया है जिसे 1980 के दशक के उत्तरार्ध और उसके बाद तक NeXT में विकसित किया गया था। Apple ने 1997 की शुरुआत में कंपनी को खरीद लिया। ऑपरेटिंग सिस्टम पहली बार 1999 में Mac OS तब से, macOS के छह और विशिष्ट क्लाइंट और macOS सर्वर संस्करण जारी किए गए हैं, जब तक कि दोनों को Mac OS

MacOS के साथ विलय से पहले, सर्वर संस्करण – मैकओएस सर्वर – सॉफ्टवेयर आर्किटेक्चर अपने डेस्कटॉप समकक्ष के समान था और आमतौर पर ऐप्पल के मैकिंटोश सर्वर (कंप्यूटिंग) हार्डवेयर की लाइन पर चलता था। macOS सर्वर में कार्य समूह प्रबंधन और प्रशासन सॉफ्टवेयर उपकरण शामिल हैं जो प्रमुख नेटवर्क सेवाओं तक सरलीकृत पहुंच प्रदान करते हैं, जिसमें एक संदेश स्थानांतरण एजेंट, एक सांबा (सॉफ्टवेयर), एक लाइटवेट डायरेक्टरी एक्सेस प्रोटोकॉल सर्वर, एक डोमेन की नामांकन प्रणाली और अन्य शामिल हैं। Mac OS X Lion|Mac OS सर्वर उपकरण अब एक एप्लिकेशन के रूप में पेश किए जाते हैं।[19]


z/OS UNIX सिस्टम सेवाएँ[edit | edit source]

सबसे पहले एमवीएस/ईएसए सिस्टम उत्पाद संस्करण 4 रिलीज़ 3 में ओपनएडिशन अपग्रेड के रूप में पेश किया गया, इसकी घोषणा की गई[20] फरवरी 1993 POSIX और अन्य मानकों के समर्थन के साथ।[21][22][23] z/OS UNIX सिस्टम सेवाएँ MVS सेवाओं के शीर्ष पर बनाई गई हैं और स्वतंत्र रूप से नहीं चल सकतीं। जबकि आईबीएम ने शुरू में संघीय सूचना प्रसंस्करण मानकों की आवश्यकताओं को पूरा करने के लिए ओपन एडिशन की शुरुआत की थी, कई z/OS घटकों को अब UNIX सेवाओं की आवश्यकता होती है, जैसे, टीसीपी/आईपी।

लिनक्स[edit | edit source]

File:Ubuntu 19.04 "Disco Dingo".png
उबंटू (ऑपरेटिंग सिस्टम), डेस्कटॉप लिनक्स वितरण
File:Tux.svg
लिनक्स के शुभंकर पेंगुइन टक्स (शुभंकर) की एक तस्वीर। लिनक्स एक यूनिक्स जैसा ऑपरेटिंग सिस्टम है जिसे पहली बार 17 सितंबर 1991 को लाइनस टोरवाल्ड्स द्वारा जारी किया गया था।[24][25][26][27]

लिनक्स कर्नेल की उत्पत्ति 1991 में फिनलैंड में एक विश्वविद्यालय के छात्र रहते हुए लिनस टोरवाल्ड्स की एक परियोजना के रूप में हुई थी। उन्होंने कंप्यूटर छात्रों और प्रोग्रामरों के लिए एक समाचार समूह पर अपने प्रोजेक्ट के बारे में जानकारी पोस्ट की, और स्वयंसेवकों से समर्थन और सहायता प्राप्त की जो एक पूर्ण और कार्यात्मक कर्नेल बनाने में सफल रहे।

लिनक्स यूनिक्स जैसा है, लेकिन बीएसडी और इसके वेरिएंट के विपरीत, बिना किसी यूनिक्स कोड के विकसित किया गया था। अपने खुले लाइसेंस मॉडल के कारण, लिनक्स कर्नेल कोड अध्ययन और संशोधन के लिए उपलब्ध है, जिसके परिणामस्वरूप सुपर कंप्यूटर से लेकर स्मार्टवॉच तक कंप्यूटिंग मशीनरी की एक विस्तृत श्रृंखला पर इसका उपयोग किया गया है। हालाँकि अनुमान बताते हैं कि लिनक्स सभी डेस्कटॉप (या लैपटॉप) पीसी के ऑपरेटिंग सिस्टम का केवल 2.81% उपयोग करता है,[3]इसे सर्वरों में उपयोग के लिए व्यापक रूप से अपनाया गया है[28] और एम्बेडेड सिस्टम[29] जैसे सेल फोन.

लिनक्स ने कई प्लेटफार्मों पर यूनिक्स को पीछे छोड़ दिया है और अधिकांश सुपर कंप्यूटर पर इसका उपयोग किया जाता है, जिसमें TOP500 सूची के सभी 500 सबसे शक्तिशाली सुपर कंप्यूटर शामिल हैं - 2017 तक सभी प्रतिस्पर्धियों को विस्थापित कर दिया है।[30] लिनक्स का उपयोग आमतौर पर अन्य छोटे ऊर्जा-कुशल कंप्यूटरों, जैसे स्मार्टफोन और चतुर घड़ी पर भी किया जाता है। लिनक्स कर्नेल का उपयोग कुछ लोकप्रिय वितरणों में किया जाता है, जैसे रेड हैट एंटरप्राइज लिनक्स, डेबियन, उबंटू (ऑपरेटिंग सिस्टम), लिनक्स टकसाल और गूगल का एंड्रॉइड (ऑपरेटिंग सिस्टम), क्रोमओएस और क्रोमियमओएस

माइक्रोसॉफ्ट विंडोज़[edit | edit source]

माइक्रोसॉफ्ट विंडोज माइक्रोसॉफ्ट द्वारा डिजाइन किए गए मालिकाना सॉफ्टवेयर ऑपरेटिंग सिस्टम का एक परिवार है और मुख्य रूप से x86 आर्किटेक्चर आधारित कंप्यूटरों को लक्षित करता है। As of 2022, सभी प्लेटफार्मों पर इसकी विश्वव्यापी बाजार हिस्सेदारी लगभग 30% थी,[31] और डेस्कटॉप/लैपटॉप प्लेटफ़ॉर्म पर इसकी बाज़ार हिस्सेदारी लगभग 75% थी।[32] नवीनतम संस्करण विंडोज़ 11 है।

माइक्रोसॉफ्ट विंडोज़ को पहली बार 1985 में MS-DOS के शीर्ष पर चलने वाले एक ऑपरेटिंग वातावरण के रूप में जारी किया गया था, जो उस समय अधिकांश इंटेल आर्किटेक्चर पर्सनल कंप्यूटरों पर भेजा जाने वाला मानक ऑपरेटिंग सिस्टम था। 1995 में, विंडोज़ 95 जारी किया गया था जिसमें बूटस्ट्रैप के रूप में केवल MS-DOS का उपयोग किया गया था। पश्चगामी संगतता के लिए, Win9x वास्तविक-मोड MS-DOS चला सकता है[33][34] और 16-बिट विंडोज़ 3.x[35] ड्राइवर. 2000 में रिलीज़ किया गया Windows ME, Win9x परिवार का अंतिम संस्करण था। बाद के सभी संस्करण Windows NT कर्नेल (ऑपरेटिंग सिस्टम) पर आधारित हैं। विंडोज़ के वर्तमान क्लाइंट संस्करण IA-32, x86-64 और ARM आर्किटेक्चर परिवार के माइक्रोप्रोसेसरों पर चलते हैं।[36] अतीत में, Windows NT अतिरिक्त आर्किटेक्चर का समर्थन करता था।

विंडोज़ के सर्वर संस्करणों का व्यापक रूप से उपयोग किया जाता है, हालाँकि, सर्वर पर विंडोज़ का उपयोग व्यक्तिगत कंप्यूटरों जितना व्यापक नहीं है क्योंकि विंडोज़ सर्वर बाजार हिस्सेदारी के लिए लिनक्स और बीएसडी के खिलाफ प्रतिस्पर्धा करता है।[37][38] ReactOS एक विंडोज़-वैकल्पिक ऑपरेटिंग सिस्टम है, जिसे विंडोज़ के सिद्धांतों पर विकसित किया जा रहा है – माइक्रोसॉफ्ट के किसी भी कोड का उपयोग किए बिना।

अन्य[edit | edit source]

ऐसे विलक्षणता (ऑपरेटिंग सिस्टम) रहे हैं जो अपने समय में महत्वपूर्ण थे लेकिन अब उतने महत्वपूर्ण नहीं हैं, जैसे कि AmigaOS; आईबीएम और माइक्रोसॉफ्ट से ओएस/2; क्लासिक Mac OS, Apple के macOS का गैर-यूनिक्स अग्रदूत; बीईओएस; XTS-400|XTS-300; जोखिम ओएस; मॉर्फोस; हाइकु (ऑपरेटिंग सिस्टम); बारेमेटल और फ्रीमिंट। कुछ का उपयोग अभी भी विशिष्ट बाजारों में किया जाता है और उत्साही समुदायों और विशेषज्ञ अनुप्रयोगों के लिए अल्पसंख्यक प्लेटफार्मों के रूप में विकसित किया जाना जारी है।

IBM z/आर्किटेक्चर बृहत अभिकलित्र के लिए z/OS ऑपरेटिंग सिस्टम अभी भी उपयोग और विकसित किया जा रहा है, और ओपनवीएमएस, जो पहले डिजिटल इक्विपमेंट कॉर्पोरेशन से था, अभी भी वीएमएस सॉफ्टवेयर इंक द्वारा सक्रिय विकास के अधीन है। आईबीएम एएस/400 और आईबीएम पावर सिस्टम्स मिडरेंज कंप्यूटरों के लिए आईबीएम मैं ऑपरेटिंग सिस्टम का भी अभी भी उपयोग और विकास किया जा रहा है।

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

अन्य ऑपरेटिंग सिस्टम महत्वपूर्ण बाजार हिस्सेदारी हासिल करने में विफल रहे हैं, लेकिन उन्होंने ऐसे नवाचार पेश किए हैं जिन्होंने मुख्यधारा के ऑपरेटिंग सिस्टम को प्रभावित किया है, कम से कम बेल लैब्स के प्लान 9 को नहीं।

घटक[edit | edit source]

एक ऑपरेटिंग सिस्टम के सभी घटक कंप्यूटर के विभिन्न हिस्सों को एक साथ काम करने के लिए मौजूद होते हैं। किसी भी हार्डवेयर का उपयोग करने के लिए सभी उपयोगकर्ता सॉफ़्टवेयर को ऑपरेटिंग सिस्टम से गुजरना पड़ता है, चाहे वह माउस या कीबोर्ड जितना सरल हो या इंटरनेट घटक जितना जटिल हो।

कर्नेल[edit | edit source]

File:Kernel Layout.svg
कर्नेल एप्लिकेशन सॉफ़्टवेयर को कंप्यूटर के हार्डवेयर से जोड़ता है।

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

कार्यक्रम निष्पादन[edit | edit source]

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

व्यवधान[edit | edit source]

एक रुकावट (जिसे एबॉर्ट (कंप्यूटिंग) के रूप में भी जाना जाता है), अपवाद प्रबंधन, गलती, सिग्नल (आईपीसी),[39] या जाल)[40] अधिकांश ऑपरेटिंग सिस्टम को पर्यावरण पर प्रतिक्रिया करने का एक कुशल तरीका प्रदान करता है। व्यवधान के कारण सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) का नियंत्रण प्रवाह वर्तमान में चल रहे प्रोग्राम से हटकर एक इंटरप्ट हैंडलर में बदल जाता है, जिसे इंटरप्ट सर्विस रूटीन (आईएसआर) के रूप में भी जाना जाता है।[41][42] एक व्यवधान सेवा रूटीन के कारण सेंट्रल प्रोसेसिंग यूनिट (सीपीयू) में एक संदर्भ स्विच हो सकता है। रेफरी नाम = osc-ch4-p105 >Silberschatz, Abraham (1994). ऑपरेटिंग सिस्टम अवधारणाएँ, चौथा संस्करण. Addison-Wesley. p. 105. ISBN 978-0-201-50480-4. सीपीयू को किसी अन्य प्रक्रिया में स्विच करने के लिए पुरानी प्रक्रिया की स्थिति को सहेजने और नई प्रक्रिया के लिए सहेजी गई स्थिति को लोड करने की आवश्यकता होती है। इस कार्य को संदर्भ स्विच के रूप में जाना जाता है।</ref>[lower-alpha 4] कंप्यूटर किसी व्यवधान को कैसे संसाधित करता है इसका विवरण आर्किटेक्चर से आर्किटेक्चर में भिन्न होता है, और इंटरप्ट सेवा दिनचर्या कैसे व्यवहार करती है इसका विवरण ऑपरेटिंग सिस्टम से ऑपरेटिंग सिस्टम में भिन्न होता है।[43] हालाँकि, कई व्यवधान कार्य सामान्य हैं।[43]आर्किटेक्चर और ऑपरेटिंग सिस्टम को यह करना होगा:[43]# इंटरप्ट सर्विस रूटीन में नियंत्रण स्थानांतरित करें।

  1. वर्तमान में चल रही प्रक्रिया की स्थिति को सहेजें।
  2. रुकावट दूर होने के बाद स्थिति बहाल करें।
सॉफ़्टवेयर व्यवधान[edit | edit source]

सॉफ़्टवेयर इंटरप्ट एक प्रक्रिया (कंप्यूटिंग) के लिए एक संदेश है कि एक घटना घटित हुई है।[39]यह हार्डवेयर व्यवधान के विपरीत है - जो केंद्रीय प्रसंस्करण इकाई (सीपीयू) के लिए एक संदेश है कि एक घटना हुई है।[44] सॉफ़्टवेयर इंटरप्ट हार्डवेयर इंटरप्ट के समान हैं - वर्तमान में चल रही प्रक्रिया से हटकर एक बदलाव है।[45] इसी तरह, हार्डवेयर और सॉफ्टवेयर दोनों इंटरप्ट एक इंटरप्ट हैंडलर को निष्पादित करते हैं।

सॉफ़्टवेयर व्यवधान सामान्य रूप से होने वाली घटनाएँ हो सकती हैं। यह अपेक्षित है कि एक Preemption_(computing)#Time_slice घटित होगा, इसलिए कर्नेल को एक संदर्भ स्विच करना होगा।[46] यदि बहुत अधिक डेटा के कारण एल्गोरिदम को बहुत अधिक समय लग जाता है तो एक कंप्यूटर प्रोग्राम कुछ सेकंड के बाद बंद होने के लिए टाइमर सेट कर सकता है। रेफरी नाम = lpi-ch20-p388 >Kerrisk, Michael (2010). लिनक्स प्रोग्रामिंग इंटरफ़ेस. No Starch Press. p. 388. ISBN 978-1-59327-220-3.</ref>

सॉफ़्टवेयर व्यवधान त्रुटि स्थितियाँ हो सकती हैं, जैसे कि विकृत मशीन कोड।[47]हालाँकि, सबसे आम त्रुटि स्थितियाँ शून्य से विभाजन और विभाजन दोष हैं।[47]

उपयोगकर्ता (कंप्यूटिंग) वर्तमान में चल रही प्रक्रिया के व्यवहार को संशोधित करने के लिए कर्नेल को संदेश भेज सकता है।[47]उदाहरण के लिए, कमांड लाइन इंटरफेस|कमांड-लाइन वातावरण में, इंटरप्ट कैरेक्टर (आमतौर पर नियंत्रण-सी ) दबाने से वर्तमान में चल रही प्रक्रिया समाप्त हो सकती है।[47]

x86 सीपीयू के लिए सॉफ़्टवेयर इंटरप्ट उत्पन्न करने के लिए, INT (x86 निर्देश) असेंबली भाषा निर्देश उपलब्ध है।[48] वाक्यविन्यास है INT X, कहाँ X इंटरप्ट वेक्टर तालिका में ऑफसेट संख्या (हेक्साडेसिमल प्रारूप में) है।

सिग्नल[edit | edit source]

यूनिक्स जैसे ऑपरेटिंग सिस्टम में सॉफ्टवेयर इंटरप्ट उत्पन्न करने के लिए kill(pid,signum) सिस्टम कॉल किसी अन्य प्रक्रिया को सिग्नल (आईपीसी) भेजेगा।[49] pid प्राप्त करने की प्रक्रिया का प्रक्रिया पहचानकर्ता है। signum सिग्नल संख्या है (स्मारक प्रारूप में)[lower-alpha 5] भेजा जाने वाला। (अपघर्षक नाम kill चुना गया क्योंकि प्रारंभिक कार्यान्वयन ने केवल प्रक्रिया को समाप्त कर दिया।)[50] यूनिक्स जैसे ऑपरेटिंग सिस्टम में, सिग्नल अतुल्यकालिक घटनाओं की घटना की प्रक्रियाओं को सूचित करते हैं।[49]अतुल्यकालिक रूप से संचार करने के लिए व्यवधान की आवश्यकता होती है।[51] एक प्रक्रिया को किसी अन्य प्रक्रिया से अतुल्यकालिक रूप से संचार करने की आवश्यकता का एक कारण क्लासिक पाठक-लेखक समस्या | पाठक/लेखक समस्या की विविधता को हल करना है। रेफरी नाम=ओएससी-पी182 >Silberschatz, Abraham (1994). ऑपरेटिंग सिस्टम अवधारणाएँ, चौथा संस्करण. Addison-Wesley. p. 182. ISBN 978-0-201-50480-4.</ref> लेखक को पाठक के इनपुट स्ट्रीम में आउटपुट भेजने के लिए शैल (कंप्यूटिंग) से एक पाइप प्राप्त होता है। रेफरी नाम = यूएसपी-सीएच6-पी153 >Haviland, Keith; Salama, Ben (1987). यूनिक्स सिस्टम प्रोग्रामिंग. Addison-Wesley Publishing Company. p. 153. ISBN 0-201-12919-1.</ref> कमांड-लाइन इंटरफ़ेस|कमांड-लाइन सिंटैक्स है alpha | bravo. alpha जब इसकी गणना तैयार हो जाएगी तो पाइप को लिख देगा और फिर प्रतीक्षा कतार में सो जाएगा।[52] bravo फिर इसे बहुस्तरीय प्रतिक्रिया कतार में ले जाया जाएगा और जल्द ही इसकी इनपुट स्ट्रीम से पढ़ा जाएगा।[53] पाइपिंग को समन्वित करने के लिए कर्नेल सॉफ़्टवेयर व्यवधान उत्पन्न करेगा।[53]

सिग्नलों को 7 श्रेणियों में वर्गीकृत किया जा सकता है।[49]श्रेणियाँ हैं:

  1. जब कोई प्रक्रिया सामान्य रूप से समाप्त हो जाती है.
  2. जब किसी प्रक्रिया में त्रुटि अपवाद हो।
  3. जब किसी प्रक्रिया में सिस्टम संसाधन समाप्त हो जाता है।
  4. जब कोई प्रक्रिया किसी अवैध निर्देश को निष्पादित करती है।
  5. जब कोई प्रक्रिया अलार्म इवेंट सेट करती है।
  6. जब कोई प्रक्रिया कीबोर्ड से निरस्त हो जाती है।
  7. जब किसी प्रक्रिया में डिबगिंग के लिए ट्रेसिंग अलर्ट होता है।
हार्डवेयर व्यवधान[edit | edit source]

इनपुट/आउटपुट (I/O) परिधीय सीपीयू की तुलना में धीमे हैं। इसलिए, यदि सीपीयू को प्रत्येक I/O के समाप्त होने की प्रतीक्षा में व्यस्त रहना पड़े तो यह कंप्यूटर को धीमा कर देगा। इसके बजाय, एक कंप्यूटर मतदान (कंप्यूटर विज्ञान) या व्यस्त प्रतीक्षा की आवश्यकता से बचते हुए, I/O पूरा करने के लिए व्यवधान लागू कर सकता है।[54] कुछ कंप्यूटरों को प्रत्येक अक्षर या शब्द के लिए एक इंटरप्ट की आवश्यकता होती है, जिससे सीपीयू का काफी समय खर्च होता है। प्रत्यक्ष मेमोरी एक्सेस (डीएमए) एक आर्किटेक्चर सुविधा है जो उपकरणों को सीपीयू को बायपास करने और सीधे रैंडम-एक्सेस मेमोरी तक पहुंचने की अनुमति देती है।[55] (आर्किटेक्चर से अलग, एक डिवाइस डायरेक्ट मेमोरी एक्सेस कर सकता है[lower-alpha 6] मुख्य मेमोरी से या तो सीधे या बस के माध्यम से।)[56][lower-alpha 7]

इनपुट/आउटपुट[edit | edit source]

व्यवधान-संचालित I/O[edit | edit source]

जब कोई उपयोगकर्ता (कंप्यूटिंग) कीबोर्ड पर एक कुंजी टाइप करता है, तो आमतौर पर वह अक्षर तुरंत स्क्रीन पर दिखाई देता है। इसी तरह, जब कोई उपयोगकर्ता कम्प्यूटर का माउस को घुमाता है, तो कर्सर (यूजर इंटरफ़ेस) तुरंत स्क्रीन पर चला जाता है। प्रत्येक कीस्ट्रोक और माउस मूवमेंट एक व्यवधान उत्पन्न करता है जिसे इंटरप्ट-संचालित I/O कहा जाता है। व्यवधान-संचालित I/O तब होता है जब कोई प्रक्रिया प्रत्येक वर्ण के लिए व्यवधान उत्पन्न करती है[56]या शब्द[57] प्रेषित.

डायरेक्ट मेमोरी एक्सेस[edit | edit source]

हार्ड डिस्क ड्राइव, सॉलिड स्टेट ड्राइव और चुंबकीय टेप ड्राइव जैसे उपकरण इतनी अधिक दर पर डेटा स्थानांतरित कर सकते हैं कि प्रत्येक बाइट या शब्द स्थानांतरित होने पर सीपीयू बाधित हो जाता है, और सीपीयू डिवाइस और मेमोरी के बीच बाइट या शब्द स्थानांतरित कर देता है। बहुत अधिक CPU समय की आवश्यकता है. इसके बजाय, डेटा को चैनल I/O या डायरेक्ट मेमोरी एक्सेस कंट्रोलर जैसे हार्डवेयर द्वारा सीपीयू से स्वतंत्र रूप से डिवाइस और मेमोरी के बीच स्थानांतरित किया जाता है; व्यवधान तभी दिया जाता है जब सारा डेटा स्थानांतरित हो जाता है।[58] यदि कोई कंप्यूटर प्रोग्राम ब्लॉक I/O राइट ऑपरेशन करने के लिए सिस्टम कॉल निष्पादित करता है, तो सिस्टम कॉल निम्नलिखित निर्देशों को निष्पादित कर सकता है:

रेफरी नाम = osc-ch2-p34 >Silberschatz, Abraham (1994). ऑपरेटिंग सिस्टम अवधारणाएँ, चौथा संस्करण. Addison-Wesley. p. 34. ISBN 978-0-201-50480-4.</ref> ऑपरेटिंग सिस्टम इस तालिका को बनाए रखता है ताकि यह पता लगाया जा सके कि कौन सी प्रक्रियाएँ किन उपकरणों की प्रतीक्षा कर रही हैं। तालिका में एक फ़ील्ड प्रक्रिया नियंत्रण ब्लॉक का मेमोरी पता है।

  • डिवाइस पर भेजे जाने वाले सभी वर्णों को रैंडम-एक्सेस मेमोरी में रखें।[51]* मेमोरी बफ़र के मेमोरी एड्रेस को पूर्व निर्धारित डिवाइस रजिस्टर पर सेट करें।[60]
  • बफ़र आकार (एक पूर्णांक) को किसी अन्य पूर्व निर्धारित रजिस्टर पर सेट करें।[60]* लेखन शुरू करने के लिए मशीन कोड निष्पादित करें।
  • बहुस्तरीय फीडबैक कतार में अगली प्रक्रिया के लिए एक संदर्भ स्विच करें।

जब लेखन होता है, तो ऑपरेटिंग सिस्टम सामान्य रूप से अन्य प्रक्रियाओं पर संदर्भ स्विच करेगा। जब डिवाइस लिखना समाप्त कर लेता है, तो डिवाइस व्यवधान अनुरोध (पीसी आर्किटेक्चर) का दावा करके वर्तमान में चल रही प्रक्रिया को बाधित कर देगा। डिवाइस डेटा बस पर एक पूर्णांक भी रखेगा।[61] व्यवधान अनुरोध स्वीकार करने पर, ऑपरेटिंग सिस्टम यह करेगा:

  • प्रोग्राम काउंटर (एक रजिस्टर) की सामग्री और उसके बाद स्टेटस रजिस्टर को कॉल स्टैक पर पुश करें।[43]* अन्य रजिस्टरों की सामग्री को कॉल स्टैक पर पुश करें। (वैकल्पिक रूप से, रजिस्टरों की सामग्री को सिस्टम तालिका में रखा जा सकता है।)[61]* डेटा बस से पूर्णांक पढ़ें. पूर्णांक इंटरप्ट वेक्टर तालिका का ऑफसेट है। वेक्टर तालिका के निर्देश तब होंगे:
  • डिवाइस-स्थिति तालिका तक पहुंचें।
  • प्रक्रिया नियंत्रण ब्लॉक निकालें.
  • लेखन प्रक्रिया पर वापस संदर्भ स्विच करें।

जब लेखन प्रक्रिया का प्रीएम्प्शन (कंप्यूटिंग)#टाइम स्लाइस समाप्त हो जाता है, तो ऑपरेटिंग सिस्टम यह करेगा:[62]

  • कॉल स्टैक से स्टेटस रजिस्टर और प्रोग्राम काउंटर के अलावा अन्य रजिस्टरों को पॉप करें।
  • कॉल स्टैक से स्थिति रजिस्टर पॉप करें।
  • कॉल स्टैक से अगले निर्देश का पता पॉप करें, और इसे प्रोग्राम काउंटर में वापस सेट करें।

प्रोग्राम काउंटर अब रीसेट होने के साथ, बाधित प्रक्रिया अपना समय स्लाइस फिर से शुरू कर देगी।[43]


मोड[edit | edit source]

File:Priv rings.svg
संरक्षित मोड में उपलब्ध x86 माइक्रोप्रोसेसर आर्किटेक्चर के लिए विशेषाधिकार रिंग। ऑपरेटिंग सिस्टम यह निर्धारित करते हैं कि प्रत्येक मोड में कौन सी प्रक्रियाएँ चलती हैं।

आधुनिक कंप्यूटर ऑपरेशन के कई तरीकों का समर्थन करते हैं। इस क्षमता वाले सीपीयू कम से कम दो मोड प्रदान करते हैं: उपयोगकर्ता मोड और पर्यवेक्षक मोड। सामान्य शब्दों में, पर्यवेक्षक मोड ऑपरेशन सभी एमपीयू निर्देशों सहित सभी मशीन संसाधनों तक अप्रतिबंधित पहुंच की अनुमति देता है। उपयोगकर्ता मोड ऑपरेशन निर्देश के उपयोग पर सीमा निर्धारित करता है और आम तौर पर मशीन संसाधनों तक सीधी पहुंच की अनुमति नहीं देता है। सीपीयू में उपयोगकर्ता मोड के समान अन्य मोड भी हो सकते हैं, जैसे पुराने प्रोसेसर प्रकारों का अनुकरण करने के लिए वर्चुअल मोड, जैसे 32-बिट प्रोसेसर पर 16-बिट प्रोसेसर, या 64-बिट कंप्यूटिंग पर 32-बिट प्रोसेसर | 64-बिट एक.

पावर-ऑन या रीसेट पर, सिस्टम पर्यवेक्षक मोड में शुरू होता है। एक बार जब एक ऑपरेटिंग सिस्टम कर्नेल (ऑपरेटिंग सिस्टम) लोड और शुरू हो जाता है, तो उपयोगकर्ता मोड और पर्यवेक्षक मोड (जिसे कर्नेल मोड के रूप में भी जाना जाता है) के बीच की सीमा स्थापित की जा सकती है।

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

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

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

मेमोरी प्रबंधन[edit | edit source]

अन्य बातों के अलावा, एक मल्टीप्रोग्रामिंग ऑपरेटिंग सिस्टम कर्नेल (ऑपरेटिंग सिस्टम) को सभी सिस्टम मेमोरी के प्रबंधन के लिए जिम्मेदार होना चाहिए जो वर्तमान में प्रोग्रामों द्वारा उपयोग में है। यह सुनिश्चित करता है कि एक प्रोग्राम दूसरे प्रोग्राम द्वारा पहले से उपयोग की जा रही मेमोरी में हस्तक्षेप नहीं करता है। चूंकि प्रोग्राम समय साझा करते हैं, इसलिए प्रत्येक प्रोग्राम के पास मेमोरी तक स्वतंत्र पहुंच होनी चाहिए।

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

मेमोरी सुरक्षा कर्नेल (ऑपरेटिंग सिस्टम) को किसी प्रक्रिया की कंप्यूटर की मेमोरी तक पहुंच को सीमित करने में सक्षम बनाती है। मेमोरी सुरक्षा के विभिन्न तरीके मौजूद हैं, जिनमें स्मृति विभाजन और पेजिंग शामिल हैं। सभी विधियों के लिए कुछ स्तर के हार्डवेयर समर्थन की आवश्यकता होती है (जैसे कि 80286 एमएमयू), जो सभी कंप्यूटरों में मौजूद नहीं है।

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

विंडोज़ संस्करण 3.1 से लेकर एमई तक कुछ स्तर की मेमोरी सुरक्षा थी, लेकिन प्रोग्राम आसानी से इसका उपयोग करने की आवश्यकता को टाल सकते थे। एक सामान्य सुरक्षा दोष उत्पन्न किया जाएगा, जो दर्शाता है कि विभाजन का उल्लंघन हुआ है; हालाँकि, सिस्टम अक्सर क्रैश हो जाता था।

वर्चुअल मेमोरी[edit | edit source]

File:Virtual memory.svg
कई ऑपरेटिंग सिस्टम हार्ड डिस्क और रैम के आसपास बिखरी हुई मेमोरी का उपयोग करने के लिए प्रोग्रामों को धोखा दे सकते हैं जैसे कि यह मेमोरी का एक निरंतर हिस्सा है, जिसे वर्चुअल मेमोरी कहा जाता है।

वर्चुअल मेमोरी एड्रेसिंग (जैसे पेजिंग या सेगमेंटेशन) के उपयोग का मतलब है कि कर्नेल यह चुन सकता है कि प्रत्येक प्रोग्राम किसी भी समय किस मेमोरी का उपयोग कर सकता है, जिससे ऑपरेटिंग सिस्टम को कई कार्यों के लिए समान मेमोरी स्थानों का उपयोग करने की अनुमति मिलती है।

यदि कोई प्रोग्राम उस मेमोरी तक पहुंचने का प्रयास करता है जो उसकी पहुंच योग्य मेमोरी की वर्तमान सीमा में नहीं है, लेकिन फिर भी उसे आवंटित किया गया है, तो कर्नेल उसी तरह से बाधित होता है जैसे कि यदि प्रोग्राम अपनी आवंटित मेमोरी से अधिक हो जाता है। (स्मृति प्रबंधन पर अनुभाग देखें।) UNIX के अंतर्गत इस प्रकार की रुकावट को पृष्ठ दोष कहा जाता है।

जब कर्नेल किसी पृष्ठ दोष का पता लगाता है तो यह आम तौर पर प्रोग्राम की वर्चुअल मेमोरी रेंज को समायोजित करता है जिसने इसे ट्रिगर किया है, और इसे अनुरोधित मेमोरी तक पहुंच प्रदान करता है। यह कर्नेल को विवेकाधीन शक्ति देता है कि किसी विशेष एप्लिकेशन की मेमोरी कहां संग्रहीत है, या यहां तक ​​कि इसे वास्तव में अभी तक आवंटित किया गया है या नहीं।

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

वर्चुअल मेमोरी प्रोग्रामर या उपयोगकर्ता को यह धारणा प्रदान करती है कि कंप्यूटर में वास्तव में मौजूद रैम की तुलना में बहुत अधिक मात्रा में रैम है।[63]


मल्टीटास्किंग[edit | edit source]

कंप्यूटर मल्टीटास्किंग से तात्पर्य एक ही कंप्यूटर पर कई स्वतंत्र कंप्यूटर प्रोग्राम चलाने से है, जिससे यह प्रतीत होता है कि यह एक ही समय में कार्य कर रहा है। चूँकि अधिकांश कंप्यूटर एक समय में अधिकतम एक या दो काम कर सकते हैं, यह आम तौर पर टाइम-शेयरिंग के माध्यम से किया जाता है, जिसका अर्थ है कि प्रत्येक प्रोग्राम निष्पादित करने के लिए कंप्यूटर के समय के एक हिस्से का उपयोग करता है।

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

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

आधुनिक ऑपरेटिंग सिस्टम एप्लिकेशन प्रीएम्प्शन की अवधारणाओं को डिवाइस ड्राइवरों और कर्नेल कोड तक विस्तारित करते हैं, ताकि ऑपरेटिंग सिस्टम का आंतरिक रन-टाइम पर भी प्रीमेप्टिव नियंत्रण हो।

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

कई एकल उपयोगकर्ता ऑपरेटिंग सिस्टम पर सहकारी मल्टीटास्किंग पूरी तरह से पर्याप्त है, क्योंकि घरेलू कंप्यूटर आमतौर पर कम संख्या में अच्छी तरह से परीक्षण किए गए प्रोग्राम चलाते हैं। AmigaOS एक अपवाद है, जिसमें इसके पहले संस्करण से प्रीमेप्टिव मल्टीटास्किंग है। विंडोज़ एनटी माइक्रोसॉफ्ट विंडोज़ का पहला संस्करण था जिसने प्रीमेप्टिव मल्टीटास्किंग को लागू किया था, लेकिन विंडोज़ एक्सपी तक यह घरेलू उपयोगकर्ता बाजार तक नहीं पहुंच सका (क्योंकि विंडोज़ एनटी पेशेवरों पर लक्षित था)।

डिस्क पहुंच और फ़ाइल सिस्टम[edit | edit source]

File:Dolphin FileManager.png
फ़ाइल सिस्टम उपयोगकर्ताओं और प्रोग्रामों को कंप्यूटर पर फ़ाइलों को व्यवस्थित और क्रमबद्ध करने की अनुमति देते हैं, अक्सर निर्देशिकाओं (या फ़ोल्डर्स) के उपयोग के माध्यम से।

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

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

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

कनेक्टेड आधार सामग्री भंडारण, जैसे हार्ड डिस्क ड्राइव, को डिवाइस ड्राइवर के माध्यम से एक्सेस किया जाता है। डिवाइस ड्राइवर ड्राइव की विशिष्ट भाषा को समझता है और उस भाषा को सभी डिस्क ड्राइव तक पहुंचने के लिए ऑपरेटिंग सिस्टम द्वारा उपयोग की जाने वाली मानक भाषा में अनुवाद करने में सक्षम है। UNIX पर, यह ब्लॉक डिवाइस की भाषा है।

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

फ़ाइल सिस्टम के बीच विभिन्न अंतर सभी फ़ाइल सिस्टम का समर्थन करना कठिन बनाते हैं। फ़ाइल नामों में अनुमत वर्ण, केस संवेदनशीलता और विभिन्न प्रकार की फ़ाइल विशेषताओं की उपस्थिति प्रत्येक फ़ाइल सिस्टम के लिए एकल इंटरफ़ेस के कार्यान्वयन को एक कठिन कार्य बनाती है। ऑपरेटिंग सिस्टम विशेष रूप से उनके लिए डिज़ाइन किए गए फ़ाइल सिस्टम का उपयोग करने की अनुशंसा करते हैं (और इसलिए मूल रूप से समर्थन करते हैं); उदाहरण के लिए, विंडोज़ में NTFS और Linux में ReiserFS, Reiser4, ext3, ext4 और Btrfs। हालाँकि, व्यवहार में, अधिकांश सामान्य-उद्देश्य वाले ऑपरेटिंग सिस्टम में सबसे व्यापक रूप से उपयोग किए जाने वाले फ़ाइल सिस्टम के लिए समर्थन देने के लिए तृतीय पक्ष ड्राइवर आमतौर पर उपलब्ध होते हैं (उदाहरण के लिए, NTFS लिनक्स में NTFS-3G|NTFS-3g, और ext2/3 के माध्यम से उपलब्ध है) और ReiserFS तृतीय-पक्ष सॉफ़्टवेयर के माध्यम से विंडोज़ में उपलब्ध हैं)।

आधुनिक ऑपरेटिंग सिस्टमों में फ़ाइल सिस्टम के लिए समर्थन अत्यधिक भिन्न है, हालाँकि कई सामान्य फ़ाइल सिस्टम हैं जिनके लिए लगभग सभी ऑपरेटिंग सिस्टम में समर्थन और ड्राइवर शामिल हैं। ऑपरेटिंग सिस्टम फ़ाइल सिस्टम समर्थन और डिस्क प्रारूपों पर भिन्न होते हैं जिन पर उन्हें स्थापित किया जा सकता है। विंडोज़ के तहत, प्रत्येक फ़ाइल सिस्टम आमतौर पर कुछ मीडिया तक सीमित होता है; उदाहरण के लिए, सीडी को ISO 9660 या यूनिवर्सल डिस्क फॉर्मेट का उपयोग करना चाहिए,और Windows Vista की तरह, NTFS एकमात्र फ़ाइल सिस्टम है जिस पर ऑपरेटिंग सिस्टम स्थापित किया जा सकता है। लिनक्स को कई प्रकार की फ़ाइल प्रणालियों पर स्थापित करना संभव है। अन्य ऑपरेटिंग सिस्टमों के विपरीत, लिनक्स और यूनिक्स किसी भी फ़ाइल सिस्टम को उपयोग करने की अनुमति देते हैं, चाहे वह किसी भी मीडिया में संग्रहीत हो, चाहे वह हार्ड ड्राइव हो, डिस्क (कॉम्पैक्ट डिस्क, डीवीडी...), यूएसबी फ्लैश ड्राइव, या यहां तक ​​​​कि किसी अन्य फ़ाइल सिस्टम पर स्थित फ़ाइल के भीतर समाहित।

डिवाइस ड्राइवर[edit | edit source]

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

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

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

नेटवर्किंग[edit | edit source]

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

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

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

सुरक्षा[edit | edit source]

एक कंप्यूटर का सुरक्षित होना कई तकनीकों के ठीक से काम करने पर निर्भर करता है। एक आधुनिक ऑपरेटिंग सिस्टम कई संसाधनों तक पहुंच प्रदान करता है, जो सिस्टम पर चलने वाले सॉफ़्टवेयर और कर्नेल के माध्यम से नेटवर्क जैसे बाहरी उपकरणों के लिए उपलब्ध हैं।[64] ऑपरेटिंग सिस्टम को उन अनुरोधों के बीच अंतर करने में सक्षम होना चाहिए जिन्हें संसाधित करने की अनुमति दी जानी चाहिए और अन्य जिन्हें संसाधित नहीं किया जाना चाहिए। हालाँकि कुछ सिस्टम केवल विशेषाधिकार प्राप्त और गैर-विशेषाधिकार प्राप्त के बीच अंतर कर सकते हैं, सिस्टम में आमतौर पर अनुरोधकर्ता की पहचान का एक रूप होता है, जैसे उपयोगकर्ता नाम। पहचान स्थापित करने के लिए प्रमाणीकरण की प्रक्रिया हो सकती है. अक्सर एक उपयोगकर्ता नाम उद्धृत किया जाना चाहिए, और प्रत्येक उपयोगकर्ता नाम में एक पासवर्ड हो सकता है। इसके बजाय प्रमाणीकरण के अन्य तरीकों, जैसे चुंबकीय कार्ड या बायोमेट्रिक डेटा का उपयोग किया जा सकता है। कुछ मामलों में, विशेष रूप से नेटवर्क से कनेक्शन में, संसाधनों तक बिना किसी प्रमाणीकरण के पहुंचा जा सकता है (जैसे कि नेटवर्क शेयर पर फ़ाइलें पढ़ना)। अनुरोधकर्ता की 'पहचान' की अवधारणा में प्राधिकरण भी शामिल है; एक बार सिस्टम में लॉग इन करने के बाद अनुरोधकर्ता द्वारा एक्सेस की जाने वाली विशेष सेवाएँ और संसाधन या तो अनुरोधकर्ता के उपयोगकर्ता खाते से या उपयोगकर्ताओं के विभिन्न कॉन्फ़िगर किए गए समूहों से जुड़े होते हैं, जिनसे अनुरोधकर्ता संबंधित होता है।[citation needed]

सुरक्षा के अनुमति या अस्वीकृत मॉडल के अलावा, उच्च स्तर की सुरक्षा वाला सिस्टम ऑडिटिंग विकल्प भी प्रदान करता है। ये संसाधनों तक पहुंच के अनुरोधों को ट्रैक करने की अनुमति देंगे (जैसे कि, इस फ़ाइल को कौन पढ़ रहा है?)। आंतरिक सुरक्षा, या पहले से चल रहे प्रोग्राम से सुरक्षा केवल तभी संभव है जब सभी संभावित हानिकारक अनुरोध ऑपरेटिंग सिस्टम कर्नेल में व्यवधान के माध्यम से किए जाने चाहिए। यदि प्रोग्राम सीधे हार्डवेयर और संसाधनों तक पहुंच सकते हैं, तो उन्हें सुरक्षित नहीं किया जा सकता है।[citation needed]

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

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

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

आंतरिक सुरक्षा बहु-उपयोगकर्ता प्रणालियों के लिए विशेष रूप से प्रासंगिक है; यह सिस्टम के प्रत्येक उपयोगकर्ता को निजी फ़ाइलें रखने की अनुमति देता है जिनके साथ अन्य उपयोगकर्ता छेड़छाड़ नहीं कर सकते या पढ़ नहीं सकते। यदि ऑडिटिंग का कोई उपयोग होना है तो आंतरिक सुरक्षा भी महत्वपूर्ण है, क्योंकि एक प्रोग्राम संभावित रूप से ऑपरेटिंग सिस्टम को बायपास कर सकता है, जिसमें ऑडिटिंग को बायपास करना भी शामिल है।

उपयोगकर्ता इंटरफ़ेस[edit | edit source]

File:Command line.png
बैश (यूनिक्स शेल) कमांड लाइन का स्क्रीनशॉट। प्रत्येक कमांड को 'प्रॉम्प्ट' के बाद टाइप किया जाता है, और फिर उसका आउटपुट स्क्रीन के नीचे काम करते हुए नीचे दिखाई देता है। वर्तमान कमांड प्रॉम्प्ट सबसे नीचे है.

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

ग्राफिकल यूजर इंटरफेस[edit | edit source]

File:KDE Plasma 5.16.png
केडीई प्लाज्मा 5 ग्राफिकल यूजर इंटरफेस का एक स्क्रीनशॉट। प्रोग्राम स्क्रीन पर छवियों का रूप लेते हैं, और फ़ाइलें, फ़ोल्डर्स (निर्देशिकाएं) और एप्लिकेशन आइकन और प्रतीकों का रूप लेते हैं। कंप्यूटर को नेविगेट करने के लिए माउस का उपयोग किया जाता है।

अधिकांश आधुनिक कंप्यूटर सिस्टम ग्राफिकल यूजर इंटरफेस (जीयूआई) का समर्थन करते हैं, और अक्सर उन्हें शामिल करते हैं। कुछ कंप्यूटर प्रणालियों में, जैसे कि क्लासिक मैक ओएस का मूल कार्यान्वयन, जीयूआई को कर्नेल (ऑपरेटिंग सिस्टम) में एकीकृत किया जाता है।

जबकि तकनीकी रूप से एक ग्राफिकल यूजर इंटरफ़ेस एक ऑपरेटिंग सिस्टम सेवा नहीं है, ऑपरेटिंग सिस्टम कर्नेल में एक के लिए समर्थन शामिल करने से जीयूआई को अपने आउटपुट कार्यों को करने के लिए आवश्यक संदर्भ स्विच की संख्या को कम करके जीयूआई को अधिक प्रतिक्रियाशील बनाने की अनुमति मिल सकती है। अन्य ऑपरेटिंग सिस्टम मॉड्यूलर प्रोग्रामिंग हैं, जो ग्राफिक्स सबसिस्टम को कर्नेल और ऑपरेटिंग सिस्टम से अलग करते हैं। 1980 के दशक में UNIX, VMS और कई अन्य के पास ऑपरेटिंग सिस्टम थे जो इस तरह से बनाए गए थे। Linux और macOS भी इसी तरह बनाए गए हैं। Microsoft Windows के आधुनिक रिलीज़ जैसे Windows Vista एक ग्राफ़िक्स सबसिस्टम लागू करते हैं जो अधिकतर उपयोगकर्ता-स्थान में होता है; हालाँकि Windows NT 4.0 और Windows Server 2003 के बीच के संस्करणों के ग्राफ़िक्स ड्राइंग रूटीन अधिकतर कर्नेल स्पेस में मौजूद होते हैं। विंडोज़ 9x में इंटरफ़ेस और कर्नेल के बीच बहुत कम अंतर था।

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

समय के साथ कई यूनिक्स-आधारित जीयूआई अस्तित्व में हैं, जिनमें से अधिकांश X11 से प्राप्त हुए हैं। यूनिक्स (एचपी, आईबीएम, सन) के विभिन्न विक्रेताओं के बीच प्रतिस्पर्धा के कारण बहुत अधिक विखंडन हुआ, हालांकि 1990 के दशक में सामान्य खुला सॉफ़्टवेयर वातावरण और सामान्य डेस्कटॉप वातावरण को मानकीकृत करने का प्रयास विभिन्न कारणों से विफल रहा, और अंततः व्यापक रूप से अपनाने से ग्रहण लग गया। गनोम और केडीई. मुफ़्त सॉफ़्टवेयर-आधारित टूलकिट और डेस्कटॉप वातावरण से पहले, मोटिफ़ प्रचलित टूलकिट/डेस्कटॉप संयोजन था (और यही वह आधार था जिस पर सीडीई विकसित किया गया था)।

ग्राफिकल यूजर इंटरफेस समय के साथ विकसित होते हैं। उदाहरण के लिए, विंडोज़ ने लगभग हर बार विंडोज़ का नया प्रमुख संस्करण जारी होने पर अपने उपयोगकर्ता इंटरफ़ेस को संशोधित किया है, और 1999 में मैक ओएस एक्स की शुरुआत के साथ मैक ओएस जीयूआई नाटकीय रूप से बदल गया है।[65]


वास्तविक समय ऑपरेटिंग सिस्टम[edit | edit source]

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

बड़े पैमाने पर वास्तविक समय ऑपरेटिंग सिस्टम का एक प्रारंभिक उदाहरण अमेरिकन एयरलाइंस और आईबीएम द्वारा सेबर (कंप्यूटर सिस्टम) के लिए विकसित लेनदेन प्रसंस्करण सुविधा थी।

एंबेडेड सिस्टम जिनकी समय सीमा तय होती है, वे VxWorks, PikeOS, eCos, QNX, MontaVista और RTLinux जैसे वास्तविक समय ऑपरेटिंग सिस्टम का उपयोग करते हैं। विंडोज़ सीई एक वास्तविक समय ऑपरेटिंग सिस्टम है जो डेस्कटॉप विंडोज़ के समान एपीआई साझा करता है लेकिन डेस्कटॉप विंडोज़ का कोई भी कोडबेस साझा नहीं करता है।[66] सिम्बियन में एक RTOS कर्नेल (EKA2) भी है जो संस्करण 8.0b से शुरू होता है।

कुछ एम्बेडेड सिस्टम पाम ओएस, बर्कले सॉफ्टवेयर डिस्ट्रीब्यूशन और लिनक्स जैसे ऑपरेटिंग सिस्टम का उपयोग करते हैं, हालांकि ऐसे ऑपरेटिंग सिस्टम वास्तविक समय कंप्यूटिंग का समर्थन नहीं करते हैं।

एक शौक के रूप में ऑपरेटिंग सिस्टम विकास[edit | edit source]

एक हॉबी ऑपरेटिंग सिस्टम को ऐसे ऑपरेटिंग सिस्टम के रूप में वर्गीकृत किया जा सकता है जिसका कोड सीधे मौजूदा ऑपरेटिंग सिस्टम से नहीं लिया गया है, और जिसके कुछ उपयोगकर्ता और सक्रिय डेवलपर्स हैं।[citation needed]

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

हॉबी ऑपरेटिंग सिस्टम के उदाहरणों में सिलेबल डेस्कटॉप और टेम्पलओएस शामिल हैं।

ऑपरेटिंग सिस्टम और पोर्टेबिलिटी की विविधता[edit | edit source]

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

दूसरा तरीका ऑपरेटिंग सिस्टम विक्रेताओं के लिए मानकों को अपनाना है। उदाहरण के लिए, POSIX और ऑपरेटिंग सिस्टम अमूर्त परत समानताएं प्रदान करते हैं जो पोर्टिंग लागत को कम करते हैं।

बाजार हिस्सेदारी[edit | edit source]

यह भी देखें[edit | edit source]

टिप्पणियाँ[edit | edit source]

  1. A combination of DOS/360 and emulation software was known as Compatibility Operating System (COS).
  2. However, ESPOL did allow source programs to specify all of the operations of the instruction repertoire.
  3. Bell Labs quickly dropped out, leaving GE and MIT.
  4. Modern CPUs provide instructions (e.g. SYSENTER) to invoke selected kernel services without an interrupts. Visit https://wiki.osdev.org/SYSENTER for more information.
  5. Examples include SIGINT, SIGSEGV, and SIGBUS.
  6. often in the form of a DMA chip for smaller systems and I/O channels for larger systems
  7. Modern motherboards have a DMA controller. Additionally, a device may also have one. Visit SCSI RDMA Protocol.


संदर्भ[edit | edit source]

  1. Stallings (2005). ऑपरेटिंग सिस्टम, आंतरिक और डिज़ाइन सिद्धांत. Pearson: Prentice Hall. p. 6.
  2. Dhotre, I.A. (2009). ऑपरेटिंग सिस्टम।. Technical Publications. p. 1.
  3. 3.0 3.1 "दुनिया भर में डेस्कटॉप ऑपरेटिंग सिस्टम बाज़ार में हिस्सेदारी". StatCounter Global Stats. Archived from the original on 2 October 2023. Retrieved 3 October 2023.
  4. "दुनिया भर में मोबाइल और टैबलेट ऑपरेटिंग सिस्टम बाजार में हिस्सेदारी". StatCounter Global Stats. Retrieved 2 October 2023.
  5. "VII. Special-Purpose Systems - Operating System Concepts, Seventh Edition [Book]". www.oreilly.com. Archived from the original on 13 June 2021. Retrieved 8 February 2021.
  6. "विशेष प्रयोजन ऑपरेटिंग सिस्टम - जटिल विद्युत प्रणालियों के स्वचालन के लिए आरडब्ल्यूटीएच आचेन विश्वविद्यालय संस्थान - अंग्रेजी". www.acs.eonerc.rwth-aachen.de. Archived from the original on 14 June 2021. Retrieved 8 February 2021.
  7. Lorch, Jacob R.; Smith, Alan Jay (1996). "एकल-उपयोगकर्ता ऑपरेटिंग सिस्टम में प्रोसेसर समय प्रबंधन में सुधार करके प्रोसेसर बिजली की खपत को कम करना". Proceedings of the 2nd annual international conference on Mobile computing and networking. New York, NY, US: ACM. pp. 143–154. doi:10.1145/236387.236437. ISBN 089791872X.
  8. Mishra, B.; Singh, N.; Singh, R. (2014). "Master-slave group based model for co-ordinator selection, an improvement of bully algorithm". समानांतर, वितरित और ग्रिड कंप्यूटिंग पर अंतर्राष्ट्रीय सम्मेलन (पीडीजीसी). pp. 457–460. doi:10.1109/PDGC.2014.7030789. ISBN 978-1-4799-7682-9. S2CID 13887160.
  9. 9.0 9.1 Hansen, Per Brinch, ed. (2001). क्लासिक ऑपरेटिंग सिस्टम. Springer. pp. 4–7. ISBN 0-387-95113-X. Archived from the original on 11 January 2023. Retrieved 19 December 2020.
  10. Ryckman, George (1960). "The computer operation language". IRE-AIEE-ACM '60 (Western): 341. doi:10.1145/1460361.1460406. S2CID 30745551.
  11. Lavington, Simon (1998). मैनचेस्टर कंप्यूटर्स का इतिहास (2nd ed.). Swindon: The British Computer Society. pp. 50–52. ISBN 978-1-902505-01-5.
  12. Kilburn, T.; Payne, R. B.; Howarth, D. J. (December 1961). "एटलस पर्यवेक्षक". Institute of Electrical Engineers: 279–294. doi:10.1145/1460764.1460786. S2CID 16466990. Archived from the original on 9 June 2022. Retrieved 17 June 2022.
  13. Brinch Hansen, Per (2000). Classic Operating Systems: From Batch Processing to Distributed Systems. Springer-Verlag.
  14. EXEC I UNIVAC 1107 Executive System (PDF) (rev. 1 ed.). Sperry Rand. UP-2577. Archived (PDF) from the original on 15 June 2022. Retrieved 15 May 2022.
  15. UNIVAC Data Processing Division Multi-processor System EXEC II Programmers Reference Manual (PDF). Sperry Rand. 1966. UP-4058. Archived (PDF) from the original on 15 June 2022. Retrieved 15 May 2022.
  16. UNIVAC 1108 Multi-processor System Operating System EXEC 8 Programmers Reference (PDF) (rev. 1 ed.). Sperry Rand. 1968. UP-4144. Archived (PDF) from the original on 25 May 2022. Retrieved 15 May 2022.
  17. "Intel® Microprocessor Quick Reference Guide - Year". Intel. Archived from the original on 25 April 2016. Retrieved 24 April 2016.
  18. Ritchie, Dennis. "यूनिक्स मैनुअल, पहला संस्करण". Lucent Technologies. Archived from the original on 18 May 2008. Retrieved 22 November 2012.
  19. "OS X Mountain Lion – Move your Mac even further ahead". Apple. Archived from the original on 23 May 2011. Retrieved 7 August 2012.
  20. "Openedition Services on MVS/ESA SP Version 4 Release 3 Announced and Availability of MVS/ESA SP Version 4 Release 3 With Additional Enhancements". Announcement Letters. IBM. 9 February 1993. 293-060. Retrieved 16 July 2023.
  21. Introducing OpenEdition MVS. First Edition. IBM. December 1993. GC23-3010-00.
  22. OpenEdition MVS POSIX.1 Conformance Document. First Edition. IBM. February 1993. GC23-3011-00.
  23. OpenEdition MVS POSIX.2 Conformance Document. First Edition. IBM. December 1993. GC23-3012-00.
  24. "लिनस टोरवाल्ड्स के अनुसार लिनक्स के बीस वर्ष". ZDNet. April 13, 2011. Archived from the original on September 19, 2016. Retrieved September 19, 2016.
  25. Linus Benedict Torvalds (5 October 1991). "Free minix-like kernel sources for 386-AT". Newsgroupcomp.os.minix. Archived from the original on 2 March 2013. Retrieved 30 September 2011.
  26. "What Is Linux: An Overview of the Linux Operating System". Medium. 11 April 2020. Retrieved 16 July 2023.
  27. Linux Online (2008). "लिनक्स लोगो और शुभंकर". Archived from the original on 15 August 2010. Retrieved 11 August 2009.
  28. "सर्वर बाजार हिस्सेदारी में आईडीसी रिपोर्ट". Idc.com. Archived from the original on 27 September 2012. Retrieved 7 August 2012.
  29. LinuxDevices Staff (23 April 2008). "लिनक्स अभी भी एम्बेडेड ओएस में शीर्ष पर है". LinuxGizmos.com. Archived from the original on 19 April 2016. Retrieved 5 April 2016.
  30. "Operating system Family / Linux | TOP500". www.top500.org. Retrieved 30 July 2023.
  31. "Operating System Market Share Worldwide Jan–Dec 2022". 2022. Retrieved 4 November 2023.
  32. "Desktop Operating System Market Share Worldwide Jan–Dec 2022". 2022. Retrieved 4 November 2023.
  33. "हार्ड डिस्क पर MS-DOS संगतता मोड का समस्या निवारण". Microsoft Support. Archived from the original on 10 August 2012. Retrieved 7 August 2012.
  34. "Using NDIS 2 PCMCIA Network Card Drivers in Windows 95". Microsoft Support. Archived from the original on 17 February 2013. Retrieved 7 August 2012.
  35. "INFO: Windows 95 Multimedia Wave Device Drivers Must be 16 bit". Microsoft Support. Archived from the original on 17 February 2013. Retrieved 7 August 2012.
  36. Arthur, Charles (5 January 2011). "'Windows 8' will run on ARM chips - but third-party apps will need rewrite". The Guardian. Archived from the original on 12 October 2016.
  37. "Operating System Share by Groups for Sites in All Locations January 2009". Archived from the original on 6 July 2009. Retrieved 3 May 2010.
  38. "Behind the IDC data: Windows still No. 1 in server operating systems". ZDNet. 26 February 2010. Archived from the original on 1 March 2010.
  39. 39.0 39.1 Kerrisk, Michael (2010). लिनक्स प्रोग्रामिंग इंटरफ़ेस. No Starch Press. p. 388. ISBN 978-1-59327-220-3. सिग्नल एक प्रक्रिया के लिए एक अधिसूचना है कि एक घटना घटित हुई है। सिग्नल को कभी-कभी सॉफ़्टवेयर व्यवधान के रूप में वर्णित किया जाता है।
  40. Hyde, Randall (1996). "Chapter Seventeen: Interrupts, Traps and Exceptions (Part 1)". The Art Of Assembly Language Programming. No Starch Press. Archived from the original on 22 December 2021. Retrieved 22 December 2021. The concept of an interrupt is something that has expanded in scope over the years. The 80x86 family has only added to the confusion surrounding interrupts by introducing the int (software interrupt) instruction. Indeed, different manufacturers have used terms like exceptions, faults, aborts, traps and interrupts to describe the phenomena this chapter discusses. Unfortunately there is no clear consensus as to the exact meaning of these terms. Different authors adopt different terms to their own use.
  41. Tanenbaum, Andrew S. (1990). संरचित कंप्यूटर संगठन, तीसरा संस्करण. Prentice Hall. p. 308. ISBN 978-0-13-854662-5. ट्रैप की तरह, इंटरप्ट रनिंग प्रोग्राम को रोक देता है और नियंत्रण को इंटरप्ट हैंडलर को स्थानांतरित कर देता है, जो कुछ उचित कार्रवाई करता है। समाप्त होने पर, इंटरप्ट हैंडलर बाधित प्रोग्राम पर नियंत्रण लौटाता है।
  42. Silberschatz, Abraham (1994). ऑपरेटिंग सिस्टम अवधारणाएँ, चौथा संस्करण. Addison-Wesley. p. 32. ISBN 978-0-201-50480-4. जब कोई व्यवधान (या ट्रैप) होता है, तो हार्डवेयर ऑपरेटिंग सिस्टम पर नियंत्रण स्थानांतरित कर देता है। सबसे पहले, ऑपरेटिंग सिस्टम रजिस्टरों और प्रोग्राम काउंटर को संग्रहीत करके सीपीयू की स्थिति को संरक्षित करता है। फिर, यह निर्धारित करता है कि किस प्रकार का व्यवधान उत्पन्न हुआ है। प्रत्येक प्रकार के व्यवधान के लिए, ऑपरेटिंग सिस्टम में कोड के अलग-अलग खंड निर्धारित करते हैं कि क्या कार्रवाई की जानी चाहिए।
  43. 43.0 43.1 43.2 43.3 43.4 Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition. Addison-Wesley. p. 31. ISBN 978-0-201-50480-4.
  44. Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition. Addison-Wesley. p. 30. ISBN 978-0-201-50480-4. Hardware may trigger an interrupt at any time by sending a signal to the CPU, usually by way of the system bus.
  45. Kerrisk, Michael (2010). लिनक्स प्रोग्रामिंग इंटरफ़ेस. No Starch Press. p. 388. ISBN 978-1-59327-220-3. सिग्नल हार्डवेयर इंटरप्ट के समान होते हैं, जिसमें वे किसी प्रोग्राम के निष्पादन के सामान्य प्रवाह को बाधित करते हैं; ज्यादातर मामलों में, यह अनुमान लगाना संभव नहीं है कि सिग्नल कब आएगा।
  46. Kerrisk, Michael (2010). लिनक्स प्रोग्रामिंग इंटरफ़ेस. No Starch Press. p. 388. ISBN 978-1-59327-220-3. घटनाओं के प्रकारों में से जो कर्नेल को किसी प्रक्रिया के लिए सिग्नल उत्पन्न करने का कारण बनते हैं, वे निम्नलिखित हैं: एक सॉफ्टवेयर घटना हुई। उदाहरण के लिए, ...प्रक्रिया की CPU समय सीमा पार हो गई थी[.]
  47. 47.0 47.1 47.2 47.3 Cite error: Invalid <ref> tag; no text was provided for refs named lpi-ch20-p388
  48. "Intel® 64 and IA-32 Architectures Software Developer's Manual" (PDF). Intel Corporation. September 2016. p. 610. Archived (PDF) from the original on 23 March 2022. Retrieved 5 May 2022.
  49. 49.0 49.1 49.2 Bach, Maurice J. (1986). The Design of the UNIX Operating System. Prentice-Hall. p. 200. ISBN 0-13-201799-7.
  50. Kerrisk, Michael (2010). The Linux Programming Interface. No Starch Press. p. 400. ISBN 978-1-59327-220-3.
  51. 51.0 51.1 Tanenbaum, Andrew S. (1990). संरचित कंप्यूटर संगठन, तीसरा संस्करण. Prentice Hall. p. 308. ISBN 978-0-13-854662-5.
  52. Haviland, Keith; Salama, Ben (1987). UNIX System Programming. Addison-Wesley Publishing Company. p. 148. ISBN 0-201-12919-1.
  53. 53.0 53.1 Haviland, Keith; Salama, Ben (1987). UNIX System Programming. Addison-Wesley Publishing Company. p. 149. ISBN 0-201-12919-1.
  54. Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. p. 292. ISBN 978-0-13-854662-5.
  55. IBM (September 1968), "Main Storage" (PDF), IBM System/360 Principles of Operation (PDF), Eighth Edition, p. 7, archived (PDF) from the original on 19 March 2022, retrieved 13 April 2022
  56. 56.0 56.1 Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. p. 294. ISBN 978-0-13-854662-5.
  57. "Program Interrupt Controller (PIC)" (PDF). Users Handbook - PDP-7 (PDF). Digital Equipment Corporation. 1965. pp. 48. F-75. Archived (PDF) from the original on 10 May 2022. Retrieved 20 April 2022.
  58. पीडीपी-1 इनपुट-आउटपुट सिस्टम मैनुअल (PDF). Digital Equipment Corporation. pp. 19–20. Archived (PDF) from the original on 25 January 2019. Retrieved 16 August 2022.
  59. Silberschatz, Abraham (1994). ऑपरेटिंग सिस्टम अवधारणाएँ, चौथा संस्करण. Addison-Wesley. p. 32. ISBN 978-0-201-50480-4.
  60. 60.0 60.1 Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. p. 295. ISBN 978-0-13-854662-5.
  61. 61.0 61.1 Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. p. 309. ISBN 978-0-13-854662-5.
  62. Tanenbaum, Andrew S. (1990). Structured Computer Organization, Third Edition. Prentice Hall. p. 310. ISBN 978-0-13-854662-5.
  63. Stallings, William (2008). कंप्यूटर संगठन एवं वास्तुकला. New Delhi: Prentice-Hall of India Private Limited. p. 267. ISBN 978-81-203-2962-1.
  64. "Operating Systems: Security". www.cs.uic.edu. Archived from the original on 7 December 2020. Retrieved 27 November 2020.
  65. Polsson, Ken (8 February 2007). "Chronology of Personal Computer Software (1998-1999)". islandnet.com. Archived from the original on 14 May 2008.
  66. "Reading: Operating System". Lumen. Archived from the original on 6 January 2019. Retrieved 5 January 2019.


अग्रिम पठन[edit | edit source]

  • Anderson, Thomas; Dahlin, Michael (2014). Operating Systems: Principles and Practice. Recursive Books. ISBN 978-0-9856735-2-9.
  • Auslander, M. A.; Larkin, D. C.; Scherr, A. L. (September 1981). "The Evolution of the MVS Operating System". IBM Journal of Research and Development. 25 (5): 471–482. doi:10.1147/rd.255.0471.
  • Deitel, Harvey M.; Deitel, Paul; Choffnes, David (25 December 2015). Operating Systems. Pearson/Prentice Hall. ISBN 978-0-13-092641-8.
  • Bic, Lubomur F.; Shaw, Alan C. (2003). Operating Systems. Pearson: Prentice Hall.
  • Silberschatz, Avi; Galvin, Peter; Gagne, Greg (2008). Operating Systems Concepts. John Wiley & Sons. ISBN 978-0-470-12872-5.
  • O'Brien, J. A., & Marakas, G. M.(2011). Management Information Systems. 10e. McGraw-Hill Irwin.
  • Leva, Alberto; Maggio, Martina; Papadopoulos, Alessandro Vittorio; Terraneo, Federico (2013). Control-based Operating System Design. IET. ISBN 978-1-84919-609-3.
  • Arpaci-Dusseau, Remzi; Arpaci-Dusseau, Andrea (2015). Operating Systems: Three Easy Pieces. Archived from the original on 25 July 2016. Retrieved 25 July 2016.


बाहरी संबंध[edit | edit source]