Contacte

Interfața liniei de comandă în POSIX. Conceptele de bază și ideile standardului POSIX. Ce este POSIX.

Diferențe mari în specificațiile Spex și o cantitate mare Există microcontrolere existente în prim plan problema standardizării în sistemele în timp real.

Cel mai devreme și mai răspândit standard al OSR este standardul POSIX (interfața sistemului de operare portabilă IEEE pentru mediul computerului, IEEE 1003.1). Versiunea inițială a standardului POSIX a apărut în 1990 și a fost destinată sistemelor Unix, primele versiuni ale cărora au apărut în anii '70 din secolul trecut. Specificațiile POSIX definesc mecanismul standard de interacțiune între programul de aplicație și sistemul de operare și sunt în prezent includ un set de mai mult de 30 de standarde. Șapte dintre ele (1003.1a, 1003.1b, 1003.1C, 1003.1d, 1003.2, 1003.1, 1003.21, 1003.2, 1003.1J, 1003.21, 1003.2, 1003.1J, 1003.21, 1003.2H) sunt cele mai importante (1003.1 A, 1003.2H), dar există doar trei prim ajutor în sistemul de operare comercială.

În ciuda pozițiilor învechite în mod clar ale standardului POSIX și cu cea mai mare cerere de actualizări de standardizare pentru OSR, progresul vizibil în această direcție nu este respectat.

Standardul POSIX a fost creat ca o interfață standard de sistem de operare. Acest standard face posibilă crearea de aplicații portabile. Ulterior, acest standard a fost extins de particularitățile modului în timp real.

Specificația POSIX Setați mecanismul standard de interacțiune aplicației și sistemul de operare. Trebuie remarcat faptul că standardul POSIX este strâns asociat cu Unix, cu toate acestea, dezvoltatorii multor OSR încearcă să reziste conformității cu acest standard.

Respectarea standardului POSIX pentru OS și platforma hardware trebuie să fie certificată de rularea pe ele seturi de testare. Cu toate acestea, dacă sistemul de operare nu este altceva, pentru a rezista acestei cerințe devine o sarcină dificilă. Seturile de testare există numai pentru POSIX 1003.1A. Deoarece structura POSIX este un set de capabilități opționale, furnizorii de OS pot implementa doar o parte din interfața standard și, în același timp, vor vorbi despre complimentul POSIX al sistemului său.

În ciuda faptului că standardul POSIX a crescut din Unix "A, afectează abstractizarea fundamentală a sistemelor de operare, iar expansiunea timpului real este aplicabilă tuturor OSRV.

Până în prezent, standardul POSIX este considerat o familie de standarde conexe: IEEE STD 1003.N (unde n este un număr).

Despre standardele în general

Printre programatorii practicieni sunt opinia conform căreia standardele din programare nu sunt necesare, deoarece:

(1) Ele sunt inițial lipsite de sens, deoarece autorii lor nu scriu programe de calculator;

(2) Acestea luptă împotriva inițiativei programatorilor;

(3) Programatorii vor fi întotdeauna de acord fără standarde.

Poate că această opinie nu ar trebui să se acorde atenție dacă nu două circumstanțe:

(1) Practicile sale exprimă, adică sunt cei care "emite produse programului";

(2) Argumentul de mai sus a fost descoperit de autorul acestui articol într-una din publicațiile de pe Internet cu privire la standardul pentru limba C, pe care a devenit clar că un astfel de aviz a fost difuzat "pe o scară internațională", și nu numai printre arogant "superfrograme".

Cuvântul "standard" este asociat de obicei cu ceva material (dimensiuni standard, stres electric standard etc.), în timp ce programul de calculator este un obiect intangibil ("noul intangibil"), și poate standardele în sfera intangibilă într-adevăr lipsită de sens?

Există totuși un exemplu de refuzare. Combinația dintre regulile ortografiei limbii ruse este, în esență, un standard, deși nu este aprobat de autoritățile de standardizare. Mai mult, cu excepția regulilor (sau, dacă, cerințele) de ortografie, există reguli sintalice și, cel mai important, semantică. Acesta din urmă ilustrează întrebarea "pentru copii": de ce pisica cheamă o pisică? Există un răspuns precis la această întrebare: deoarece strămoșii noștri au fost de acord; Strămoșii britanici au convenit să numească aceeași pisică de fiară, strămoșii germanilor - pisoi etc. În general, semnificația sau semantica sau regulile de interpretare a oricărui cuvânt sau a unei combinații de cuvinte - problema acordului.

Numirea și "Superbate" a POSIX standard

După cum urmează numele, POSIX (interfață de sistem de operare portabilă) este un standard de compilare între sistemul de operare și programul de aplicație. Times când programatorii au scris programe pentru mașina "goală" (implementarea propriilor pachete de programe I / O, funcții trigonometrice etc.), au trecut iremediabil. Textul POSIX subliniază în mod repetat că standardul nu prezintă nicio cerință pentru operațiunile sistemului de operare; Acesta poate fi considerat o totalitate de acorduri între programatorii de aplicații și dezvoltatorii de sisteme de operare. Astfel (din nou, spre deosebire de o opinie destul de populară), POSIX este de interes nu numai pentru dezvoltatorii sistemelor de operare, ci mai întâi de toate, pentru o categorie mult mai numeroasă de programatori - aplicate.

Necesitatea standardului de acest tip a fost realizată în anii 1980, când sistemele de operare UNIX au fost larg răspândite. Sa dovedit că, deși acest sistem a fost conceput ca unificat, diferențele dintre implementările sale specifice au condus la faptul că programele de aplicație scrise pentru un sistem nu ar putea fi întotdeauna executate în altul. Privind decizia acestei probleme specifice, cunoscută sub numele de problema mobilității software., POSIX vizează. Prima ediție a standardului a fost lansată în 1988 (există o traducere, a se vedea), în care toate diferitele aspecte legate de mobilitatea programului a fost împărțită în două părți: (1) interfață aplicată de programe, (2) interpret de comandă și utilități (interfață utilizator); Aceste părți au fost numite POSIX.1 și POSIX.2, respectiv1.

Vom preciza că acest articol va vorbi numai despre standardul pentru interfața de aplicație, POSIX.1, al doilea (și ultima până în prezent) a fost aprobată la 12 iulie 1996.

Partea informativă a standardului subliniază, de asemenea, că POSIX nu este o descriere a interfeței unui sistem de operare "ideal", ci rezultatul generalizării și sistematizării experienței dobândite în dezvoltarea sistemelor de operare UNIX. În plus, POSIX nu poate servi ca ghid sau tutorial Potrivit sistemelor de operare, deși partea informativă conține recomandări pentru programatori și fragmente de programe.

Standardul se referă la faptul că este imposibil să se creeze un sistem de operare cu drepturi depline, concentrându-se exclusiv pe funcțiile de interfață descrise în acesta. (În special, POSIX.1 nu reflectă astfel de aspecte precum funcțiile de rețea și de interfață conexă sau o interfață grafică.) Cu toate acestea, costurile financiare cauzate de nonglebilitatea programelor și necesitatea unificării interfeței este atât de mare încât majoritatea producătorilor preferă Au cel puțin un standard decât nu au nimeni. Din acest motiv, foarte mulți dezvoltatori de software încearcă să navigheze pe POSIX. Acest lucru face posibilă dacă nu eliminați complet neimportarea programelor, apoi reduceți cel puțin o parte neobișnuită a programului.

