"POSIX" का अर्थ क्या है?


898

POSIX क्या है? मैंने विकिपीडिया लेख पढ़ा है और जब भी मेरा कार्यकाल होता है मैं इसे हर बार पढ़ता हूं। तथ्य यह है कि मैं वास्तव में कभी नहीं समझ पाया कि यह क्या है।

क्या कोई मुझे "POSIX की आवश्यकता" भी समझाकर मुझे समझा सकता है?



त्वरित परिभाषा संदर्भ - whatis.techtarget.com/definition/...
parasrish

जवाबों:


622

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


34
नहीं, मानक API स्तर पर है - प्रत्येक निर्दिष्ट कॉल को कर्नेल में या किसी अन्य कॉल के संदर्भ में C लाइब्रेरी में लागू किया जा सकता है, और यह Posix (और आपके कार्यक्रमों के लिए भी ;-)) के लिए ठीक है। MacOSX Posix के अनुरूप है, devworld.apple.com/leopard/overview/osfoundations.html देखें । Windows के लिए, en.wikipedia.org/wiki/POSIX#POSIX_for_Windows देखें : वर्तमान में Posix अनुपालन केवल एंटरप्राइज और अल्टीमेट संस्करणों में शामिल है (सस्ते वाले में नहीं! -), हालांकि आप partways / Cygwin, en.wikipedia प्राप्त कर सकते हैं । org / विकी / सिगविन
एलेक्स मार्टेली 1

23
आपकी टिप्पणी त्रुटिपूर्ण है, क्योंकि डेस्कटॉप पर Microsoft की बाजार हिस्सेदारी कम से कम, यह "दुनिया क्या करती है"।
जेड स्मिथ

29
मुझे लगता है कि पंजे का मतलब यह है कि Microsoft अन्य प्लेटफार्मों के साथ इंटरऑपरेबल होने में बहुत प्रयास नहीं करता है।
मियादी 2

12
@deltaray गले लगाओ, विस्तार करो, और बुझाओ । MS java (अमानक java.util। Java.security, java.io, java.lang, और java.awt), Internet Explorer (लगभग कहा गया 'विस्फोट'), और .NET (हाँ, मुझे पता है कि उन्होंने आंशिक रूप से जारी किया है .NET के लिए स्रोत, लेकिन यह लाइसेंस प्रतिबंधक है और यह अभी तक एक लिनक्स पोर्ट नहीं है। मोनो अपूर्ण है)। इसके अलावा, पेटेंट का बहिष्कार करें । आप बिल्कुल सही हैं।
व्याट8740

25
Microsoft's market share on desktops, at least, makes it "what the world follows"- दिलचस्प है कि 2009 की इस टिप्पणी के बाद से चीजें कितनी बदल गई हैं :)
GMA

513

