रिअल-टाइम ऑपरेटिंग सिस्टम मानके. पॉसिक्स मानकाच्या मूलभूत संकल्पना

बातम्या 12.06.2019

POSIX आणि RT OS: पद्धतशीर करण्याचा प्रयत्न

सेर्गेई झोलोटारेव्ह, निकोले गोर्बुनोव्ह

या लेखाचा उद्देश रिअल-टाइम ऑपरेटिंग सिस्टम (RTOS) च्या संबंधात POSIX मानकांच्या विकासाच्या इतिहासात काही स्पष्टता आणण्याचा प्रयत्न आहे.

परिचय म्हणून: सॉफ्टवेअर इंटरफेस मानकीकरण आवश्यक का आहे?

POSIX मानकाच्या सर्वात महत्वाच्या गुणधर्मांपैकी एक म्हणजे ते "मानकीकृत प्रोग्रामिंग इंटरफेस" परिभाषित करते ज्याचे जटिल हार्डवेअर आणि सॉफ्टवेअर सिस्टमच्या विकासकांनी पालन केले पाहिजे. या प्रणालींच्या निर्मात्यांना बाजारपेठेसाठी कमी वेळ (गंभीर स्पर्धेमुळे), खर्च कमी करणे आणि गुंतवणुकीवर परतावा वाढवणे यासारख्या आवश्यकतांना सामोरे जाण्यास भाग पाडले जाते. त्याच वेळी, विकास प्रक्रियेतील मंदीमुळे झालेल्या खर्चाचा सिंहाचा वाटा या वस्तुस्थितीमुळे आहे की प्रोग्रामरना "चाक पुन्हा शोधणे" आवश्यक आहे, बर्याच काळापासून उपलब्ध असलेली कार्यक्षमता पुन्हा पुन्हा लागू करणे. परंतु हे याद्वारे टाळता आले असते:

  • भूतकाळातील आणि समांतर प्रकल्पांमधील कोड पुन्हा वापरणे;
  • इतर ऑपरेटिंग सिस्टमवरून कोड हस्तांतरित करणे;
  • इतर प्रकल्पांमधून विकसकांना आकर्षित करणे (इतर ऑपरेटिंग सिस्टम वापरण्यासह).

प्रमाणित API सह ओएसच्या वापरामुळे हे सर्व शक्य आहे. शिवाय, जर पहिल्या प्रकरणात एखाद्या संस्थेसाठी काही प्रकारचे अंतर्गत मानक असणे पुरेसे असेल (जे विशेषतः मालकीच्या ऑपरेटिंग सिस्टमसाठी वैशिष्ट्यपूर्ण आहे), तर दुसऱ्या दोन प्रकरणांमध्ये सामान्यतः मान्यताप्राप्त मानकांची उपस्थिती आवश्यक आहे - उदाहरणार्थ, POSIX.

अशा प्रकारे, त्याच्या प्रकल्पांसाठी एक प्लॅटफॉर्म म्हणून POSIX-सुसंगत OS वापरून, विकसकाला त्याच्या मागील किंवा समांतर प्रकल्पांमधून आणि तृतीय पक्षांच्या प्रकल्पांमधून स्त्रोत स्तरावर तयार कोड हस्तांतरित करण्याची संधी आहे. हे केवळ सॉफ्टवेअर डेव्हलपमेंट वेळ लक्षणीयरीत्या कमी करत नाही तर त्याची गुणवत्ता देखील सुधारते, कारण चाचणी केलेल्या कोडमध्ये नेहमी कमी त्रुटी असतात.

POSIX विकासामध्ये कोण आहे

आणि आम्ही स्वतः POSIX मानकाने सुरुवात करणार नाही, तर त्यावर काम करणाऱ्या संस्थांची भूमिका सुव्यवस्थित करून.

पहिला सहभागी आहे IEEE(इलेक्ट्रिकल आणि इलेक्ट्रॉनिक्स इंजिनिअर्सची संस्था), व्यावसायिकांची सार्वजनिक ना-नफा संघटना. IEEE 1884 पासून (औपचारिकपणे 1963 पासून), 150 देशांतील 380,000 वैयक्तिक सदस्यांना एकत्र करते, संगणक, नियंत्रण, इलेक्ट्रिकल आणि माहिती तंत्रज्ञानाच्या वापराशी संबंधित तांत्रिक साहित्याचा एक तृतीयांश प्रकाशित करते, तसेच 100 हून अधिक जर्नल्स, लोकांमध्ये लोकप्रिय आहेत. व्यावसायिक; याव्यतिरिक्त, असोसिएशन वर्षातून 300 हून अधिक प्रमुख परिषदा आयोजित करते. IEEE ने 900 पेक्षा जास्त वर्तमान मानकांच्या विकासामध्ये भाग घेतला आहे (www.ieee.ru/ieee.htm). आज ही संस्था मानकांची तयारी, समन्वय, मान्यता आणि प्रकाशन यात गुंतलेली आहे, परंतु तिच्या औपचारिक स्थितीमुळे तिला आंतरराष्ट्रीय किंवा राष्ट्रीय मानकांसारखी कागदपत्रे स्वीकारण्याचा अधिकार नाही. म्हणून, IEEE च्या समजुतीतील "मानक" हा शब्द "स्पेसिफिकेशन" म्हणून समजला पाहिजे, जो असोसिएशनने स्वीकारलेल्या दस्तऐवजांच्या स्थितीशी अधिक सुसंगत आहे. IEEE च्या अनुषंगाने, अनेक आंतरराष्ट्रीय आणि प्रादेशिक संस्था - IEC, ISO, ITU (इंटरनॅशनल टेलिकम्युनिकेशन युनियन), ETSI (युरोपियन दूरसंचार मानक संस्था), CENELEC (इलेक्ट्रोटेक्निकल मानकीकरणासाठी युरोपियन समिती) आणि राष्ट्रीय कार्यक्रमांमध्ये भाग घेते. उदाहरणार्थ ANSI सारख्या संस्थेच्या कार्यक्रमात.

IEEE मध्ये PASC (पोर्टेबल ऍप्लिकेशन स्टँडर्ड्स कमिटी), एक असोसिएशन समिती आहे जी POSIX फॅमिली ऑफ स्टँडर्ड्स (www.pasc.org/) विकसित करते. PASC पूर्वी ऑपरेटिंग सिस्टम्स टेक्निकल कमिटी म्हणून ओळखले जात असे.

कामातील दुसरा सहभागी - ANSI(अमेरिकन नॅशनल स्टँडर्ड्स इन्स्टिट्यूट) ही एक खाजगी ना-नफा संस्था आहे जी युनायटेड स्टेट्समधील मानकीकरण क्रियाकलापांचे व्यवस्थापन आणि समन्वय करते. हे फक्त 75 लोकांना रोजगार देते, परंतु ANSI सदस्यांमध्ये 1,000 पेक्षा जास्त कंपन्या, संस्था, सरकारी संस्था आणि संस्था (www.ansi.org) समाविष्ट आहेत. ANSI दोन प्रमुख आंतरराष्ट्रीय मानक संस्था, ISO आणि IEC मध्ये युनायटेड स्टेट्सचे प्रतिनिधित्व करते.

तिसरा सहभागी - आयएसओ(इंटरनॅशनल ऑर्गनायझेशन फॉर स्टँडर्डायझेशन, इंटरनॅशनल ऑर्गनायझेशन फॉर स्टँडर्डायझेशन). हे 1946 मध्ये मानक समन्वय समिती आणि संयुक्त राष्ट्र महासभेच्या निर्णयाद्वारे तयार केले गेले आणि 23 फेब्रुवारी 1947 (www.iso.org) रोजी अधिकृतपणे काम सुरू केले. ISO हे जिनेव्हा (स्वित्झर्लंड) मध्ये केंद्रीय सचिवालयासह 146 देशांतील (एक देश - एक ISO सदस्य) राष्ट्रीय मानकीकरण संस्थांचे नेटवर्क आहे. आयएसओ मानके तांत्रिक समित्यांमध्ये विकसित केली जातात, ज्याचा पहिला परिणाम म्हणजे ड्राफ्ट इंटरनॅशनल स्टँडर्ड (डीआयएस), जे अनेक मान्यतेनंतर अंतिम मसुदा आंतरराष्ट्रीय मानक (एफडीआयएस) मध्ये बदलते. यानंतर, या दस्तऐवजाच्या मंजुरीचा मुद्दा मतदानासाठी ठेवला जातो; परिणाम सकारात्मक असल्यास, ते आंतरराष्ट्रीय मानक बनते.

आणि शेवटी - IEC(आंतरराष्ट्रीय इलेक्ट्रोटेक्निकल कमिशन, इंटरनॅशनल इलेक्ट्रोटेक्निकल कमिशन - IEC), ज्याची स्थापना 1906 मध्ये झाली. IEC सर्व इलेक्ट्रिकल, इलेक्ट्रॉनिक आणि संबंधित तंत्रज्ञानासाठी आंतरराष्ट्रीय मानके तयार आणि प्रकाशित करते (www.iec.ch/). 1 नोव्हेंबर 2004 पर्यंत, 64 देशांच्या राष्ट्रीय समित्या या आयोगाच्या सक्रिय सदस्य होत्या. IEC शिफारशी देखील जारी करते, ज्या इंग्रजी आणि फ्रेंच भाषेत प्रकाशित केल्या जातात आणि आंतरराष्ट्रीय मानकांचा दर्जा आहे. त्यांच्या आधारावर, प्रादेशिक आणि राष्ट्रीय मानके विकसित केली जातात. तांत्रिक समित्या (TCs) IEC क्रियाकलापांच्या विविध क्षेत्रातील मानके तयार करण्यासाठी जबाबदार आहेत, ज्याच्या कामात विशिष्ट TC च्या क्रियाकलापांमध्ये स्वारस्य असलेल्या राष्ट्रीय समित्या देखील भाग घेतात.

आंतरराष्ट्रीय माहिती तंत्रज्ञान मानके तयार करण्यासाठी IEC ही प्रमुख संस्था आहे. या भागात माहिती तंत्रज्ञानावर एक संयुक्त तांत्रिक समिती आहे, JTC 1, 1987 मध्ये IEC आणि ISO यांच्यातील करारानुसार स्थापन झाली. JTC1 मध्ये 17 उपसमित्या आहेत ज्या सॉफ्टवेअरपासून प्रोग्रामिंग भाषा, कॉम्प्युटर ग्राफिक्स आणि इमेज एडिटिंग, हार्डवेअर इंटरकनेक्शन्स आणि सिक्युरिटी तंत्रांपर्यंत सर्व गोष्टींवर देखरेख करतात.

नवीन IEC मानकांच्या तयारीमध्ये अनेक टप्पे समाविष्ट आहेत (प्राथमिक, प्रस्ताव, तयारी, तांत्रिक समिती, विनंती, मान्यता, प्रकाशन). जर आयईसी दस्तऐवज केवळ एक तांत्रिक तपशील बनण्याचा हेतू असेल आणि आंतरराष्ट्रीय मानक नाही तर, दस्तऐवजाची सुधारित आवृत्ती प्रकाशनासाठी केंद्रीय कार्यालयाकडे पाठविली जाते. अंतिम मसुदा आंतरराष्ट्रीय मानक (FDIS) विकसित करण्यासाठी चार महिने दिले आहेत. तांत्रिक समितीच्या सर्व सदस्यांनी त्यास मान्यता दिल्यास, ते FDIS मंजुरीच्या टप्प्याशिवाय प्रकाशनासाठी केंद्रीय कार्यालयाकडे पाठवले जाते. FDIS नंतर राष्ट्रीय समित्यांकडे जाते, ज्यांनी त्याला दोन महिन्यांत मान्यता दिली पाहिजे. राष्ट्रीय समित्यांच्या दोन-तृतीयांश पेक्षा जास्त लोकांनी त्यास मत दिल्यास आणि नकारात्मक मतांची संख्या २५% पेक्षा जास्त नसेल तर FDIS मंजूर मानला जातो. दस्तऐवज मंजूर न झाल्यास, ते तांत्रिक समित्या आणि उपसमित्यांना पुनरावलोकनासाठी पाठवले जाते. मानक FDIS मंजूरीनंतर दोन महिन्यांनंतर प्रकाशित केले जाणे आवश्यक आहे.