Despre semantica

După cum sa menționat deja, POSIX poate fi considerat un set de acorduri între dezvoltatorul sistemului de operare și programatorul de aplicații. "Acord" înseamnă în primul rând același spațiu de interpretare (semantică) de cuvinte și expresii. Următoarele sunt exemple care ilustrează dificultatea sarcinii de a realiza un acord.

Cum să transmiteți semnificația când traduceți

Mai întâi de toate, trebuie să vă amintiți că standardul POSIX este prezentat în limba engleză, care, în natură, provoacă ambiguitatea (de exemplu, același cuvânt poate fi substantive, adjectiv și verb), iar "capcane semantice" au ascultat aproape pe fiecare pagină. O ilustrare bună a spusului este un exemplu de ficțiune. Una dintre cele mai renumite lucrări ale Oscar Wilde, care a folosit strălucit această caracteristică a limbii engleze - importanța de a fi serios - este cunoscută în limba rusă numită "cât de important este serios". Cu toate acestea, numele englezesc are un al doilea înțeles: serios (serios) - numele de familie al uneia dintre personaje, iar numele ar putea fi tradus diferit: "Cât de important să fii Ernst". Există un nume de familie de familie rusesc și, dacă a existat un nume serios, traducerea ar fi perfect precisă, cu transferul ambelor semnificații.

Același lucru este cazul cu numele interfeței standard: interfață de operare portabilă. Adjectivul portabil (MOBILE) se referă la sistemul de operare și la programul de aplicație, dar nu este posibil să o exprimați în curând în limba rusă, puteți traduce ca o "interfață de sistem de operare mobilă" sau "interfață de sistem de operare care oferă mobilitate programe de aplicații. " A doua opțiune reflectă mai bine intențiile dezvoltatorilor standard, dar, în același timp, prima spălare a fost pierdută (prima opțiune mai familiară a fost păstrată).

Semantica cuvântului "standard"

Textul principal al standardului este preambalat de preambul, în care se explică semnificația cuvântului standarde de IEEE2. După cum rezultă din aceste clarificări, există cel puțin trei diferențe semantice din termenul de limbă rusă GOST:

(1) Intuitiv consideră că GOST are puterea legii a căror încălcare este persecutată; POSIX este un set de cerințe, după care este cazul exclusiv voluntar.

(2) GOST acționează până la anulare (multe, probabil, a trebuit să audă expresia "GOST nimănui anulată"); În preambulul POSIX, se spune că, dacă standardul nu a fost revizuit timp de 5 ani, aceasta înseamnă că întrebările considerate cel mai probabil au pierdut relevanța și poate fi considerată anulată automat;

(3) GOST Anonomen; În partea introductivă a POSIX, este dată o listă a acestor persoane care au participat la dezvoltarea acestui standard și oferă, de asemenea, adresa în care puteți trimite solicitări de interpretare; Se spune, de asemenea, că răspunsul la fiecare solicitare este supus procedurii de coordonare (cu alte cuvinte, autorii standardului sunt de acord între ei înainte de a da răspunsul).

Astfel, traducerea unui astfel de cuvânt cunoscută ca cuvânt standard "standard" necesită comentarii.

Semantica cuvintelor "trebuie", "nu este specificată", "nu este definită", "determinată de implementare"

