POSIX și RT OS: o încercare de sistematizare. Concepte și idei de bază ale standardului POSIX standardizarea Unix a sistemelor de operare și posix

STANDARDE

Serghei Zolotarev,

Scopul acestui articol este o încercare de a aduce o oarecare claritate istoriei dezvoltării standardului POSIX în legătură cu sistemele de operare în timp real (RTOS).

Ca o introducere: de ce este necesară standardizarea interfeței software?

Una dintre cele mai importante proprietăți ale standardului POSIX este că definește o „interfață de programare standardizată” la care trebuie să respecte dezvoltatorii de sisteme hardware și software complexe. Creatorii acestor sisteme sunt nevoiți să facă față cerințelor precum timpul scurt de lansare pe piață (datorită concurenței acerbe), minimizarea costurilor și accelerarea rentabilității investiției. În același timp, partea leului din costurile cauzate de încetinirea procesului de dezvoltare se datorează faptului că programatorii trebuie să „reinventeze roata”, implementând din nou și din nou funcționalități care sunt deja disponibile de mult timp. Dar acest lucru ar fi putut fi evitat prin:

Reutilizarea codului din proiecte trecute și paralele;

Transferarea codului de pe alte sisteme de operare;

Atragerea dezvoltatorilor din alte proiecte (inclusiv utilizarea altor sisteme de operare).

Toate acestea sunt posibile datorită utilizării unui sistem de operare cu un API standardizat. Mai mult, dacă în primul caz este suficient ca o organizație să aibă un fel de standard intern (ceea ce este tipic mai ales pentru sistemele de operare proprietare), atunci al doilea caz necesită prezența unor standarde general recunoscute - de exemplu, POSIX.

Astfel, folosind un sistem de operare compatibil POSIX ca platformă pentru proiectele sale, dezvoltatorul are posibilitatea de a transfera codul finit la nivel de sursă atât din proiectele sale trecute sau paralele, cât și din proiecte ale terților. Acest lucru nu numai că reduce semnificativ timpul de dezvoltare a software-ului, dar îi îmbunătățește și calitatea, deoarece codul testat conține întotdeauna mai puține erori.

Cine este cine în dezvoltarea POSIX

Și vom începe nu cu standardul POSIX în sine, ci cu eficientizarea rolului organizațiilor implicate în lucrul la el.

Primul participant este IEEE(Institutul Inginerilor Electricieni și Electronici), asociație publică non-profit de profesioniști. IEEE își urmărește istoria încă din 1884 (oficial din 1963), reunește 380.000 de membri individuali din 150 de țări, publică o treime din literatura tehnică referitoare la aplicarea calculatoarelor, controlului, tehnologiei electrice și a informației, precum și peste 100 de reviste, popular printre profesioniști; În plus, asociația ține peste 300 de conferințe majore pe an. IEEE a participat la dezvoltarea a peste 900 de standarde actuale (www.ieee.ru/ieee.htm). Astăzi, acest institut este angajat în pregătirea, coordonarea, aprobarea și publicarea standardelor, dar datorită statutului său formal nu are autoritatea de a adopta documente precum standardele internaționale sau naționale. Prin urmare, termenul „standard” în înțelegerea IEEE înseamnă mai degrabă „specificație”, care este mai în concordanță cu statutul documentelor adoptate de asociație. În conformitate cu IEEE, participă la programele unui număr de organizații internaționale și regionale - IEC, ISO, ITU (International Telecommunication Union), ETSI (European Telecommunications Standards Institute), CENELEC (European Committee for Electrotechnical Standardization) și la programe naționale, de exemplu în programul unei astfel de organizații precum ANSI.

IEEE include PASC (Portable Application Standards Committee; www.pasc.org/), un comitet de asociere care dezvoltă familia de standarde POSIX. PASC era cunoscut anterior ca Comitetul Tehnic al Sistemelor de Operare.

Al doilea participant la lucru este ANSI (American National Standards Institute, American National Standards Institute; www.ansi.org) - o organizație privată non-profit care administrează și coordonează activitățile de standardizare în Statele Unite. Are doar 75 de angajați, dar membrii ANSI includ peste 1.000 de companii, organizații, agenții guvernamentale și instituții. ANSI reprezintă Statele Unite în cele două mari organizații internaționale de standardizare, ISO și IEC.

Al treilea participant - ISO(Organizația Internațională pentru Standardizare, Organizația Internațională pentru Standardizare; www.iso.org). A fost creat în 1946 prin decizia Comitetului pentru Coordonarea Standardelor și a Adunării Generale a ONU și a început oficial activitatea la 23 februarie 1947. ISO este o rețea de institute naționale de standardizare din 146 de țări (o țară - un membru ISO) cu un secretariat central la Geneva (Elveția). Standardele ISO sunt elaborate în comitete tehnice, al căror prim rezultat este Proiectul Standardului Internațional (DIS), care, după mai multe aprobări, se transformă în Final Draft International Standard (FDIS). După aceasta, se supune la vot problema aprobării acestui document; dacă rezultatul este pozitiv, acesta devine un standard internațional.