POSIX मानकांचा विकास आणि अवलंब करण्यात इतर अनेक संस्थांचा सहभाग आहे.

गट उघडामाहिती तंत्रज्ञान (www.opengroup.org/) क्षेत्रात काम करणाऱ्या जवळपास 200 उत्पादक आणि वापरकर्ता समुदायांना एकत्र आणणारी आंतरराष्ट्रीय सॉफ्टवेअर मानक संस्था आहे. X/Open आणि Open Software Foundation (OSF) हे दोन पूर्ववर्ती विलीन करून ओपन ग्रुप 1995 मध्ये तयार करण्यात आला. ओपन ग्रुप सॉफ्टवेअर प्रमाणन पद्धती विकसित करण्यात आणि विशिष्ट आवश्यकतांच्या पूर्ततेसाठी चाचणी करण्यात माहिर आहे. विशेषतः, ओपन ग्रुप COE प्लॅटफॉर्म, CORBA, LDAP, Linux स्टँडर्ड बेस, स्कूल्स इंटरऑपरेबिलिटी फ्रेमवर्क (SIF), S/MIME गेटवे, सिंगल UNIX स्पेसिफिकेशन, वायरलेस ऍप्लिकेशन प्रोटोकॉल स्पेसिफिकेशन्स (WAP) आणि शेवटी, POSIX मानकांचे कुटुंब (www.opengroup.org/certification/).

ऑस्टिन कॉमन स्टँडर्ड्स रिव्हिजन ग्रुप (CSRG)- ISO/IEC 9945-1-1996, ISO/IEC 9945- च्या आधारावर 1003.1 मानकच्या नवीनतम आवृत्ती तयार करण्यासाठी आणि देखरेख करण्यासाठी ISO, IEC आणि ओपन ग्रुपने 2002 मध्ये स्थापन केलेला एक संयुक्त तांत्रिक कार्य गट. 2-1993, IEEE इयत्ता 1003.1-1996, IEEE इयत्ता 1003.2-1992 आणि सिंगल UNIX स्पेसिफिकेशन (www.opengroup.org/press/14nov02.htm).

राष्ट्रीय मानक आणि तंत्रज्ञान संस्था (NIST)वाणिज्य विभागाच्या तंत्रज्ञान प्रशासन (www.nist.gov/public_affairs/general2.htm) मधील एक फेडरल एजन्सी आहे, ज्याची स्थापना 1901 मध्ये यूएसए मध्ये झाली आहे. NIST चे ध्येय उत्पादन गुणवत्ता सुधारण्यासाठी मानके आणि तंत्रज्ञान विकसित करणे आणि त्यांचा प्रचार करणे हे आहे. NIST मध्ये माहिती तंत्रज्ञान प्रयोगशाळा (ITL) समाविष्ट आहे, त्यातील एक परिणाम म्हणजे फेडरल इन्फॉर्मेशन प्रोसेसिंग स्टँडर्ड्स (FIPS, www.opengroup.org/testing/fips/general_info.html). NIST/ITL ने FIPS PUB 151-1 1990 अंतर्गत 1991 मध्ये POSIX प्रमाणनासाठी चाचण्यांचा प्रारंभिक संच प्रस्तावित केला.

POSIX म्हणजे काय?

औपचारिकपणे पद POSIXसाठी संक्षेप म्हणून रिचर्ड स्टॉलमन यांनी प्रस्तावित केले पीऑर्टेबल perating एस un साठी सिस्टम इंटरफेस IX(युनिक्ससाठी पोर्टेबल ऑपरेटिंग सिस्टम इंटरफेस). POSIX हे UNIX सारख्या ऑपरेटिंग सिस्टीमसाठी (त्यांच्या पहिल्या आवृत्त्या 1970 च्या सुरुवातीच्या काळातील) स्त्रोत स्तरावर ऍप्लिकेशन पोर्टेबिलिटी सुनिश्चित करण्याच्या उद्देशाने विकसित केले गेले.

इंटरफेसचे प्रारंभिक वर्णन 1986 मध्ये प्रकाशित झाले होते, नंतर त्याला IEEE-IX (UNIX ची IEEE आवृत्ती) असे म्हटले गेले, तथापि, नाव पटकन बदलले, POSIX झाले आणि आधीच पुढील प्रकाशनात (1986 मध्ये) ही नवीन आवृत्ती होती. काही काळासाठी, POSIX हे संबंधित दस्तऐवज IEEE 1003.1-1988 आणि ISO/IEC 9945 च्या काही भागांचा संदर्भ (किंवा समानार्थी शब्द) म्हणून समजले गेले आणि संपूर्ण आणि मान्यताप्राप्त आंतरराष्ट्रीय मानक म्हणून, ISO/IEC 9945.1:1990 POSIX होते. 1990 मध्ये स्वीकारले गेले. POSIX तपशील एक ऍप्लिकेशन प्रोग्राम आणि ऑपरेटिंग सिस्टम यांच्यातील परस्परसंवादासाठी एक मानक यंत्रणा परिभाषित करते आणि सध्या IEEE, ISO, IEC आणि ANSI च्या अंतर्गत 30 पेक्षा जास्त मानकांचा समावेश आहे.

POSIX ने त्याच्या संपूर्ण इतिहासात खूप मोठा पल्ला गाठला आहे, वैशिष्ट्यांचे पदनाम, त्यांची विशिष्ट सामग्री, त्यांच्या चाचणीसाठी प्रक्रिया आणि लॉजिस्टिकमध्ये असंख्य बदल केले आहेत. कालांतराने, POSIX मानकांच्या अनेक आवृत्त्या विविध आंतरराष्ट्रीय संस्थांमध्ये प्रसिद्ध झाल्या आहेत.

POSIX मानकांच्या विकासाचा इतिहास

IEEE इयत्ता 1003.1 स्पेसिफिकेशनची पहिली आवृत्ती 1988 मध्ये प्रकाशित झाली. त्यानंतर, IEEE इयत्ता 1003.1 च्या असंख्य आवृत्त्या आंतरराष्ट्रीय मानके म्हणून स्वीकारल्या गेल्या.

POSIX विकासाचे टप्पे:

१९९०

1988 मध्ये प्रसिद्ध झालेली आवृत्ती सुधारित करण्यात आली आणि पुढील आवृत्त्या आणि जोडण्यासाठी आधार बनली. हे ISO/IEC 9945-1:1990 द्वारे आंतरराष्ट्रीय मानक म्हणून मंजूर केले गेले आहे.

1993

पुनरावृत्ती 1003.1b-1993 प्रसिद्ध झाली आहे.

1996

IEEE इयत्ता 1003.1b-1993, IEEE इयत्ता 1003.1c-1995, आणि 1003.1i-1995 मध्ये सुधारणा करण्यात आली आहे, परंतु दस्तऐवजाचा मुख्य भाग अपरिवर्तित आहे. IEEE इयत्ता 1003.1 ची 1996 आवृत्ती देखील ISO/IEC 9945-1:1996 द्वारे आंतरराष्ट्रीय मानक म्हणून स्वीकारली गेली.

1998

"रिअल टाइम" साठी पहिले मानक दिसू लागले - IEEE इयत्ता 1003.13-1998. एम्बेडेड रिअल-टाइम ऍप्लिकेशन्ससाठी हे POSIX मानकाचा विस्तार आहे.

1999

मानक 1003.2 (शेल आणि उपयुक्तता) सह एकत्रीकरणासह मानकांच्या मुख्य मजकुरात गेल्या 10 वर्षांत पहिले महत्त्वपूर्ण बदल करण्याचा निर्णय घेण्यात आला, कारण त्या वेळी हे वेगळे मानक होते. PASC ने IEEE 1003.1a, 1003.1d, 1003.1g, 1003.1j, 1003.1q, आणि 1003.2b मानके पूर्ण झाल्यानंतर मूलभूत मजकूर बदलांना अंतिम रूप देण्याचा निर्णय घेतला.

2004

1003.1 मानकांची नवीनतम आवृत्ती 30 एप्रिल रोजी प्रकाशित झाली होती आणि ऑस्टिन कॉमन स्टँडर्ड्स रिव्हिजन ग्रुपच्या संरक्षणाखाली प्रसिद्ध झाली होती. हे मानकाच्या 2001 आवृत्तीद्वारे दुरुस्त केले गेले आहे, औपचारिकपणे, 2004 आवृत्ती IEEE Std 1003.1, 2004 संस्करण, The Open Group Technical Standard Base Specifications, Issue 6 आणि IEEE Std 1003.1-2001, Std 1001/IEEE 2001. कोर 1-2002 आणि IEEE इयत्ता 1003.1-2001/Cor 2-2004.

RT OS साठी सर्वात महत्वाचे POSIX मानक

रिअल-टाइम ऑपरेटिंग सिस्टीमसाठी, सात मानक वैशिष्ट्ये सर्वात महत्वाची आहेत (1003.1a, 1003.1b, 1003.1c, 1003.1d, 1003.1j, 1003.21), परंतु व्यावसायिक ऑपरेटिंग सिस्टममध्ये फक्त तिघांना व्यापक समर्थन मिळाले आहे:

  • 1003.1a (OS व्याख्या)मुख्य OS इंटरफेस, जॉब मॅनेजमेंट, सिग्नल, फाइल सिस्टम आणि डिव्हाइस फंक्शन्स, वापरकर्ता गट, पाइपलाइन, FIFO बफर परिभाषित करते;
  • 1003.1b (रिअलटाइम विस्तार)रिअल-टाइम सिग्नल, प्राधान्य शेड्यूलिंग, टाइमर, सिंक्रोनस आणि असिंक्रोनस I/O, सेमाफोर्स, सामायिक मेमरी, संदेश यासारख्या रीअल-टाइम विस्तारांचे वर्णन करते. सुरुवातीला (1993 पर्यंत) हे मानक POSIX.4 म्हणून नियुक्त केले गेले.
  • 1003.1c (थ्रेड्स)सपोर्टिंग थ्रेड्स (थ्रेड्स) साठी फंक्शन्स परिभाषित करते - थ्रेड व्यवस्थापन, थ्रेड विशेषता, म्यूटेक्स, डिस्पॅचिंग. मूलतः नियुक्त POSIX.4a.

या मानकांव्यतिरिक्त, RT OS साठी खालील मानके महत्त्वाची आहेत, जी इयत्ता 1003.1-2001 प्रकल्पावरील कामाचा भाग म्हणून लागू करण्यात आली होती:

  • IEEE 1003.1d-1999.अतिरिक्त रिअल-टाइम विस्तार. मूलतः POSIX.4b म्हणून नियुक्त;
  • IEEE 1003.1j-2000.सुधारित (प्रगत) रिअल-टाइम विस्तार;
  • IEEE 1003.1q-2000.ट्रेस.

प्रमाणन प्रक्रिया

POSIX मानकांचे पालन करण्यासाठी, योग्य चाचणी संचाच्या निकालांनुसार ऑपरेटिंग सिस्टम प्रमाणित करणे आवश्यक आहे. POSIX ची ओळख झाल्यापासून, चाचणी संचमध्ये औपचारिक आणि वास्तविक बदल झाले आहेत.

1991 मध्ये, NIST ने FIPS 151-1 (http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf) चा भाग म्हणून POSIX चाचणी कार्यक्रम विकसित केला. हा चाचणी पर्याय IEEE 1003.3 "स्टँडर्ड फॉर टेस्ट मेथड्स फॉर मेजरिंग कॉन्फॉर्मन्स टू POSIX" मसुदा 10, मे 3, 1989 वर आधारित होता. 1993 मध्ये, NIST ने FIPS 151-1 साठी POSIX चाचणी कार्यक्रम पूर्ण केला आणि FIPS 151 -2 साठी प्रोग्राम सुरू केला. (www.itl.nist.gov/fipspubs/fip151-2.htm). FIPS 151-2 रुपांतरित "माहिती तंत्रज्ञान-पोर्टेबल ऑपरेटिंग सिस्टम इंटरफेस (POSIX)-भाग 1: सिस्टम ऍप्लिकेशन प्रोग्राम इंटरफेस (API)," जो ISO/IEC 9945-1:1990 मानक आहे. FIPS 151-2 साठी चाचणी संच IEEE 2003.1-1992 "POSIX च्या अनुरूपता मोजण्यासाठी चाचणी पद्धतींसाठी मानक" वर आधारित होते.