Secțiunea 2 a standardului se numește "terminologie și cerințe generale". Acesta conține definițiile nu numai a termenilor speciale (cum ar fi procesul "sau" semaphor "), dar și astfel, se pare că cuvintele evidente, ca" trebuie "sau" mai ". Deoarece POSIX.1 este un standard pe interfață, cerințele sale sunt legate atât de sistemul de operare, cât și de programul de aplicare. Cerința explicită este exprimată prin cuvântul "Must" (trebuie), de exemplu: "În cazul finalizării cu succes, funcția Link () trebuie să returneze valoarea zero." ÎN acest exemplu Vorbim despre o cerință a sistemului de operare: funcția Link () trebuie să fie implementată astfel încât, atunci când se termină cu succes, valoarea zero returnată.

Termenii "nu sunt specificați" și "nu sunt definiți" exprimă aceeași idee că standardul admite libertatea de alegere, dar semnificația acestor termeni este variată. Termenul "nu este specificat" implică faptul că vorbim despre unele corecte (acțiuni, structuri software etc.) și termenul "nu este definit" - despre incorect (eronat). Partea informativă a standardului oferă următoarea explicație.

Termenul "nu este specificat" înseamnă că se presupune că multe opțiuni (rezultate, rezultatele apelului funcției etc.), iar standardul permite oricui dintre acestea; Într-o implementare specifică a sistemului de operare, oricine poate fi selectat, iar un astfel de sistem este considerat standardul relevant. Programul aplicat (standard strict relevant) trebuie să fie scris în așa fel încât să funcționeze corect în orice variantă; În esență, acest termen a exprimat implicit o cerință pentru un program de aplicare.

Să dăm un exemplu: funcția "Readdir () trebuie să returneze un indicator la structura referitoare la elementul de director următor. Dacă elementele din director sunt returnate cu numele "punct" și "punct-punct", standardul nu este specificat. " În acest exemplu, sunt posibile patru rezultate, iar cerința pentru un program de aplicare este că trebuie să fie proiectată pentru oricare dintre ele.

Un alt exemplu: "Dacă funcția Sigwait (), care prescrie așteptările semnalului cu numărul specificat este cauzată în mai multe fluxuri de control, atunci când semnalul este primit, nu mai mult de unul dintre ele ar trebui să se întoarcă de la Sigwait (). În ce fel de flux de control se va întâmpla, standardul nu este specificat. " În acest exemplu, multe posibile rezultate pot fi mai mult, dar sunt cunoscute și cerința pentru un program de aplicare este că ar trebui să funcționeze corect la orice rezultat.

Termenul "nu este definit" implică faptul că chiar și multe rezultate nu sunt cunoscute, orice rezultat este posibil, chiar deplorabil (de exemplu, prăbușirea sistemului, pierderea datelor etc.). În esență, acest termen a exprimat implicit cerința pentru programul de aplicare care nu trebuie să utilizeze datele sau desenele corespunzătoare. De exemplu: "Dacă funcția de argument DIRP Readdir () nu se referă la directorul deschis, rezultatul nu este definit."

Acest exemplu conține o cerere de aplicat ca argument Readdir () doar link-ul la un director deschis; Încălcarea acestei cerințe poate duce la consecințe dezastruoase, iar răspunderea pentru acesta este atribuită unui programator de aplicații.

Iată un alt exemplu: "În cazul finalizării cu succes, funcția Citire () trebuie să returneze un număr întreg care indică numărul de octeți de citire practică. În caz contrar, funcția trebuie să atribuie un cod de eroare la errno și return -1, iar conținutul tamponului la care se specifică argumentul BF nu este definit. "

Utilizați într-un program de aplicație dintr-un tampon în cazul unei erori a funcției Citire (), standardul interzice și consecințele încălcării acestei cerințe impune programatorului de aplicații.

Semnificația termenului "este determinată de implementare" diferă de intuitiv. Evident, într-un anumit sistem de operare, nu poate fi nici un rezultat "non-consiliu" sau "incert", un anumit rezultat va fi obținut. Termenul "determinat de implementare" exprimă cerința standardului la documentația pentru sistemul de operare: rezultatul nu numai că ar trebui clarificat (dezvoltatorul sistemului de operare va trebui să facă oricum), dar reflectă în mod explicit documentația pentru sistemul.

Semantică implicită

Nici un document de reglementare nu poate acoperi întreaga varietate de cazuri care se pot întâlni în practică, deci este inevitabilă despre ceva tăcut3. De exemplu, în descrierea funcției se poate spune că argumentul său poate lua valori dintr-o anumită interval, dar nimic nu spune că va fi rezultatul dacă argumentul nu se încadrează în acest interval. Evident, pentru a evita neînțelegerile, este necesar să aveți o singură semantică implicită. În partea informativă a standardului există o frază curioasă: "Se interzice semantica general acceptată a implicită". Această afirmație contrazice sloganul bine cunoscut de un deceniu în urmă "tot ceea ce este în mod clar interzis este permis. Aparent, el a fost atât de înrădăcinat în conștiința cetățenilor că mulți, chiar și programatori, nu sunt de acord cu declarația procitată a standardului. Între timp, dacă utilizarea oricărui design nu este în mod clar permisă și nu urmează din descriere, atunci orice programator practicant își dă seama că utilizarea sa este riscantă și dacă nu funcționează, nu se întâmplă la o revendicare.

Procese și fluxuri de control

Ambii termeni exprimă ideea paralelismului de execuție. Sistemul de operare UNIX a fost conceput inițial ca un multiplayer, iar programele lansate de diferiți utilizatori trebuie să fie izolați în siguranță unul de celălalt pentru a denatura accidental datele "alte persoane". Această izolare este asigurată de faptul că programul de utilizator este executat într-un anumit proces care se dezvoltă în spațiul său de adresă virtuală. Chiar dacă programul are date globale, atunci când îl începe în diferite procese, acestea vor fi automat "divorțate" de spații de adrese diferite.

Cu toate acestea, mecanismul proceselor nu este destul de satisfăcător la programarea sarcinilor în timp real. Programul de aplicații în timp real (care acționează în numele aceluiași utilizator) poate fi adesea reprezentat în mod natural ca paralel cu părțile executabile, numite "fluxuri de control" (fir). Cea mai semnificativă diferență față de procese este că toate fluxurile de control se dezvoltă într-un spațiu de adresă; Acest lucru este furnizat acces rapid La datele globale, dar în același timp riscul de denaturare neintenționată apare și că acest lucru nu apare, este necesar să se respecte unele programe de disciplină. Recomandările relevante sunt conținute în partea informativă a standardului.

Trebuie subliniat faptul că ideea de multithreading este implementată în multe sisteme de operare în timp real și este implementată diferit în sensul că diferite seturi de atribute și funcții de interfață corespund fiecărui flux de control; Uneori, în loc de termenul "debit de control" (fir) utilizează termenul "sarcină" (sarcină). Pentru a evita neînțelegerile, standardul subliniază că este exclusiv despre fluxurile de control POSIX, iar numele funcțiilor de interfață corespunzătoare au prefixul pthread_ (de exemplu, pthread_create (), pthread_join (), etc.).

Respectarea standardului. Semantica cuvântului "corespunde"

Este intuitivă că, dacă două subiecte sunt făcute în conformitate cu același standard, atunci ele sunt garantate să se "meci" unul cu celălalt și vor lucra împreună într-o pereche; Este, în acest scop, scopul introducerii standardului pentru conjugare (interfață). Deoarece POSIX este un standard pe interfață, puteți vorbi despre standardul compatibil atât al sistemului de operare, cât și al programului de aplicație.

POSIX.1 standard conține câteva sute (dacă nu mii) cerințe; Se consideră evident că, dacă cel puțin unul dintre ele nu este îndeplinit, sistemul (sau programul de aplicare) nu îndeplinește standardul. În același timp, un astfel de număr de sisteme de operare UNIX și programe de aplicare pentru acestea sunt scrise până în prezent, ceea ce este puțin probabil să solicite în mod rezonabil corespondența deplină în sensul specificat. Dificultățile de dezvoltare a unui standard internațional de acest tip sunt exacerbate de existența unor limbi naționale diferite. Chiar dacă uitați de programele de aplicații concepute pentru a procesa texte în limbile naționale, aproape orice aplicație trebuie să emită unele mesaje de diagnosticare și / sau percepe textele introduse de operator.

  • respectarea strictă a standardului POSIX.1;
  • respectarea versiunii internaționale a POSIX.1;
  • respectarea versiunii naționale POSIX.1;
  • conformitatea POSIX.1 cu extensii.

În al doilea rând, multe fonduri de interfață sunt declarate opționale (opțional); Standardul necesită ca funcțiile de interfață opționale să fie elaborate ca fiind prescrise de standard, fie au returnat întotdeauna un cod de eroare special, Enosys (ceea ce înseamnă că funcția nu este implementată). Mijloacele opționale sunt împărțite în mai multe grupuri, fiecare dintre acestea corespunde unei constante de configurare, care este declarată (#define operator) în fișierul antet corespunzător; Acest lucru asigură posibilitatea de a afla dacă funcția este implementată în faza de compilare.

Admiterea descrisă a mobilității a fost inventată de autori ai POSIX și a fost aplicată cu mult timp în practică; În multe sisteme de operare, se aplică constante de configurare pentru a identifica sistemul în sine sau versiunea sa. Și aici standardul nu oferă nimic fundamental nou, ci doar sistematizează practica existentă.

Obiecte de standardizare și structură standard

Pentru a vorbi pe scurt, obiectele de standardizare POSIX.1 sunt nume și semantice. Mai precis, vorbim despre următoarele.

  • Caracteristici de interfață. 357 Funcții sunt standardizate, iar 107 funcții sunt preluate din bibliotecile SI standard (procesare matematică, rând, intrare / ieșire etc.); Aceste funcții sunt considerate parte din standardul POSIX.1, dar descrierea lor completă este conținută în limba standard de programare.
  • Numele tipurilor de date ale sistemului. Aceste nume au un sufix _t.
  • Numele fișierelor antetului, precum și compoziția minimă a acestor fișiere.
  • Numele variabilelor globale la nivel de sistem (de exemplu, errno).
  • Numele simbolice pentru codurile de eroare care pot fi instalate la funcțiile de lucru. Aceste nume încep cu litera E (Eperm, Enotempty etc.).
  • Nume constante de configurare. Aceste nume au prefix _posix_.
  • Numele simbolic al semnalelor; Aceste nume au un prefix SIG. În plus față de 20 de semnale "tradiționale" (SIGABRT, SIGALRM etc.), semnalele în timp real sunt standardizate, numerele care ar trebui să ocupe un anumit interval de la SigrtMin la SigrtMax incluziv, care nu conține numere mai puțin RTSIG_MAX.
  • Numele simbolice corespunzătoare valorilor argumentelor individuale ale unor funcții (de exemplu, funcția argumentului CMD FCNTL () poate lua valori F_DAPFD, F_GETFD, F_GETLK etc.).
  • Numele macrocomenzilor, constantelor, steagurilor de biți, variabilelor de mediu.

În general, standardul este alcătuit din două părți mari de aproximativ același volum. Prima repriză este partea de reglementare - conține cerințele și recomandările standard (18 secțiuni), a doua - parte informativă - conține aplicații care furnizează o listă de referințe, comentarii și explicații la partea de reglementare, compoziția fișierelor antetului , un exemplu de profil ("proiecție") al standardului (pentru Danemarca), caracteristici și metode de măsurare a performanței celor mai importante funcții, precum și o descriere a funcțiilor de interfață suplimentare pentru a lucra cu fișiere în timp real; Este de așteptat ca în următoarele ediții ale standardului, aceste funcții vor fi incluse în partea de reglementare.

Ideea despre care tipurile de servicii ale sistemului de operare sunt acoperite de standard, oferă suma "rezumatului secțiunilor standard".

Concluzie

Conținutul principal al standardului POSIX este semantica funcțiilor de interfață. Standardizarea semanticii - Cazul în sine nu este ușor (toată lumea știe cât de dificilă este de a fi de acord chiar și celor doi), iar dificultățile sunt exacerbate de o mulțime de oameni sunt implicați în prezent în activități de programare. De exemplu, paradigma de execuție paralelă este exprimată în condiții precum "procesul", "sarcina" și "fluxul de management", dar din punctul de vedere al programului de programare practică în sistemul de operare IBM OS / 360 și în Sistemul de operare în timp real VXWorks nu este unul și, de asemenea. Un alt exemplu este Semafores. Semafores sunt binare, întreg ("cu un metru") și o excepție reciprocă (care, apropo, programatorii sunt numiți "mutexuri", căutând spishial să evite neînțelegerile). Și semaforele întregi, de exemplu, în sistemul de operare VXWorks, nu este la fel ca POSIX Semafores.

Autorii standardului POSIX, realizând perfect cât de greu este să-i abandoneze pe oameni (pe care ei numesc "practica stabilită"), declară că au făcut un sistem logic conectat și minimal de funcții de interfață care acoperă majoritatea serviciilor furnizate în mod tradițional Prin sistemul de operare, în detaliu a descris semantica exactă a acestor funcții și oferă tuturor să le folosească în evoluțiile lor4.

La citirea standardului, uneori apare impresia că unele formulări au avut un singur scop: să nu retragă unele programe de aplicații sau sisteme de operare din categorie. Un astfel de scop a fost într-adevăr stabilit și formulat clar în introducere: standardul ar trebui să ia în considerare practica curentă pentru a maximiza amploarea. Cu toate acestea, obiectivul principal este asigurarea mobilității programelor de aplicare.

Despre autentic

Sergey Romanyuk. - cercetător principal al Institutului de Cercetare a Sistemului, șeful Grupului de Traduceri Standard POSIX. Îi poți contacta e-mail Prin adresa: [E-mail protejat]

1 Trebuie adăugat că lucrările privind standardul continuă de mulți ani; Sunt identificate noi întrebări și sunt fie incluse într-una din părțile existente, fie sunt realizate sub forma unei părți separate, care poate fi anulată mai târziu. Acest lucru sa întâmplat, de exemplu, cu mijloacele de interfață de timp real, care au fost anunțate pentru prima dată ca POSIX.4 și ulterior incluse în POSIX.1.

2 IEEE este o organizație în care a fost dezvoltată standardul POSIX.

3 Aici "Mistor" înseamnă tăcut, nu implicit; Acest lucru nu este vorba despre unele valori implicite care sunt de fapt declarate, ci despre declarația de mențiune deloc.

4 Traducerea standardului în limba rusă va fi publicată la începutul anului 2000.

Literatură

Standard Internațional ISO / IEC 9945-1 (ANSI / IEEE STD 1003.1) a doua ediție. 1996-07-12. Tehnologia informației - Interfața sistemului de operare portabilă (POSIX) - Partea 1: Interfața programului de aplicare a sistemului (API).

M.I. Belyakov, Yu.I. Wisruve, A.L.FRIDMAN. Sistem de operare mobil. Directory. Moscova, radio și comunicare, 1991.

ISO / IEC 9899: 1990, Limbi de programare - C.

Sectiunea 1 - Introducere
Sectiunea 2. - Terminologie și definiții
Secțiunea 3. - funcțiile de gestionare a proceselor (crearea, înlocuirea imaginilor, finalizarea) și semnalele (managementul mascului, răspunsul semnalului)
Secțiunea 4. - Identificarea (procese, utilizatori, sisteme, terminale), un sondaj al perioadelor cheltuite în execuția procesului, sondajul variabilei de mediu.
Secțiunea 5. - Gestionați fișierele și cataloagele
Secțiunea 6. - funcțiile de intrare și ieșire
Secțiunea 7. - funcții de gestionare a terminalului
Secțiunea 8. - funcțiile împrumutate din standard
Secțiunea 9. - accesul la bazele de date ale utilizatorilor și la grupurile de utilizatori
Secțiunea 10. - formate de date pentru arhivare și schimb (GAR și CPIO)
Secțiunea 11. - Instrumente de sincronizare: semaphore, mutexuri și condiții variabile
Secțiunea 12. - funcții de gestionare a memoriei: fixarea și dezacordul procesului de adresare a procesului, afișează fișierele de memorie, protecția memoriei, memoria partajată
Secțiunea 13. - Funcții legate de procesele de planificare și fluxurile de control
Secțiunea 14. - Gestionați ceasurile și cronometrele
Secțiunea 15. - Gestionarea cozilor de raportare
Secțiunea 16. - Funcții de bază legate de fluxurile de control
Secțiunea 17. - Datele cu flux de control individual (date specifice firului)
Secțiunea 18. - mijloacele de distrugere a fluxurilor de control

Astăzi vom încerca să aflăm ce descrie standardul POSIX. Standardele sunt destinate să se asigure că computerul meu poate interacționa cu a ta. Datorită acestora, pe două computere de pagini web similare sau video difuzate în timp real va arăta în mod egal.

Cu toate acestea, standardul este destinat sarcinilor mai mari decât simplu schimb de date între utilizatori. Unele standarde definesc un model special, datorită caracteristicilor care sunt semnificativ superioare în compatibilitatea valorii a fișierelor sau a rețelelor. Standardul POSIX se referă la numărul lor.

Ce este POSIX?

POSIX (Pronunțate "Posiks") este o interfață portabilă de sistem de operare. Dar ce înseamnă? În primul rând, trebuie să desemnați domeniul de aplicare al conceptului de "portabilitate", în acest caz particular și să determinați conceptul de "interfață". Pentru a afla acest lucru, este necesar să se respingă de faptul că ambele concepte sunt legate în mod inextricabil.

"Portabilitate", în contextul standardului POSIX, se referă la codul sursă (nu la binarele colectate din aceste surse). Acum aflați ce este "interfața". În programare, "interfața" este interacțiunea codului dvs. cu restul codului. Interfața așteaptă furnizarea de informații specifice din codul dvs. Codul dvs., la rândul său, implică obținerea anumitor informații din interfață. Bun exemplu - Funcția Fopen () în SI. Se așteaptă ca informațiile din două părți: calea către fișier și modul în care acesta va fi deschis. Folosind aceste date, sistemul de operare returnează un alt tip de informații numite "descriptor de fișiere". Mânerul de fișier poate fi utilizat pentru a citi fișierul sau a scrie fișierul. Aceasta este interfața. Din toate acestea, rezultă că un cod compatibil cu POSIX poate fi compatibil în orice sistem de operare compatibil cu POSIX fără schimbări majore, ceea ce înseamnă că va fi portabil.

Lista interfețelor referitoare la standardul POSIX este, totuși, chiar și în ciuda lungimii sale uriașe, este posibil ca el să fie deficit. POSIX nu se limitează la provocările sistemului, definește, de asemenea, standarde pentru cochilii sistemelor de operare (rafturi, interfețe de linie de comandă), utilități de sistem, cum ar fi "AWK" sau "Echo", bibliotecile de sistem și multe alte lucruri.

Standardul POSIX a apărut sub forma unui proiect al lui Richard Pokalman în 1985 și a fost decorat în continuare ca IEEE STD 1003.-1998. După cum se poate vedea din nume, 1998 a fost anul publicării oficiale. De atunci, au fost lansate un număr mare de adăugiri și extensii pentru POSIX, care se transformă treptat într-o întreagă familie de standarde, cunoscută în mod oficial ca IEEE 1003, recunoscută ca o internațională, cu denumirea de SO / IEC 9945, pur și simplu numită POSIX Standardul familial.

Sistemul de operare nu este necesar pentru a fi compatibil cu POSIX sau chiar mai mult, astfel încât să aveți un certificat POSIX, cu toate acestea permite dezvoltatorilor să creeze aplicații, unelte și platforme, fără a rescrie codul o dată, ci doar completarea și conectarea la gata -finalizarea. De asemenea, nu este necesar să se scrie un cod compatibil cu POSIX, dar acest lucru îmbunătățește semnificativ portabilitatea proiectelor între sistemele de operare. Aceasta înseamnă că abilitatea de a scrie un cod compatibil cu standardul POSIX este valoroasă în sine și, cu siguranță, foarte utilă pentru o carieră. Proiecte mari, cum ar fi GNOME sau KDE, aderă la standardul POSIX, care garantează activitatea lor pe diferite sisteme de operare. Subsistemul POSIX este implementat chiar și în cele mai recente ferestre. Linux, după cum știți, acceptă majoritatea apelurilor de sistem legate de standardul POSIX, precum și o extindere mare, numită "Baza standard Linux", care este concepută pentru a combina distribuțiile Linux în ceea ce privește codul sursă de susținere și datele binare .

Sper că am vărsat lumina la întrebarea "Ce este POSIX". Aveți informații interesante despre acest subiect? Împărtășiți-l în comentarii.

- (IPAENG | PɒZɪKS) sau interfața sistemului de operare portabilă Cite Web | Titlu \u003d POSIX | URL \u003d http://stanards.ieee.org/regauth/posix/ | Lucrare \u003d standarde | Publisher \u003d IEEE] este numele colectiv al unei familii de standarde conexe specificate de ... Wikipedia

Posix. - EST Le NOM D UN STANITLE DE STANDARDE Définie Depuis 1988 PAR L Institutul de Ingineri Electronice și Electronice ET Formamente Désignée Ieee 1003. CES Standarde Ontergé D ONU Projet de Standardizare des API des Logiciels Destinés à ... Wikipédia en Français

Posix. - Est Le Nom D ONE Standardele Définie Depuis 1988 PAR L IEEE ET Standarde Désignée IEEE 1003. CES Standarde Onmergé D ONU PROJET DE STANDARDIZĂ DE API DES LOGICIELS Destinés à Fonctionner Sur des Variantes Du Système D ... Wikipédia en Français

Posix. - interfața de sistem de operare portabilă ES El Acónimo; La X Viene de Unix Como Seña de Identidad de la A API. El Término Fue SUGERIDO POR RICHARD STALLMAN EN RESPUESTA A LA CERENA DE LA IEEE, QUE BUSCABA ONU NOMBLE FÁCIL DE RORDAR. UNA Traducción ... Wikipedia Español

Posix. -, 1986 IM Standard 1003.1 der Ieee Niedergelegte Spezifikation für zugriffe AUF Systemfunktionen Unter Unix. Sowohl Unix Sy ... Universal-Lexikon

Posix. - STANDARTAI STATUSAS T SRITIS INFORMATIKA apibrėžtis standartų grupė, apibrėžianti operacinės sistemos sąsajas tarp june veikiančių programų bei tarnybų. Pirmuosius standartus sukūrė elektros ir elektronikos inžinierių institutas (IEEE) Linukso ... Enciklopedinis kompiutelijos Žodynas.

Posix. - interfața sistemului de operare ES El Acónimo De Portable, Viniendo La X de la Herencia de la A API (SE Traduciría portabile Basado en Enix). Estos Son Una Familia de Estándares de Lamadas al Sistema ... Enciclopedia Universal

Posix. - (interfață de sistem de operare portabilă bazată pe Unix) n. Colectarea standardelor pentru sistemele de operare care se bazează pe Unix (computere) ... Dicționar contemporan englezesc.

Posix.

Posix. - interfață de sistem de operare portabilă (POSIX [PɒSɪKS]) IST Ein Gemeinsam von der Ist End Der Open Group Für Unix Entwickeltes Standarisierts Application Programare Interfață, Das Die Schnittstelle Zwischen Applikation und Dem ... Deutsch Wikipedia

Cărți

  • , Stephen A. ROGO, W. Richard Stevens. "Unix. Programare profesională" este un ghid de referință detaliat, care de 20 de ani ajută programatorii profesioniști în limba cu scrierea exclusiv ...
  • Unix. Programare profesională, Stevens W. Richard, RAGO Stephen A .. Această carte este meritată populară cu programatori serioși din întreaga lume, deoarece conține cele mai importante și practice informații despre gestionarea nucleelor \u200b\u200bUnix și Linux. Fără aceste ...

Standarde

Sergey Zolotarev,

Scopul acestui articol este de a încerca să facă o anumită claritate în istoria dezvoltării standardului POSIX în raport cu sistemele de operare în timp real (OS RV).

Ca o introducere: De ce aveți nevoie de o standardizare de interfață de programare?

Una dintre cele mai importante proprietăți ale standardului POSIX este că definește o "interfață de programare standardizată", pe care dezvoltatorii de sisteme complexe de software și hardware ar trebui să adere la dezvoltatori. Creatorii acestor sisteme sunt forțați să se confrunte cu astfel de cerințe ca o perioadă scurtă de timp de a intra pe piață (din cauza concurenței rigide), minimizarea costurilor și accelerarea randamentelor investiționale. În același timp, cota leului de cheltuieli cauzate de încetinirea procesului de dezvoltare este legată de faptul că programatorii trebuie să "inventeze o bicicletă", din nou și din nou de implementare a funcționalității, care a fost disponibilă de mult timp. Dar acest lucru ar putea fi evitat de:

Reutilizați codul din proiectele anterioare și paralele;

Transferul codului de la alte OS;

Atragerea dezvoltatorilor din alte proiecte (inclusiv utilizarea altor OS).

Toate acestea sunt posibile datorită utilizării sistemului de operare cu un API standardizat. Mai mult, dacă, în primul caz, organizația este suficientă pentru a avea un anumit standard intern (care este deosebit de caracteristic al sistemului de operare de marcă), atunci al doilea două cazuri necesită doar disponibilitatea standardelor general acceptate - de exemplu, POSIX.

Astfel, utilizând un OS compatibil cu POSIX ca platformă pentru proiectele sale, dezvoltatorul este capabil să transfere codul finit la nivelul codului sursă din proiectele sale anterioare sau paralele și de la proiecte terțe. Acest lucru nu numai că reduce în mod semnificativ calendarul dezvoltării software, dar și îmbunătățește calitatea acestuia, deoarece codul dovedit conține întotdeauna mai puține erori.

Cine este cine în dezvoltarea posixului

Și să începem cu posixul foarte standard, dar în ordonarea rolului organizațiilor implicate în lucrul la acesta.

Primul participant este Ieee. Institutul de Ingineri Electrici și Electronică, Institutul de Ingineri și Electronică Electronic), Asociația Pub-profit a profesioniștilor. IEEE conduce istoria sa din 1884 (formal - din 1963), combină 380.000 de membri individuali din 150 de țări, publică cea de-a treia parte a literaturii tehnice privind utilizarea computerelor, managementului, tehnologiilor electrice și informaționale, precum și mai mult de 100 de reviste, populare în mediul profesioniștilor; În plus, asociația este pe an peste 300 de conferințe majore. IEEE a participat la dezvoltarea mai mult de 900 de standarde existente (www.ieee.ru/ieeee.htm). Astăzi, acest institut este angajat în pregătirea, aprobarea, aprobarea, publicarea standardelor, dar în statutul său oficial nu are autoritatea de a accepta astfel de documente ca standarde internaționale sau naționale. Prin urmare, termenul "standard" în înțelegerea mai degrabă a IEEE înseamnă "specificație", care mai corespunde statutului documentelor luate de asociație. În conformitate cu IEEE, participă la programele unui număr de organizații internaționale și regionale - IEC, ISO, ITU (Institutul European de Standarde Telecomunicații pentru Standartion Electrotehnică) și în programele naționale, cum ar fi programul unei astfel de organizații precum ANSI.

IEEE include PASC (Comitetul Portable de Standarde Application, www.pasc.org/) - Comitetul de Asociere, care dezvoltă o familie de familie POSIX. Anterior, PASCC a fost cunoscut ca Comitetul Tehnic pentru operațiuni.

Cel de-al doilea participant la locul de muncă - ANSI (Institutul Național de Standarde Americane, Institutul Național de Standarde Americane; www.ansi.org) - o organizație privată non-profit care administrează și coordonează în Statele Unite în probleme de standardizare. Ea angajează doar 75 de persoane, dar membrii ANSI sunt mai mult de 1000 de companii, organizații, agenții guvernamentale și instituții. ANSI reprezintă Statele Unite în două principale organizații internaționale pentru 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 de coordonare a standardelor și a Adunării Generale a ONU și a început oficial lucrările la 23 februarie 1947. ISO este o rețea de instituții naționale de standardizare din 146 de țări (o țară - un membru ISO) cu Secretariatul Central de la Geneva (Elveția). Standardele ISO sunt elaborate în comitetele tehnice, primul rezultat al căruia este un proiect de document internațional standard (DIS), transformând după mai multe potriviri în proiectul final al proiectului internațional (FDIS). După aceea, problema aprobării acest document scoate la vot; Cu un rezultat pozitiv, acesta devine un standard internațional.

In cele din urma, - IEC. Comisia electrotehnică internațională, Comisia Electrotehnică Internațională - IEC; www.iec.ch/), fondată î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 au fost membrii valabili ai acestei comisii. IEC publică, de asemenea, recomandări care ies în limba engleză și franceză și îndeplinesc statutul standardelor internaționale. Acestea se bazează pe standarde regionale și naționale. Comitetele tehnice (TC) sunt responsabile pentru pregătirea standardelor în diferite domenii ale activităților IEC și sunt implicate și comitetele naționale interesate de activitățile unui TC.