Și, în sfârșit - IEC(Comisia Electrotehnică Internațională, Comisia Electrotehnică Internațională - IEC; www.iec.ch/), înființată în 1906, IEC pregătește și publică standarde internaționale pentru toate tehnologiile electrice, electronice și conexe. Începând cu 1 noiembrie 2004, comitetele naționale din 64 de țări erau membri activi ai acestei comisii. IEC emite și recomandări, care sunt publicate în engleză și franceză și au statut de standarde internaționale. Pe baza acestora, sunt dezvoltate standarde regionale și naționale. Comitetele tehnice (TC) sunt responsabile pentru pregătirea standardelor în diferite domenii ale activităților IEC, la lucrările cărora participă și comitetele naționale interesate de activitățile unui anumit TC.

IEC- o organizație cheie în pregătirea standardelor internaționale pentru tehnologia informației. În acest domeniu există un comitet tehnic comun pentru tehnologia informației, JTC 1, format în 1987 în conformitate cu un acord între IEC și ISO. JTC1 are 17 subcomitete care supraveghează totul, de la software la limbaje de programare, grafică pe computer și editare de imagini, interconexiuni hardware și tehnici de securitate.

Pregătirea noilor standarde IEC cuprinde mai multe etape (preliminar, propunere, pregătitoare, comitet tehnic, cerere, aprobare, publicare). Dacă se intenționează ca un document IEC să devină doar o specificație tehnică și nu un standard internațional, o versiune revizuită a documentului este trimisă la biroul central pentru publicare. Sunt alocate patru luni pentru elaborarea proiectului final de standard internațional (FDIS). În cazul în care este aprobat de toți membrii comitetului tehnic, este trimis la biroul central pentru publicare fără stadiul de aprobare FDIS. FDIS merge apoi la comitetele naționale, care trebuie să îl aprobe în termen de două luni. FDIS este considerat aprobat dacă mai mult de două treimi din comitetele naționale îl votează, iar numărul de voturi negative nu depășește 25%. Dacă un document nu este aprobat, acesta este trimis comitetelor tehnice și subcomisiilor pentru revizuire. Standardul trebuie publicat în cel mult două luni de la aprobarea FDIS.

Câteva alte organizații sunt implicate în dezvoltarea și adoptarea standardelor POSIX.

Grup deschis este o organizație internațională de standarde software care reunește aproape 200 de furnizori și comunități de utilizatori care lucrează în domeniul tehnologiei informației (www.opengroup.org/).OpenGroup a fost creat în 1995 prin fuziunea celor doi predecesori ai săi: X/Open și Open Software Foundation (OSF). Open Group este specializat în dezvoltarea metodologiilor de certificare software și testarea conformității cu cerințele specifice. În special, Open Group este angajat în certificare pentru domenii precum COE Platform, CORBA, LDAP, Linux Standard Base, Schools Interoperability Framework (SIF), S/MIME Gateway, Single UNIX Specification, Wireless Application Protocol Specifications (WAP) și, în cele din urmă, familia de standarde POSIX (www.opengroup.org/certification/).

AustinCommonStandardsRevisionGroup (CSRG)- un grup de lucru tehnic comun format în 2002 de ISO, IEC și Open Group pentru a crea și menține cele mai recente versiuni ale standardului 1003.1, care va fi format pe baza ISO/IEC 9945-1-1996, ISO/IEC 9945- 2-1993, IEEE Std 1003.1-1996, IEEE Std 1003.2-1992 și specificația unică UNIX (www.opengroup.org/press/14nov02.htm).

Institutul Național de Standarde și Tehnologie (NIST) este o agenție federală din cadrul Administrației Tehnologice a Departamentului de Comerț (www.nist.gov/public_affairs/general2.htm), fondată în SUA în 1901. Misiunea NIST este de a dezvolta și promova standarde și tehnologii pentru îmbunătățirea calității produselor. NIST include un laborator de tehnologie a informației (Laboratorul de Tehnologia Informației - ITL), unul dintre rezultatele cărora este Standardele Federale de Procesare a Informației (FIPS, www.opengroup.org/testing/fips/general_info.html NIST/ITL a propus setul inițial de teste pentru certificarea POSIX în 1991 sub FIPS PUB 151-). 1 1990.

Ce este POSIX?

Formal termenul POSIX propus de Richard Stallman ca abreviere pentru P ortable O perating S interfață de sistem pentru un IX(interfață portabilă a sistemului de operare pentru Unix). POSIX a fost dezvoltat pentru sisteme de operare asemănătoare UNIX (primele lor versiuni datează de la începutul anilor 1970) cu scopul de a asigura portabilitatea aplicațiilor la nivel de cod sursă.

Descrierea inițială a interfeței a fost publicată în 1986, apoi a fost numită IEEE-IX (versiunea IEEE a UNIX). Cu toate acestea, numele s-a schimbat rapid în POSIX, iar următoarea publicație (în 1986) a folosit această nouă variantă. De ceva timp, POSIX a fost înțeles ca referință (sau sinonim) la grupul de documente conexe IEEE 1003.1-1988 și părți ale ISO/IEC 9945, iar ca standard internațional complet și aprobat, ISO/IEC 9945.1:1990 a fost adoptat POSIX în 1990. Specificațiile POSIX definesc mecanismul standard de interacțiune între un program de aplicație și sistemul de operare și includ în prezent peste 30 de standarde sub auspiciile IEEE, ISO, IEC și ANSI.

