क्या सभी यूनिक्स कमांड लिनक्स में फिर से लिखे गए थे?


44

मैं जानना चाहूंगा कि कौन से कमांड लिनक्स के लिए फिर से लिखे गए थे और जिन्हें यूनिक्स से बरकरार रखा गया था?


यह काफी अच्छा पारिवारिक पेड़ है अपलोड .wikimedia.org
मार्क स्टीवर्ट

जवाबों:


93

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

सबसे पहले, UNIX था। असल में, उन दिनों में, UNIX का मतलब था AT & T UNIX सिस्टम , जो पहले आया था। लेकिन AT & T UNIX नॉन-फ्री हो गया, इसलिए रिचर्ड स्टेलमैन ने यूनिक्स सिस्टम लिखने के लिए GNU प्रोजेक्ट शुरू किया जो कि फ्री था । इसलिए गन्नू का नाम यूनिक्स नहीं है , संक्षिप्त रूप से जीएनयू है। जीएनयू के लिए योजनाएं 1983 में सार्वजनिक की गईं और 1984 में विकास शुरू हुआ

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

उस समय, GNU अभी भी एक महत्वपूर्ण घटक गायब था: एक ऑपरेटिंग सिस्टम कर्नेल , जो सब कुछ एक वास्तविक कंप्यूटर पर एक साथ काम करने की अनुमति देता है न कि कुछ अन्य OS चला रहा है। 1991 में, लिनस टॉर्वाल्ड्स ने एक खिलौना परियोजना पर काम करना शुरू किया, जिसे अंततः लिनक्स के रूप में जाना जाने लगा। यह मूल रूप से तत्कालीन नए 32-बिट इंटेल 80386 सीपीयू के बारे में जानने के लिए एक स्कूल प्रोजेक्ट था , और यह बेहद सरल था, लेकिन अंततः वास्तव में प्रयोग करने योग्य ऑपरेटिंग सिस्टम कर्नेल में रूपांतरित होना शुरू हो गया। लेकिन इसमें कोई भी उपयोगकर्ता सॉफ्टवेयर नहीं था; लिनक्स अपने आप में कोई शेल नहीं प्रदान करता है, कर्नेल इनिशियलाइज़ेशन से परे कोई सिस्टम स्टार्टअप सुविधा नहीं, कोई टेक्स्ट एडिटर नहीं, कोई ग्राफिकल इंटरफ़ेस नहीं , कुछ भी नहीं। कर्नेल एक कार इंजन की तरह है; एक उपयोगी कार बनाने के लिए आवश्यक है, लेकिन अपने दम पर बेकार (एक उपयोगी कार के लिए, आपको पहियों, ट्रांसमिशन, स्टीयरिंग जैसी चीजें चाहिए, कहीं ड्राइवर के बैठने के लिए, ईंधन टैंक या ऊर्जा के अन्य स्टोर, आदि के लिए)। लिनक्स कर्नेल को अंततः GNU जनरल पब्लिक लाइसेंस के तहत वितरित किया गया था, जो कि GNU सॉफ्टवेयर के समान है

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

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

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

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

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

अंत में, एक प्रयोग करने योग्य GNU सिस्टम गैर-GNU कोड चला सकता है, और एक गैर-GNU सिस्टम GNU कोड चला सकता है, लेकिन GNU उपयोगिताओं में गैर-GNU कोड नहीं होता है।


1
पिछली बार जब मैंने FreeBSD का उपयोग किया था (वर्षों पहले) इसमें कई GNU टूल्स का उपयोग नहीं किया गया था, लेकिन इसका अपना सेट - जैसे BSD GNU के बजाय बनाते हैं।
reinierpost

5
@reinierpost OSX बहुत समान है - एक सादे इंस्टॉलेशन में ज्यादातर बीएसडी संस्करण होते हैं, लेकिन जीएनयू कोरुटिल्स और लाइक आसानी से मैकपोर्ट्स और अन्य के माध्यम से उपलब्ध होते हैं । XCode एलएलवीएम का उपयोग करता है, लेकिन यह भी जीसीसी। यह जटिल है :)
मट्टडामो

1
@reinierpost मेकअप तो बदलने के लिए बुरा नहीं है। सी संकलक एक छोटे से अधिक शामिल है। कम से कम FreeBSD 8.0 जीसीसी को अपने डिफ़ॉल्ट संकलक के रूप में उपयोग करता है ; विशेष रूप से संस्करण 4.2.1। बेस सिस्टम में नए संस्करणों के एकीकरण को रोकने के लिए संदर्भित "लाइसेंसिंग मुद्दे" संभवतः GPL2 + से GPL3 + के स्विच के बारे में हैं, लेकिन मुझे यकीन नहीं है।
बजे एक CVn

3
@ hunter2 ऐसा लगता है कि इसकी जरूरत नहीं थी, इस तरह अब तक वोटों की गिनती के आधार पर। ;) मैं या तो एक पूर्ण इतिहास लिखने के लिए तैयार नहीं था। लिनक्स के स्व-होस्टिंग बनने से पहले मिनिक्स ने लिनक्स विकास और बूटस्ट्रैप प्रणाली के रूप में एक महत्वपूर्ण भूमिका निभाई थी, लेकिन उदाहरण के लिए लिनक्स, जीएनयू और मूल यूनिक्स के बीच के संबंध पर बहुत कम प्रभाव पड़ा है, जो कि सवाल के बारे में अधिक है।
बजे एक CVn

3
@ hunter2 यदि हम उस मार्ग से नीचे जाने वाले थे, तो यह बिल्कुल सच है कि UNIX निश्चित रूप से पहले भी नहीं आया था। लेकिन सवाल का जवाब देने के प्रयोजनों के लिए, यह एक अच्छा पर्याप्त सन्निकटन लग रहा था। एकल वाक्य उत्तर कुछ ऐसा होता, जैसे "मूल रूप से सब कुछ UNIX TeX और X को छोड़कर जो आपको एक लिनक्स सिस्टम पर मिलता है, उसे GNU के हिस्से के रूप में फिर से लिखा गया था" लेकिन मुझे लगता है कि अतिरिक्त संदर्भ मूल्य जोड़ता है, भले ही यह उत्तर बिल्कुल लंबे समय तक बना हो। आवश्यक - और उत्तर अभी भी हर विवरण को कवर करने से बहुत कम आता है।
एक CVn
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.