IEC. - Organizația cheie în pregătirea standardelor internaționale pentru tehnologia informației. Această zonă are un comitet tehnic comun privind tehnologia informației - JTC 1 format în 1987, în conformitate cu Acordul dintre IEC și ISO. JTC1 are 17 subcomisii care supraveghează toată dezvoltarea - de la software la limbi de programare, grafică de calculator și imagini de editare, interconectări ale echipamentelor și metodelor de securitate.

Pregătirea noilor standarde IEC include mai multe etape (preliminară, etapa de aprovizionare, stadiul comitetului tehnic, etapa de cerere, aprobare, publicare). Dacă se planifică că documentul IEC va fi doar o specificație tehnică, și nu un standard internațional, versiunea revizuită a documentului este trimisă la Biroul Central pentru Publicare. Pentru dezvoltarea proiectului final al standardului internațional (FDIS), sunt date patru luni. Dacă toți membrii comitetului tehnic sunt aprobați, aceasta se referă la Oficiul Central pentru Publicare fără Etapa de aprobare a FDIS. După aceasta, FDIS se încadrează în comitetele naționale pentru ao aproba în termen de două luni. FDIS este considerată aprobată dacă mai mult de două treimi din comitetele naționale au votat pentru el, iar numărul de voturi negative nu depășește 25%. Dacă documentul nu este aprobat, acesta este trimis să revizuiască comisiile tehnice și subcomisii. Standardul trebuie publicat în termen de cel mult două luni de la aprobarea FDIS.