POSIX 7 सबसे महत्वपूर्ण चीजें परिभाषित करता है

  1. C एपीआई

    एएनएसआई सी का विस्तार बहुत कुछ इस तरह से है:

    • अधिक फ़ाइल संचालन: mkdir, dirname, symlink, readlink, link(hardlinks), poll(), stat, sync,nftw()
    • संसाधित करने और धागे: fork, execl, wait, pipe, semaphors sem_*, साझा स्मृति ( shm_*), kill, समय निर्धारण मानकों ( nice, sched_*), sleep, mkfifo,setpgid()
    • नेटवर्किंग: socket()
    • स्मृति प्रबंधन: mmap, mlock, mprotect, madvise,brk()
    • उपयोगिताओं: नियमित अभिव्यक्ति ( reg*)

    वे एपीआई भी अंतर्निहित प्रणाली अवधारणाओं को निर्धारित करते हैं जिन पर वे निर्भर करते हैं, उदाहरण के forkलिए एक प्रक्रिया की अवधारणा की आवश्यकता होती है।

    कई लिनक्स सिस्टम कॉल एक विशिष्ट POSIX C API फ़ंक्शन को कार्यान्वित करने और Linux के अनुरूप बनाने के लिए sys_writeमौजूद हैं sys_read, उदाहरण के लिए , ... उनमें से कई syscalls में हालांकि Linux- विशिष्ट एक्सटेंशन भी हैं।

    प्रमुख लिनक्स डेस्कटॉप कार्यान्वयन: glibc, जो कई मामलों में सिर्फ सिस्टम कॉल के लिए एक उथला आवरण प्रदान करता है।

  2. सीएलआई उपयोगिताओं

    उदाहरण के लिए: cd, ls, echo, ...

    कई उपयोगिताओं एक संबंधित सी एपीआई समारोह के लिए प्रत्यक्ष खोल सामने के छोर हैं, उदाहरण के लिए mkdir

    मेजर लिनक्स डेस्कटॉप कार्यान्वयन: छोटे लोगों के लिए GNU coreutils, बड़े लोगों के लिए अलग जीएनयू परियोजनाओं: sed, grep, awk, ... कुछ CLI उपयोगिताओं बैश द्वारा कार्यान्वित किया जाता बनाया-इन के रूप में

  3. शैल भाषा

    उदाहरण के लिए, a=b; echo "$a"

    प्रमुख लिनक्स डेस्कटॉप कार्यान्वयन: जीएनयू बैश

  4. पर्यावरण चर

    जैसे: HOME, PATH

    PATH खोज शब्दार्थ निर्दिष्ट हैं , जिसमें स्लैश PATHखोज को कैसे रोकते हैं

  5. कार्यक्रम से बाहर निकलने की स्थिति

    एएनएसआई सी कहती है 0या EXIT_SUCCESSसफलता के लिए, EXIT_FAILUREविफलता के लिए, और बाकी क्रियान्वयन को परिभाषित करता है।

    POSIX जोड़ता है:

    • 126: कमांड मिली, लेकिन निष्पादन योग्य नहीं है।

    • 127: आदेश नहीं मिला।

    • > 128: एक संकेत द्वारा समाप्त।

      लेकिन POSIX 128 + SIGNAL_IDBash द्वारा उपयोग किए गए नियम को निर्दिष्ट करने के लिए प्रतीत नहीं होता है : /unix/99112/default-exit-code-when-process-is-terminated

  6. नियमित अभिव्यक्ति

    दो प्रकार हैं: BRE (बेसिक) और ERE (विस्तारित)। बुनियादी को हटा दिया गया है और केवल एपीआई को तोड़ने के लिए नहीं रखा गया है।

    जिन्हें C API फ़ंक्शंस द्वारा कार्यान्वित किया जाता है, और CLI उपयोगिताओं में उपयोग किया जाता है, उदाहरण के लिए grep, डिफ़ॉल्ट रूप से BRE और EREs को स्वीकार करता है -E

    उदाहरण के लिए: echo 'a.1' | grep -E 'a.[[:digit:]]'

    प्रमुख लिनक्स कार्यान्वयन: glibc regex.h के तहत कार्यों को कार्यान्वित करता है जो grepबैकएंड के रूप में उपयोग कर सकते हैं।

  7. निर्देशिका संरचना

    उदाहरण के लिए: /dev/null,/tmp

    लिनक्स FHS बहुत POSIX का विस्तार करता है।

  8. फ़ाइल नाम

    • / पथ विभाजक है
    • NUL उपयोग नहीं किया जा सकता
    • .है cwd, ..माता-पिता
    • पोर्टेबल फ़ाइल नाम
      • पूर्ण पथ के लिए अधिकतम 14 चार्ट और 256 पर उपयोग करें
      • केवल शामिल हो सकते हैं: a-zA-Z0-9._-

    यह भी देखें: फाइलसिस्टम के लिए पॉज़िक्स अनुपालन क्या है?

  9. कमांड लाइन उपयोगिता एपीआई सम्मेलनों

    अनिवार्य नहीं, POSIX द्वारा उपयोग किया जाता है, लेकिन लगभग कहीं नहीं, विशेष रूप से GNU में नहीं। लेकिन सच है, यह बहुत अधिक प्रतिबंधात्मक है, उदाहरण के लिए एकल अक्षर के झंडे (केवल -a), कोई डबल हाइफ़न लंबे संस्करण (जैसे --all) नहीं।

    कुछ व्यापक रूप से इस्तेमाल किए जाने वाले सम्मेलन:

    • - जहां फ़ाइल अपेक्षित है स्टड का अर्थ है
    • --झंडे को समाप्त करता है, उदाहरण ls -- -lके लिए एक निर्देशिका की सूची-l

    यह भी देखें: क्या लिनक्स कमांड लाइन स्विच और तर्कों के लिए मानक हैं?

  10. "POSIX ACLs" (एक्सेस कंट्रोल लिस्ट), जैसे कि बैकएंड के लिए उपयोग किया जाता है setfacl

    यह वापस ले लिया गया है, लेकिन यह कई OSes में लागू किया गया था, सहित के साथ लिनक्स मेंsetxattr