NIST दोन प्रमाणन पद्धतींमध्ये फरक करते: स्व-प्रमाणन आणि IEEE मान्यताप्राप्त POSIX चाचणी प्रयोगशाळा (APTL) द्वारे प्रमाणपत्र. पहिल्या प्रकरणात, कंपनी स्वतंत्रपणे चाचणी करते, परंतु एनआयएसटीने मंजूर केलेल्या योजनेनुसार. दुसऱ्या प्रकरणात, स्वयंचलित चाचणी किट वापरून चाचणी स्वतंत्र प्रयोगशाळेद्वारे केली जाते. एकूण, दोन APTL प्रयोगशाळा मान्यताप्राप्त होत्या: Mindcraft (www.mindcraft.com) आणि बारमाही (www.peren.com).

1997 मध्ये, NIST/ITL ने चालू वर्षाच्या अखेरीस (अधिकृतपणे 31 डिसेंबर 1997) FIPS 151-2 प्रमाणन बंद करण्याचा आपला हेतू जाहीर केला, तर ओपन ग्रुपने 1 ऑक्टोबर 1997 पासून प्रमाणन ताब्यात घेण्याचा हेतू असल्याचे जाहीर केले. . त्याच वर्षी, NIST/ITL प्रोग्रामवर आधारित FIPS 151-2 नुसार प्रमाणपत्र सेवा. तीच कार्ये IEEE स्टँडर्ड असोसिएशन (IEEE-SA) द्वारे 1 जानेवारी 1998 रोजी FIPS 151-2 वर आधारित घेतली गेली.

2003 मध्ये, IEEE-SA आणि ओपन ग्रुपने IEEE 1003.1™ 2001 पासून सुरू होणाऱ्या POSIX च्या नवीनतम आवृत्त्यांना प्रमाणित करण्यासाठी नवीन संयुक्त कार्यक्रम सुरू करण्याची घोषणा केली. ओपन ग्रुपमध्ये आता अनेक चाचणी संच आहेत जे IEEE इयत्ता 1003.1-1996, IEEE कव्हर करतात. इयत्ता 1003.2-1992, IEEE इयत्ता 1003.1-2003 आणि IEEE इयत्ता 1003.13-1998 (www.opengroup.org/testing/testsuites/posix.html). एखादे उत्पादन पूर्ण प्रमाणीकरण प्रक्रिया उत्तीर्ण केले असल्यास, चाचणी परिणामांवर आधारित सर्व आवश्यकता पूर्ण करत असल्यास आणि प्रमाणित उत्पादनांच्या अधिकृत नोंदणीमध्ये समाविष्ट केले असल्यास ते POSIX प्रमाणित मानले जाते.

चाचणी सूटमध्ये हे समाविष्ट आहे:

  • VSX-PCTS1990 (www.opengroup.org/testing/testsuites/vsxpcts1990.htm) – सिस्टम इंटरफेस IEEE इयत्ता 1003.1-1990 साठी अनुरूपता चाचण्यांचा संच;
  • VSPSE54 (www.opengroup.org/testing/testsuites/VSPSE54.htm) – IEEE इयत्ता 1003.13-1998 प्रोफाइल PSE54 (बहुउद्देशीय रिअल टाइम) साठी अनुरूपता चाचण्यांचा संच;
  • VSX-PCTS2003 (www.opengroup.org/testing/testsuites/vsxpcts2003.htm) – सिस्टम इंटरफेस IEEE इयत्ता 1003.1-2003 (केवळ अनिवार्य भाग) साठी अनुरूपता चाचण्यांचा संच;
  • VSC-PCTS2003 (www.opengroup.org/testing/testsuites/vscpcts2003.htm) – IEEE इयत्ता 1003.1-2003 साठी अनुरूपता चाचण्यांचा संच (शेल आणि उपयुक्तता – फक्त अनिवार्य भाग).

याव्यतिरिक्त, ओपन ग्रुपने POSIX रिअलटाइम मानके आणि एम्बेडेड POSIX मानक प्रोफाइलसाठी चाचण्या विकसित केल्या आहेत. POSIX रिअलटाइम चाचणी संच (www.opengroup.org/testing/testsuites/realtime.html) मध्ये खालील चाचण्या समाविष्ट आहेत:

  • IEEE POSIX 1003.1b-1993/1003.1i-1995 रिअलटाइम विस्तार आणि IEEE POSIX 1003.1,2003 संस्करण;
  • IEEE Std POSIX 1003.1c-1995 थ्रेड्स (pthreads) विस्तार आणि IEEE POSIX 1003.1,2003 संस्करण;
  • IEEE POSIX 1003.1d-1999 अतिरिक्त रिअलटाइम विस्तार आणि IEEE POSIX 1003.1,2003 संस्करण;
  • IEEE POSIX 1003.1j-2000 प्रगत रिअलटाइम विस्तार आणि IEEE POSIX 1003.1,2003 संस्करण;
  • IEEE POSIX 1003.1q-2000 ट्रेस आणि IEEE POSIX 1003.1,2003 संस्करण आणि IEEE POSIX 1003.1,2003 संस्करण;

एम्बेडेड POSIX मानक प्रोफाइल चाचणी संच (www.opengroup.org/testing/testsuites/embedded.html) मध्ये खालील चाचण्या समाविष्ट आहेत:

  • IEEE POSIX 1003.1-1990 (5310 चाचण्या);
  • IEEE POSIX 1003.1b-1993/1003.1i-1995 रिअलटाइम विस्तार (1430 चाचण्या);
  • IEEE Std POSIX 1003.1c-1995 थ्रेड्स (pthreads) विस्तार (1232 चाचण्या);
  • IEEE POSIX 1003.13-1998 प्रोफाइल 52.

शब्दावलीतील गोंधळाबद्दल थोडेसे

मानकांच्या POSIX गटाच्या संबंधात, इंग्रजीमध्ये एक नव्हे तर तीन संज्ञा वापरल्या जातात. दुर्दैवाने, ते अर्थाने सारखेच आहेत आणि बऱ्याचदा त्याच प्रकारे भाषांतरित केले जातात, ज्यामुळे काही गोंधळ निर्माण होतो. या अटी आहेत:

  • सुसंगतता (शब्दशः "सुसंगतता");
  • अनुपालन (शब्दशः "अनुपालन");
  • अनुरूपता (शब्दशः "सुसंगतता").

POSIX ला लागू केलेले पहिले पद, औपचारिकपणे परिभाषित केलेले नाही. दुसरा अर्थ असा आहे की सॉफ्टवेअर उत्पादनाची निर्मिती करणारी संस्था स्वतंत्रपणे घोषित करते की हे उत्पादन (पूर्ण किंवा अंशतः) सूचीबद्ध NIST-PCTS मानकांचे पालन करते. तिसऱ्या टर्मचा अर्थ असा आहे की सॉफ्टवेअर उत्पादनाने मान्यताप्राप्त प्रयोगशाळेच्या मदतीने किंवा ओपन ग्रुपमध्ये स्थापित चाचणी प्रणाली उत्तीर्ण केली आहे आणि याचा कागदोपत्री पुरावा आहे (तथाकथित अनुरूप विधान). पुढे लेखाच्या मजकुरात, संदिग्धता दूर करण्यासाठी सर्वत्र मूळ संज्ञा दिल्या जातील.

प्रमाणित OS RV

प्रमाणित RT OS वरील डेटा अधिकृत नोंदवहीमध्ये प्रकाशित करणे आवश्यक असलेल्या कठोर नियमांचे आम्ही पालन केल्यास आणि चाचणी अनुरूप स्तरावर केली जावी, तर सध्या फक्त दोन प्रमाणित RT OS आहेत (डेटा कालक्रमानुसार दिलेला आहे):

LynxOS v.3(Lynx Real-Time Systems चे उत्पादन, ज्याला आता LynuxWorks, Inc., www.lynuxworks.com म्हणतात) हे OEM आणि दूरसंचार उपकरणे उत्पादक, विशेषतः लष्करी एअरबोर्न सिस्टम उत्पादकांद्वारे हार्ड रीअल-टाइम एम्बेडेड सिस्टम सॉफ्टवेअरच्या विकासासाठी आहे. लक्ष्य प्रणालीवर (स्वयं-होस्ट केलेले) आणि इंस्ट्रुमेंटल संगणक (होस्ट) दोन्हीवर विकास केला जाऊ शकतो, तयार सॉफ्टवेअर लक्ष्य प्रणाली (लक्ष्य) वर कार्य करण्यासाठी डिझाइन केलेले आहे. LynxOS v.3 इंटेल आणि पॉवरपीसी प्लॅटफॉर्मवर POSIX मानकांच्या अनुरूपतेसाठी प्रमाणित आहे. याविषयीची माहिती IEEE वेबसाइट http://standards.ieee.org/regauth/posix/posix2.html वर मिळू शकते. LynxOS POSIX 1003.1-1996 ला Mindcraft, NIST FIPS 151-2 Conformance Test Suite विरुद्ध IEEE POSIX मान्यताप्राप्त POSIX चाचणी प्रयोगशाळा द्वारे प्रमाणित आहे. प्रमाणन दस्तऐवज क्रमांक: संदर्भ फाइल: IP-2LYX002, संदर्भ फाइल: IP-2LYX001.

सचोटी v.5(Green Hills Software, www.ghs.com चे उत्पादन) जुलै 2004 मध्ये पॉवरपीसी आर्किटेक्चरसाठी POSIX 1003.1-2003, सिस्टम इंटरफेसच्या अनुरूपतेसाठी प्रमाणित आहे (http://get.posixcertified.ieee.org/select_product. tpl) . VSX-PCTS 2003 चाचणी संच.

POSIX आणि QNX ऑपरेटिंग सिस्टम

QNX v.4.20 (QNX Software Systems, www.qnx.com द्वारे विकसित) DataFocus Incorporated द्वारे Intel प्लॅटफॉर्मसाठी POSIX 1003.1-1988 च्या अनुपालनासाठी प्रमाणित आहे. 13 सप्टेंबर 1993 रोजी चाचणी घेण्यात आली आणि दस्तऐवज 1 नोव्हेंबर 1993 रोजी जारी करण्यात आला. NIST PCTS 151-1 चाचणी सूट, आवृत्ती 1.1.

QNX न्यूट्रिनो (आवृत्ती 6.3) खालील POSIX कौटुंबिक मानकांचे पालन करते (www.qnx.com/download/download/8660/portability.pdf):

  • POSIX.1 (IEEE 1003.1);
  • POSIX.1a (IEEE 1003.1a);
  • POSIX.2 (IEEE 1003.2);
  • POSIX.4 (IEEE 1003.1b);
  • POSIX.4a (IEEE 1003.1c);
  • POSIX.1b (IEEE 1003.1d), IEEE 1003.1j;
  • POSIX.12 (IEEE 1003.1g).

QNX Software Systems, QNX Neutrino चे निर्माते, QNX Neutrino ला यापैकी काही मानकांशी सुसंगत करण्याची योजना आखत आहे; काम 2005 साठी नियोजित आहे (www.qnx.com/news/pr_959_1.html).

साहित्य

  1. IEEE मानक संघटना ऑपरेशन मॅन्युअल. IEEE, ऑक्टोबर 2004.
  2. केविन एम. ओबेलँड. POSIX इन रिअल-टाइम, एम्बेडेड सिस्टम्स प्रोग्रामिंग, 2001.
  3. IEEE/ANSI मानक 1003.1: माहिती तंत्रज्ञान - (POSIX) - भाग 1: सिस्टम ऍप्लिकेशन: प्रोग्राम इंटरफेस (API).
  4. Gallmeister, B.O. वास्तविक जगासाठी प्रोग्रामिंग, POSIX.4सेबॅस्टोपोल, CA: O'Reilly & Associates, 1995.
  5. नॅशनल इंस्टिट्यूट ऑफ स्टँडर्ड्स अँड टेक्नॉलॉजी, PCTS:151-2, POSIX टेस्ट सूट.
  6. POSIX: IEEE आणि The Open Group द्वारे प्रमाणित.प्रमाणित धोरण. खुला गट, 21 ऑक्टोबर 2003, पुनरावृत्ती 1.1.
सॉफ्टवेअर) हे अपवादात्मक महत्त्व आणि जटिलतेचे कार्य आहे; आमच्या काळात, या परिस्थितीला क्वचितच व्यापक औचित्य आवश्यक आहे. सॉफ्टवेअर पोर्टेबिलिटी वाढवण्याचा सामान्यतः स्वीकारल्या जाणाऱ्या मार्गांपैकी एक म्हणजे ॲप्लिकेशन वातावरणाचे मानकीकरण करणे: प्रदान केलेले सॉफ्टवेअर इंटरफेस, युटिलिटी इ. स्तरावर सिस्टम सेवा POSIX मानक (पोर्टेबल ऑपरेटिंग सिस्टम इंटरफेस - मोबाइल ऑपरेटिंग सिस्टम इंटरफेस) द्वारे समान वातावरणाचे वर्णन केले आहे; हे नाव प्रसिद्ध तज्ञ, फ्री सॉफ्टवेअर फाउंडेशनचे संस्थापक, रिचर्ड स्टॉलमन यांनी प्रस्तावित केले होते.