Câteva mai multe organizații sunt legate de dezvoltarea și adoptarea standardelor POSIX.

Grup deschis. - Organizația Internațională pentru Standardizarea Software, care combină aproape 200 de producători și comunități de utilizatori care lucrează în domeniul tehnologiei informației (www.opengroup.org/) .Opengroup a fost creat în 1995, prin îmbinarea celor doi predecesori: Fundația X / Open și Open Software ( OSF). Grupul deschis este specializat în dezvoltarea metodologiilor de certificare a software-ului și a testării conformității cu anumite cerințe. În special, grupul deschis este certificat pentru zone precum platforma CoE, Corba, LDAP, baza standard Linux, cadrul școlilor de interoperabilitate (SIF), gateway S / MIME, specificații unice UNIX, specificațiile protocolului pentru aplicații wireless (WAP) și în cele din urmă Familia din POSIX Standarde (www.opengroup.org/certificare/).

AUSTINCOMMONSCADEDRSEvisionGroup (CSRG) - Grupul de Lucru Tehnic Format în 2002 ISO, IEC și Grup deschis pentru a crea și menține cele mai recente versiuni ale standardului 1003.1, care vor fi formate pe baza ISO / IEC 9945-1-1996, ISE / 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) - Agenția Federală a respectat administrația tehnologică a Departamentului Comerț (www.nist.gov/public_affairs/general2.htm), fondată în Statele Unite în 1901. Sarcina NIST este dezvoltarea și propaganda standardelor și tehnologiilor pentru a îmbunătăți calitatea produselor. NIST include laboratorul tehnologiei informației. Laboratorul Tehnologiei Informației - ITL)Una dintre rezultatele care sunt standarde federale de procesare a informațiilor (standarde federale de procesare a informațiilor - FIPS, www.oproung.org/testing/fips/general_info.html ).nist/itl oferit în 1991 setul inițial de teste pentru certificarea POSIX în 1991 În cadrul FIPS Pub 151-1990.