POSIX के अनुरूप कौन है?

कई सिस्टम POSIX को बारीकी से फॉलो करते हैं, लेकिन कुछ वास्तव में ओपन ग्रुप द्वारा प्रमाणित होते हैं जो मानक बनाए रखता है। उल्लेखनीय प्रमाणित लोगों में शामिल हैं:

  • OS X (Apple) X 10 और UNIX दोनों के लिए है। क्या पहला Apple POSIX सिस्टम था, जिसे 2001 में रिलीज़ किया गया था। यह भी देखें: OSX एक POSIX OS है?
  • AIX (IBM)
  • HP-UX (HP)
  • सोलारिस (ओरेकल)

अधिकांश लिनक्स डिस्ट्रोस बहुत आज्ञाकारी हैं, लेकिन प्रमाणित नहीं हैं क्योंकि वे अनुपालन जांच का भुगतान नहीं करना चाहते हैं। इन्सपुर के K-UX और Huawei के EulerOS दो प्रमाणित उदाहरण हैं।

प्रमाणित सिस्टम की आधिकारिक सूची यहां मिलेगी: https://www.opengroup.org/openbrand/register/ और विकी पेज पर भी ।

खिड़कियाँ

विंडोज ने अपने कुछ पेशेवर वितरणों पर POSIX को लागू किया।

चूंकि यह एक वैकल्पिक सुविधा थी, इसलिए प्रोग्रामर अधिकांश अंतिम उपयोगकर्ता अनुप्रयोगों के लिए इस पर भरोसा नहीं कर सकते थे।

Windows 8 में समर्थन को हटा दिया गया था:

2016 में एक नया आधिकारिक लिनक्स जैसा एपीआई "लिनक्स के लिए विंडोज सबसिस्टम" घोषित किया गया था। इसमें Linux सिस्टम कॉल, ELF रनिंग, /procफाइल सिस्टम के कुछ हिस्सों , Bash, GCC, (TODO संभावना glibc?), apt-getऔर अधिक शामिल हैं: https://channel9.msdn.com/Events/Build/2016/P488 मेरा मानना ​​है कि यह विंडोज को बहुत चलाने की अनुमति देगा, यदि सभी नहीं, तो POSIX का। हालांकि, यह अंतिम उपयोगकर्ताओं के बजाय डेवलपर्स / तैनाती पर केंद्रित है। विशेष रूप से, विंडोज GUI तक पहुंच की अनुमति देने की कोई योजना नहीं थी।

आधिकारिक Microsoft POSIX संगतता का ऐतिहासिक अवलोकन: http://brianreiter.org/2010/08/24/the-sad-history-of-the-microsoft-posix-subsystem/

Cygwin एक प्रसिद्ध GPL थर्ड-पार्टी प्रोजेक्ट है, जिसके लिए विंडोज के लिए "पर्याप्त POSIX API कार्यक्षमता प्रदान करता है", लेकिन इसके लिए आवश्यक है कि आप "अपने एप्लिकेशन को स्रोत से पुनर्निर्माण करें यदि आप चाहते हैं कि वह विंडोज पर चले"। MSYS2 एक संबंधित परियोजना है जो Cygwin के शीर्ष पर अधिक कार्यक्षमता जोड़ने के लिए लगता है।

