मानक सिंटैक्स और बीएसडी सिंटैक्स के बीच अंतर क्या है?


21

मैंने कई कमांडों को देखा है जो एक "बीएसडी सिंटैक्स" के साथ-साथ उनके मानक सिंटैक्स को स्वीकार करते हैं। psएक उदाहरण के लिए कमांड लें :

To see every process on the system using standard syntax:
      ps -e
      ps -ef
      ps -eF
      ps -ely

To see every process on the system using BSD syntax:
      ps ax
      ps axu

तो इन दोनों मार्गों में क्या अंतर है? सामान्य तौर पर जब वे बीएसडी सिंटैक्स में कहते हैं कि मुझे किन तत्वों को याद रखना चाहिए? क्या यह वाक्यविन्यास केवल उन आज्ञाओं के लिए है जो वे बीएसडी में भी हैं?


समय कार्यान्वित psऑप्टारग के माध्यम से सिस्टम के बीच ऐतिहासिक अंतर के बारे में पूछताछ करने के लिए एक रसातल के किनारे पर खड़ा होना है मैन वास नॉट माट टू नो।

जवाबों:


18

एमएस ऑफिस और लिब्रे ऑफिस के बीच क्या अंतर है? फ़ायरफ़ॉक्स और क्रोम के बीच?
वे मोटे तौर पर एक ही काम करते हैं, लेकिन वे अलग-अलग लोगों द्वारा थोड़े अलग उद्देश्य के साथ करते हैं।

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

ps(एक POSIX- निर्धारित आदेश) के मामले में कुछ तर्क दिए जाते हैं। इनमें ये बीएसडी वाले भी शामिल हैं। सभी POSIX- व्युत्पन्न कमांड के अपने मैन पेज हैं लेकिन उन्हें एक अलग इंस्टाल की जरूरत है। के लिए ps:

sudo apt-get install manpages-posix
man 1posix ps

तो बीएसडी हमारे ps(या इसके विपरीत) का उपयोग क्यों नहीं कर रहा है ?

  • हमारे psपैकेज ( procpsदेखें: dpkg -S $(which ps)) एक कांटा है की एक और procpsपैकेज । इन दोनों को जीपीएल लाइसेंस प्राप्त है। यह बीएसडी के लाइसेंस के साथ असंगत है, इसलिए वहां शामिल नहीं किया जा सकता है। ( हम बीएसडी को शामिल कर सकते हैं लेकिन इसकी आवश्यकता नहीं है)।
  • psकाफी कर्नेल विशिष्ट है। मुझे लगता है कि वे तकनीकी रूप से असंगत हैं।

अन्य अनुप्रयोगों के बारे में क्या?

POSIX अनुपालन के लिए अधिकांश आदेश उबंटू के coreutilsपैकेज से आते हैं । यह पैकेज GNU / Linux में GNU का प्रतिनिधित्व करता है और यह GPL लाइसेंस प्राप्त है। बीएसडी अपने बीएसडी-संगत-लाइसेंस प्राप्त संस्करणों को शिप करता है जो पोसिक्स का पालन करते हैं लेकिन जरूरी नहीं कि उनके जीएनयू समकक्षों के समान ही हो।

psवह एकमात्र POSIX कमांड नहीं है जो GNU नहीं है । इनके भार हैं।

जैसा कि मैं नेतृत्व करता हूं, वे क्यों होना चाहिए? वे एक बहुत, बहुत लंबे समय से अलग-अलग लोगों द्वारा कर रहे हैं। इसका संक्षिप्त उत्तर यहाँ है।


20

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