Ce este POSIX?

Termen formal Posix. propus de Richard Stallman (Richard Stallman) ca o abreviere pentru P.orbabilă. O.pergram S.interfața Ystem pentru ONU Ix. (Interfața portabilă a sistemelor de operare pentru Unix). POSIX a fost dezvoltat pentru sistemele de operare similare UNIX (primele versiuni se bazează de la începutul anilor 1970) pentru a asigura portabilitatea aplicațiilor la nivelul codului 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 sa schimbat rapid, transformându-se în POSIX și deja în următoarea publicație (Înapoi în 1986) Această nouă versiune a fost utilizată. De ceva timp în POSIX, referința (sau sinonimul) a fost înțeleasă ca un grup de documente conexe IEEE 1003.1-1988 și o parte din ISO / IEC 9945 și ca standard internațional ISO / IEC 9945.1: 1990 POSIX a fost adoptat în POSIX 1990. Specificațiile POSIX definesc standardul mecanismului de interacțiune dintre programul de aplicație și sistemul de operare și în prezent includ mai mult de 30 de standarde sub auspiciile IEEE, ISO, IEC și ANSI.

De-a lungul istoriei sale, POSIX a trecut printr-un mod mare, în timp ce de multe ori a schimbat denumirile de specificații, conținutul lor specific, procedurile și logistica verificării lor. În trecut, mai multe ediții ale standardului POSIX au fost emise în diverse organizații internaționale.