एंड्रॉयड

Android की अपनी C लाइब्रेरी (Bionic) है जो POSIX को Android O के रूप में पूरी तरह से समर्थन नहीं करती है: क्या Android POSIX- संगत है?

बोनस स्तर

लिनक्स स्टैंडर्ड बेस आगे POSIX फैली हुई है।

गैर-फ़्रेम इंडेक्स का उपयोग करें, वे बहुत अधिक पठनीय और खोज योग्य हैं: http://pubs.opengroup.org/onlinepubs/9699919799/nfindex.html

Grepping के लिए HTML पृष्ठों का पूर्ण ज़िपित संस्करण प्राप्त करें: POSIX C API फ़ंक्शंस की सूची कहाँ है?


17
शानदार उदाहरण, यदि आपके पास स्वीकृत उत्तर की तरह एक परिभाषा है तो यह शीर्ष उत्तर होगा।
मार्क

8
@Marc धन्यवाद! मैं अन्य उत्तरों में कही गई बातों को दोहराने की कोशिश नहीं करता क्योंकि लोग शायद पहले ही पढ़ चुके हैं और नकल से बचने के लिए ;-) यह एक ज्ञात दुविधा है: meta.stackoverflow.com/questions/305645/…
Ciro Santilli 冠状 病毒 what what法轮功 法轮功

1
वास्तव में अच्छा विचार यह बताता है कि POSIX क्या कवर करता है (और क्या नहीं)।
सेलेस्क

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

पूर्णांक प्रकारों के बारे में कुछ Posix गारंटियां जोड़ना भी अच्छा हो सकता है। मुझे नहीं पता कि वास्तव में क्या है और निर्दिष्ट नहीं है, लेकिन मुझे पता है कि न्यूनतम पॉज़िक्स में uint8_t, uint16_t, uint32_t और इसी हस्ताक्षरित प्रकारों के अस्तित्व की आवश्यकता होती है। मुझे यकीन नहीं है कि अगर यह गारंटी देता है कि "int" जैसे प्रकार के दो-दो आकार हैं और एक सिस्टम कुछ बुरा नहीं करेगा जैसे कि "int" 32 मान बिट्स, 1 साइन बिट और 31 पैडिंग बिट्स के साथ है [तो एक uint32_t वेतन वृद्धि UB उपज सकता है]; यदि आपके पास मानक काम है, तो यह कहना अच्छा होगा कि उस संबंध में क्या गारंटी है और इसकी गारंटी नहीं है।
सुपरकैट

74

POSIX है:

POSIX (उच्चारण / ˈpɒz /ks /) या "पोर्टेबल ऑपरेटिंग सिस्टम इंटरफ़ेस [यूनिक्स के लिए]" 1 आईईईई द्वारा निर्दिष्ट संबंधित मानकों के एक परिवार का नाम है, जो अनुप्रयोग प्रोग्रामिंग इंटरफ़ेस (एपीआई) को परिभाषित करने के लिए, सॉफ्टवेयर के लिए शेल और उपयोगिताओं इंटरफेस के साथ है। यूनिक्स ऑपरेटिंग सिस्टम के वेरिएंट के साथ संगत, हालांकि मानक किसी भी ऑपरेटिंग सिस्टम पर लागू हो सकता है।

मूल रूप से यह एक (ज्यादातर) आम एपीआई और उपयोगिताओं द्वारा UNIX के विभिन्न स्वादों के विकास और उपयोग के दर्द को कम करने के उपायों का एक सेट था। सीमित POSIX अनुपालन भी विंडोज के विभिन्न संस्करणों के लिए बढ़ाया गया।