psआदेश दिनांक यूनिक्स के पहले रिलीज (यह संस्करण 1 में नहीं था, जल्द से जल्द आदमी पेज मैं ऑनलाइन प्राप्त कर सकते हैं से है में से एक से वापस संस्करण 5 1974 में (p.94))। उस समय, psबस कुछ ही विकल्प थे, उदाहरण के लिए, ps aकेवल उपयोगकर्ता के बजाय सभी प्रक्रियाओं ps xको प्रदर्शित करेगा , और बिना टर्मिनल से जुड़ी प्रक्रियाओं को प्रदर्शित करेगा। आप ध्यान दें कि विकल्प शुरू नहीं होते हैं -: उस समय, -विकल्पों के लिए उपयोग करने का सम्मेलन निकट-व्यवस्थित नहीं था जैसे कि यह आज है, यह ज्यादातर कमांड के लिए एक चीज थी जो फ़ाइल नामों को सामान्य तर्क के रूप में लेती थी।

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

जिस समय लिनक्स दृश्य में आया था, इसका उपयोग करने वाले लोगों को अक्सर एक यूनिक्स संस्करण या किसी अन्य का पूर्व अनुभव होता था। लिनक्स ने कभी-कभी सिस्टम वी तरह से, कभी-कभी बीएसडी तरीके से, कभी-कभी अपने तरीके से, या तो तकनीकी विचारों के आधार पर या किसी ने भी सुविधा को लागू करने के अनुभव और स्वाद के आधार पर चीजें कीं। लिनक्स की psकमान बीएसडी जैसे विकल्पों के साथ शुरू हुई, जैसे ps aeसभी प्रक्रियाओं को प्रदर्शित करने और लिस्टिंग में पर्यावरण चर शामिल करने के लिए। समय के साथ (1990 के दशक में, मैं वास्तव में जब याद नहीं), लिनक्स के के लेखकों psलोगों के लिए जोड़ा विकल्प जो आज या तो सिस्टम वी तो करने के लिए इस्तेमाल किया गया ps axया ps -eलिनक्स के तहत सभी प्रक्रियाओं सूची जाएगा, और वहाँ भी एक वातावरण चर रहा है ( PS_PERSONALITY) बनाना हैps पुरानी स्क्रिप्ट और सेट की आदतों वाले लोगों की खातिर विभिन्न यूनिक्स पुराने यूनिक्स वेरिएंट की तरह व्यवहार करें।

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

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

सामान्यतया, "बीएसडी" बनाम "सिस्टम वी" का कोई तकनीकी निहितार्थ नहीं है। यह इतिहास को संदर्भित करता है: "बीएसडी" जो कुछ भी बीएसडी 1980 के दशक में बनाया गया था और उसके स्थान पर, "सिस्टम वी" जो भी एटी एंड टी और उनके साथी (विशेष रूप से सूर्य) बनाया गया है। "POSIX" IEEE मानकीकरण समिति द्वारा बनाई गई पसंद है।


2

'मानक' सिंटैक्स जिसका आप जिक्र कर रहे हैं वह वास्तव में GNU ऑपरेटिंग सिस्टम है जिसे 1980 के दशक में विकसित किया गया था। GNU- आधारित उपयोगिताओं और दर्शन को सबसे आधुनिक दिन लिनक्स वितरण (उबंटू सहित) विकसित करने के लिए लिनक्स कर्नेल के साथ जोड़ा गया था।

BSD ऑपरेटिंग सिस्टम को 1970 के दशक के अंत में विकसित किया गया था, जो GNU से स्वतंत्र था, और बाद में FreeBSD या OpenBSD जैसे आधुनिक दिनों के संस्करणों में बदल गया।

GNU और BSD दोनों यूनिक्स से प्रेरित हैं और उनके अलग-अलग दर्शन, वाक्य-विन्यास आदि हैं।


0

उबंटू का कोर्यूटिल्स GNU- अनुरक्षित अनुप्रयोगों का एक संग्रह है जो सामान की एक पूरी लोड को बढ़ाता है (apt-cache show coreutils को देखें)। बीएसडी के अपने संस्करण हैं (जीएनयू बीएसडी लाइसेंस के अनुकूल नहीं है)।

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