POSIX Istoricul dezvoltării standard

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. POSIX Etape de dezvoltare:

- 1990. Biroul editorial lansat în 1988 a fost reproiectat și a devenit baza pentru ediții și adăugări ulterioare. A fost aprobat ca standard internațional ISO / IEC 9945-1: 1990.

- 1993. Oficiul editorial din 1003.1b-1993 vine.

- 1996. Au fost făcute 1003.1b-1993, IEEE STD 1003.1C-1995 și 1003.1i-1995, dar partea principală a documentului a rămas neschimbată. În 1996, ediția a IEEE STD 1003.1 a fost aprobată și ca standard internațional ISO / IEC 9945-1: 1996.

- 1998. Există un prim standard pentru "în timp real" - IEEE STD 1003.13-1998. Aceasta este extinderea standardului POSIX pentru aplicațiile în timp real încorporate.

- 1999. Sa decis să se facă schimbări semnificative în textul principal al standardului în ultimii 10 ani, inclusiv unificarea cu standardul 1003.2 (coajă și utilități), deoarece în acel moment acestea erau standarde separate. PASC a decis să finalizeze modificarea textului de bază după finalizarea standardelor IEEE 1003.1A, 1003.1D, 1003.1G, 1003.1J, 1003.1Q și 1003.2b.

- 2004. Ultimele astăzi, comisia editorială din 1003.1 a fost publicată la 30 aprilie și a fost lansată sub auspiciile Grupului de revizuire a standardelor comune Austin. A făcut schimbări în ceea ce privește comisia editorială din 2001. În mod oficial, ediția editorială din 2004 este cunoscută sub numele de IEEE STD 1003.1, ediția 2004, specificațiile standard de bază tehnice standard, numărul 6 și include IEEE STD 1003.1-2001, IEEE STD 1003.1-2001 / COR 1-2002 și IEEE STD 1003.1-2001 / COR 2-2004.

Cele mai importante standarde ale POSIX pentru sistemul de operare RV

Pentru sistemele de operare în timp real, șapte specificații standard sunt cele mai importante, dar numai trei au fost susținute pe scară largă în sistemul de operare comercială:

1003.1a (definiția OS) definește interfețele principale ale sistemului de operare, de gestionare a locurilor de muncă, semnale, funcții și dispozitive ale sistemului de fișiere, grupuri de utilizatori, transportoare, tampoane FIFO;

1003.1b (Extensiile în timp real) descrie extensiile în timp real, cum ar fi semnalizarea în timp real, dispeceratorii prioritare, cronometrele, intrarea sincronă și asincronă, semaphores, memorie partajată, mesaje. Inițial (până în 1993), acest standard a fost indicat ca POSIX.4;

1003.1C (fire) Definește funcțiile de susținere a fluxului (fire) - control al fluxului, atributele de flux, mutex, dispecerizare. Inițial desemnat ca posix.4a.

În plus față de aceste standarde, următoarele standarde sunt importante pentru RV, care au fost implementate ca parte a proiectului STD 1003.1-2001:

IEEE 1003.1D-1999. Extinderi suplimentare de timp real. Inițial desemnat ca posix.4b;

IEEE 1003.1J-2000. Extinderea îmbunătățită (avansată) în timp real;

IEEE 1003.1Q-2000. Urmărirea.

Procedura de certificare

Pentru a îndeplini standardul POSIX, sistemul de operare trebuie să fie certificat în funcție de rezultatele setului de testare corespunzător. De la apariția POSIX, setul de testare a fost supus unor schimbări formale și reale.

În 1991, NIST a dezvoltat un program de testare POSIX în cadrul FIPS 151-1 (http://stanards.ieee.org/regauth/posix/posix-a.fm5.pdf). Această opțiune de testare sa bazat pe standardul IEEE 1003.3 "pentru metodele de testare pentru măsurarea conformității cu POSIX" Proiectul 10 mai, 3 mai 1989. În 1993, Nist a absolvit Programul de testare pentru FIPS 151-1 și a început un program pentru FIPS 151 -2 (www.itl.nist.gov/fipspubs/fip151-2.hm) IEC 9945-1: 1990 Standard. Seturile de testare pentru FIPS 151-2 s-au bazat pe standardul IEEE 2003.1-1992 "pentru metodele de testare pentru măsurarea conformității cu POSIX".

NIST distinge două metodologii de certificare: auto-certificare (auto-certificare) și certificarea acreditată în laboratoarele de testare IEEE (laboratoarele de testare POSIX acreditate - APTL). În primul caz, compania efectuează testarea independentă, dar conform planului aprobat în NIST. În al doilea caz, testarea este efectuată de un laborator independent utilizând seturi de testare automate. Două laboratoare APTL au fost acreditate: MindCraft (www.mindcraft.com) și perene (www.peren.com).

În 1997, NIST / ITL și-a anunțat intenția de a rezilia certificarea pentru FIPS 151-2 la sfârșitul anului curent (oficial - 31 decembrie 1997), în același timp, grupul deschis a anunțat că va dura pe 1 octombrie Anul serviciului de certificare în conformitate cu FIPS 151-2, pe baza programului NIST / ITL. Aceleași funcții de la 1 ianuarie 1998 au asumat asociația de standardizare IEEE (IEEE-SA) și, de asemenea, pe baza FIPS 151-2.

În 2003, Grupul IEEE-SA și Open a anunțat începutul unui nou program comun pentru certificarea versiunilor posix recente, începând cu IEEE 1003.1 (TM) 2001. Acum, Grupul deschis are mai multe teste 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). Produsul este considerat a fi certificat de POSIX dacă a trecut întreaga procedură de certificare, în conformitate cu rezultatele testelor, aceasta îndeplinește toate cerințele prezentate și este listată în Registrul oficial al produselor certificate.

