मैक ओएस एक्स कहाँ से आता है?


43

मैक मालिकों के साथ चर्चा करते हुए, मुझे मैक ओएस एक्स कहाँ से आता है, के कई संस्करण मिले। यह बीएसडी में कुछ जड़ है, लेकिन कितना, और कहाँ जाना जाता है?

कुछ का कहना है कि मैक ओएस एक्स में फ्रीबीएसडी कर्नेल है, जिसके ऊपर सभी उपयोगिताओं के साथ यह एक ओएस मैक विशिष्ट है। (उपयोगकर्ता एप्लिकेशन के बारे में यहाँ बात कर रहा है, का ही सब init, ls, cd, और अन्य। Binutils? )

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

सच कहाँ है?


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

1
@ कैंडी: एक्सएस
वॉरेन यंग

मैं 'नर्क' का सुझाव देने जा रहा था, लेकिन तब मुझे Microsoft की अप्रिय याददाश्त और उनका भयावह रूप से 'विंडोज' मिल गया ... इसके अलावा? NeXTSTEP और BSD अगर मेमोरी मुझे सही काम करती है और मुझे यकीन है कि उत्तर ध्यान दें।
प्रिएफ्टन

जवाबों:


67

MacOS का इतिहास थोड़ा अधिक दृढ़ है। मुझे 90 के दशक के उत्तरार्ध में बहुत दिलचस्पी थी क्योंकि मक्स को यूनिक्स प्रणाली के निर्माण के एक तेज तरीके के रूप में दुनिया भर में पिच किया गया था।

कर्नेल की उत्पत्ति थोड़ी अधिक जटिल है।

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

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

मुझे 100% यकीन नहीं है कि अगर ममप मच से आया था, और बाद में बीएसडी द्वारा अपनाया गया था, या अगर मच ने केवल विचार का बीड़ा उठाया और बीएसडी ने मच के विचारों के आधार पर अपने स्वयं के चमांग को जोड़ा।

हालांकि मच कर्नेल को माइक्रो-कर्नेल के रूप में वर्णित किया गया था, लेकिन संस्करण 2.5 तक यह केवल एक प्रणाली थी जो थ्रेड, एमएमएपी, संदेश पास करने की सुविधा प्रदान करती थी लेकिन एक अखंड कर्नेल बनी रही, सभी सेवाएँ कर्नेल मोड पर चल रही थीं।

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

इस वीएम समर्थित तेजी से यूनिक्स प्रणाली के बेंचमार्क ने नेक्स्ट और एफएसएफ में माच को अपनी गुठली की नींव के रूप में चुनने के लिए लोगों को आकर्षित किया।

NeXT मच 2.5 कर्नेल के साथ गया (जो कि बीएसडी 4.2 या 4.3 पर आधारित था) और जीएनयू वास्तव में वर्षों तक काम पर शुरू नहीं होगा। यह वही है जो NeXTSTEP ऑपरेटिंग सिस्टम का उपयोग कर रहा था।

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

इस समय के आसपास जोलिट्ज टीम ने 38+ आर्किटेक्चर के लिए 4.3+ बीएसडी का एक पोर्ट किया और ड्रोबोब पर अपने पोर्टिंग प्रयासों को प्रकाशित किया। 386BSD को सक्रिय रूप से बनाए नहीं रखा गया था और एक समूह 386BSD को बनाए रखने और आगे बढ़ने के लिए उभरा, NetBSD टीम। NetBSD समूह के भीतर आंतरिक झगड़े के कारण पहला विभाजन हुआ और इसमें से FreeBSD का गठन हुआ। नेटबीएसडी उस समय एक क्रॉस-प्लेटफॉर्म बीएसडी होने पर ध्यान केंद्रित करना चाहता था, और फ्रीबीएसडी एक यूनिक्स होने पर ध्यान केंद्रित करना चाहता था जो x86 प्लेटफार्मों पर बहुत अच्छा करता था। थोड़े समय बाद, नेटबीएसडी कुछ अन्य विवादों के कारण फिर से विभाजित हो गया और इससे ओपनबीएसडी का निर्माण हुआ।

X86 प्लेटफार्मों के लिए बीएसडी 4.3 का एक कांटा बीएसडी नामक कंपनी के साथ वाणिज्यिक हो गया, और मूल बर्कले टीम के विभिन्न सदस्यों ने वहां काम किया और विश्वविद्यालय में बीएसडी टीम के साथ अच्छे संबंध बनाए रखे।