1. आपका मतलब है कि POSIX का कहना है कि सभी * nix OSes (गुठली) को सिस्टम कॉल के इन सेटों को कम से कम करना चाहिए। सही? 2. क्या WINDOWS / MAC POSIX का अनुसरण करता है? If / Ifnot WINDOWS (95,98,2000, xp, विस्टा, 7) कुछ सामान्य मानक (अपने स्वयं के स्वामित्व हो सकता है) का अनुसरण कर रहा है? दूसरे शब्दों में, Microsoft दुनिया में POSIX ==?
पंजे

1
मूल रूप से यह "" विकास के दर्द को कम करने के उपायों का एक सेट था। था ??
पंजे 1

5
मैंने सवाल किया कि शब्द का उपयोग भी था , लेकिन यह बहस का मुद्दा है। आपके सवालों के जवाब देने के लिए: (1) नहीं, POSIX में कर्नेल के साथ क्या करना है, यह बताता है कि इसे कैसे काम करना चाहिए; (2) OS X BSD है और काफी POSIX- अनुरूप है, लेकिन ग्रे क्षेत्र हैं। Windows 2008 POSIX शिकायत के सबसे करीब है; Microsoft दुनिया में POSIX का कोई समकक्ष नहीं है।
जेड स्मिथ

1
@ क्लॉज़: क्लेट्स के उत्तर के तहत क्षेत्र को गंदा करने का मतलब नहीं है ... लेकिन। मैंने अपने जवाब में POSIX.1-2008 को लिंक किया ... वहीं।
जेड स्मिथ

3
@ जेड स्मिथ, मैक ओएस एक्स अनुपालन के संदर्भ में कोई ग्रे क्षेत्र नहीं हैं; मैक ओएस एक्स सिंगल यूनिक्स स्पेसिफिकेशन v3 के साथ प्रमाणित है, जिसका एक मानक POSIX एक सबसेट है।
माइकल आरोन सफ़्यान

43

मुझे कलीसिया को "अनौपचारिक" स्पष्टीकरण देने दें।

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

चूंकि POSIX को पोस्ट फैक्टो लिखा गया था ... प्रतिस्पर्धा प्रणालियों के समान समान सेट का वर्णन करने के लिए ... यह इस तरह से नहीं लिखा गया था जिसे लागू किया जा सके।

इसलिए, उदाहरण के लिए, Microsoft की NT को कुछ बोलियों के लिए अर्हता प्राप्त करने के लिए पर्याप्त POSIX अनुरूपता के साथ लिखा गया था ... भले ही POSIX उपतंत्र अनिवार्य रूप से व्यावहारिक पोर्टेबिलिटी और UNIX सिस्टम के साथ संगतता के मामले में बेकार था।

UNIX के लिए कई अन्य मानक दशकों में लिखे गए हैं। Spec1170 (ग्यारह सौ और सत्तर फंक्शन कॉल निर्दिष्ट किया गया है, जो कि मज़बूती से लागू किया जाना था) और SUS (एकल यूनिक्स विशिष्टता) के विभिन्न अवतार।

अधिकांश भाग के लिए ये "मानक" किसी भी व्यावहारिक तकनीकी अनुप्रयोग के लिए अपर्याप्त हैं। वे तर्क, कानूनी तकरार और अन्य दुविधापूर्ण कारणों के लिए मौजूद हैं।


1
फिर कैसे लिनक्स अधिकांश POSIX को लागू करता है, जिसमें कई एक्सटेंशन शामिल हैं?
नन्हलज

8
@njjalj: लिनक्स UNIX जैसे कार्यों के व्यावहारिक सेट को लागू करने के लिए लिखा गया था। POSIX के अनुरूप होने पर ऐसा करना सही अर्थ है। हालाँकि, मेरा कहना यह था कि POSIX को नए ऑपरेटिंग सिस्टम को लागू करने के लिए एक विनिर्देश के रूप में नहीं बनाया गया था ... यह अमेरिकी सरकारी खरीद कर्मचारियों के लिए एक तरह से उन लोगों के बीच अंतर करने के लिए बनाया गया था, जो उन बोलियों में से कुछ श्रेणियों के लिए योग्य थे जो नहीं करेंगे। । लिनक्स में ध्यान एक तरह से प्रयोग करने योग्य सुविधाओं को प्रदान करने के लिए है जो उचित संगत, मजबूत और प्रदर्शन योग्य है। POSIX रास्ते में बहुत दुर्घटना नहीं है।
जिम डेनिस