Seturile de testare includ:

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

Vspse54 (www.opengroup.org/testing/testsuites/vspse54.htm) - un set de teste de conformare pentru profilul Pse54 Pse54 (Timp real în timp real);

VSX-PCTS2003 (www.opengroup.org/testing/testsuites/vsxpcts2003.htm) - un set de teste de conformare pentru interfețele de sistem IEEE STD 1003.1-2003 (numai piese obligatorii);

VSC-PCTS2003 (www.opengroup.org/testing/testsuites/vscPPCTS2003.htm) - un set de teste de conformare pentru IEEE STD 1003.1-2003 (Shell și utilități - numai părți obligatorii).

În plus, Grupul Open a dezvoltat teste pentru standardele în timp real POSIX și profilul standardelor Embedded POSIX. Un set de teste pentru POSIX REALTime (www.opengroup.org/testing/testsuites/realtime.html) include următoarele teste:

IEEE POSIX 1003.1B-1993 / 1003.1I-1995 Extensia în timp real și Ediția IEEE POSIX 1003.1.2003;

Extensia (PTREADS) POSIX 1003.1C-1995 (PTHREADS) și IEEE POSIX 1003.1.2003 Ediția;

IEEE POSIX 1003.1D-1999 Extensie suplimentară în timp real și ediția IEEE POSIX 1003.1.2003;

IEEE POSIX 1003.1J-2000 ADVANCED REALTIM Extensie și IEEE POSIX 1003.1.2003 ediție;

IEEE POSIX 1003.1Q-2000 TRACE și IEEE POSIX 1003.1.2003 ediție și IEEE POSIX 1003.1.2003 ediție;

Embedded POSIX STANDARDE STANDARDE SETARE (www.opengroup.org/testing/testsuites/embedded.html) include următoarele teste:

IEEE POSIX 1003.1-1990 (5310 teste);

IEEE POSIX 1003.1B-1993 / 1003.1I-1995 Extensia în timp real (1430 de teste);

POSIX POSIX 1003.1C-1995 (PTHreads) Extensie (testul 1232);

IEEE POSIX 1003.13-1998 Profilul 52.

Puțin despre confuzie în terminologie

În ceea ce privește grupul de standarde POSIX în limba engleză, nu unul, dar la trei termeni. Din păcate, ele sunt similare în valoare și sunt adesea traduse în mod egal, ceea ce aduce o anumită confuzie. Termeni Acestea sunt:

Compatibilitate (literalmente "compatibilitate");

Conformitatea ("conformitatea" literalmente);

Sonformance (literal "consistență").

Primul termen aplicat POSIX nu este definit oficial. Al doilea înseamnă că organizația este un producător de software declară în mod independent că acest produs (pe deplin sau parțial) îndeplinește următoarele standarde NIST-PCTS. Cel de-al treilea termen implică asta software. Un sistem de testare stabilit a fost transmis fie utilizând un laborator acreditat, fie în cadrul grupului deschis și aceasta include o confirmare documentară (așa-numita afirmație de conformitate). În plus, în textul articolului, de pretutindeni vor fi originale de termeni pentru a exclude ambiguitatea.

Certificat OS RV.

Dacă respectați reguli stricte care necesită ca datele privind sistemul de operare certificat să fie publicate în registrul oficial, iar testarea au fost efectuate de nivel conformitateaÎn prezent aveți doar două RV certificați (datele sunt date în ordine cronologică):

- Lynxos V.3. (Produsul Sistemelor Lynx Real-Time, care se numește acum LynuxWorks, Inc., www.lynuxworks.com) conceput pentru a dezvolta pe sistemele încorporate care operează în modul greu În timp real, producătorii de echipamente complete și de telecomunicații, în special producătorii de sisteme la bord de uz militar. Dezvoltarea poate fi efectuată atât asupra sistemului țintă (auto-găzduită), cât și pe computerul de scule (gazdă), gata să creeze pentru a lucra la sistemul țintă (țintă). Lynxos V.3 este certificat pentru coerență (Conformitatea)pOSIX Standard pe platforma Intel și PowerPC. Informații despre acest lucru pot fi găsite pe site-ul IEEE http://stanards.ieeee.org/regauth/posix/posix2.html.lynxos Certificat de POSIX 1003.1-1996 Mindraft, care este laboratorul de testare POSIX POSIX IEEE POSIX pentru Nist FIPS 151 Testează 2 conforme. Suită de testare.. Număr de documente Confirmarea certificării: Fișier de referință: IP-2LYX002, Fișier de referință: IP-2Lx001.

- Integritatea V.5. (Produsul companiei Green Hills Software, www.ghs.com) este certificat pentru coerență (Conformitatea) Prin POSIX 1003.1-2003, interfețe de sistem pentru arhitectura POWERPC în iulie 2004 (http://get.posixcerified.ieee.org/select_product.tpl). Set de teste VSX-PCTS 2003.

POSIX și sistemul de operare QNX

QNX V.4.20.(Dezvoltator - firma QNX Systems, www.qnx.com) Certificat pentru conformitate (CONFORMITATE) POSIX 1003.1-1988 pentru platforma Intel de DataFocus încorporată. Testarea a fost efectuată la 13 septembrie 1993, data emiterii documentului - 1 noiembrie 1993. Set de teste Nist PCTS 151-1, versiunea 1.1.

QNX Neutrino (versiunea 6.3) respectă (respectă) standardele următoare ale familiei POSIX (www.qnx.com/download/download/8660/portabilitate.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).

Sisteme software QNX, Creatorul de Neutrino QNX, planifică, de asemenea, să certifice (conformitatea) qnx neutrino în conformitate cu unele dintre aceste standarde; Lucrările sunt programate pentru 2005 (www.qnx.com/news/pr_959_1.html).

Literatură

1. Manualul de utilizare a Asociației 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) - PARTEA1: Aplicația sistemului: Interfața programului (API).

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

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

6. POSIX: certificat de IEEE și de grupul deschis. Politică certificată. Grupul deschis, 21 octombrie 2003, revizuirea 1.1.



Ți-a plăcut articolul? Împărtășește-l