POSIX a parcurs un drum lung de-a lungul istoriei sale, cu numeroase modificări la denumirea specificațiilor, conținutul specific al acestora, procedurile și logistica de testare a acestora. De-a lungul timpului, mai multe ediții ale standardului POSIX au fost lansate în cadrul diferitelor organizații internaționale.

Istoricul dezvoltării standardului POSIX

Prima versiune a specificației IEEE Std 1003.1 a fost publicată în 1988. Ulterior, numeroase ediții ale IEEE Std 1003.1 au fost adoptate ca standarde internaționale. Etape de dezvoltare POSIX:

- 1990 Ediția lansată în 1988 a fost revizuită și a devenit baza pentru ediții și completări ulterioare. A fost aprobat ca standard internațional de ISO/IEC 9945-1:1990.

- 1993 Revizia 1003.1b-1993 este lansată.

- 1996 IEEE Std 1003.1b-1993, IEEE Std 1003.1c-1995 și 1003.1i-1995 au fost modificate, dar corpul documentului rămâne neschimbat. Ediția din 1996 a IEEE Std 1003.1 a fost, de asemenea, adoptată ca standard internațional de ISO/IEC 9945-1:1996.

- 1998 A apărut primul standard pentru „timp real” - IEEE Std 1003.13-1998. Este o extensie a standardului POSIX pentru aplicațiile încorporate în timp real.

- 1999 S-a decis să se facă primele modificări semnificative din ultimii 10 ani la textul principal al standardului, inclusiv integrarea cu standardul 1003.2 (Shell și utilități), deoarece la acel moment acestea erau standarde separate. PASC a decis să finalizeze modificările textului de bază după ce standardele IEEE 1003.1a, 1003.1d, 1003.1g, 1003.1j, 1003.1q și 1003.2b au fost finalizate.

- 2004 Cea mai recentă revizuire a standardului 1003.1 a fost publicată pe 30 aprilie și a fost lansată sub auspiciile Austin Common Standards Revision Group. Este modificat de ediția din 2001 a standardului. În mod formal, ediția din 2004 este cunoscută ca IEEE Std 1003.1, 2004 Edition, The Open Group Technical Standard Base Specifications, Issue 6 și include IEEE Std 1003.1-2001, IEEE Std-2001/1. Cor 1-2002 și IEEE Std 1003.1-2001/Cor 2-2004.

Cele mai importante standarde POSIX pentru RT OS

Pentru sistemele de operare în timp real, șapte specificații standard sunt cele mai importante, dar doar trei au primit suport pe scară largă în sistemele de operare comerciale:

1003.1a (Definiția OS) definește principalele interfețe ale sistemului de operare, controlul lucrărilor, semnalele, sistemul de fișiere și funcțiile dispozitivului, grupurile de utilizatori, conductele, bufferele FIFO;

1003.1b (Extensii în timp real) descrie extensii în timp real, cum ar fi semnale în timp real, programare prioritară, cronometre, I/O sincrone și asincrone, semafore, memorie partajată, mesaje. Acest standard a fost inițial (până în 1993) desemnat POSIX.4;

1003.1c (Fire de execuție) definește funcții de suport pentru fire de execuție (threads) - gestionarea firelor de execuție, atributele firelor de execuție, mutexuri, dispecerare. Inițial desemnat ca POSIX.4a.

În plus față de aceste standarde, următoarele standarde sunt importante pentru sistemul de operare RT, care au fost implementate ca parte a lucrărilor la proiectul Std 1003.1-2001:

IEEE 1003.1d-1999. Extensii suplimentare în timp real. Inițial desemnat ca POSIX.4b;

IEEE 1003.1j-2000. Extensii îmbunătățite (avansate) în timp real;

IEEE 1003.1q-2000. Urmă.

Procedura de certificare

Pentru a se conforma cu standardul POSIX, sistemul de operare trebuie să fie certificat conform rezultatelor suitei de teste adecvate. De la introducerea POSIX, suita de teste a suferit modificări formale și faptice.