3
आप का दावा करने के लिए सरल है कि POSIX पोस्ट वास्तविक लिखा गया था! यह एक अच्छे मानकों के विकास संगठन (SDO) की पहचान है, जहां कम से कम एक अनुरूप कार्यान्वयन मौजूद होने तक आम सहमति नहीं बन पाती है।
fpmurphy

4
@fpmurphy: एक या दो अंतर-कार्यान्वित कार्यान्वयन के आधार पर एक पूर्व पोस्ट फैक्ट्री विनिर्देश बनाना IETF के लिए आदर्श है ... नेटवर्किंग प्रोटोकॉल मानक जो जानबूझकर ढीले कपलिंग पर बातचीत करते हैं। यह ओएस मानकीकरण के लिए एक सफल प्रक्रिया नहीं रही है। प्रोग्राम और सिस्टम (कर्नेल या माइक्रो कर्नेल और उसके सबसिस्टम सर्वर) के बीच एपीआई नेटवर्क पर क्लाइंट और सर्वर या साथियों की तुलना में कहीं अधिक कसकर युग्मित है। (मैं यह असंभव नहीं कह रहा हूं; केवल यह इंगित करना कि मतभेद हैं और इतिहास ने बाद वाले को आशाजनक नहीं दिखाया है)।
जिम डेनिस

2
1985 में POSIX को वापस लेने के लिए IEEE द्वारा किए गए प्रयासों को अमेरिकी सरकार द्वारा प्रेरित किया गया था। कुछ शोध करो, एक इतिहास की किताब या कुछ पढ़ो।
रिस्टीक्स

29

POSIX ऑपरेटिंग सिस्टम के लिए एक मानक है जिसे क्रॉस-प्लेटफ़ॉर्म सॉफ़्टवेयर लिखना आसान बनाना था। यह यूनिक्स की दुनिया में विशेष रूप से बड़ी बात है।


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

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

6
उन्हें नहीं लगता कि वे "हर किसी से बेहतर हैं"; वे जानते हैं कि वे बाकी सब से बड़े हैं । यही कारण है कि बाजार में हिस्सेदारी खोने के साथ ही वे अपनी धुन बदल देंगे। यह उनके लिए अद्वितीय नहीं है, उदाहरण के लिए, नेटस्केप ने वेब मानकों के बारे में बहुत अधिक देखभाल करना शुरू किया जब वे अब सबसे लोकप्रिय नहीं थे।
केन

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

2
@ और यही कारण है कि हमें Google के क्रोमियम को बहुत कमतर नहीं होने देना चाहिए।
व्याट8740

29

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

चूंकि हर यूनिक्स चीजों को थोड़ा अलग तरीके से करता है - सोलारिस, मैक ओएस एक्स, आईआरआईएक्स, बीएसडी, और लिनक्स सभी में उनकी क्विरक्स हैं - पीओएसआईएक्स उद्योग में उन लोगों के लिए विशेष रूप से उपयोगी है क्योंकि यह एक मानक वातावरण को संचालित करने के लिए परिभाषित करता है। उदाहरण के लिए। C लाइब्रेरी में अधिकांश कार्य POSIX पर आधारित हैं; इसलिए, एक प्रोग्रामर अपने आवेदन में एक का उपयोग कर सकता है और यह उम्मीद कर सकता है कि वह अधिकांश यूनियनों के साथ ऐसा ही व्यवहार करे।

हालांकि, यूनिक्स के विचलन क्षेत्र आमतौर पर मानक लोगों के बजाय फोकस होते हैं।

POSIX के बारे में महान बात यह है कि आप इसे स्वयं पढ़ने के लिए स्वागत करते हैं:

ओपन ग्रुप बेस स्पेसिफिकेशन्स अंक 7

अंक 7 को POSIX.1-2008 के रूप में जाना जाता है, और वहाँ नई चीजें हैं - हालांकि, POSIX.1 के लिए Google-फू और इस तरह से आप यूनिक्स के पीछे के पूरे इतिहास को देख पाएंगे।


2
मुझे लगता है कि आप "UNIX" शब्द का गलत तरीके से उपयोग कर रहे हैं। UNIX अब एकल UNIX विशिष्टता को संदर्भित करता है, और कोई भी UNIX ऑपरेटिंग सिस्टम एक ऑपरेटिंग सिस्टम है जो एकल UNIX विशिष्टता के अनुरूप है। शायद आप UNIX की तरह मतलब है?
बजे माइकल आरोन सफायन

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

1
@ जेड स्मिथ, एक तरफ की मजबूत राय, पोस्ट का निहितार्थ यह है कि कुछ ऑपरेटिंग सिस्टम जो UNIX के अनुरूप हैं प्रमाणित नहीं हैं ... इसलिए, मुझे लगता है कि यह कहना उचित है कि यह भ्रामक है। इसके अलावा, विंडोज के संबंध में, जब तक ऐसे संस्करण होते हैं जो आज्ञाकारी नहीं होते हैं, डेवलपर्स विंडोज प्लेटफॉर्म को लक्षित करते समय POSIX पर भरोसा नहीं कर सकते हैं, जिससे POSIX होने के पूरे उद्देश्य की उपेक्षा होती है।
माइकल आरोन सफायन

यूनिक्स एक ऑपरेटिंग सिस्टम है। UNIX एक ब्रांड है जिसे ओपन ग्रुप द्वारा रखा गया है। सिस्टम जो UNIX95, UNIX98 या UNIX03 ब्रांडिंग प्रोफाइल में प्रमाणित हैं, जिनमें से एकल UNIX विनिर्देश के किसी विशेष संस्करण के अनुरूप ब्रांडिंग आवश्यकताओं के बहुमत का उपयोग करता है, UNIX शब्द का उपयोग कर सकता है।
fpmurphy

6

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

पुस्तक से: ए प्रैक्टिकल गाइड टू लिनक्स


4

Posix एक OS के रूप में अधिक है, यह एक "OS मानक" है। आप इसे एक काल्पनिक ओएस के रूप में कल्पना कर सकते हैं, जो वास्तव में मौजूद नहीं है, लेकिन इसका एक दस्तावेज है। ये कागजात "पॉज़िक्स मानक" हैं, जिन्हें आईईईई द्वारा परिभाषित किया गया है, जो यूएसए का बड़ा मानक संगठन है। इस विनिर्देशन को लागू करने वाले OS "Posix- अनुरूप" हैं।

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

एक ओएस के लिए इनाम पूरी तरह से पॉज़िक्स कंप्लेंट हो रहा है, यह गारंटी है कि यह सभी पॉज़िक्स-कंप्लेंट एप्लिकेशन को मूल रूप से संकलित और चलाएगा।

लिनक्स सबसे प्रसिद्ध है। OSX, Solaris, NetBSD और Windows NT यहां भी खेलते हैं। Free- और OpenBSD केवल "लगभग" पॉज़िक्स-आज्ञाकारी हैं। इस सरकारी विनियमन से बचने के लिए WinNT का सकारात्मक-अनुपालन केवल एक छद्म समाधान है।


3

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

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


3

POSIX पोर्टेबल ऑपरेटिंग सिस्टम इंटरफ़ेस के लिए खड़ा है, और एक IEEE मानक है जो अनुप्रयोग पोर्टेबिलिटी को सुविधाजनक बनाने के लिए डिज़ाइन किया गया है। POSIX विक्रेताओं का एक संघ द्वारा UNIX का एकल मानक संस्करण बनाने का एक प्रयास है।


0