आम्ही उपलब्ध असलेल्या POSIX मानकाच्या सर्वात आधुनिक आवृत्तीचा विचार करू, 2003 आवृत्ती, ज्याला “ट्रिपल स्टँडर्ड” म्हटले जाऊ शकते, म्हणजे IEEE इयत्ता 1003.1, ओपन ग्रुप टेक्निकल स्टँडर्ड आणि (पहा [6]), जे अधिक महत्त्वाचे आहे. आम्हाला एकूण, आंतरराष्ट्रीय मानक ISO/IEC 9945 (पहा [1], [2], [3], [4]).

या आवृत्तीच्या निर्मितीचा इतिहास खालीलप्रमाणे आहे. 1998 च्या सुरुवातीस, तीन संस्थांचे प्रतिनिधी- इन्स्टिट्यूट ऑफ इलेक्ट्रिकल अँड इलेक्ट्रॉनिक्स इंजिनिअर्सची मोबाइल ऍप्लिकेशन मानक समिती, मुक्त गट आणि संयुक्त तांत्रिक समिती 1 उपसमिती 22 कार्य गट 15 (JTC1/SC22/WG15) आंतरराष्ट्रीय मानक संघटनेची— विलीनीकरण आणि त्यांच्याद्वारे देखरेख केलेल्या सिस्टम सेवांसाठी इंटरफेस मानकांच्या विकासावर सल्लामसलत सुरू केली: IEEE इयत्ता 1003.1, IEEE इयत्ता 1003.2, ओपन ग्रुपमधील मूलभूत तपशील, ISO / IEC 9945-1, ISO / IEC 9945-2. त्याच वर्षी सप्टेंबरमध्ये, हे लक्ष्य साध्य करण्यासाठी तयार करण्यात आलेल्या गटाची संघटनात्मक बैठक ऑस्टिन, टेक्सास येथे आयबीएम कॉर्पोरेशनच्या कार्यालयात आयोजित करण्यात आली होती (पहा http://www.opengroup.org/austin).

सुधारित मानकांसाठी मूलभूत दस्तऐवज, ज्याचा पहिला मसुदा जुलै 1999 मध्ये सादर करण्यात आला होता, तो ओपन ग्रुपचे मुख्य तपशील होता, कारण त्यात IEEE आणि ISO/IEC मानकांमधील तरतुदींचा समावेश करण्यात आला होता. 2001 मध्ये, तयारीचे काम पूर्ण झाल्यावर, मानकामध्ये खालील चार भाग होते:

  1. मूलभूत व्याख्या (अटी, संकल्पना आणि इंटरफेस सर्व भागांसाठी सामान्य);
  2. वर्णन सी ऍप्लिकेशन प्रोग्रामिंग इंटरफेससिस्टम सेवांसाठी;
  3. स्तरावरील सिस्टम सेवांच्या इंटरफेसचे वर्णन आदेश भाषाआणि उपयुक्तता ;
  4. मानकांच्या तरतुदींचे तपशीलवार स्पष्टीकरण, घेतलेल्या निर्णयांचे तर्क.

पुढे, ISO, IEEE आणि ओपन ग्रुपने, अधिक किंवा कमी वेगाने (2001-2002 मध्ये), नवीन POSIX मानकांना औपचारिकपणे मान्यता दिली. दरम्यान, तुलनेने किरकोळ दुरुस्त्या जमा झाल्या आणि 2003 च्या आवृत्तीत विचारात घेतल्या गेल्या.

जसजसे मानक विकसित होत गेले, तसतसे "POSIX" या शब्दाचा अर्थ विस्तारत गेला. हे मूलतः IEEE इयत्ता 1003.1-1988 चा संदर्भ देते, ज्याचे वर्णन केले आहे अनुप्रयोग प्रोग्रामिंग इंटरफेसयुनिक्स क्लास ओएस. कमांड लँग्वेज आणि युटिलिटिजच्या स्तरावर इंटरफेसचे मानकीकरण केल्यानंतर, POSIX.1 आणि POSIX.2 द्वारे वरील भाग 2 आणि 3 दर्शविणारा, "POSIX" हा शब्द संपूर्णपणे मानक म्हणून समजून घेणे अधिक योग्य आहे. IEEE आणि ISO/IEC दस्तऐवजांच्या क्रमांकासह.

POSIX मानकाच्या मूलभूत कल्पना

POSIX मानक अनुप्रयोग प्रोग्रामच्या कार्यासाठी आवश्यक असलेल्या अनेक मूलभूत, सिस्टम सेवांचे वर्णन करते. सी भाषा, कमांड लँग्वेज आणि कॉमन युटिलिटी प्रोग्राम्ससाठी निर्दिष्ट केलेल्या इंटरफेसद्वारे त्यांचा प्रवेश केला जातो.

प्रत्येक इंटरफेसला दोन बाजू असतात: कॉलर आणि कॉली. POSIX मानक कॉलर-केंद्रित आहे. अर्ज करणे हे त्याचे ध्येय आहे स्त्रोत भाषा स्तरावर मोबाइल. याचा अर्थ, विशेषतः, सी प्रोग्राम्स दुसर्या ऑपरेटिंग प्लॅटफॉर्मवर हलवताना, पुनर्संकलन आवश्यक असेल. एक्झिक्युटेबल प्रोग्राम्स आणि/किंवा ऑब्जेक्ट फाइल्सच्या गतिशीलतेबद्दल कोणतीही चर्चा नाही.

POSIX मानक कोणत्याही प्रकारे युनिक्स वातावरणापुरते मर्यादित नाही. "स्वतंत्र मूळ" च्या ऑपरेटिंग सिस्टम (OS) आहेत (उदाहरणार्थ, वास्तविक वेळ प्रणाली), आवश्यक सेवा प्रदान करणे आणि त्याद्वारे POSIX-अनुरूप अनुप्रयोगांच्या अंमलबजावणीस समर्थन देणे. असा युक्तिवाद केला जाऊ शकतो की POSIX मानकांचे पालन केल्याने जवळजवळ कोणत्याही मोठ्या प्रमाणावर वापरल्या जाणाऱ्या ऑपरेटिंग प्लॅटफॉर्मवर अनुप्रयोग पोर्ट करणे सोपे होते. विकासाच्या टप्प्यात गतिशीलता सुधारण्यासाठी केलेल्या अतिरिक्त प्रयत्नांचे नक्कीच फळ मिळेल.

सिस्टम सर्व्हिसेसचा इंटरफेस परिभाषित करून, POSIX त्यांची अंमलबजावणी विचारात न घेता सोडते. विशेषतः, ते वेगळे नाहीत सिस्टम कॉलआणि लायब्ररी कार्ये. उत्पादने मानकीकरणाच्या अधीन नाहीत प्रशासन, फक्त हार्डवेअर मर्यादा आणि वैशिष्ट्ये आवश्यक सुपरयूजर, जे पुन्हा एकदा मानकांच्या फोकसवर जोर देते

सर्वसाधारणपणे मानकांबद्दल

सराव करणाऱ्या प्रोग्रामरमध्ये असे मत आहे की प्रोग्रामिंगमधील मानकांची अजिबात गरज नाही, कारण:

(1) ते मूळतः निरर्थक आहेत, कारण त्यांचे लेखक संगणक प्रोग्राम लिहित नाहीत;

(2) ते प्रोग्रामरच्या पुढाकारात अडथळा आणतात;

(3) प्रोग्रामर मानकांशिवाय देखील नेहमी सहमत असतील.

कदाचित या मताकडे लक्ष दिले गेले नसावे तर दोन परिस्थितींसाठी:

(1) हे प्रॅक्टिशनर्सद्वारे व्यक्त केले जाते, म्हणजेच तंतोतंत जे “सॉफ्टवेअर उत्पादने तयार करतात”;

(2) वरील युक्तिवाद या लेखाच्या लेखकाने सी प्रोग्रामिंग भाषेच्या मानकांना समर्पित इंटरनेटवरील एका प्रकाशनात शोधला होता, ज्यावरून हे स्पष्ट झाले की असे मत "आंतरराष्ट्रीय स्तरावर" व्यापक आहे, आणि केवळ नाही. गर्विष्ठ रशियन "सुपरप्रोग्रामर" मध्ये.

“मानक” हा शब्द सहसा एखाद्या वस्तूशी संबंधित असतो (मानक परिमाणे, मानक विद्युत व्होल्टेज इ.), तर संगणक प्रोग्राम एक अमूर्त वस्तू (“नवीन अमूर्त”) असते आणि कदाचित अमूर्त क्षेत्रातील मानके खरोखरच निरर्थक असतात?

तथापि, एक खंडन करणारे उदाहरण आहे. रशियन भाषेच्या शब्दलेखन नियमांचा संच मूलत: एक मानक दर्शवितो, जरी मानकीकरण संस्थांनी मान्यता दिली नाही. पुढे, शुद्धलेखनाच्या नियमांव्यतिरिक्त (किंवा, तुम्हाला आवडत असल्यास, आवश्यकता) वाक्यरचना नियम आणि सर्वात महत्त्वाचे म्हणजे शब्दार्थ आहेत. नंतरचे "मुलांचे" प्रश्न चांगले स्पष्ट करते: मांजरीला मांजर का म्हणतात? या प्रश्नाचे अचूक उत्तर आहे: कारण आपल्या पूर्वजांनी तसे मान्य केले; इंग्रजीच्या पूर्वजांनी त्याच प्राण्याला मांजर, जर्मनचे पूर्वज - मांजरीचे पिल्लू इ. म्हणण्यास सहमती दर्शविली. आणि सर्वसाधारणपणे, अर्थ, किंवा शब्दार्थ, किंवा कोणत्याही शब्दाचा किंवा शब्दांच्या संयोजनाचा अर्थ लावण्याचे नियम ही एक कराराची बाब आहे.

POSIX मानकाचा उद्देश आणि "सुपर टास्क".

नावाप्रमाणेच, POSIX (पोर्टेबल ऑपरेटिंग सिस्टम इंटरफेस) ऑपरेटिंग सिस्टम आणि ऍप्लिकेशन प्रोग्राममधील इंटरफेससाठी एक मानक आहे. जेव्हा प्रोग्रामर "बेअर" मशीनसाठी प्रोग्राम लिहितात (इनपुट/आउटपुट प्रोग्रामचे स्वतःचे पॅकेज, त्रिकोणमितीय फंक्शन्स इ. लागू करणे) ते दिवस कायमचे गेले आहेत. POSIX मजकूर वारंवार जोर देतो की मानक ऑपरेटिंग सिस्टम अंमलबजावणी तपशीलांवर कोणत्याही आवश्यकता लादत नाही; हे ऍप्लिकेशन प्रोग्रामर आणि ऑपरेटिंग सिस्टम डेव्हलपर यांच्यातील कराराचा संच म्हणून पाहिले जाऊ शकते. अशा प्रकारे (पुन्हा, बऱ्यापैकी व्यापक समजुतीच्या विरुद्ध), POSIX केवळ ऑपरेटिंग सिस्टम डेव्हलपर्ससाठीच नाही तर प्रामुख्याने ॲप्लिकेशन प्रोग्रामरच्या खूप मोठ्या श्रेणीसाठी स्वारस्य आहे.

1980 च्या दशकात जेव्हा UNIX ऑपरेटिंग सिस्टिमचा प्रसार झाला तेव्हा या प्रकारच्या मानकाची गरज ओळखली गेली. असे दिसून आले की जरी ही प्रणाली एकत्रित करण्याचा हेतू होता, परंतु त्याच्या विशिष्ट अंमलबजावणीमधील फरकांमुळे एका प्रणालीसाठी लिहिलेले अनुप्रयोग प्रोग्राम नेहमी दुसऱ्या प्रणालीमध्ये कार्यान्वित केले जाऊ शकत नाहीत. ही समस्या आहे, ज्याला सॉफ्टवेअर गतिशीलता समस्या म्हणून ओळखले जाते, ज्याचे निराकरण करण्याचे POSIX चे उद्दिष्ट आहे. मानकाची पहिली आवृत्ती 1988 मध्ये प्रसिद्ध झाली (तेथे एक भाषांतर आहे, पहा), ज्यामध्ये सॉफ्टवेअर गतिशीलतेशी संबंधित समस्यांची संपूर्ण विविधता दोन भागांमध्ये विभागली गेली: (1) ऍप्लिकेशन प्रोग्राम इंटरफेस, (2) कमांड इंटरप्रिटर आणि युटिलिटीज (वापरकर्ता इंटरफेस); या भागांना अनुक्रमे POSIX.1 आणि POSIX.2 म्हणतात.

आम्ही हे स्पष्ट करूया की या लेखात आम्ही फक्त ऍप्लिकेशन प्रोग्राम इंटरफेस मानक, POSIX.1 बद्दल बोलू, ज्याची दुसरी (आणि आजपर्यंतची) आवृत्ती 12 जुलै 1996 रोजी मंजूर झाली.

मानकाचा माहितीपूर्ण भाग देखील यावर जोर देतो की POSIX काही "आदर्श" ऑपरेटिंग सिस्टमच्या इंटरफेसचे वर्णन नाही, परंतु UNIX ऑपरेटिंग सिस्टमच्या विकासामध्ये जमा झालेल्या अनुभवाचे सामान्यीकरण आणि पद्धतशीरीकरणाचा परिणाम आहे. याव्यतिरिक्त, POSIX ऑपरेटिंग सिस्टमवर मॅन्युअल किंवा ट्यूटोरियल म्हणून काम करू शकत नाही, जरी माहितीपूर्ण भागामध्ये प्रोग्रामर आणि प्रोग्रामच्या तुकड्यांसाठी शिफारसी आहेत.

मानक थेट सांगते की त्यात वर्णन केलेल्या इंटरफेस फंक्शन्सवर आधारित संपूर्ण ऑपरेटिंग सिस्टम तयार करणे अशक्य आहे. (विशेषतः, POSIX.1 नेटवर्किंग आणि संबंधित इंटरफेस फंक्शन्स किंवा ग्राफिकल इंटरफेस सारख्या समस्यांना संबोधित करत नाही.) तथापि, नॉन-पोर्टेबल सॉफ्टवेअरचे आर्थिक खर्च आणि इंटरफेस एकीकरणाची परिणामी गरज इतकी मोठी आहे की बहुतेक उत्पादक येथे असणे पसंत करतात. किमान काही मानक नसण्यापेक्षा चांगले आहे. या कारणास्तव, अनेक सॉफ्टवेअर डेव्हलपर POSIX वर लक्ष केंद्रित करण्याचा प्रयत्न करतात. हे प्रोग्राम्सची अचलता पूर्णपणे काढून टाकत नसल्यास, प्रोग्रामचा स्थिर भाग कमीत कमी लक्षणीयरीत्या कमी करण्यास अनुमती देते.

शब्दार्थ बद्दल

आधीच चर्चा केल्याप्रमाणे, ऑपरेटिंग सिस्टम डेव्हलपर आणि ऍप्लिकेशन प्रोग्रामर यांच्यातील कराराचा एक संच म्हणून POSIX चा विचार केला जाऊ शकतो. “करार” म्हणजे, सर्व प्रथम, शब्द आणि अभिव्यक्तींचे समान व्याख्या (अर्थशास्त्र). खालील उदाहरणे आहेत जी "करार" गाठण्यात अडचण दर्शवतात.

भाषांतर करताना अर्थ कसा व्यक्त करायचा

सर्व प्रथम, हे लक्षात ठेवले पाहिजे की POSIX मानक इंग्रजीमध्ये लिहिलेले आहे, जे त्याच्या स्वभावाने संदिग्धता निर्माण करते (उदाहरणार्थ, समान शब्द एक संज्ञा, विशेषण आणि क्रियापद असू शकते), आणि "अर्थविषयक सापळे" जवळजवळ लपलेले असतात. प्रत्येक पान. याचे एक चांगले उदाहरण म्हणजे काल्पनिक कथांचे उदाहरण. ऑस्कर वाइल्डच्या सर्वात प्रसिद्ध कृतींपैकी एक, ज्याने इंग्रजी भाषेचे हे वैशिष्ट्य उत्कृष्टपणे वापरले आहे, द इम्पॉर्टन्स ऑफ बीइंग अर्नेस्ट, रशियन भाषेत "बहान असण्याचे महत्त्व" या शीर्षकाखाली ओळखले जाते. तथापि, इंग्रजी शीर्षकाचा दुसरा अर्थ आहे: अर्नेस्ट (गंभीर) हे पात्रांपैकी एकाचे आडनाव आहे आणि शीर्षकाचे भाषांतर वेगळ्या प्रकारे केले जाऊ शकते: "अर्नस्ट असण्याचे महत्त्व." एक रशियन आडनाव सेरेब्र्यानी आहे, आणि जर सेरेझनी हे आडनाव असेल तर भाषांतर पूर्णपणे अचूक असेल, दोन्ही अर्थ सांगेल.

परिस्थिती मानकांच्या नावासारखीच आहे: पोर्टेबल ऑपरेटिंग सिस्टम इंटरफेस. विशेषण पोर्टेबल (मोबाइल) ऑपरेटिंग सिस्टम आणि ऍप्लिकेशन प्रोग्राम या दोन्हीचा संदर्भ देते, परंतु ते रशियन भाषेत थोडक्यात व्यक्त करणे शक्य नाही, "मोबाइल ऑपरेटिंग सिस्टमचा इंटरफेस" किंवा "ऑपरेटिंग सिस्टमचा इंटरफेस" म्हणून अनुवादित केले जाऊ शकते; जे ऍप्लिकेशन प्रोग्राम्सची गतिशीलता सुनिश्चित करते." दुसरा पर्याय मानकांच्या विकसकांचे हेतू अधिक चांगल्या प्रकारे प्रतिबिंबित करतो, परंतु पहिला अर्थ गमावला आहे (अनुवाद करताना अधिक परिचित पहिला पर्याय जतन केला गेला होता).

"मानक" शब्दाचे अर्थशास्त्र

मानकाचा मुख्य मजकूर प्रस्तावनेच्या आधी आहे, जो IEEE Standards2 या शब्दांचा अर्थ स्पष्ट करतो. या स्पष्टीकरणांवरून खालीलप्रमाणे, रशियन-भाषेतील GOST या शब्दापासून किमान तीन अर्थविषयक फरक आहेत:

(1) अंतर्ज्ञानाने, असे मानले जाते की GOST मध्ये कायद्याचे बल आहे, ज्याचे उल्लंघन दंडनीय आहे; POSIX हा आवश्यकतांचा एक संच आहे, ज्यांचे पालन करणे पूर्णपणे ऐच्छिक आहे.

(2) GOST रद्द होईपर्यंत वैध आहे (बऱ्याच लोकांनी "GOST रद्द केले गेले नाही" ही अभिव्यक्ती ऐकली असेल); POSIX च्या प्रस्तावनेत असे म्हटले आहे की जर 5 वर्षांसाठी मानक सुधारित केले गेले नाही, तर याचा अर्थ असा होतो की ते संबोधित केलेले मुद्दे यापुढे संबंधित नसतील आणि ते स्वयंचलितपणे रद्द केले जातील असे मानले जाऊ शकते;

(3) GOST निनावी आहे; POSIX प्रस्तावना मानकांच्या विकासात योगदान देणाऱ्यांची यादी प्रदान करते आणि एक पत्ता प्रदान करते ज्यावर अर्थ लावण्यासाठी विनंत्या केल्या जाऊ शकतात; असेही म्हटले जाते की प्रत्येक विनंतीचा प्रतिसाद करार प्रक्रियेच्या अधीन आहे (दुसऱ्या शब्दात, मानकांचे लेखक प्रतिसाद देण्यापूर्वी आपापसात सहमत आहेत).

अशा प्रकारे, “मानक” या शब्दासह मानक सारख्या सुप्रसिद्ध शब्दाच्या भाषांतरासाठी टिप्पणी आवश्यक आहे.

“अवश्यक”, “निर्दिष्ट नाही”, “अपरिभाषित”, “अंमलबजावणी परिभाषित” या शब्दांचे अर्थशास्त्र

मानकाच्या विभाग 2 ला “परिभाषा आणि सामान्य आवश्यकता” असे म्हणतात. यात केवळ तांत्रिक संज्ञा (जसे की “प्रक्रिया” किंवा “सेमाफोर”) नव्हे तर “पाहिजे” किंवा “करू शकता” यांसारख्या स्पष्ट दिसणाऱ्या शब्दांच्या व्याख्या आहेत. POSIX.1 हे इंटरफेस मानक असल्याने, त्याची आवश्यकता ऑपरेटिंग सिस्टम आणि ऍप्लिकेशन प्रोग्राम या दोघांनाही लागू होते. एक स्पष्ट आवश्यकता "shall" या शब्दाद्वारे व्यक्त केली जाते, उदाहरणार्थ: "यशस्वी झाल्यास, link() फंक्शनने शून्य मूल्य परत करणे आवश्यक आहे." या उदाहरणात, आम्ही ऑपरेटिंग सिस्टमच्या आवश्यकतेबद्दल बोलत आहोत: link() फंक्शन कार्यान्वित करणे आवश्यक आहे जेणेकरून ते यशस्वीरित्या पूर्ण झाल्यावर शून्य मूल्य परत करेल.

"अनिर्दिष्ट" आणि "अपरिभाषित" शब्द समान कल्पना व्यक्त करतात जे मानक निवडीच्या स्वातंत्र्यासाठी परवानगी देते, परंतु या संज्ञांचा अर्थ वेगळा आहे. "निर्दिष्ट केलेले नाही" या शब्दाचा अर्थ असा आहे की आपण काही योग्य क्रियांबद्दल बोलत आहोत (क्रिया, कार्यक्रम रचना इ.) आणि "परिभाषित नाही" या शब्दाचा अर्थ चुकीचा (चुकीचा) असा होतो. मानकांचा माहितीपूर्ण भाग खालील स्पष्टीकरण प्रदान करतो.

"अनिर्दिष्ट" या शब्दाचा अर्थ असा आहे की पर्यायांचा संच (परिणाम, फंक्शन कॉलचे परिणाम इ.) ज्ञात असल्याचे गृहीत धरले जाते आणि मानक त्यापैकी कोणत्याहीला परवानगी देते; विशिष्ट ऑपरेटिंग सिस्टमच्या अंमलबजावणीमध्ये, कोणतीही एक निवडली जाऊ शकते आणि अशी प्रणाली मानकांचे पालन करते असे मानले जाते. ऍप्लिकेशन प्रोग्राम (जे मानकांचे काटेकोरपणे पालन करते) अशा प्रकारे लिहिलेले असणे आवश्यक आहे की ते कोणत्याही पर्यायाखाली योग्यरित्या कार्य करते; मूलत:, हा शब्द अनुप्रयोग प्रोग्रामची आवश्यकता स्पष्टपणे व्यक्त करतो.

येथे एक उदाहरण आहे: “readdir() फंक्शनने पुढील डिरेक्टरी घटकाशी संबंधित स्ट्रक्चरला पॉइंटर परत करणे आवश्यक आहे. "डॉट" आणि "डॉट-टू-डॉट" नावाच्या डिरेक्टरी घटक परत केले जातात की नाही हे मानकाद्वारे निर्दिष्ट केलेले नाही." या उदाहरणात, चार संभाव्य परिणाम आहेत आणि अनुप्रयोग प्रोग्रामची आवश्यकता अशी आहे की ते त्यापैकी कोणतेही हाताळण्यास सक्षम असले पाहिजेत.

दुसरे उदाहरण: “जर sigwait() फंक्शन, जे निर्दिष्ट नंबरसह सिग्नलची वाट पाहण्याची सूचना देते, अनेक कंट्रोल थ्रेड्समध्ये कॉल केले जाते, तेव्हा सिग्नल त्यांच्यापैकी एकापेक्षा जास्त नसताना, sigwait() परत येणे आवश्यक आहे. हे नेमके कोणत्या नियंत्रण प्रवाहात होईल हे मानकांद्वारे निर्दिष्ट केलेले नाही. या उदाहरणात, संभाव्य परिणामांची संख्या मोठी असू शकते, परंतु ते सर्व ज्ञात आहेत, आणि अनुप्रयोग प्रोग्रामची आवश्यकता अशी आहे की कोणत्याही परिणामाच्या अंतर्गत ते योग्यरित्या कार्य केले पाहिजे.

"अपरिभाषित" या शब्दाचा अर्थ असा आहे की बरेच परिणाम देखील ज्ञात नाहीत, अगदी विनाशकारी देखील आहेत (उदाहरणार्थ, सिस्टम क्रॅश, डेटा गमावणे इ.). मूलत:, या संज्ञेसाठी अनुप्रयोग प्रोग्रामने संबंधित डेटा किंवा रचना वापरु नयेत अशी स्पष्टपणे आवश्यकता आहे. उदाहरणार्थ: "readdir() साठी dirp वितर्क सध्या उघडलेल्या निर्देशिकेचा संदर्भ देत नसल्यास, परिणाम अपरिभाषित आहे."

या उदाहरणासाठी अनुप्रयोग प्रोग्रामला readdir(); या आवश्यकतेचे उल्लंघन केल्याने आपत्तीजनक परिणाम होऊ शकतात आणि याची जबाबदारी ॲप्लिकेशन प्रोग्रामरवर असते.

हे दुसरे उदाहरण आहे: "यशस्वी झाल्यास, read() फंक्शनने प्रत्यक्षात वाचलेल्या बाइट्सची संख्या दर्शविणारा पूर्णांक परत केला पाहिजे. अन्यथा, फंक्शनने एररनो एरर कोडवर सेट केले पाहिजे आणि -1 रिटर्न केले पाहिजे आणि बफने निर्देशित केलेल्या बफरची सामग्री अपरिभाषित आहे."

रीड() फंक्शन एरर झाल्यास ॲप्लिकेशन प्रोग्राममधील बफरमधून डेटा वापरण्यास मानक प्रतिबंधित करते आणि या आवश्यकतांचे उल्लंघन केल्याचे परिणाम ॲप्लिकेशन प्रोग्रामरद्वारे सहन केले जातात.

"अंमलबजावणी निर्धारित" या शब्दाचा अर्थ अंतर्ज्ञानी शब्दापेक्षा वेगळा आहे. स्पष्टपणे, विशिष्ट ऑपरेटिंग सिस्टममध्ये "अनिर्दिष्ट" किंवा "अपरिभाषित" परिणाम असू शकत नाहीत, काही विशिष्ट परिणाम निश्चितपणे प्राप्त केले जातील. "अंमलबजावणी-परिभाषित" हा शब्द ऑपरेटिंग सिस्टम दस्तऐवजीकरणासाठी मानकांची आवश्यकता व्यक्त करतो: परिणाम केवळ निर्दिष्ट करणे आवश्यक नाही (ऑपरेटिंग सिस्टम डेव्हलपरला हे कोणत्याही परिस्थितीत करावे लागेल), परंतु सिस्टम दस्तऐवजीकरणामध्ये देखील स्पष्टपणे प्रतिबिंबित केले जावे.

डीफॉल्ट शब्दार्थ

कोणताही नियामक दस्तऐवज व्यवहारात उद्भवू शकणाऱ्या संपूर्ण प्रकरणांचा समावेश करू शकत नाही, म्हणून ते अपरिहार्यपणे काहीतरी मागे ठेवते3. उदाहरणार्थ, फंक्शनचे वर्णन असे म्हणू शकते की त्याचा युक्तिवाद एका विशिष्ट श्रेणीतून मूल्ये घेऊ शकतो, परंतु वितर्क त्या श्रेणीमध्ये न आल्यास परिणाम काय होईल हे काहीही सांगणार नाही. साहजिकच, गैरसमज टाळण्यासाठी, एक एकीकृत डीफॉल्ट शब्दार्थ असणे आवश्यक आहे. मानकांच्या माहितीपूर्ण भागात एक मनोरंजक वाक्यांश आहे: "सर्वसाधारणपणे डीफॉल्टचे स्वीकृत शब्दार्थ - प्रतिबंधित." हे विधान दहा वर्षांपूर्वीच्या सुप्रसिद्ध घोषणेला विरोध करते "प्रत्येक गोष्टीला परवानगी आहे जी स्पष्टपणे प्रतिबंधित नाही." वरवर पाहता, हे नागरिकांच्या मनात इतके कोरले गेले आहे की अनेक, अगदी प्रोग्रामर देखील, मानकांच्या उद्धृत विधानाशी सहमत नाहीत. दरम्यान, एखाद्या बांधकामाच्या वापरास स्पष्टपणे परवानगी नसल्यास आणि वर्णनाचे पालन न केल्यास, कोणत्याही सराव प्रोग्रामरला हे समजते की त्याचा वापर धोकादायक आहे आणि जर ते कार्य करत नसेल, तर त्याला दावा करणे शक्य होत नाही.

प्रक्रिया आणि नियंत्रणाचे धागे

या दोन्ही संज्ञा समांतर अंमलबजावणीची कल्पना व्यक्त करतात. UNIX ऑपरेटिंग सिस्टीम मूळत: बहु-वापरकर्ता म्हणून डिझाइन करण्यात आली होती आणि वेगवेगळ्या वापरकर्त्यांद्वारे चालवलेले प्रोग्राम एकमेकांपासून सुरक्षितपणे वेगळे केले जाणे आवश्यक आहे जेणेकरून चुकून "इतर लोकांचा" डेटा दूषित होऊ नये. हे अलगाव सुनिश्चित केले जाते की वापरकर्ता प्रोग्राम त्याच्या स्वतःच्या व्हर्च्युअल ॲड्रेस स्पेसमध्ये चालणाऱ्या प्रक्रियेमध्ये कार्यान्वित केला जातो. प्रोग्राममध्ये जागतिक डेटा असला तरीही, जेव्हा तो वेगवेगळ्या प्रक्रियांमध्ये लॉन्च केला जातो, तेव्हा ते वेगवेगळ्या पत्त्याच्या स्थानांमध्ये स्वयंचलितपणे "विभक्त" केले जातील.

तथापि, रिअल-टाइम टास्क प्रोग्रामिंगसाठी प्रक्रिया यंत्रणा पूर्णपणे समाधानकारक नाही. रिअल-टाइम ऍप्लिकेशन प्रोग्राम (त्याच वापरकर्त्याच्या वतीने चालणारा) सहसा "थ्रेड्स" म्हटल्या जाणाऱ्या एकाच वेळी कार्यान्वित होणाऱ्या भागांच्या रूपात नैसर्गिकरित्या प्रस्तुत केले जाऊ शकते. प्रक्रियांमधील त्यांचा सर्वात महत्त्वाचा फरक म्हणजे सर्व नियंत्रण प्रवाह एकाच पत्त्याच्या जागेत विकसित होतात; हे जागतिक डेटामध्ये द्रुत प्रवेश प्रदान करते, परंतु त्याच वेळी अनावधानाने विकृत होण्याचा धोका असतो आणि हे टाळण्यासाठी, काही प्रोग्रामिंग शिस्त पाळली पाहिजे. संबंधित शिफारसी मानकांच्या माहितीपूर्ण भागामध्ये समाविष्ट आहेत.

यावर जोर दिला पाहिजे की मल्टीथ्रेडिंगची कल्पना अनेक रीअल-टाइम ऑपरेटिंग सिस्टममध्ये लागू केली जाते आणि प्रत्येक नियंत्रण प्रवाहामध्ये गुणधर्म आणि इंटरफेस फंक्शन्सचा भिन्न संच असतो या अर्थाने वेगळ्या पद्धतीने अंमलात आणला जातो; कधीकधी “थ्रेड” या शब्दाऐवजी “कार्य” हा शब्द वापरला जातो. गोंधळ टाळण्यासाठी, मानक यावर जोर देते की ते केवळ POSIX कंट्रोल थ्रेड्सशी संबंधित आहे आणि संबंधित इंटरफेस फंक्शन्सची नावे pthread_ (उदाहरणार्थ, pthread_create(), pthread_join(), इ.) सह उपसर्ग लावली आहेत.

मानकांचे अनुपालन. "संबंधित" शब्दाचे अर्थशास्त्र

अंतर्ज्ञानाने, जर दोन वस्तू समान मानकांनुसार बनविल्या गेल्या असतील, तर ते एकमेकांशी "सोबती" आणि जोडी म्हणून एकत्र काम करतील याची हमी दिली जाते; इंटरफेसिंग (इंटरफेस) साठी मानक सादर करण्याचा हा तंतोतंत उद्देश आहे. POSIX हे इंटरफेस मानक असल्याने, आम्ही ऑपरेटिंग सिस्टम आणि ऍप्लिकेशन प्रोग्राम या दोन्हीच्या मानकांचे पालन करण्याबद्दल बोलू शकतो.

POSIX.1 मानकामध्ये अनेक शंभर (हजारो नसल्यास) आवश्यकता आहेत; हे स्वयं-स्पष्ट मानले जाते की जर यापैकी किमान एक पूर्ण झाले नाही, तर सिस्टम (किंवा अनुप्रयोग प्रोग्राम) मानक पूर्ण करत नाही. त्याच वेळी, आजपर्यंत अनेक UNIX-क्लास ऑपरेटिंग सिस्टम आणि त्यांच्यासाठी ऍप्लिकेशन प्रोग्राम लिहिले गेले आहेत की सूचित अर्थाने पूर्ण अनुपालनाची मागणी करणे फारसे वाजवी नाही. विविध राष्ट्रीय भाषांच्या अस्तित्वामुळे या प्रकारचा आंतरराष्ट्रीय दर्जा विकसित करण्यात अडचणी येतात. जरी आपण राष्ट्रीय भाषांमधील मजकूरांवर प्रक्रिया करण्यासाठी डिझाइन केलेले ऍप्लिकेशन प्रोग्राम विसरलो तरीही, जवळजवळ कोणत्याही ऍप्लिकेशन प्रोग्रामने काही प्रकारचे निदान संदेश तयार केले पाहिजेत आणि/किंवा ऑपरेटरने प्रविष्ट केलेले मजकूर स्वीकारले पाहिजेत.

  • POSIX.1 मानकांचे कठोर पालन;
  • POSIX.1 च्या आंतरराष्ट्रीय आवृत्तीचे अनुपालन;
  • POSIX.1 च्या राष्ट्रीय आवृत्तीचे अनुपालन;
  • विस्तारांसह POSIX.1 अनुपालन.

दुसरे म्हणजे, अनेक इंटरफेस सुविधा ऐच्छिक घोषित केल्या आहेत; मानकासाठी आवश्यक आहे की पर्यायी इंटरफेस फंक्शन्स एकतर मानकाद्वारे निर्दिष्ट केल्याप्रमाणे वागतात किंवा नेहमी एक विशेष त्रुटी कोड, ENOSYS (फंक्शन लागू केलेले नाही हे सूचित करते) परत करतात. पर्यायी सुविधा अनेक गटांमध्ये विभागल्या जातात, त्यापैकी प्रत्येकामध्ये संबंधित कॉन्फिगरेशन स्थिरांक असतो, जो संबंधित शीर्षलेख फाइलमध्ये घोषित केला जातो (#define ऑपरेटरसह); हे कंपाइल वेळी फंक्शन लागू केले आहे की नाही हे निर्धारित करणे शक्य करते.

गतिशीलता प्राप्त करण्यासाठी वर्णन केलेल्या तंत्राचा शोध POSIX च्या लेखकांनी लावला नाही, परंतु सराव मध्ये बराच काळ वापरला गेला आहे; बऱ्याच ऑपरेटिंग सिस्टीम स्वतः किंवा तिची आवृत्ती ओळखण्यासाठी कॉन्फिगरेशन स्थिरांक वापरतात. आणि येथे मानक मूलभूतपणे नवीन काहीही ऑफर करत नाही, परंतु केवळ विद्यमान सराव व्यवस्थित करते.

मानकीकरण आणि मानकांच्या संरचनेच्या वस्तू

थोडक्यात, POSIX.1 मानकीकरणाच्या वस्तू म्हणजे नावे आणि शब्दार्थ. अधिक विशेषतः, आम्ही खालील बद्दल बोलत आहोत.

  • इंटरफेस फंक्शन नावे. 357 फंक्शन्स प्रमाणित केली गेली आहेत, 107 फंक्शन्स स्टँडर्ड C लायब्ररीतून (गणितीय, स्ट्रिंग प्रोसेसिंग, इनपुट/आउटपुट इ.) घेतली आहेत; ही कार्ये POSIX.1 मानकाचा भाग मानली जातात, परंतु त्यांचे संपूर्ण वर्णन C प्रोग्रामिंग भाषेच्या मानकामध्ये समाविष्ट आहे.
  • सिस्टम डेटा प्रकारांची नावे. या नावांना _t हा प्रत्यय आहे.
  • हेडर फाइल्सची नावे, तसेच या फाइल्सची किमान रचना.
  • सिस्टम-व्यापी ग्लोबल व्हेरिएबल्सची नावे (उदाहरणार्थ, errno).
  • एरर कोडची प्रतिकात्मक नावे जी कार्ये चालवताना सेट केली जाऊ शकतात. ही नावे E (EPERM, ENOTEMPTY, इत्यादी) अक्षराने सुरू होतात.
  • कॉन्फिगरेशन स्थिरांकांची नावे. ही नावे _POSIX_ सह उपसर्ग लावलेली आहेत.
  • सिग्नल क्रमांकांची प्रतिकात्मक नावे; ही नावे SIG सह उपसर्ग लावली आहेत. 20 "पारंपारिक" सिग्नल (SIGABRT, SIGALRM, इ.) व्यतिरिक्त, रीअल-टाइम सिग्नल प्रमाणित केले गेले आहेत, ज्याच्या संख्येने किमान RTSIG_MAX संख्या असलेल्या SIGRTMIN पासून SIGRTMAX पर्यंत एक विशिष्ट सतत श्रेणी व्यापली पाहिजे.
  • काही फंक्शन्सच्या वैयक्तिक वितर्कांच्या मूल्यांशी संबंधित प्रतिकात्मक नावे (उदाहरणार्थ, fcntl() फंक्शनचे cmd वितर्क F_DUPFD, F_GETFD, F_GETLK इ. मूल्ये घेऊ शकतात.
  • मॅक्रो, स्थिरांक, बिट ध्वज, पर्यावरण चलांची नावे.

सर्वसाधारणपणे, मानकामध्ये अंदाजे समान व्हॉल्यूमचे दोन मोठे भाग असतात. पहिल्या सहामाहीत - मानक भाग - मानकांच्या आवश्यकता आणि शिफारसी (18 विभाग), दुसरा - माहितीपूर्ण भाग - परिशिष्ट समाविष्टीत आहे, जे मानक भागासाठी संदर्भ, टिप्पण्या आणि स्पष्टीकरणांची सूची प्रदान करतात, शीर्षलेखाची रचना. फायली, मानक (डेन्मार्कसाठी) प्रोफाइलचे (“प्रोजेक्शन”) उदाहरण, सर्वात महत्वाच्या कार्यांचे कार्यप्रदर्शन मोजण्यासाठी वैशिष्ट्ये आणि कार्यपद्धती, तसेच रिअल टाइममध्ये फाइल्ससह कार्य करण्यासाठी अतिरिक्त इंटरफेस फंक्शन्सचे वर्णन; अशी अपेक्षा आहे की मानकांच्या भविष्यातील आवृत्त्यांमध्ये ही कार्ये मानक भागामध्ये समाविष्ट केली जातील.

कोणत्या विशिष्ट प्रकारच्या ऑपरेटिंग सिस्टम सेवा मानकांमध्ये समाविष्ट आहेत याची कल्पना साइडबारद्वारे "मानकांच्या विभागांचा सारांश" द्वारे दिली जाते.

निष्कर्ष

POSIX मानकांची मुख्य सामग्री इंटरफेस फंक्शन्सचे शब्दार्थ आहे. शब्दार्थांचे मानकीकरण करणे हे स्वतःच सोपे काम नाही (प्रत्येकाला माहित आहे की दोन लोकांसाठीही सहमत होणे किती कठीण असू शकते) आणि सध्या बरेच लोक प्रोग्रामिंग क्रियाकलापांमध्ये गुंतलेले असल्यामुळे अडचणी वाढल्या आहेत. उदाहरणार्थ, समांतर अंमलबजावणी प्रतिमान "प्रक्रिया", "कार्य" आणि "नियंत्रण प्रवाह" सारख्या शब्दांमध्ये व्यक्त केले जाते, परंतु व्यावहारिक प्रोग्रामिंगच्या दृष्टिकोनातून, IBM OS/360 ऑपरेटिंग सिस्टममध्ये "कार्य" आणि VxWorks रीअल-टाइम ऑपरेटिंग सिस्टम समान गोष्ट नाही. दुसरे उदाहरण semaphores आहे. Semaphores बायनरी, पूर्णांक ("काउंटरसह") आणि परस्पर बहिष्कार असू शकतात (ज्याला, प्रोग्रामर आपापसात "म्यूटेक्स" म्हणतात, गैरसमज टाळण्याचा उत्स्फूर्त प्रयत्न करतात). आणि पूर्णांक सेमाफोर्स, उदाहरणार्थ, VxWorks ऑपरेटिंग सिस्टममध्ये, POSIX सेमाफोर्स सारखेच नाहीत.

POSIX मानकांचे लेखक, लोकांना त्यांच्या सवयी बदलणे किती कठीण आहे याची पूर्ण जाणीव आहे (ज्याला ते "स्थापित सराव" म्हणतात), त्यांनी दावा केला आहे की त्यांनी इंटरफेस फंक्शन्सची तार्किकदृष्ट्या सुसंगत आणि किमान प्रणाली संकलित केली आहे जी बहुतेक सर्व गोष्टींचा समावेश करते. ऑपरेटिंग सिस्टमद्वारे पारंपारिकपणे प्रदान केलेल्या सेवा, या फंक्शन्सच्या अचूक शब्दार्थांचे तपशीलवार वर्णन करतात आणि प्रत्येकाला त्यांच्या विकासामध्ये त्यांचा वापर करण्यास आमंत्रित करतात4.

मानक वाचताना, एखाद्याला कधीकधी असे समजले जाते की काही शब्दांचा एकच उद्देश होता: मानकांचे समाधान करण्याच्या श्रेणीतून कोणतेही अनुप्रयोग प्रोग्राम किंवा ऑपरेटिंग सिस्टम काढून टाकणे नाही. हे उद्दिष्ट खरेच सेट केले गेले होते आणि प्रस्तावनेत स्पष्टपणे तयार केले आहे: मानकाने विद्यमान सराव शक्य तितक्या जास्त प्रमाणात विचारात घेतला पाहिजे. तथापि, मुख्य लक्ष्य अद्याप अनुप्रयोग प्रोग्रामची गतिशीलता सुनिश्चित करणे आहे.

लेखकाबद्दल

सेर्गेई रोमन्युक - रिसर्च इन्स्टिट्यूट फॉर सिस्टम रिसर्चचे वरिष्ठ संशोधक, POSIX मानक अनुवादक गटाचे नेते. त्याच्याशी ईमेलद्वारे येथे संपर्क साधला जाऊ शकतो: [ईमेल संरक्षित]

1 हे जोडले पाहिजे की मानकांवर काम अनेक वर्षांपासून सुरू आहे; नवीन समस्या ओळखल्या जातात आणि ते एकतर विद्यमान भागांपैकी एकामध्ये समाविष्ट केले जातात किंवा स्वतंत्र भाग म्हणून जारी केले जातात, जे नंतर रद्द केले जाऊ शकतात. हे घडले, उदाहरणार्थ, रिअल-टाइम इंटरफेससह, जे प्रथम POSIX.4 म्हणून घोषित केले गेले आणि नंतर POSIX.1 मध्ये समाविष्ट केले गेले.

2 IEEE ही POSIX मानक विकसित करणारी संस्था आहे.

3 येथे "डिफॉल्ट" म्हणजे मूक, डीफॉल्ट नाही; आम्ही प्रत्यक्षात घोषित केलेल्या काही गर्भित अर्थांबद्दल बोलत नाही, परंतु संदर्भांच्या अनुपस्थितीबद्दल बोलत आहोत.

4 रशियन भाषेत मानकांचे भाषांतर 2000 च्या सुरुवातीस प्रकाशित केले जाईल.

साहित्य

आंतरराष्ट्रीय मानक ISO/IEC 9945-1 (ANSI/IEEE इयत्ता 1003.1) दुसरी आवृत्ती. 1996-07-12. माहिती तंत्रज्ञान - पोर्टेबल ऑपरेटिंग सिस्टम इंटरफेस (POSIX) - भाग 1: सिस्टम ऍप्लिकेशन प्रोग्राम इंटरफेस (API).

M.I.Belyakov, Yu.I.Rabover, A.L.Friedman. मोबाइल ऑपरेटिंग सिस्टम. निर्देशिका. मॉस्को, रेडिओ आणि कम्युनिकेशन्स, 1991.

ISO/IEC 9899: 1990, प्रोग्रामिंग भाषा - C.

विभाग 1 - परिचय
कलम 2 - शब्दावली आणि व्याख्या
कलम 3 - प्रक्रिया व्यवस्थापित करण्यासाठी कार्ये (निर्मिती, प्रतिमा बदलणे, समाप्ती) आणि सिग्नल (मुखवटे व्यवस्थापित करणे, सिग्नलला प्रतिसाद देणे)
कलम 4 - ओळख (प्रक्रिया, वापरकर्ते, प्रणाली, टर्मिनल), प्रक्रियेच्या अंमलबजावणीवर घालवलेल्या वेळेचे मतदान, पर्यावरणीय चलांचे मतदान.
कलम 5 - फाइल आणि निर्देशिका व्यवस्थापन
कलम 6 - इनपुट आणि आउटपुट कार्ये
कलम 7 - टर्मिनल व्यवस्थापन कार्ये
कलम 8 - सी भाषेच्या मानकातून घेतलेली कार्ये
कलम 9 - वापरकर्ता आणि वापरकर्ता गट डेटाबेसमध्ये प्रवेश
कलम 10 - संग्रहण आणि सामायिकरणासाठी डेटा स्वरूप (tar आणि cpio)
कलम 11 - सिंक्रोनाइझेशन टूल्स: सेमाफोर्स, म्यूटेक्स आणि कंडिशन व्हेरिएबल्स
कलम 12 - मेमरी मॅनेजमेंट फंक्शन्स: ॲड्रेस स्पेस पिन करणे आणि अनपिन करणे, फायलींचे मेमरी मॅपिंग, मेमरी संरक्षण, सामायिक मेमरी
कलम १३ - शेड्युलिंग प्रक्रिया आणि नियंत्रण प्रवाहांशी संबंधित कार्ये
कलम 14 - घड्याळ आणि टाइमर व्यवस्थापन
कलम 15 - संदेश रांग व्यवस्थापन
कलम 16 - नियंत्रण प्रवाहाशी संबंधित मूलभूत कार्ये
कलम 17 - थ्रेड-विशिष्ट डेटा
कलम 18 - नियंत्रण प्रवाह नष्ट करण्यासाठी साधने

Posix हे नाव "पोर्टेबल ऑपरेटिंग सिस्टम इंटरफेस" वरून आले आहे, ज्याचा अंदाजे अर्थ "पोर्टेबल ऑपरेटिंग सिस्टम इंटरफेस" आहे. हे एक मानक नाही तर इन्स्टिट्यूट फॉर इलेक्ट्रिकल अँड इलेक्ट्रॉनिक्स इंजिनियर्स (IEEE) ने विकसित केलेले संपूर्ण कुटुंब आहे. Posix मानके देखील ISO (इंटरनॅशनल ऑर्गनायझेशन फॉर स्टँडर्डायझेशन) आणि IEC (इंटरनॅशनल इलेक्ट्रोटेक्निकल कमिशन), किंवा ISO/IEC द्वारे आंतरराष्ट्रीय मानके म्हणून स्वीकारली गेली आहेत. Posix मानके विकासाच्या अनेक टप्प्यांतून गेले आहेत.

IEEE मानक 1003.1-1988 (317 पृष्ठे) हे पहिले Posix मानक होते. यात खालील भागात C भाषा आणि युनिक्स-प्रकार कर्नल यांच्यातील इंटरफेस परिभाषित केला आहे: प्रक्रिया (फोर्क, एक्झिक कॉल, सिग्नल आणि टाइमर), प्रक्रिया वातावरण (वापरकर्ता आयडी, प्रक्रिया गट), फाइल्स आणि निर्देशिका (सर्व I/O फंक्शन्स) , टर्मिनल, सिस्टम डेटाबेस (पासवर्ड आणि ग्रुप फाइल्स), टार आणि सीपीओ आर्काइव्ह फॉरमॅटसह कार्य करणे.

टीप

पहिले Posix मानक 1986 मध्ये IEEEIX नावाने कार्यरत स्वरूपात प्रसिद्ध झाले. पॉसिक्स हे नाव रिचर्ड स्टॉलमन यांनी सुचवले होते.

मग IEEE 1003.1-1990 मानक (356 पृष्ठे) बाहेर आले. हे आंतरराष्ट्रीय मानक ISO/IEC 9945-1:1990 देखील होते. 1988 च्या आवृत्तीच्या तुलनेत, 1990 च्या आवृत्तीतील बदल कमी होते. शीर्षक जोडले गेले: "भाग 1: सिस्टम ऍप्लिकेशन प्रोग्राम इंटरफेस (API)" ("भाग 1: सिस्टम ऍप्लिकेशन प्रोग्राम इंटरफेस (API) [C Language]"), ज्याचा अर्थ मानकाने प्रोग्राम इंटरफेस (API) चे वर्णन केले आहे. सी भाषा.

IEEE 1003.2-1992 एकूण 1300 पृष्ठांच्या दोन खंडांमध्ये आले आणि त्याच्या शीर्षकात "भाग 2: शेल आणि उपयुक्तता" ही ओळ आहे. या भागाने इंटरप्रिटर (युनिक्स सिस्टीम V मधील बॉर्न शेलवर आधारित) आणि सुमारे शंभर उपयुक्तता (प्रोग्राम्स सामान्यत: इंटरप्रिटरकडून - awk आणि basename पासून vi आणि uass पर्यंत) परिभाषित केल्या आहेत. या पुस्तकात आम्ही Posix नावाने या मानकाचा संदर्भ घेऊ. 2.

IEEE 1003.1b-1993 (590 पृष्ठे) मूळतः IEEE P1003.4 म्हणून ओळखले जात होते. हे मानक 1003.1-1990 मानकांना जोडलेले होते आणि P1003.4 वर्किंग ग्रुपने विकसित केलेले रिअल-टाइम विस्तार समाविष्ट होते: फाइल सिंक्रोनाइझेशन, एसिंक्रोनस I/O, सेमाफोर्स, मेमरी व्यवस्थापन, शेड्यूलिंग, घड्याळे, टाइमर आणि संदेश रांग.

IEEE 1003.1, 1996 आवृत्ती (743 पृष्ठे), 1003.1-1990 (बेस API), 1003.1b-1993 (रिअल-टाइम विस्तार), 1003.1-1995 (Pthreads - Posix Program थ्रेड्स), आणि AmyT1919 (AmiT191) थ्रेड्स समाविष्ट आहेत. 1003.1b). या मानकाला ISO/IEC 9945-1: 1996 असेही म्हणतात. यात थ्रेड्सवर तीन अध्याय आणि थ्रेड सिंक्रोनाइझेशन (म्युच्युअल्स आणि कंडिशन व्हेरिएबल्स), थ्रेड शेड्यूलिंग, सिंक्रोनाइझेशन शेड्यूलिंग यावरील अतिरिक्त विभाग जोडले गेले. या पुस्तकात आम्ही याला मानक Posix.1 म्हणतो.

टीप

मानकाच्या 743 पानांपैकी एक चतुर्थांश पेक्षा जास्त पृष्ठे "रॅशनल अँड नोट्स" नावाचे परिशिष्ट होते. हे तर्क ऐतिहासिक माहिती प्रदान करते आणि विशिष्ट वैशिष्ट्ये मानकांमध्ये का समाविष्ट केली गेली किंवा का नव्हती याचे कारण स्पष्टीकरण देते. अनेकदा तर्क हे प्रमाणापेक्षा कमी उपयुक्त नसतात.

दुर्दैवाने, IEEE मानके इंटरनेटद्वारे मुक्तपणे उपलब्ध नाहीत. तुम्ही पुस्तक कोठे मागवू शकता याची माहिती संदर्भ सूचीमध्ये लिंकखाली दिलेली आहे. लक्षात घ्या की सेमाफोर्सची व्याख्या रिअल-टाइम एक्स्टेंशन्स स्टँडर्डमध्ये केली गेली होती, म्युटेक्स आणि कंडिशन व्हेरिएबल्सपासून वेगळे (जे Pthreads मानकामध्ये परिभाषित केले होते), जे या टूल्सच्या API मधील काही फरक स्पष्ट करतात.

शेवटी, लक्षात घ्या की वाचन-लेखन लॉक Posix मानकांचा भाग नाहीत. हे धडा 8 मध्ये अधिक तपशीलाने समाविष्ट केले आहे.

भविष्यात, IEEE 1003.1 ची नवीन आवृत्ती नियोजित आहे, ज्यामध्ये P1003.1g मानक, नेटवर्क इंटरफेस (सॉकेट्स आणि XTI) समाविष्ट आहेत, ज्याचे वर्णन या पुस्तकाच्या पहिल्या खंडात केले आहे.

1996 Posix.1 मानकाची प्रस्तावना असे सांगते की ISO/IEC 9945 मध्ये खालील भाग असतात:

1. सिस्टम प्रोग्राम डेव्हलपमेंट इंटरफेस (API) (C भाषा).

2. दुभाषी आणि उपयुक्तता.

3. प्रणाली प्रशासन (विकासात).

भाग 1 आणि 2 ज्यांना आपण Posix.1 आणि Posix.2 म्हणतो.

पॉसिक्स मानकांवर काम चालू आहे आणि त्यांच्याशी संबंधित पुस्तकांच्या लेखकांना हलत्या लक्ष्यावर शूटिंगचा सामना करावा लागतो. मानकांची सद्य स्थिती http://www.pasc.org/standing/sd11.html येथे आढळू शकते.

RTOS वैशिष्ट्यांमधील मोठा फरक आणि विद्यमान मायक्रोकंट्रोलर्सची प्रचंड संख्या रिअल-टाइम सिस्टमच्या क्षेत्रात मानकीकरणाची समस्या समोर आणते.

सर्वात जुने आणि सर्वात व्यापक RTOS मानक हे POSIX मानक आहे (आयईईई पोर्टेबल ऑपरेटिंग सिस्टम इंटरफेस फॉर कॉम्प्युटर एन्व्हायर्न्मेंट्स, IEEE 1003.1). POSIX मानकाची मूळ आवृत्ती 1990 मध्ये दिसली आणि ती UNIX सिस्टमसाठी होती, ज्याच्या पहिल्या आवृत्त्या गेल्या शतकाच्या 70 च्या दशकात दिसू लागल्या. POSIX तपशील ॲप्लिकेशन प्रोग्राम आणि ऑपरेटिंग सिस्टम यांच्यातील परस्परसंवादासाठी एक मानक यंत्रणा परिभाषित करतात आणि सध्या 30 पेक्षा जास्त मानकांचा संच समाविष्ट करते. RTOS साठी, त्यापैकी सात सर्वात महत्वाचे आहेत (1003.1a, 1003.1b, 1003.1c, 1003.1d, 1003.1j, 1003.21, 1003.2h), परंतु व्यावसायिक ऑपरेटिंग सिस्टममध्ये फक्त पहिले तीन मोठ्या प्रमाणात समर्थित आहेत.

POSIX मानकाच्या स्पष्टपणे कालबाह्य तरतुदी असूनही आणि RTOS साठी मानकीकरण अद्यतनांची मोठी मागणी असूनही, या दिशेने कोणतीही लक्षणीय प्रगती झालेली नाही.

POSIX मानक ऑपरेटिंग सिस्टम सेवांसाठी मानक इंटरफेस म्हणून तयार केले गेले. हे मानक पोर्टेबल अनुप्रयोग तयार करणे शक्य करते. हे मानक नंतर रीअल-टाइम वैशिष्ट्ये समाविष्ट करण्यासाठी विस्तृत केले गेले.

POSIX तपशील अनुप्रयोग आणि OS मधील परस्परसंवादासाठी मानक यंत्रणा परिभाषित करतात. हे नोंद घ्यावे की POSIX मानक युनिक्स ऑपरेटिंग सिस्टमशी जवळून संबंधित आहे, तथापि, अनेक RTOS चे विकासक या मानकांचे पालन करण्याचा प्रयत्न करतात.

OS आणि हार्डवेअर प्लॅटफॉर्मसाठी POSIX मानकांचे अनुपालन त्यांच्यावर चाचणी प्रकरणे चालवून प्रमाणित करणे आवश्यक आहे. तथापि, जर OS युनिक्ससारखे नसेल, तर ही आवश्यकता पूर्ण करणे एक आव्हान बनते. चाचणी सूट फक्त POSIX 1003.1a साठी अस्तित्वात आहेत. POSIX फ्रेमवर्क हा पर्यायी वैशिष्ट्यांचा संग्रह असल्यामुळे, OS विक्रेते मानक इंटरफेसचा फक्त एक भाग लागू करू शकतात आणि तरीही त्यांची प्रणाली POSIX-अनुरूप असल्याचा दावा करतात.

जरी POSIX मानक युनिक्समधून विकसित झाले असले तरी, ते ऑपरेटिंग सिस्टमच्या मूलभूत अमूर्ततेला संबोधित करते आणि रिअल-टाइम विस्तार सर्व RTOS ला लागू होतात.



आम्ही वाचण्याची शिफारस करतो

वर