În 1991, NIST a dezvoltat programul de testare POSIX ca parte a FIPS 151-1 (http://standards.ieee.org/regauth/posix/POSIX-A.FM5.pdf). Această opțiune de testare a fost bazată pe IEEE 1003.3 „Standard pentru metodele de testare pentru măsurarea conformității cu POSIX” Draft 10, 3 mai 1989. În 1993, NIST a finalizat programul de testare POSIX pentru FIPS 151-1 și a început programul pentru FIPS 151 -2 (www.itl.nist.gov/fipspubs/fip151-2.htm).FIPS 151-2 a adaptat „Information Technology - Portable Operating System Interface (POSIX) - Part 1: System Application Program Interface (API),” care ISO/ Standardul IEC 9945-1:1990. Suitele de testare pentru FIPS 151-2 au fost bazate pe IEEE 2003.1-1992 „Standard pentru metodele de testare pentru măsurarea conformității cu POSIX”.

NIST face distincție între două metodologii de certificare: auto-certificare și certificare de către IEEE Accredited POSIX Testing Laboratories (APTL). În primul caz, compania efectuează testarea independent, dar conform unui plan aprobat de NIST. În al doilea caz, testarea este efectuată de un laborator independent folosind truse de testare automate. În total, două laboratoare APTL au fost acreditate: Mindcraft (www.mindcraft.com) și Perennial (www.peren.com).

În 1997, NIST/ITL și-a anunțat intenția de a înceta certificarea FIPS 151-2 la sfârșitul anului în curs (oficial 31 decembrie 1997), în timp ce Open Group a anunțat că intenționează să preia certificarea începând cu 1 octombrie 1997. . în același an, serviciu de certificare în conformitate cu FIPS 151-2, bazat pe programul NIST/ITL. Aceleași funcții au fost preluate de IEEE Standards Association (IEEE-SA) la 1 ianuarie 1998, tot pe baza FIPS 151-2.

În 2003, IEEE-SA și Open Group au anunțat începerea unui nou program comun de certificare a celor mai recente versiuni ale POSIX, începând cu IEEE 1003.1(tm) 2001. Open Group are acum mai multe suite de testare care acoperă IEEE Std 1003.1-1996 , IEEE Std 1003 .

2-1992, IEEE Std 1003.1-2003 și IEEE Std 1003.13-1998 (www.opengroup.org/testing/testsuites/posix.html). Un produs este considerat certificat POSIX dacă a trecut procedura de certificare completă, îndeplinește toate cerințele bazate pe rezultatele testelor și este inclus în registrul oficial al produselor certificate.

Suitele de testare includ:

VSX-PCTS1990 (www.opengroup.org/testing/testsuites/vsxpcts1990.htm) - un set de teste de conformitate pentru interfețele de sistem IEEE Std 1003.1-1990;

VSPSE54 (www.opengroup.org/testing/testsuites/VSPSE54.htm) - un set de teste de conformitate pentru IEEE Std 1003.13-1998 Profil PSE54 (multi-purpose real time);

VSX-PCTS2003 (www.opengroup.org/testing/testsuites/vsxpcts2003.htm) - un set de teste de conformitate pentru interfețele de sistem IEEE Std 1003.1-2003 (doar părți obligatorii);

VSC-PCTS2003 (www.opengroup.org/testing/testsuites/vscpcts2003.htm) - un set de teste de conformitate pentru IEEE Std 1003.1-2003 (shell și utilitare - numai piese obligatorii).

În plus, Open Group a dezvoltat teste pentru standardele POSIX Realtime și profilul standardelor Embedded POSIX. Suita de teste POSIX Realtime (www.opengroup.org/testing/testsuites/realtime.html) include următoarele teste:

IEEE POSIX 1003.1b-1993/1003.1i-1995 Extensie în timp real și IEEE POSIX 1003.1,2003 Edition;

Extensia IEEE Std POSIX 1003.1c-1995 Threads (pthreads) și IEEE POSIX 1003.1,2003 Edition;

IEEE POSIX 1003.1d-1999 Extensie suplimentară în timp real și IEEE POSIX 1003.1,2003 Edition;

IEEE POSIX 1003.1j-2000 Advanced Realtime Extension și IEEE POSIX 1003.1,2003 Edition;

IEEE POSIX 1003.1q-2000 Trace și IEEE POSIX 1003.1,2003 Edition și IEEE POSIX 1003.1,2003 Edition;

Suita de teste de profil de standarde Embedded POSIX (www.opengroup.org/testing/testsuites/embedded.html) include următoarele teste:

IEEE POSIX 1003.1-1990 (5310 teste);

Extensie în timp real IEEE POSIX 1003.1b-1993/1003.1i-1995 (1430 teste);

Extensie IEEE Std POSIX 1003.1c-1995 Threads (pthreads) (1232 teste);

IEEE POSIX 1003.13-1998 Profil 52.

Un pic despre confuzie în terminologie

În ceea ce privește grupul de standarde POSIX, nu unul, ci trei termeni sunt adesea folosiți în engleză. Din păcate, ele sunt similare ca semnificație și sunt adesea traduse în același mod, ceea ce creează o oarecare confuzie. Acești termeni sunt:

Сcompatibilitate (literal - „compatibilitate”);

Сconformitate (literal - „conformitate”);

Conformitate (literal „coerență”).

Primul termen, așa cum este aplicat POSIX, nu este definit formal. Al doilea înseamnă că organizația care produce produsul software declară în mod independent că acest produs (total sau parțial) respectă standardele NIST-PCTS enumerate. Al treilea termen implică faptul că produsul software a trecut un sistem de testare stabilit fie cu ajutorul unui laborator acreditat, fie în cadrul Open Group și există dovezi documentare în acest sens (așa-numita Declarație de Conformitate). Mai departe, în textul articolului, termenii originali vor fi dați peste tot pentru a elimina ambiguitatea.

Certificat OS RV

Dacă respectați reguli stricte care cer ca datele de pe un sistem de operare RT certificat să fie publicate în registrul oficial și testarea să fie efectuată în funcție de nivelul conformitatea, atunci în prezent există doar două sisteme de operare RT certificate (datele sunt date în ordine cronologică):

- LynxOS v.3(un produs al Lynx Real-Time Systems, numit acum LynuxWorks, Inc., www.lynuxworks.com) este destinat dezvoltării de software pentru sisteme încorporate în timp real de către OEM și producătorii de echipamente de telecomunicații, în special producătorii de sisteme militare aeriene. Dezvoltarea poate fi efectuată atât pe sistemul țintă în sine (auto-găzduit), cât și pe un computer instrumental (gazdă), software-ul gata făcut este proiectat să funcționeze pe sistemul țintă (țintă). LynxOS v.3 este certificat pentru consecvență (conformitate) Standard POSIX pe platformele Intel și PowerPC. Informații despre acest lucru pot fi găsite pe site-ul web IEEE http://standards.ieee.org/regauth/posix/posix2.html LynxOS este certificat pentru POSIX 1003.1-1996 de către Mindcraft, un laborator de testare POSIX acreditat IEEE POSIX pentru NIST FIPS. 151- suită de teste 2 Conformance Test Suite. Număr document de certificare: Fișier de referință: IP-2LYX002, Fișier de referință: IP-2LYX001.

- INTEGRITATE v.5(produs al Green Hills Software, www.ghs.com) certificat pentru consecvență (conformitate) la POSIX 1003.1-2003, Interfețe de sistem pentru arhitectura PowerPC în iulie 2004 (http://get.posixcertified.ieee.org/select_product.tpl). Suita de teste VSX-PCTS 2003.

POSIX și sistemul de operare QNX

QNX v.4.20(dezvoltat de QNX Software Systems, www.qnx.com) certificat pentru conformitate (conformitate) la POSIX 1003.1-1988 pentru platforma Intel de către DataFocus Incorporated. Testarea a fost efectuată pe 13 septembrie 1993, iar documentul a fost emis la 1 noiembrie 1993. NIST PCTS 151-1 Test Suite, Versiunea 1.1.

QNX Neutrino (versiunea 6.3) respectă următoarele standarde ale familiei 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, creatorul QNX Neutrino, intenționează, de asemenea, să conformeze QNX Neutrino unora dintre aceste standarde; lucrările sunt planificate pentru 2005 (www.qnx.com/news/pr_959_1.html).

Literatură

1. Manual de operare al Asociației de Standarde IEEE. IEEE, octombrie 2004.

2. Kevin M. Obeland. POSIX în timp real, programarea sistemelor încorporate, 2001.

3. Standardul IEEE/ANSI 1003.1: Tehnologia informației - (POSIX) - Partea 1: Aplicație de sistem: Interfață de program (API).

4. Gallmeister B.O. Programare pentru lumea reală, POSIX.4 Sebastopol, CA: O'Reilly & Associates, 1995.

5. Institutul Național de Standarde și Tehnologie, PCTS:151-2, POSIX Test Suite.

6. POSIX: Certificat de IEEE și The Open Group. Politică certificată. Grupul deschis, 21 octombrie 2003, revizuirea 1.1.

- (IPAEng|ˈpɒzɪks) sau Portable Operating System Interface citează web | titlu = POSIX | url = http://standards.ieee.org/regauth/posix/ | munca = Standarde | publisher = IEEE] este numele colectiv al unei familii de standarde conexe specificate de IEEE ... Wikipedia

POSIX- este numele unei familii de standarde definite începând cu 1988 de Institutul de Ingineri Electrici și Electronici și desemnat formal IEEE 1003. Aceste standarde au apărut într-un proiect de standardizare des API des software destinate… …

Posix- este numele familiei de standarde definite începând cu 1988 de către IEEE și desemnat formal IEEE 1003.

POSIX- este acronimul Portable Operating System Interface; la X vine de UNIX ca seña de identitate a API. El término a fost sugerat de Richard Stallman în răspuns la cererea IEEE, căutând un nume ușor de amintit. Una traducere... Wikipedia Español

POSIX- , 1986 în Standard 1003.1 der IEEE niedergelegte Spezifikation für Zugriffe auf Systemfunktionen sub Unix. Sowohl Unix Sy... Universal-Lexikon

POSIX- standartai statusas T sritis informatika apibrėžtis Standartų grupė, apibrėžianti operacinės sistemos sąsajas tarp joje veikiančių programų bei tarnybų. Pirmuosius standartus sukūrė Elektros și electronics inžinierių institutas (IEEE) Linux… … Enciklopedinis kompiuterijos žodynas

POSIX- este acronimul Portable Operating System Interface, vinând X de UNIX cu semnificația API-ului (Se traduce ca Sistem Operativo Portable bazat în UNIX). Acestea sunt o familie de standarde de apeluri la sistem… … Enciclopedia Universal

POSIX- (Interfață de sistem de operare portabilă bazată pe uniX) n. colecție de standarde pentru sistemele de operare care se bazează pe Unix (calculatoare) ... Dicționar englez contemporan

POSIX

Posix- Das Portable Operating System Interface (POSIX [ˈpɒsɪks]) este o interfață compatibilă cu IEEE și der Open Group für Unix entwickeltes standardisiertes Application Programming Interface, das die Schnittstelle zwischen Application und dem… … Deutsch Wikipedia

Cărți

  • , Stephen A. Rago, W. Richard Stevens. „UNIX. Professional Programming” este un ghid de referință detaliat care de 20 de ani ajută programatorii profesioniști C să scrie exclusiv...
  • UNIX. Programare profesională de Stevens W. Richard, Rago Steven A. Această carte este foarte populară printre programatorii serioși din întreaga lume, deoarece conține cele mai importante și practice informații despre gestionarea nucleelor ​​UNIX și Linux. Fara acestea...

Cursul acoperă standardul de interfață a sistemului de operare mobil (POSIX), precum și tehnici și metode de programare a aplicațiilor bazate pe acest standard, explicate cu numeroase exemple. Sunt abordate problemele de programare a sistemelor multiproces și interacțiunea aplicațiilor în cadrul configurațiilor distribuite. Asigurarea mobilității (portabilitatea) software-ului este o sarcină de o importanță și complexitate excepționale; în vremea noastră, această circumstanță nu are nevoie de o justificare îndelungată. La nivelul serviciilor de sistem, un astfel de mediu este descris de standardul POSIX (Portable Operating System Interface - interfata sistemului de operare mobil); Numele a fost sugerat de celebrul specialist, fondator al Free Software Foundation, Richard Stallman.

Cursul examinează versiunea sa cea mai modernă, modificată în 2003, care poate fi numită „standard triplu”, și anume: standardul IEEE Std 1003.1, Standardul tehnic Open Group și, cel mai important pentru noi, standardul internațional ISO/IEC 9945. Sarcina principală Acest curs este despre înțelegerea tehnicilor și metodelor de utilizare a utilităților și funcțiilor standardizate. Scopul a fost să nu re povestiți standardul, evidențiind toate subtilitățile implementării OS, toate codurile de eroare posibile etc. Principalul lucru, în opinia noastră, este să simțim spiritul standardului și să învățăm să folosim capabilitățile inerente acestuia într-un mod mobil. Presupunând că cititorul vorbește C, nu am luat în considerare nici funcțiile de sintaxă, nici de bibliotecă de manuale. În ceea ce privește limbajul standard de comandă și interpretul acestuia, acest subiect este prezentat în detaliu, deși mulți programatori practicanți preferă să folosească alți interpreți. Un loc semnificativ - atât ca volum, cât și ca rol - este dedicat exemplelor de programe. Multe prevederi ale standardului (legate, să zicem, de gestionarea situațiilor de eroare) sunt expuse nu în textul principal, ci în exemplele corespunzătoare Acestea din urmă, ori de câte ori a fost posibil, au fost compilate și executate pe mai multe platforme hardware și software care, la una grad sau altul, pretind că respectă standardul POSIX. Cu toate acestea, sunt desigur posibile omiteri. Vom fi recunoscători pentru toate comentariile și sugestiile legate atât de cursul ca întreg, cât și de exemplele de programe individuale.

Istoricul creării și starea actuală a standardului POSIX.

Asigurarea mobilității (portabilitatea) software-ului este o sarcină de o importanță și complexitate excepționale; în vremea noastră, această împrejurare nu are nevoie de o justificare extinsă. Una dintre modalitățile general acceptate de a crește portabilitatea software-ului este standardizarea mediului de aplicație: interfețe software furnizate, utilități etc. La nivelul serviciilor de sistem, un astfel de mediu este descris de standardul POSIX (Portable Operating System Interface - interfata sistemului de operare mobil); Numele a fost propus de celebrul specialist, fondator al Free Software Foundation, Richard Stallman.

Prima pagina.
Ieșire.
Curs 1. Concepte și idei de bază ale standardului POSIX.
Curs 2. Limbajul Shell.
Cursul 3. Utilități și funcții care servesc conceptului de „utilizator”.
Curs 4. Organizarea sistemului de fișiere.
Curs 5. Intrare/ieșire fișier.
Curs 6. Instrumente pentru prelucrarea datelor structurate.
Curs 7. Procese.
Curs 8. Instrumente de comunicare interprocese.
Cursul 9. Interfață terminală comună.
Cursul 10. Supravegherea caracteristicilor gazdei și utilizarea lor în aplicații.
Curs 11. Instrumente de rețea.
Cursul 12. Timpul și lucrul cu el.
Curs 13. Mediu lingvistic și cultural.
Curs 14. Concluzie.
Bibliografie.


Descărcați cartea electronică gratuit într-un format convenabil, vizionați și citiți:
Descărcați cartea Programare în standardul POSIX, partea 1, Galatenko V.A., 2016 - fileskachat.com, descărcare rapidă și gratuită.

Software) este o sarcină de importanță și complexitate excepționale; în vremea noastră, această împrejurare nu are nevoie de o justificare extinsă. Una dintre modalitățile general acceptate de a crește portabilitatea software-ului este standardizarea mediului de aplicație: interfețe software furnizate, utilități etc. La nivel servicii de sistem un mediu similar este descris de standardul POSIX (Portable Operating System Interface - interfața sistemului de operare mobil); Numele a fost propus de celebrul specialist, fondator al Free Software Foundation, Richard Stallman.

Vom lua în considerare cea mai modernă versiune a standardului POSIX disponibilă, ediția din 2003, care poate fi numită „standard triplu”, și anume IEEE Std 1003.1, Standardul tehnic Open Group și (vezi [6]), care este mai important pentru noi în total, standardul internațional ISO/IEC 9945 (vezi [1], [2], [3], [4]).

Istoricul creării acestei versiuni este următorul. La începutul anului 1998, reprezentanți ai trei organizații — Comitetul pentru Standarde de Aplicații Mobile al Institutului de Ingineri Electrici și Electronici, Grupul Deschis și Comitetul Tehnic Comun 1 Subcomitetul 22 Grupul de lucru 15 (JTC1/SC22/WG15) al Organizației Internaționale de Standardizare— au început consultări privind fuziunea și dezvoltarea standardelor de interfață pentru serviciile de sistem supravegheate de aceștia: IEEE Std 1003.1, IEEE Std 1003.2, Specificații de bază de la Open Group, ISO/IEC 9945-1, ISO/IEC 9945-2. În luna septembrie a aceluiași an, a avut loc o întâlnire organizațională a grupului format pentru atingerea acestui obiectiv la Austin, Texas, la biroul IBM Corporation (vezi http://www.opengroup.org/austin).

Documentul de bază pentru standardul revizuit, al cărui prim proiect a fost depus în iulie 1999, a fost Specificațiile de bază ale Open Group, deoarece încorporau prevederi din standardele IEEE și ISO/IEC. În 2001, la finalizarea lucrărilor pregătitoare, standardul conținea următoarele patru părți:

  1. definiții de bază (termeni, concepte și interfețe comune tuturor părților);
  2. Descriere C interfață de programare a aplicației la serviciile de sistem;
  3. descrierea interfeței cu serviciile de sistem la nivel limbajul de comandăȘi utilitati ;
  4. explicație detaliată a prevederilor standardului, justificarea deciziilor luate.

Mai mult, ISO, IEEE și Open Group, cu o viteză mai mare sau mai mică (în 2001-2002), au aprobat oficial noul standard POSIX. Între timp, corecții relativ minore s-au acumulat și au fost luate în considerare în ediția din 2003.

Pe măsură ce standardul s-a dezvoltat, interpretarea termenului „POSIX” sa extins. S-a referit inițial la IEEE Std 1003.1-1988, care a descris interfața de programare a aplicației OS clasa Unix. După standardizarea interfeței la nivelul limbajului de comandă și al utilităților, este mai corect să înțelegem cuvântul „POSIX” ca un întreg standard, indicând părțile de mai sus 2 și 3 până la POSIX.1 și POSIX.2 în conformitate cu cu numerotarea documentelor IEEE şi ISO/IEC.

Idei de bază ale standardului POSIX

Standardul POSIX descrie multe servicii de bază de sistem necesare pentru funcționarea programelor de aplicație. Acestea sunt accesate printr-o interfață specificată pentru limbajul C, un limbaj de comandă și programe utilitare comune.

Fiecare interfață are două laturi: apelantul și cel apelat. Standardul POSIX este orientat către apelant. Scopul său este de a face aplicații mobil la nivel de limba sursă. Aceasta înseamnă, în special, că atunci când se mută programe C pe o altă platformă de operare, va fi necesară recompilarea. Nu se vorbește despre mobilitatea programelor executabile și/sau a fișierelor obiect.

Standardul POSIX nu este în niciun caz limitat la mediul Unix. Există sisteme de operare (OS) de „origine independentă” (de exemplu, sisteme în timp real), oferind serviciile necesare și sprijinind astfel execuția aplicațiilor compatibile cu POSIX. Se poate argumenta că respectarea standardului POSIX facilitează portarea aplicațiilor către aproape orice platformă de operare utilizată pe scară largă. Efortul suplimentar depus pentru îmbunătățirea mobilității în timpul fazei de dezvoltare va da cu siguranță roade.

Prin definirea interfeței cu serviciile de sistem, POSIX nu ia în considerare implementarea acestora. În special, ele nu diferă apeluri de sistemȘi funcțiile bibliotecii. Produsele nu sunt supuse standardizării administrare, limitările hardware și caracteristicile necesare numai superutilizator, care subliniază încă o dată accentul standardului

POSIX (Portable Operating System Interface for Computer Environments) este un standard IEEE (Institute of Electrical and Electronics Engineers) care descrie interfețele sistemului.

„În acest context, comenzile de sistem ar trebui să fie înțelese ca un anumit set de programe care vă permit să controlați procesele de calcul, de exemplu pstat, kill, dir etc.


Interfață POSIX__________________________________________________________ 305

fețe pentru sisteme de operare deschise, inclusiv shell-uri, utilitare și instrumente. În plus, conform POSIX, sarcinile de securitate, sarcinile în timp real, procesele administrative, funcțiile de rețea și procesarea tranzacțiilor sunt standardizate. Standardul se bazează pe sisteme UNIX, dar poate fi implementat și în alte sisteme de operare.

Interfața POSIX a început ca o încercare a IEEE de a promova portabilitatea aplicațiilor în mediile UNIX prin dezvoltarea unui standard abstract, independent de platformă. Cu toate acestea, POSIX nu se limitează la sistemele UNIX; Există diverse implementări ale acestui standard în sisteme care îndeplinesc cerințele standardului IEEE 1003.1-1990 (POSIX.1). De exemplu, binecunoscutul sistem de operare QNX real-time respectă specificațiile acestui standard, ceea ce facilitează portarea aplicațiilor către acest sistem, dar nu este un sistem UNIX sub nicio formă, deoarece arhitectura sa folosește principii complet diferite.

Acest standard detaliază tehnologia Virtual Memory System (VMS), Multiprocess Executing (MPE) și Portable Operating System (CTOS). Deci POSIX este de fapt multe standarde POSIX. 1-POSIX. 12. În tabel. 9.1 enumeră principalele domenii descrise de aceste standarde. De asemenea, trebuie remarcat în mod deosebit că în POSIX. 1 Se presupune că limbajul principal pentru descrierea funcțiilor API de sistem este C.

Tabelul 9.1. Familia de standarde POSIX

Standard ISO Standard Scurtă descriere

POSIX.0 Nu Introducere în standardul sistemelor deschise. Acest document

nu este un standard în forma sa pură, ci reprezintă recomandări și o scurtă privire de ansamblu asupra tehnologiilor

POSIX.1 Da System API (limbaj C)

POSIX.2 Fără shell și utilități (aprobat IEEE)

POSIX.3 Fără testare și verificare

POSIX.4 Fără sarcini în timp real și fire de execuție

POSIX.5 Da Se aplică limbajul ADA

la standardul POSIX. 1

POSIX.6 Fără securitate de sistem

POSIX.7 Fără administrare de sistem

POSIX.8 Fără rețea, acces transparent la fișier, rezumat

interfețe de rețea independente de protocoalele fizice, apeluri RPC, comunicarea sistemului cu aplicații dependente de protocol

POSIX.9 Da Utilizarea limbajului Fortran, aplicabil

la standardul POSIX. 1

POSIX. 10 Fără profil de mediu de aplicație super-computing (AEP)

POSIX. 11 Fără procesare a tranzacțiilor AEP

POSIX. 12 Fără interfață grafică de utilizator (GUI)


306______________________________ Capitolul 9. Arhitectura sistemelor de operare

Astfel, programele scrise la aceste standarde vor rula la fel pe toate sistemele compatibile cu POSIX. Cu toate acestea, standardele sunt parțial doar de natură consultativă. Unele dintre standarde sunt descrise foarte strict, în timp ce altele dezvăluie doar superficial cerințele de bază. Adesea, sistemele software sunt declarate a fi compatibile cu POSIX, deși nu pot fi numite astfel. Motivele stau în abordarea formală a implementării interfeței POSIX în diferite sisteme de operare. În fig. Figura 9.1 prezintă o diagramă tipică de implementare pentru o aplicație strict compatibilă cu POSIX.

Orez. 9.1. Diagrama de implementare a unei aplicații strict conformă cu standardul POSIX

Figura arată că programul folosește doar biblioteci POSIX pentru a interacționa cu sistemul de operare. 1 și biblioteca standard C RTL, în care pot fi utilizate doar 110 funcții diferite, descrise și de standardul POSIX. 1.

Din păcate, destul de des, pentru a crește performanța unui anumit subsistem sau pentru a introduce tehnologii proprietare care limitează domeniul de aplicare al aplicației la mediul de operare corespunzător, în timpul programării sunt utilizate și alte funcții care nu respectă standardul POSIX.

Implementările standardului POSIX la nivel de sistem de operare variază. În timp ce marea majoritate a sistemelor UNIX respectă inițial specificațiile IEEE Standard 1003.1-1990, atunci WinAPI nu este compatibil POSIX. Totuși, pentru a-l susține, sistemul de operare Windows NT a introdus un modul API special pentru a suporta standardul POSIX, operând la nivelul de privilegiu al proceselor utilizatorului. Acest modul oferă conversia și transmiterea apelurilor de la un program utilizator la nucleul de sistem și înapoi, lucrând cu nucleul prin WinAPI. Alte aplicații scrise folosind WinAPI pot transmite informații POSIX către aplicații prin mecanismele standard de flux I/O stdin și stdout.


Exemple de programare pentru diferite API-uri____________________ 307

Exemple de programare pentru diferite API-uri

Pentru a demonstra clar diferențele fundamentale dintre API-urile celor mai populare sisteme de operare moderne pentru computere personale, să luăm în considerare un exemplu simplu în care este necesar să numărăm numărul de spații din fișierele text, ale căror nume trebuie specificate în comandă linia. Să luăm în considerare două versiuni ale programului: pentru Windows (folosind WinAPI) și pentru Linux (API POSIX).

Deoarece suntem interesați să lucrăm cu sarcini paralele, să presupunem că atunci când programul este executat, pentru fiecare dintre fișierele listate pe linia de comandă, este creat propriul său proces sau fir de execuție (sarcină), care, în paralel cu alte procese (file), efectuează munca de numărare a spațiilor în fișierul „său”. Rezultatul programului va fi o listă de fișiere cu numărul de spații numărate pentru fiecare.

O atenție deosebită trebuie acordată faptului că implementările de programe pentru rezolvarea acestei probleme prezentate mai jos nu sunt singurele posibile. Ambele sisteme de operare în cauză au metode diferite de lucru cu sistemul de fișiere și de gestionare a proceselor. În acest caz, este luată în considerare o singură opțiune, dar cea mai tipică pentru interfața API corespunzătoare.

Pentru a face mai convenabilă compararea acestui program (Listing 9.1) cu următoarele (Listing 9.2) și, de asemenea, ținând cont de faptul că sarcina nu necesită o interfață fereastră pentru soluția sa, doar acele apeluri API care nu afectează interfața grafică sunt utilizate în text. Desigur, în zilele noastre este rar ca o aplicație să nu folosească capabilitățile GUI, dar în cazul nostru puteți vedea imediat diferența în organizarea funcționării paralele a calculelor lansate.