POSIX एक ऑपरेटिंग सिस्टम या प्रोग्राम के लिए मानकों के सेट को परिभाषित करता है। लक्ष्य नया सॉफ्टवेयर लिखना है जो UNIX जैसी प्रणालियों के साथ संगत है।

उदाहरण के लिए लिनक्स पर चलने वाला एक प्रोग्राम भी संकलित किया जा सकता है और अन्य UNIX- जैसे सिस्टम जैसे Solaris, HP-UX और AIX आदि पर चलाया जा सकता है।

सबसे लोकप्रिय उदाहरण हैं GNU Bashजो 100% POSIX अनुपालन और gawkउपयोगिता है।


0

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

मेरी गलती को इंगित करने के लिए जेड स्मिथ और टिंकर्टिम को धन्यवाद - मेरा बुरा !!! :(


फ़ाइल सिस्टम मानकों को POSIX के बाहर संभाला जाता है।
जेड स्मिथ

आप POSIX को LSB (Linux Standard Base) जैसी चीजों से भ्रमित कर रहे हैं। दो (ज्यादातर) POSIX आज्ञाकारी ऑपरेटिंग सिस्टम FBSD और लिनक्स होंगे, फिर भी दोनों में अलग-अलग फ़ाइल सिस्टम संगठन और डिफ़ॉल्ट लाइब्रेरी इंस्टॉलेशन हैं।
टिम पोस्ट

0

एक विनिर्देश (खाका) कैसे देर से यूनिक्स ओएस के साथ एक ओएस संगत बनाने के लिए (भगवान उसे आशीर्वाद दे सकता है!)। यही कारण है कि macOS और GNU / Linux में बहुत समान टर्मिनल कमांड लाइन, GUI, लाइब्रेरी इत्यादि हैं, क्योंकि इन दोनों को POSIX ब्लूप्रिंट के अनुसार डिजाइन किया गया था।

POSIX इंजीनियर और प्रोग्रामर को यह नहीं बताता है कि कोड कैसे बनाया जाए लेकिन कोड क्या है।


-1

POSIX के बारे में कुछ तथ्य जो इतने उज्ज्वल नहीं हैं।

POSIX भी सिस्टम कॉल इंटरफेस या एपीआई है, और यह लगभग 30 साल पुराना है।

यह एकल सीपीयू के साथ एकल कंप्यूटर का उपयोग करते हुए, स्थानीय भंडारण के लिए क्रमबद्ध डेटा एक्सेस के लिए डिज़ाइन किया गया था ।

डिजाइन द्वारा POSIX में सुरक्षा एक प्रमुख चिंता का विषय नहीं था, जो वर्षों में कई दौड़ हालत के हमलों के लिए अग्रणी था और प्रोग्रामर को इन सीमाओं के आसपास काम करने के लिए मजबूर करता था।

गंभीर कीड़े अभी भी खोजे जा रहे हैं, ऐसे कीड़े जिन्हें अधिक सुरक्षित पोसिक्स एपीआई डिजाइन के साथ टाल दिया जा सकता था।

POSIX को उम्मीद है कि उपयोगकर्ता एक समय में एक समकालिक कॉल जारी कर सकते हैं और अगले जारी करने से पहले इसके परिणामों की प्रतीक्षा कर सकते हैं। आज के प्रोग्रामर समग्र थ्रूपुट में सुधार करने के लिए एक समय में कई अतुल्यकालिक अनुरोध जारी करने की उम्मीद करते हैं।

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


तुल्यकालिक कर्नेल एपीआई को एकल-थ्रेडेड प्रक्रियाओं और क्रमबद्ध IO की आवश्यकता नहीं है। इसका एसएमपी मशीनों से भी कोई लेना-देना नहीं है। ये पूरी तरह से असंबंधित हैं। (जबकि मैं मानता हूँ कि सिंक कर्नेल एपीआई अपनी पोस्ट में के रूप में करने से इनकी है, लेकिन नहीं इतना भारी लगता है।)
peterh - को पुनः स्थापित मोनिका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.