POSIX के बारे में पहले उत्तर पर विस्तार करने के लिए, यह समझने के लिए कि "यूनिक्स-जैसा" का अर्थ क्या है, अच्छी तरह से पहले यह समझने की कोशिश करनी चाहिए कि वास्तव में UNIX क्या है। यूनिक्स ट्रेडमार्क के स्वामित्व वाले ओपन ग्रुप के प्रलेखन को देखते हुए , आपको सिंगल यूनिक्स विनिर्देश के विकास के बारे में विवरण मिलेगा - यहाँ UNIX03 है :
UNIX 03 उत्पाद मानक एकल UNIX विशिष्टता के संस्करण 3 के अनुरूप सिस्टम के लिए चिह्न है। यह UNIX 98 उत्पाद मानक का एक काफी उन्नत संस्करण है। अनिवार्य संवर्द्धन में ISO / IEC 9989: 1999 C प्रोग्रामिंग लैंग्वेज, IEEE Std 1003.1-2001 और ISO / IEC 9945: 2002 के साथ संरेखण शामिल है। इस उत्पाद मानक में निम्नलिखित अनिवार्य उत्पाद मानक शामिल हैं: अंतर्राष्ट्रीय सिस्टम कॉल और लाइब्रेरीज़ विस्तारित V3, कमांड और यूटिलिटीज़ V4, C भाषा V2, और अंतर्राष्ट्रीय टर्मिनल टर्मिनल।
UNIX98 :
UNIX 98 उत्पाद मानक UNIX 95 उत्पाद मानक का एक महत्वपूर्ण वर्धित संस्करण है। अनिवार्य संवर्द्धन में (1) थ्रेड इंटरफेस, (2) मल्टीबाइट सपोर्ट एक्सटेंशन (MSE), (3) लार्ज फाइल सपोर्ट, (4) डायनामिक लिंकिंग, (5) हार्डवेयर डेटा-लंबाई निर्भरता या प्रतिबंधों को हटाने के लिए परिवर्तन, और (6) ) वर्ष 2000 में परिवर्तन। इसके अलावा निम्नलिखित वैकल्पिक संवर्द्धन शामिल हैं: सॉफ्टवेयर प्रशासन सुविधाएं और रीयलटाइम समर्थन के लिए एपीआई का एक सेट। इस उत्पाद मानक में निम्न अनिवार्य उत्पाद मानक शामिल हैं: अंतर्राष्ट्रीय सिस्टम कॉल और लाइब्रेरीज़ विस्तारित V2, Commands और Utilities V3, C Language, Transport Service (XTI) V2, सॉकेट्स V2 और अंतर्राष्ट्रीयकृत टर्मिनल इंटरफेस। इसके अलावा, यह सॉफ़्टवेयर प्रशासन उत्पाद मानक के अनुरूप भी हो सकता है।
UNIX95 (मेरा जोर):
यह उत्पाद मानक मूल रूप से ऑपरेटिंग सिस्टम के एक वर्ग के लिए विकसित किए गए अनुप्रयोगों की एक विस्तृत श्रृंखला के समर्थन के लिए एक समेकित प्लेटफ़ॉर्म को परिभाषित करता है, जो यूनिक्स ऑपरेटिंग सिस्टम कोड और / या मूल रूप से एटी एंड टी द्वारा विकसित इंटरफेस के अतिरिक्त प्रदान की गई सुविधाओं के अतिरिक्त है। बेस प्रोडक्ट स्टैंडर्ड द्वारा। इसमें बेस की तुलना में व्यापक गुंजाइश है। इस उत्पाद मानक में निम्न उत्पाद मानक शामिल हैं: अंतर्राष्ट्रीय सिस्टम कॉल और पुस्तकालय विस्तारित, कमांड और यूटिलिटीज़ V2, C भाषा, परिवहन सेवा (XTI), सॉकेट्स और अंतर्राष्ट्रीयकृत टर्मिनल इंटरफेस।
मानक के सर्वर संस्करण कुछ मामलों में इंटरनेट सर्वर और आईपीवी 6 को जोड़ते हैं।
इसलिए निश्चित रूप से हम एटी एंड टी बेल लेबोरेटरीज का संदर्भ देखते हैं और सी भाषा यूनिक्स के दिल में है: सी भाषा, मॉड्यूलर आधार उपकरण, और शेल और कर्नेल, फाइलसिस्टम और अन्य प्रमुख ओएस घटकों को कैसे डिजाइन और कार्यान्वित किया गया था ।
यहीं से मॉरिस जे। बाक द्वारा UNIX ऑपरेटिंग सिस्टम की पुस्तक द डिजाइन अमूल्य रीडिंग बन जाती है क्योंकि यह इस बिंदु पर ऐतिहासिक बात है। बेशक ध्यान दें कि यह वास्तव में सी भाषा जैसे अन्य आविष्कारों से कैसे संबंधित है। C को AT & T बेल द्वारा विकसित किया गया था, यूनिक्स को एक ऐसी भाषा के साथ लागू करने के लिए, जो असेंबली की तरह तेज हो लेकिन विभिन्न हार्डवेयरों में पोर्टेबल हो, और बहुत सारे POSIX मानक C का विस्तार है।
कर्फ़ के रूप में इन्सोफ़र स्वयं चिंतित है, आपको अक्सर एक वैचारिक आरेख मिलेगा जैसे कि यह बताने के लिए कि पारंपरिक रूप से UNIX कर्नेल क्या था:
यहाँ श्री बाख की क्लासिक पुस्तक (1986) के कुछ अंश हैं जो UNIX सिस्टम V कर्नेल की नींव पर चर्चा करते हैं:
हालांकि, वे [एप्लिकेशन सबसिस्टम और प्रोग्राम] सभी निचले स्तर की सेवाओं का उपयोग करते हैं जो अंततः कर्नेल द्वारा प्रदान की जाती हैं, और वे सिस्टम कॉल के सेट के माध्यम से उन सेवाओं का लाभ उठाते हैं। सिस्टम V में लगभग 64 सिस्टम कॉल हैं, जिनमें से 32 से कम का उपयोग अक्सर किया जाता है। उनके पास सरल विकल्प हैं जो उन्हें उपयोग करना आसान बनाते हैं लेकिन उपयोगकर्ता को बहुत अधिक शक्ति प्रदान करते हैं। सिस्टम कॉल का सेट और उन्हें लागू करने वाले आंतरिक एल्गोरिदम कर्नेल का शरीर बनाते हैं [...]
[...] इसके दो प्रमुख घटक फाइल सबसिस्टम और प्रोसेस सबसिस्टम हैं।
फाइलों को फाइल सिस्टम में व्यवस्थित किया जाता है, जिन्हें तार्किक उपकरणों के रूप में माना जाता है; एक भौतिक उपकरण जैसे डिस्क में कई लॉजिकल डिवाइस (फाइल सिस्टम) हो सकते हैं। प्रत्येक फ़ाइल सिस्टम में एक सुपरब्लॉक होता है जो फ़ाइल सिस्टम की संरचना और सामग्री का वर्णन करता है, और फ़ाइल सिस्टम में प्रत्येक फ़ाइल को एक इनकोड द्वारा वर्णित किया जाता है जो फ़ाइल की विशेषताओं को बताता है। सिस्टम कॉल जो फ़ाइलों में हेरफेर करते हैं वे इनोड के माध्यम से करते हैं। [[और बफर पूल]
[...] इनोड के दो संस्करण हैं: डिस्क कॉपी जो इनकोड की जानकारी संग्रहीत करता है जब फ़ाइल उपयोग में नहीं होती है और इन-कोर कॉपी सक्रिय फ़ाइलों के बारे में जानकारी रिकॉर्ड करती है।
यूनिक्स प्रणालियों पर उपयोगकर्ता प्रक्रियाओं का निष्पादन दो स्तरों में विभाजित है: उपयोगकर्ता और कर्नेल। जब कोई प्रक्रिया किसी सिस्टम कॉल को निष्पादित करती है, तो प्रक्रिया का निष्पादन मोड उपयोगकर्ता मोड से कर्नेल मोड में बदल जाता है : ऑपरेटिंग सिस्टम निष्पादित करता है और उपयोगकर्ता अनुरोध को सेवा देने का प्रयास करता है [...]
[...] यूनिक्स प्रणाली का दर्शन ऑपरेटिंग सिस्टम प्राइमिटिव्स प्रदान करना है जो उपयोगकर्ताओं को छोटे, मॉड्यूलर प्रोग्राम लिखने में सक्षम बनाता है जो कि अधिक जटिल कार्यक्रमों के निर्माण के लिए बिल्डिंग ब्लॉक के रूप में उपयोग किया जा सकता है। शेल उपयोगकर्ताओं के लिए दिखाई देने वाली ऐसी एक आदिम I / O को पुनर्निर्देशित करने की क्षमता है ।
[...] सर्विसिंग कॉल के अलावा, कर्नेल उपयोगकर्ता समुदाय के लिए सामान्य बहीखाता करता है, प्रक्रिया शेड्यूलिंग को नियंत्रित करता है, मुख्य मेमोरी में प्रक्रियाओं के भंडारण और संरक्षण का प्रबंधन, फील्डिंग में व्यवधान, फाइलों और उपकरणों का प्रबंधन और सिस्टम त्रुटि का ख्याल रखता है। शर्तेँ।
यदि आप यूनिक्स जैसे ऑपरेटिंग सिस्टम में कर्नेल के विभिन्न कार्यान्वयन के साथ रुचि रखते हैं, तो आप फ्रीबीएसडी कार्यान्वयन (4.4BSD) या मच कर्नेल पर भी नज़र डाल सकते हैं या उनकी विशेषताओं की तुलना में देख सकते हैं।
जितना अधिक आप UNIX के डिजाइन के बारे में जानते हैं, उतना ही आप समझते हैं कि UNIX की वंशावली और उसके इतिहास के बारे में निम्नलिखित चित्र में क्या हुआ है । श्री बाख ज्यादातर अपनी किताब में सिस्टम वी के बारे में बात कर रहे हैं, लेकिन उन्होंने बीएसडी पर भी चर्चा की:
नहीं है यह करने के लिए एक से अधिक आंखों को पूरा करती है वास्तव में। उदाहरण के लिए, मैक OSX UNIX03 प्रमाणित है, लेकिन क्या आप इसे किसी भी शुद्ध UNIXes (ज्यादातर लाल रंग में) से जुड़ा हुआ देखते हैं?
ऊपर आप देख सकते हैं कि इस ब्रह्मांड में BSD, GNU, Microsoft और विविध व्यक्तियों ने कैसे योगदान दिया। भले ही GNU और अंततः linux का UNIX में कोई सीधा वंशज नहीं है, फिर भी आप देखते हैं कि GNU खुले स्रोत की दुनिया में फिर से इंजीनियर बनने का प्रयास है और वाणिज्यिक UNIX से उपकरण और सॉफ्टवेयर जो बंद हो गए थे। इसलिए GNU मेंटेन किए गए सॉफ़्टवेयर को देखने से प्रारंभिक प्रोटोटाइप ऐप्स और लाइब्रेरी में उदाहरण के लिए एक विचार मिलता है।
लाइसेंसिंग युद्धों ने UNIX के विकास (और कभी-कभी ठहराव) में भूमिका निभाई। आप तुरंत देख सकते हैं कि UNIXes लाइसेंस प्रकार के अनुसार पंक्तिबद्ध हैं - बंद बनाम BSD ( BSD कोड को बंद स्रोत बनाने की अनुमति देता है ... OSX देखें) और GPL जो लिनक्स और GNU को कॉपीलेफ़्ट दुनिया में खुद को पूरक बनाने की अनुमति देता है। यहां लाइनस कर्नेल द्वारा शुरू में विकसित लाइनक्स कर्नेल का क्लासिक नक्शा है, जो यह भी बताता है कि "गिरी" एक यूनिक्स जैसे ऑपरेटिंग सिस्टम में क्या हो सकता है:
यह इस विचार पर संकेत देता है कि " कर्नेल " डिज़ाइन प्रकार वह नहीं है जो UNIX मानक बनाता है या जो यूनिक्स जैसे OS को परिभाषित करता है। यह इस तथ्य से स्पष्ट होता है कि कई यूनिक्स जैसे ओएस में या तो एक अखंड कर्नेल या एक माइक्रोकर्नेल हो सकता है - अखंड यूनिक्स के लिए शास्त्रीय डिजाइन प्रकार था। वास्तव में, शुद्ध यूनिक्स के भीतर भी, एचपीयूएक्स में एक अखंड कर्नेल है, जबकि एआईएक्स एक माइक्रोकर्नेल का उपयोग करता है। डिजाइन के बारे में यह बहस प्रदर्शन के बारे में है और यह यूनिक्स वंश या पहचान से संबंधित नहीं है। दूसरी ओर, यूनिक्स / यूनिक्स-जैसे ऑपरेटिंग सिस्टम के तहत सॉफ्टवेयर को सेवाएं प्रदान करने, फाइल सिस्टम से निपटने के लिए एक पारंपरिक वैचारिक दृष्टिकोण है।
मेरा मानना है कि इस तरह के विचार आपके प्रश्न के ओएस भाग के संदर्भ को जोड़ देंगे।