AT & T का उपयोग नहीं किया गया और AT & T बनाम BSDi मुकदमा शुरू किया, जिसे बाद में विश्वविद्यालय पर मुकदमा चलाने के लिए विस्तारित किया गया। मुकदमा एटी एंड टी के स्वामित्व कोड का उपयोग करते हुए बीएसडी के बारे में था जिसे बर्कले द्वारा फिर से नहीं लिखा गया था। यह अप और आने वाले लिनक्स ऑपरेटिंग सिस्टम की तुलना में BSD को वापस सेट करता है।

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

विश्वविद्यालय ने इसके बाद बीएसडी के दो संस्करणों को 4.4 और एनरेटेड और 4.4 लाइट जारी किया। एन्कर किए गए संस्करण को बूट किया जाएगा और चलाया जाएगा, लेकिन इसमें एटी एंड टी कोड शामिल होगा। लाइट संस्करण में AT & T का कोई कोड नहीं था लेकिन काम नहीं किया।

बीएसडी के विभिन्न प्रयासों ने नई 4.4 लाइट रिलीज के शीर्ष पर अपना काम फिर से किया और महीनों के भीतर बूटिंग सिस्टम था।

इस बीच, मच 3.0 माइक्रो कर्नेल उपयोगकर्ता-भूमि सर्वरों के बिना बहुत उपयोगी नहीं रहा।

स्कैंडिनेवियाई विश्वविद्यालय के एक छात्र (मेरा मानना ​​है, मेरे पास यह गलत हो सकता है) 4.4 माच रिलीज के आधार पर पूर्ण ओएस 3.0 के साथ एक पूर्ण मच बनाने के लिए पहला था, मेरा मानना ​​है कि इसे "लाइट्स" कहा जाता था। सिस्टम ने काम किया, लेकिन धीमा था।

1992-1996 के दौरान और अब तक BSD में पहले से ही एक mmap () सिस्टम कॉल के साथ-साथ अधिकांश अन्य यूनिक्स सिस्टम थे। "सूक्ष्म कर्नेल लाभ" जो वहां नहीं था, वास्तव में कभी नहीं आया। NeXT में अभी भी एक अखंड कर्नेल था। एफएसएफ अभी भी माक को बनाने की कोशिश कर रहा था, और बीएसडी कोड को नहीं छूना चाहता था या किसी भी खुले स्रोत बीएसडी प्रयासों में योगदान नहीं करना चाहता था, वे खराब निर्दिष्ट गिरी दृष्टि से दूर चार्ज करते रहे और वे अपने स्वयं के आरपीसी प्रोटोकॉल पर डूब रहे थे। गिरी। माइक्रो कर्नेल कागज पर बहुत अच्छा लग रहा था, लेकिन इंजीनियर से अधिक निकला और बस सब कुछ धीमा कर दिया।

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

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

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

Apple ने कुछ बिंदु पर अपने मच को 2.5 से 3.0 तक स्विच किया, लेकिन माइक्रो-कर्नेल दृष्टिकोण के साथ नहीं जाने का फैसला किया और इसके बजाय सब कुछ प्रक्रिया में रखा। मैं कभी पुष्टि नहीं कर पाया कि क्या Apple ने लाइट्स का इस्तेमाल किया, स्कैंडिनेवियाई हैकर को काम पर रखा, या अगर उन्होंने 4.4 लाइट को अपने ओएस के रूप में अपनाया। मुझे संदेह है कि उन्होंने किया था, लेकिन मैं पहले से ही लिनक्स पर चला गया था और बीएसडी / मच दुनिया पर नज़र रखना बंद कर दिया था।

90 के दशक के उत्तरार्ध में एक अफवाह थी कि एवी ने एप्पल में अपने बच्चे पर काम करने के लिए लिनुस (जो पहले से ही इस बिंदु पर प्रसिद्ध था) को काम पर रखने की कोशिश की, लेकिन लिनस ने लिनक्स पर काम करना जारी रखा।

एक तरफ इतिहास, इस पृष्ठ का वर्णन उपयोगकर्ताभूमि और मच / यूनिक्स कर्नेल:

http://developer.apple.com/mac/library/documentation/Darwin/Conceptual/KernelProgramming/Architecture/Architecture.html#//apple_ref/doc/uid/TP30000905-CH1g-CACDAEDC

मुझे OSX के इतिहास का यह ग्राफिक मिला: वैकल्पिक शब्द


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

4
यदि आप वास्तव में कार्रवाई में एक सच्चा सूक्ष्म कर्नेल देखना चाहते हैं, तो QNX आज़माएं। QNX4 में, कर्नेल केवल 32 K-बाइट्स था, और केवल संदेश पासिंग, CPU शेड्यूलिंग और इंटररअप्स थे। QNX OS के अन्य सभी हिस्सों को सिस्टम को बंद या रिबूट किए बिना स्वैप किया जा सकता है, और यह बहुत मजबूत था। एक समय में QNX के लिए एक विंडो एमुलेटर था, जिसे विलो कहा जाता था, जो देशी विंडोज़ की तुलना में तेज़ी से विंडोज़ एप्लिकेशन चलाता था। जबकि इसका OS-X प्रति se से कोई लेना-देना नहीं है, QNX ने साबित किया कि सही किए जाने पर माइक्रोकर्नेल वास्तव में व्यवहार्य हैं।

20
छवि अब उपलब्ध नहीं है।
हरमन इंग्लैड्ससन

7
चित्र अभी भी उपलब्ध नहीं है
सिल्डोरिथ

स्टीव जॉब्स ने लिनुस को 2000 में नौकरी की पेशकश की। लिनुस ने इसके बारे में यहां बात की। wired.com/2012/03/mr-linux/all/1
एलिस्टेयर मैकमिलन

24

यूनिक्स की तरफ, OS X , NeXTSTEP का एक वंशज है , जो 4.3BSD से कर्नेल के कोर भागों के साथ माच से प्रतिस्थापित किया गया था

NeXT प्रोग्रामिंग API, जिसे अंततः OpenStep कहा जाने लगा , आज के OS X के लिए Coco API का आधार है। 1997 में Apple ने NeXT को खरीदने के बाद से दो API को बहुत अधिक बदल दिया है, हालाँकि ओपन सोर्स API- संगत कोको क्लोन उपलब्ध कराने के लिए प्रयास जारी हैं। ।

उस क्लासिक MacOS संगतता API में जोड़ें, जिसे कार्बन कहा जाता है, और आपके पास OS X प्रोग्रामिंग इंटरफ़ेस है।

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

FreeBSD कर्नेल विचार के लिए, यह क्रमबद्ध रूप से सही है, लेकिन यह इसे देखने का एक अपरिष्कृत तरीका है। मूल कर्नेल आया, जैसा कि मैंने कहा, नेक्सटी से, जिसने 4.3BSD और मच से अपना पहला कर्नेल इकट्ठा किया। इसका मतलब यह है कि FreeBSD और NeXTSTEP दोनों ने 4.3BSD के माध्यम से कुछ कोड साझा किए हैं।

मेम कि OS X FreeBSD पर आधारित है, के दो और हालिया स्रोत हैं। सबसे पहले, Apple ने बीएसडी दुनिया से नवाचारों को उधार लेना जारी रखा है, आमतौर पर FreeBSD से। दूसरा, Apple ने पहली सार्वजनिक OS X रिलीज़ करने के तुरंत बाद FreeBSD प्रोजेक्ट के सह-संस्थापक जॉर्डन हबर्ड को काम पर रखा । उन्होंने जून 2013 के माध्यम से Apple के लिए काम किया।


0

जब आपको बताया गया कि OSX में यूनिक्स का अपना स्वाद है तो वे तकनीकी रूप से सही हैं।

BSD + नेक्सटस्टेप + एपल ट्विक्स = डार्विन से तत्व

दूसरे तरीके से रखने के लिए। केवल हॉट फ्यूड / आइसक्रीम (BSD) में नट्स (NeXTStep) प्लस व्हिप क्रीम और एक चेरी (Apple Add-in और tweaks) = एक हॉट फ्यूज सॉन्डे (डार्विन) जोड़ने का आदेश

लेकिन बीएसडी वह आधार है जो दूसरों को जोड़ा गया था यही कारण है कि डार्विन में बीएसडी का बहुत काम होगा (यहां और यहां एक ट्वीक के साथ)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.