Contacts

Interface de ligne de commande dans POSIX. Les concepts de base et les idées de la norme POSIX. Qu'est-ce que POSIX

Grandes différences dans les spécifications SPEX et grande quantité Il existe des microcontrôleurs existants à la pointe du problème de la normalisation dans les systèmes en temps réel.

La norme la plus précoce et la plus répandue de l'OSR est la norme POSIX (interface de système d'exploitation portable IEEE pour l'environnement informatique, IEEE 1003.1). La version initiale de la norme POSIX est apparue en 1990 et était destinée aux systèmes UNIX, dont les premières versions sont apparues dans les années 70 du siècle dernier. Les spécifications de POSIX définissent le mécanisme standard d'interaction entre le programme d'application et le système d'exploitation et incluent actuellement un ensemble de plus de 30 normes. Sept d'entre eux (1003.1a, 1003.1B, 1003.1C, 1003.1D, 1003.1J, 1003.21, 1003,2, 1003.2, 1003.21, 1003.2, 1003.1J, 1003.21, 1003,2, 1003.1J, 1003,21, 1003.2H) sont les plus importants (1003.1 A, 1003.2h), mais il n'y a que trois premiers appui au système d'exploitation commercial.

Malgré les positions clairement obsolètes de la norme POSIX et la plus grande demande de mises à jour de normalisation pour l'OSR, l'avancement notable dans cette direction n'est pas observé.

La norme POSIX a été créée comme une interface système d'exploitation standard. Cette norme permet de créer des applications portables. Par la suite, cette norme a été étendue par les particularités du mode temps réel.

Spécification POSIX Définissez le mécanisme d'interaction d'application standard et le système d'exploitation. Il convient de noter que la norme POSIX est étroitement associée à UNIX, néanmoins, les développeurs de nombreux OSR tentent de résister à la conformité à cette norme.

La conformité avec la norme POSIX pour le système d'exploitation et la plate-forme matérielle doit être certifiée par les ensembles de test exécutés. Toutefois, si le système d'exploitation n'est pas unix, de manière à résister à cette exigence devient une tâche difficile. Les ensembles de test n'existent que pour POSIX 1003.1A. Étant donné que la structure POSIX est un ensemble de capacités optionnelles, les fournisseurs de système d'exploitation ne peuvent implémenter qu'une partie de l'interface standard, tout en parlant du compliment POSIX de son système.

Malgré le fait que la norme POSIX ait augmenté d'UNIX "A, il affecte l'abstraction fondamentale des systèmes d'exploitation et l'expansion du temps réel est applicable à tout OSRV.

À ce jour, la norme POSIX est considérée comme une famille de normes connexes: IEEE STD 1003.N (où N est un nombre).

Sur les normes en général

Les programmeurs des praticiens sont l'opinion que les normes de programmation ne sont pas nécessaires du tout, depuis:

(1) Ils sont initialement dénués de sens, car leurs auteurs n'écrivent pas de programmes informatiques;

(2) ils combattent l'initiative des programmeurs;

(3) Les programmeurs seront toujours d'accord sans normes.

Peut-être que cette opinion ne devrait pas être accordée à une attention particulière à deux circonstances:

(1) Ses pratiques expriment, c'est-à-dire celles qui "émettent des produits de programme";

(2) L'argument ci-dessus a été découvert par l'auteur de cet article dans l'une des publications sur Internet sur la norme pour le langage de programmation de C, qu'il est devenu évident qu'un tel avis a été diffusé «à l'échelle internationale», et non seulement parmi les Arrogant russe "superfogramministes".

Le mot "standard" est généralement associé à quelque chose de matériau (dimensions standard, stress électrique standard, etc.), tandis que le programme informatique est un objet incorporel ("la nouvelle intangible"), et peut-être des normes dans la sphère immatérielle vraiment sans signification?

Il y a cependant un exemple de réfutation. La combinaison des règles de l'orthographe de la langue russe est essentiellement une norme, bien que non approuvée par les autorités de normalisation. En outre, à l'exception des règles (ou, si vous, les exigences) de l'orthographe, il existe des règles syntaxiques et, surtout, la sémantique. Ce dernier illustre la question "des enfants": pourquoi le chat appelle-t-il un chat? Il y a une réponse précise à cette question: parce que nos ancêtres ont convenu; Les ancêtres des Britanniques ont accepté d'appeler la même bête chat, les ancêtres des Allemands - chaton, etc. En général, la signification, la sémantique, ou les règles d'interprétation de tout mot ou une combinaison de mots - la question de l'accord.

Rendez-vous et "superbate" de la standard POSIX

Comme le nom suit, POSIX (Interface de système d'exploitation portable) est une norme de compilation entre le système d'exploitation et le programme d'application. Temps lorsque les programmeurs ont écrit des programmes pour la machine "nue" (mise en œuvre de leurs propres packages de programmes d'E / S, de fonctions trigonométriques, etc.), est passée irrémédiablement. Le texte POSIX souligne à plusieurs reprises que la norme ne propose aucune exigence pour les opérations du système d'exploitation; Il peut être considéré comme une totalité d'accords entre les programmeurs d'applications et les développeurs de systèmes d'exploitation. Ainsi (encore une fois, contrairement à une opinion assez populaire), Posix présente des intérêts non seulement pour les développeurs de systèmes d'exploitation, mais tout d'abord, pour une catégorie beaucoup plus nombreuse de programmeurs - appliquée.

La nécessité de la norme de ce type a été réalisée dans les années 1980, lorsque les systèmes d'exploitation UNIX étaient généralisés. Il s'est avéré que, bien que ce système ait été conçu comme unifié, les différences entre ses implémentations spécifiques ont entraîné le fait que les programmes d'application écrits pour un système ne pouvaient pas toujours être exécutés dans une autre. Sur la décision de ce problème particulier, appelé problème de mobilité logiciel, Posix visait. La première édition de la norme a été publiée en 1988 (voir la traduction, voir), dans laquelle toutes les diverses questions liées à la mobilité du programme ont été divisées en deux parties: (1) Interface de programme appliquée, (2) interprète de commande et utilitaires (interface utilisateur); Ces pièces s'appelaient POSIX.1 et POSIX.2, respectivement1.

Nous devrons préciser que cet article ne parlera que de la norme d'interface d'application, de POSIX.1, de la seconde (et de la dernière date) qui a été approuvée le 12 juillet 1996.

La partie informative de la norme souligne également que POSIX n'est pas une description de l'interface d'un système d'exploitation «idéal», mais le résultat de la généralisation et de la systématisation de l'expérience acquise dans le développement de systèmes d'exploitation UNIX. De plus, POSIX ne peut pas servir de guide ou didacticiel Selon les systèmes d'exploitation, bien que la partie informative contienne des recommandations aux programmeurs et fragments de programmes.

La norme indique le fait qu'il est impossible de créer un système d'exploitation à part entière, de se concentrer exclusivement sur les fonctions d'interface décrites. (En particulier, POSIX.1 ne reflète pas de telles questions que des fonctions de réseautage et d'interface associées ou une interface graphique.) Toutefois, les coûts financiers causés par la nonchabilité des programmes et la nécessité de l'unification de l'interface sont si importantes que la plupart des fabricants préfèrent Avoir au moins une norme que personne. Pour cette raison, de nombreux développeurs de logiciels cherchent à naviguer sur POSIX. Cela permet que vous n'éliminez pas complètement la non-muté de programmes, puis réduisez au moins de manière significative la partie nagrétable du programme.

À propos de la sémantique

Comme déjà mentionné, POSIX peut être considéré comme un ensemble d'accords entre le développeur du système d'exploitation et le programmeur d'application. «Accord» signifie avant tout la similitude d'interprétation (sémantique) des mots et des expressions. Voici des exemples illustrant la difficulté de la tâche de réaliser un accord.

Comment transmettre le sens lors de la traduction

Tout d'abord, vous devez vous rappeler que la norme POSIX est définie en anglais, que dans la nature provoque une ambiguïté (par exemple, le même mot peut être des noms, un adjectif et un verbe) et des "pièges sémantiques" écoutés presque sur chaque page. Une bonne illustration dudit est un exemple de fiction. L'une des œuvres les plus célèbres d'Oscar Wilde, qui a brillamment utilisé cette caractéristique de la langue anglaise, - l'importance d'être sérieuse - est connue dans le Russe appelé "Quelle importance d'être sérieuse". Cependant, le nom anglais a une seconde signification: sérieux (sérieux) - le nom de famille de l'un des caractères et le nom pourrait être traduit différemment: «Quelle est l'importance d'être Ernst». Il y a un nom de famille russe Silver et s'il y avait un nom de famille sérieux, la traduction serait parfaitement précise, avec le transfert des deux significations.

Il en va de même pour le nom de la norme: Interface système d'exploitation portable. L'adjectif portable (mobile) fait référence au système d'exploitation et au programme d'application, mais il n'est pas possible de l'exprimer sous peu en russe, vous pouvez traduire en tant que "interface de système d'exploitation mobile" ou "interface système d'exploitation qui offre la mobilité de programmes d'application. " La deuxième option reflète mieux les intentions des développeurs standard, mais en même temps, le premier lavé a été perdu (la première option la plus familière a été préservée).

Sémantique du mot "standard"

Le texte principal de la norme est préammé par le préambule, dans lequel la signification du mot IEEE Standards2 est expliquée. Comme suit ces éclaircissements, il existe au moins trois différences sémantiques du terme russophone gost:

(1) Croit intuitivement que GOST a le pouvoir de la loi dont la violation est persécutée; POSIX est un ensemble d'exigences, à la suite duquel est le cas exclusivement volontaire.

(2) Gost agit jusqu'à l'annulation (beaucoup, probablement, devaient entendre l'expression "governing personne annulée"); Dans le préambule de POSIX, on dit que si la norme n'était pas révisée pendant 5 ans, cela signifie que les questions considérées considérablement perdues ont probablement perdu la pertinence, et elle peut être considérée comme annulée automatiquement;

(3) Gost anonomen; Dans la partie introductive de POSIX, une liste de ces personnes qui ont participé au développement de cette norme sont données et donne également l'adresse dans laquelle vous pouvez envoyer des demandes d'interprétation; On dit également que la réponse à chaque demande est soumise à la procédure de coordination (en d'autres termes, les auteurs de la norme sont d'accord avec l'autre avant de donner la réponse).

Ainsi, la traduction de même mot bien connu en tant que mot standard "standard" nécessite des commentaires.

La sémantique des mots "doit", "non spécifiée", "non définie", "déterminée par la mise en œuvre"

La section 2 de la norme s'appelle "Terminologie et exigences générales". Il contient les définitions des termes non seulement (tels que «processus» ou «sémaphor»), mais aussi, il semblerait que des mots évidents, comme «doivent» ou «mai». Étant donné que POSIX.1 est une norme sur l'interface, ses exigences sont liées à la fois au système d'exploitation et au programme d'application. L'exigence explicite est exprimée par le mot "DOIT" (doit), par exemple: "En cas d'achèvement réussi, la fonction LINK () doit renvoyer la valeur zéro". DANS cet exemple Nous parlons d'une exigence pour le système d'exploitation: la fonction LINK () doit être mise en œuvre de manière à ce que, lorsqu'elle soit terminée, la valeur zéro renvoyée.

Les termes "non spécifiés" et "non définis" expriment la même idée que la norme admet la liberté de choix, mais la signification de ces termes est variée. Le terme "non spécifié" implique que nous parlions de certaines options correctes (actions, structures logicielles, etc.) et le terme "non défini" - à peu près incorrecte (erronée). La partie informative de la norme fournit l'explication suivante.

Le terme "non spécifié" signifie que de nombreuses options (résultats, les résultats de l'appel de la fonction, etc.) sont supposés être connus et la norme permet d'entre eux; Dans une implémentation spécifique du système d'exploitation, tout le monde peut être sélectionné, et un tel système est considéré comme la norme correspondante. Le programme appliqué (standard strictement pertinent) doit être écrit de manière à ce qu'il fonctionnait correctement dans une variante; Essentiellement, ce terme a implicitement exprimé une exigence implicite pour un programme d'application.

Donnons un exemple: "La fonction READDIR () doit renvoyer un pointeur sur la structure relative à l'élément de répertoire suivant. Si les éléments du répertoire sont renvoyés avec les noms "DOT" et "Point-Point", la norme n'est pas spécifiée. " Dans cet exemple, quatre résultats sont possibles et l'exigence d'un programme d'application est qu'il doit être conçu pour l'un d'entre eux.

Un autre exemple: "Si la fonction SIGWAIT (), laquelle prescrit l'attente du signal avec le numéro spécifié est causée dans plusieurs flux de commande, alors lorsque le signal est reçu, pas plus d'un d'entre eux ne devraient revenir de SIGWAIT (). Dans quel type de flux de contrôle cela va arriver, la norme n'est pas spécifiée. " Dans cet exemple, de nombreux résultats possibles peuvent être plus, mais ils sont également connus et l'exigence d'un programme de candidature est qu'elle devrait fonctionner correctement à tout résultat.

Le terme "non défini" implique que même de nombreux résultats ne sont pas connus, aucun résultat est possible, même déplorable (par exemple, effondrement du système, perte de données, etc.). Essentiellement, ce terme a implicitement exprimé l'exigence du programme d'application de ne pas utiliser les données ou conceptions appropriées. Par exemple: "Si la fonction DIRP Argument ReadDir () ne se réfère pas à l'annuaire actuellement ouvert, le résultat n'est pas défini."

Cet exemple contient une demande à appliquer sous forme de fonction d'argument ReadDir () Lien uniquement sur un répertoire ouvert; La violation de cette exigence peut entraîner des conséquences désastreuses et la responsabilité de celui-ci est attribué à un programmeur d'application.

Voici un autre exemple: "En cas d'achèvement réussi, la fonction Lecture () doit renvoyer un entier qui indique le nombre d'octets pratiquement lu. Sinon, la fonction doit affecter un code d'erreur à errno et renvoyer -1, et le contenu du tampon à laquelle l'argument BUF spécifie n'est pas défini. "

Utilisez dans un programme d'application d'un tampon en cas d'erreur de la fonction Lecture (), la norme interdit, et les conséquences de la violation de cette exigence impose au programmeur d'application.

La signification du terme "est déterminée par la mise en œuvre" diffère de intuitive. De toute évidence, dans un système d'exploitation spécifique, il ne peut y avoir aucun résultat «non-conseil» ou «incertain», un résultat particulier sera obtenu. Le terme "déterminé par la mise en œuvre" exprime l'exigence de la norme à la documentation du système d'exploitation: le résultat doit non seulement être clarifié (le développeur du système d'exploitation devra faire quand même), mais reflète également explicitement la documentation pour le système.

Semantitique par défaut

Aucun document de réglementation ne peut couvrir toute la variété de cas pouvant se rencontrer dans la pratique, il est donc inévitable pour quelque chose de silencieux3. Par exemple, dans la description de la fonction, on peut dire que son argument peut prendre des valeurs d'une certaine gamme, mais rien ne dit que ce sera le résultat si l'argument ne tombe pas dans cette plage. Évidemment, afin d'éviter des malentendus, il est nécessaire d'avoir une seule sémantique par défaut. Dans la partie informative de la norme, il existe une phrase curieuse: "La sémantique généralement acceptée de la valeur par défaut est interdite." Cette déclaration contradictente le slogan bien connu de dix ans il y a une décennie "tout ce qui n'est clairement pas interdit est autorisé. Apparemment, il était tellement enraciné dans la conscience des citoyens que beaucoup, même les programmeurs, ne sont pas d'accord avec la déclaration de la norme devenue. Entre-temps, si l'utilisation de n'importe quel design n'est clairement pas autorisée et ne suit pas de la description, tout programmeur de praticien réalise que son utilisation est risquée et qu'elle ne fonctionne pas, elle ne fonctionne pas.

Processus et flux de contrôle

Ces deux termes expriment l'idée du parallélisme de l'exécution. Le système d'exploitation UNIX a été conçu à l'origine comme un multijoueur et les programmes lancés par différents utilisateurs doivent être isolés de manière sécurisée les uns des autres pour déformer accidentellement les données "Autres personnes". Cet isolement est fourni par le fait que le programme utilisateur est exécuté dans un processus donné dans son propre espace d'adresses virtuel. Même si le programme a des données globales, lorsqu'il la démarre dans différents processus, ils seront automatiquement "divorcés" par différents espaces d'adresses.

Cependant, le mécanisme des processus n'est pas tout à fait satisfaisant lors de la programmation des tâches en temps réel. Le programme d'application en temps réel (agissant pour le compte du même utilisateur) peut souvent être naturellement représenté comme parallèle aux pièces exécutables, appelées «flux de contrôle» (fil). La différence la plus significative des processus est que toutes les flux de contrôle se développent dans un seul espace d'adresse; Ceci est fourni accès rapide Aux données globales, mais dans le même temps, le risque de distorsion involontaire se pose et que cela ne se produit pas, il est nécessaire de se conformer à une programmation de discipline. Les recommandations pertinentes sont contenues dans la partie informative de la norme.

Il convient de souligner que l'idée de multithreading est mise en œuvre dans de nombreux systèmes d'exploitation en temps réel et est mise en œuvre différemment en ce sens que différents ensembles d'attributs et de fonctions d'interface correspondent à chaque courant de contrôle; Parfois, au lieu du terme "flux de contrôle" (thread) utilise le terme "tâche" (tâche). Afin d'éviter des malentendus, la norme souligne que cela se présente exclusivement sur les flux de contrôle POSIX, et les noms des fonctions d'interface correspondantes ont le préfixe pthread_ (par exemple, pthread_create (), pthread_join (), etc.).

Conformité à la norme. La sémantique du mot "correspond"

Il est intuitif que si deux sujets sont réalisés conformément à la même norme, ils sont garantis pour "correspondre" les uns avec les autres et travailleront ensemble dans une paire; C'est dans ce que le but de l'introduction de la norme pour la conjugaison (interface) est. Étant donné que POSIX est une norme sur l'interface, vous pouvez parler de la norme conforme du système d'exploitation et du programme d'application.

POSIX.1 La norme contient plusieurs centaines d'exigences (voire des milliers); Il est jugé évident que si au moins l'un d'entre eux n'est pas rempli, le système (ou le programme d'application) ne satisfait pas la norme. Dans le même temps, un tel certain nombre de systèmes d'exploitation et de programmes d'application UNIX pour eux sont écrits à ce jour, il est peu probable que cela nécessite raisonnablement une correspondance complète au sens spécifié. Les difficultés de développement d'une norme internationale de ce type sont exacerbées par l'existence de différentes langues nationales. Même si vous oubliez des programmes d'application conçus pour traiter les textes dans les langues nationales, presque toutes les applications doivent émettre des messages de diagnostic et / ou percevoir les textes saisis par l'opérateur.

  • conformité stricte avec la norme POSIX.1;
  • conformité à la version internationale de POSIX.1;
  • conformité à la version nationale POSIX.1;
  • conformité POSIX.1 avec extensions.

Deuxièmement, de nombreux fonds d'interface sont déclarés facultatifs (facultatifs); La norme nécessite que les fonctions d'interface optionnelle soient soit définies comme indiquées par la norme, ou ont toujours renvoyé un code d'erreur spécial, Enurosys (ce qui signifie que la fonction n'est pas mise en œuvre). Les moyens facultatifs sont divisés en plusieurs groupes, chacun correspondant à une constante de configuration, qui est déclarée (Opérateur #define) dans le fichier d'en-tête correspondant; Cela garantit la possibilité de déterminer si la fonction est mise en œuvre sur la phase de compilation.

L'admission décrite de la mobilité a été inventée non pas par les auteurs de POSIX, et il y a longtemps appliqué dans la pratique; Dans de nombreux systèmes d'exploitation, des constantes de configuration sont appliquées pour identifier le système lui-même ou sa version. Et ici, la norme n'offre rien de manière fondamentalement nouvelle, mais seulement systématiser la pratique existante.

Objets de normalisation et structure standard

Pour parler brièvement, les objets de normalisation POSIX.1 sont des noms et des sémantiques. Plus spécifiquement, nous parlons de ce qui suit.

  • Caractéristiques de l'interface. 357 Les fonctions sont normalisées et 107 fonctions sont extraites des bibliothèques standard SI (mathématiques, traitement de la rangée, entrée / sortie, etc.); Ces fonctions sont considérées comme faisant partie de la norme POSIX.1, mais leur description complète est contenue dans le langage de programmation standard.
  • Noms des types de données système. Ces noms ont un suffixe _t.
  • Les noms des fichiers d'en-tête, ainsi que la composition minimale de ces fichiers.
  • Noms des variables globales à l'échelle du système (par exemple, errno).
  • Noms symboliques pour les codes d'erreur pouvant être installés lors de la fonction de travail. Ces noms commencent par la lettre E (Eperm, EnoPty, etc.).
  • Noms de configuration constants. Ces noms ont préfixe _posix_.
  • Noms symboliques des signaux; Ces noms ont un préfixe SIG. Outre 20 signaux "traditionnels" (SIGABRT, SIGALRM, etc.), des signaux en temps réel sont normalisés, dont les numéros devraient occuper une plage solide de SIGTMIN à SIGTMAX inclus, ne contenant pas moins de numéros RTSIG_MAX.
  • Noms symboliques correspondant aux valeurs d'arguments individuels de certaines fonctions (par exemple, la fonction CMD Argument FCNTL () peut prendre F_DUPFD, F_GETFD, F_GETLK Valeurs, etc.).
  • Noms des macros, constantes, drapeaux de bits, variables d'environnement.

En général, la norme consiste en deux grandes parties d'approximativement du même volume. La première moitié est la partie réglementaire - contient les exigences et les recommandations de la norme (18 sections), la deuxième partie informative - contient des applications fournissant une liste de références, de commentaires et d'explications à la partie réglementaire, la composition des fichiers d'en-tête. , un exemple de profil ("projection") de la norme (pour le Danemark), des caractéristiques et des méthodes de mesure de la performance des fonctions les plus importantes, ainsi qu'une description des fonctions d'interface supplémentaires pour travailler avec des fichiers en temps réel; On s'attend à ce que, dans les éditions suivantes de la norme, ces fonctions seront incluses dans la partie réglementaire.

L'idée de quels types de services du système d'exploitation sont couverts par la norme, donne la somme du «résumé des sections standard».

Conclusion

Le contenu principal de la norme POSIX est la sémantique des fonctions d'interface. Normalisation de la sémantique - L'affaire elle-même n'est pas facile (tout le monde sait à quel point il est difficile de convenir de deux personnes) et des difficultés sont exacerbées par beaucoup de personnes participent actuellement à des activités de programmation. Par exemple, le paradigme d'exécution parallèle est exprimé par des termes tels que le "processus", "tâche" et "flux de gestion", mais du point de vue de la programmation pratique "tâche" dans le système d'exploitation IBM OS / 360 et dans le Le système d'exploitation en temps réel VXWorks n'est pas un et également. Un autre exemple est les sémaphores. Les sémaphores sont binaires, entier ("avec un mètre") et une exception mutuelle (qui, à la hausse, les programmeurs sont appelés "mutiles", cherchant sphilalement à éviter les malentendus). Et des sémaphores entier, par exemple, dans le système d'exploitation VXWorks, ne sont pas du tout de même que les sémaphores POSIX.

Les auteurs de la norme POSIX, réalisant parfaitement à quel point il est difficile de faire en sorte que les gens abandonnent leurs habitudes (qu'ils appellent la "pratique établie"), déclarent qu'ils ont formulé un système logiquement connecté et minimal de fonctions d'interface couvrant la plupart des services fournis traditionnellement Par le système d'exploitation, en détail décrivait la sémantique exacte de ces fonctions et offrent à chacun de les utiliser dans leurs développements4.

Lors de la lecture de la norme, l'impression survient parfois que certaines formulations avaient un seul objectif: ne pas retirer certains programmes d'application ni des systèmes d'exploitation de la catégorie. Un tel objectif était effectivement défini et clairement formulé dans l'introduction: la norme doit tenir compte de la pratique actuelle pour maximiser l'étendue. Cependant, l'objectif principal est de garantir la mobilité des programmes d'application.

À propos de l'authentique

Sergey Romyuk - chercheur principal de l'Institut de recherche de la recherche système, responsable du groupe de traductions standard de POSIX. Vous pouvez le contacter e-mail À l'adresse suivante: [Email protégé]

1 Il convient d'ajouter que les travaux sur la norme se poursuivent pendant de nombreuses années; De nouvelles questions sont identifiées et elles sont soit incluses dans l'une des parties existantes, soit formulées sous la forme d'une partie distincte, qui peut ensuite être annulée. Cela s'est produit, par exemple, avec le moyen d'interface de temps réel, qui ont été annoncés d'abord comme POSIX.4, puis inclus dans POSIX.1.

2 IEEE est une organisation dans laquelle la norme POSIX a été développée.

3 Ici, le "MISTOR" signifie silencieux, pas par défaut; Cela ne concerne pas certaines valeurs implicites qui sont déclarées, mais sur la déclaration de mention du tout.

4 La traduction de la norme en russe sera publiée au début de 2000.

Littérature

Standard internationale ISO / CEI 9945-1 (ANSI / IEEE STD 1003.1) Deuxième édition. 1996-07-12. Technologies de l'information - Interface système d'exploitation portable (POSIX) - Partie 1: Interface de programme d'application système (API).

M.I. Belyakov, Yu.i. Wereruve, A.L.fridman. Système d'exploitation mobile. Annuaire. Moscou, radio et communication, 1991.

ISO / CEI 9899: 1990, Langues de programmation - C.

Section 1 - Introduction
Section 2. - Terminologie et définitions
Section 3. - Fonctions de gestion de processus (création, remplacement des images, achèvement) et des signaux (gestion du masque, réponse du signal)
Section 4. - Identification (processus, utilisateurs, systèmes, terminaux), une enquête sur les temps consacrés à l'exécution du processus, enquête sur la variable d'environnement.
Section 5. - Gérer les fichiers et les catalogues
Section 6. - Fonctions d'entrée et de sortie
Section 7. - Fonctions de gestion des terminaux
Section 8. - Fonctions empruntées à la norme
SECTION 9. - Accès aux bases de données utilisateur et aux groupes d'utilisateurs
Section 10. - Formats de données pour l'archivage et l'échange (goudron et CPIO)
Section 11. - Outils de synchronisation: sémaphores, mutiles et conditions variables
Section 12. - Fonctions de gestion de la mémoire: Fixation et désaccordez l'espace d'adressage du processus, affiche des fichiers de mémoire, la protection de la mémoire, la mémoire partagée
Section 13. - Fonctions liées aux processus de planification et aux flux de contrôle
Section 14. - gérer des horloges et des minuteries
Section 15. - Signaler la gestion des files d'attente
Section 16. - Fonctions de base liées aux flux de contrôle
Section 17. - Données de flux de contrôle individuelles (données spécifiques au fil)
Section 18. - des moyens de détruire les flux de contrôle

Aujourd'hui, nous allons essayer de déterminer ce que la norme POSIX décrit. Les normes sont destinées à garantir que mon ordinateur puisse interagir avec le vôtre. Grâce à eux, sur deux ordinateurs de page Web similaires ou une vidéo diffusée en temps réel sera égale.

Cependant, la norme est destinée à des tâches plus importantes qu'un simple échange de données entre les utilisateurs. Certaines normes définissent un modèle spécial, grâce aux caractéristiques qui sont significativement supérieures dans leur compatibilité de valeur de fichiers ou de réseaux. La norme POSIX fait référence à leur nombre.

Qu'est-ce que POSIX?

POSIX (prononcé "Posiks") est une interface système d'exploitation portable. Mais qu'est-ce que ça veut dire? Premièrement, vous devez désigner la portée du concept de "portabilité", dans ce cas particulier et déterminer le concept d'interface ". Pour en savoir plus, il est nécessaire de repousser du fait que les deux concepts sont inextricablement liés.

"Portabilité", dans le contexte de la norme POSIX, fait référence au code source (non aux fichiers binaires collectés à partir de ces sources mêmes). Découvrez maintenant quelle "interface" est. Dans la programmation, l'interface est l'interaction de votre code avec le reste du code. L'interface attend la fourniture d'informations spécifiques de votre code. Votre code, à son tour, implique d'obtenir certaines informations de l'interface. Bon exemple - FOPEN () Fonction dans SI. Il attend des informations à partir de deux parties: le chemin du fichier et le mode dans lequel il sera ouvert. En utilisant ces données, le système d'exploitation renvoie un autre type d'informations appelé "descripteur de fichier". La poignée de fichier peut être utilisée pour lire le fichier ou écrire dans le fichier. Ceci est l'interface. De tout cela, il suit qu'un code compatible POSIX peut être compilé dans tout système d'exploitation compatible POSIX sans modifications majeures, ce qui signifie qu'il sera portable.

La liste des interfaces relatives à la norme POSIX est toutefois même malgré sa énorme longueur, il est possible qu'il soit déficient. POSIX ne se limite pas aux défis du système, il définit également des normes pour les coquilles de systèmes d'exploitation (étagères, autres interfaces de ligne de commande), utilitaires système, tels que "AWK" ou "ECHO", Bibliothèques système et de nombreuses autres choses.

La norme POSIX est apparue sous la forme d'un projet de Richard Pokalman en 1985 et a été décoré en outre comme IEEE STD 1003.-1998. Comme on peut le voir sur le nom, 1998 était l'année de publication officielle. Depuis lors, un grand nombre d'ajouts et d'extensions pour POSIX ont été libérés, ce qui se transforme progressivement en une famille entière de normes, officiellement appelée IEEE 1003, reconnu comme une internationale, avec la désignation de SO / IEC 9945, simplement appelée POSIX Standard de la famille.

Le système d'exploitation n'est pas du tout nécessaire d'être compatible POSIX ou encore plus disposant d'un certificat POSIX, mais il permet aux développeurs de créer des applications, des outils et des plates-formes, sans réécriture de code une fois par heure, mais seulement compléter et se connecter à -terminer. Il n'est également pas nécessaire d'écrire du tout un code compatible POSIX, mais cela améliore considérablement la portabilité des projets entre les systèmes d'exploitation. Cela signifie que la capacité d'écrire un code compatible avec la norme POSIX est précieuse en soi, et certainement très utile pour une carrière. De grands projets, tels que Gnome ou KDE, adhèrent à la norme POSIX, qui garantit leur travail sur différents systèmes d'exploitation. Le sous-système POSIX est mis en œuvre même dans les dernières fenêtres. Linux, comme vous le savez, prend en charge la plupart des appels système liés à la norme POSIX, ainsi que la large extension à celle-ci, appelée "Base Linux standard", conçue pour combiner des distributions Linux en termes de code source et de données binaires .

J'espère que nous versions la lumière à la question "Qu'est-ce que POSIX". Avoir des informations intéressantes sur le sujet? S'il vous plaît partagez-le dans les commentaires.

- (iPaeng | pɒzɪks) ou interface de système d'exploitation portable CITE web | Titre \u003d POSIX | URL \u003d http://standards.eeee.org/regauth/posix/ | Travail \u003d Normes | Publisher \u003d IEEE] est le nom collectif d'une famille de normes connexes spécifiées par l'IEEE ... Wikipedia

POSIX. - Est Le Nom D UNE FAMILLE DE LA FAMILLE DE LA FAMILLE DEFINIE DEPUIS 1988 Par l Institut des ingénieurs électroniques et électroniques et Formellement Désignée IEEE 1003. CES Standards ONTERGÉ D UN ONU PROJET DE STANDARISISATION DES API DES LOGILIELLES DESTINÉES À ... WikiPÉDIA EN ENGLISH

POSIX. - Est Le Nom D UNE FAMILLE DE LA FAMILLE DE LA FAMILLE DEFINIE DEPUIS 1988 PAR L ICEE ET FORMELLEMENT DÉSIVES IEEE 1003. CES Standards ONMERGÉ D UN ONU PROJET DE LA STANDARISISATION DES API DES LOGILIELS DESTINÉES À FONCTIONNER SUR DES VARIANTES D ... WikiPédia en English

POSIX. - ES el Acrónimo de l'interface système d'exploitation portable; LA X VIENE DE UNIX CANO Seña de Identidad de la A API. El Término Fue SUGERIDO POR RICHARD STALLMAN EN RESPUESTA A LA DANCE DE LA PIÈCE, QUE BUSCABA UNOMBLE FÁCIL DE CONTRISION. UNA TRADUCCIÓN ... Wikipedia Español

POSIX. -, 1986 IM Standard 1003.1 DER IEEE NIEFEGEGTE SPÉZIFIKATION FÜR ZUGRAFFE AUF SystemfunktionEN Unter Unix. Sowohl Unix Sy ... Universal-Lexikon

POSIX. - Standartai Statonas T Srite Informatika Apibėžtis Standartų Grupė, Apibėžianti Operacinės Sistemos Sąsajas Tarp Joje Veikiančių Programmerų bei Tarnybų. Pirmuosius Standartus Sukūrė Elektros IR Elektronikos Inžinierių Instituttas (IEEE) Linukso ... EnCiklopedinis Kompiuterijos Žodynas.

POSIX. - Interface Système d'exploitation portable d'EL ACRÓNIMO DE, VINIENDO LA X DE LA HERENCIA DE LA API (SE TRADUCIRÍA PORTABLE BASADO EN ENLEX). Estos Son Una Familia de Esándares de Llamadas Al Sistema ... Enciclopedia Universal

POSIX. - (Interface système d'exploitation portable basée sur UNIX) n. Collecte de normes pour les systèmes d'exploitation basés sur UNIX (ordinateurs) ... Dictionnaire anglais contemporain.

POSIX.

POSIX. - Interface de système d'exploitation portable DAS (POSIX [PɒSɪKS]) IST EIN GEMEINSAM VON DER IST FIN DER OUVERTURE Groupe Open Für UNIX ENTWICKELTES STULARISIERTS INTERFACE DE PROGRAMMATION DE L'APPLICATION DAS SCHNITTTELLE ZWISCHEN APPLICHÈME UND DEUTSCH WIKIPEDIA

Livres

  • , Stephen A. Rago, W. Richard Stevens. "Unix. Programming professionnel" est un guide de référence détaillé qui aide les programmeurs professionnels en langue à écrire exclusivement ...
  • UNIX. Programmation professionnelle, Stevens W. Richard, Rago Stephen A .. Ce livre est réputé avec de sérieux programmeurs du monde entier, car il contient les informations les plus importantes et pratiques sur la gestion des noyaux UNIX et Linux. Sans ces ...

Normes

Sergey Zolotarev,

Le présent article a pour objet de tenter de faire une certaine clarté dans l'historique de développement de la norme POSIX en ce qui concerne les systèmes d'exploitation en temps réel (OS RV).

En tant qu'introduction: pourquoi avez-vous besoin d'une standardisation d'interface de programmation?

L'une des propriétés les plus importantes de la norme POSIX est qu'il définit une "interface de programmation normalisée", que les développeurs de systèmes de logiciels et matériels complexes doivent adhérer aux développeurs. Les créateurs de ces systèmes sont obligés de faire face à de telles exigences qu'un peu de temps d'entrer sur le marché (en raison d'une concurrence rigide), de minimiser les coûts et de l'accélération des rendements des investissements. Dans le même temps, la part des dépenses du lion causée par le ralentissement du processus de développement est liée au fait que les programmeurs doivent "inventer une bicyclette", encore une fois et encore la mise en œuvre de la fonctionnalité, qui a longtemps été disponible. Mais cela pourrait être évité par:

Réutiliser le code des projets passés et parallèles;

Transfert de code d'autre système d'exploitation;

Attirer des développeurs d'autres projets (y compris l'utilisation d'autres OS).

Tout cela est possible en raison de l'utilisation du système d'exploitation avec une API normalisée. De plus, si dans le premier cas, l'organisation suffit à avoir une norme interne certaine (particulièrement caractéristique du système d'exploitation de marque), les deuxièmes deux cas nécessitent simplement la disponibilité des normes généralement acceptées - par exemple, POSIX.

Ainsi, à l'aide d'un système d'exploitation compatible POSIX en tant que plate-forme pour ses projets, le développeur est en mesure de transférer le code fini au niveau du code source, à partir de ses projets passés ou parallèles et de projets tiers. Cela réduit non seulement considérablement le calendrier du développement logiciel, mais améliore également sa qualité, car le code éprouvé contient toujours moins d'erreurs.

Qui est qui dans le développement de POSIX

Et commençons par le très standard POSIX, mais en ordre du rôle des organisations impliquées dans le travail.

Le premier participant est IEEE. Institut d'ingénieurs électriques et électroniques, Institut d'électricien ingénieurs et électronique), Association publique à but non lucratif des professionnels. L'IEEE dirige son histoire depuis 1884 (formellement - depuis 1963), combine 380 000 membres individuels de 150 pays, publie la troisième partie de la littérature technique concernant l'utilisation des ordinateurs, de la gestion, des technologies de l'électricité et de l'information, ainsi que de plus de 100 magazines, populaire dans l'environnement des professionnels; En outre, l'association est par an de plus de 300 principales conférences. IEEE a participé à l'élaboration de plus de 900 normes existantes (www.eeee.ru/eeeeee.htm). Aujourd'hui, cet institut est engagé dans la préparation, l'approbation, l'approbation, la publication des normes, mais dans son statut formel n'a pas le pouvoir d'accepter de tels documents de normes internationales ou nationales. Par conséquent, le terme "standard" dans la compréhension de l'IEEE signifie plutôt "la spécification", qui correspond davantage au statut des documents pris par l'association. Conformément à l'IEEE, participe aux programmes d'un certain nombre d'organisations internationales et régionales - IEC, ISO, UIT (Institut européen des normes de télécommunications pour le stipulation électrotechnique) et dans les programmes nationaux, tels que le programme d'une telle organisation comme ANSI.

L'IEEE comprend PASC (Comité des normes d'application portable; www.pasc.org/) - Comité d'association, qui développe une famille de la famille Posix. Plus tôt, le PASCC était connu comme le comité technique des opérations.

Le deuxième participant au travail - ANSI (Institut national de normalisation américain, Institut national de normalisation américain; www.ansi.org) - une organisation privée à but non lucratif qui administre et coordonne aux États-Unis sur des questions de normalisation. Il emploie seulement 75 personnes, mais les membres d'ANSI représentent plus de 1000 entreprises, organisations, agences gouvernementales et institutions. ANSI représente les États-Unis dans deux principales organisations internationales pour la normalisation - ISO et CEI.

Troisième participant - Iso. Organisation internationale de normalisation, organisation internationale pour la normalisation; www.iso.org). Il a été créé en 1946 par la décision de coordonner les normes et l'Assemblée générale des Nations Unies et a officiellement commencé à travailler le 23 février 1947. L'ISO est un réseau d'institutions de normalisation nationales de 146 pays (un pays - un membre de l'ISO) avec le Secrétariat central à Genève (Suisse). Les normes ISO sont élaborées dans des comités techniques, dont le premier résultat est un projet de document standard international (DIS), en passant après plusieurs correspondances dans le projet de norme internationale finale (FDIS). Après cela, la question de l'approbation ce document sort pour voter; Avec un résultat positif, il devient une norme internationale.

Pour terminer, - IEC. Commission électrotechnique internationale, Commission électrotechnique internationale - CEI; www.iec.ch/), fondée en 1906, la CEI prépare et publie des normes internationales pour toutes les technologies électriques, électroniques et connexes. Au 1er novembre 2004, les comités nationaux de 64 pays étaient les membres valables de cette commission. La CEI publie également des recommandations qui sortent en anglais et en français et exécutant le statut des normes internationales. Ils sont basés sur des normes régionales et nationales. Les comités techniques (TC) sont responsables de la préparation des normes dans divers domaines des activités de la CEI et des comités nationaux intéressés par les activités d'une TC sont également impliqués.

IEC. - Organisation clé dans la préparation des normes internationales pour la technologie de l'information. Cette zone dispose d'un comité technique conjoint sur la technologie de l'information - JTC 1 formé en 1987 conformément à l'accord entre CEI et ISO. JTC1 compte 17 sous-comités qui supervisent tout le développement - de logiciels aux langages de programmation, d'infographie et d'édition d'images, d'interconnexion d'équipements et de méthodes de sécurité.

La préparation de nouvelles normes de la CEI comprend plusieurs étapes (préliminaire, étape d'approvisionnement, préparatoire, étape du comité technique, étape de la demande, approbation, publication). S'il est prévu que le document CEI ne soit qu'une spécification technique et non une norme internationale, la version révisée du document est envoyée au bureau central de publication. Pour le développement du projet final de la norme internationale (FDIS), quatre mois sont donnés. Si tous les membres du comité technique sont approuvés, il va au bureau central de publication sans l'étape d'approbation des FDIS. Après cela, les FDIS entrent dans les comités nationaux pour l'approuver dans un délai de deux mois. Les FDIS sont considérées comme approuvées si plus de deux tiers des comités nationaux ont voté pour lui et le nombre de votes négatifs ne dépasse pas 25%. Si le document n'est pas approuvé, il est envoyé pour réviser les comités techniques et les sous-comités. La norme doit être publiée au plus tard deux mois après l'approbation des FDIS.

Quelques autres organisations sont liées au développement et à l'adoption des normes de POSIX.

Groupe ouvert. - Organisation internationale pour la normalisation logicielle, qui combine près de 200 fabricants et des communautés d'utilisateurs travaillant dans le domaine des technologies de l'information (www.opengroup.org/) .Opengroup a été créée en 1995 en fusionnant les deux prédécesseurs: X / Open et Open Software Foundation ( Osf). Open Group est spécialisé dans le développement de méthodologies de certification logicielles et de tests de conformité à certaines exigences. En particulier, le groupe Open est certifié pour les zones telles que la plate-forme COE, le CORBA, le LDAP, la base standard Linux, le cadre d'interopérabilité des écoles (SIF), la passerelle S / MIME, la spécification unique Unix, les spécifications de protocole d'application sans fil (WAP) et enfin la famille de POSIX Normes (www.opengroup.org/certification/).

AustinclamStandardsRevisionGroup (CSRG) - Le groupe de travail technique uni formé en 2002 ISO, IEC et Open Group pour créer et maintenir les dernières versions de la norme 1003.1, qui sera formée sur la base de l'ISO / CEI 9945-1-1996, ISE / CEI 9945-2-1993 , IEEE STD 1003.1-1996, IEEE STD 1003.2-1992 et Spécifications Unix unique (www.opengroup.org/press/14nov02.htm).

Institut national des normes et de la technologie (NIST) - L'Agence fédérale s'est conformée à l'administration de la technologie du département du commerce (www.nist.gov/public_affirés/general2.htm), fondée aux États-Unis en 1901. La tâche de NIST est le développement et la propagande des normes et technologies afin d'améliorer la qualité des produits. Le NIST comprend le laboratoire de technologie de l'information. Laboratoire de technologie de l'information - ITL)L'un des résultats des normes de traitement des informations fédérales (normes de traitement des informations fédérales - FIPS, www.opengroup.org/testing/fips/general_info.html ).nist/itl offert en 1991 L'ensemble initial de tests de la certification POSIX en 1991 Dans FIPS PUB 151-1 1990.

Qu'est-ce que POSIX?

Terme officiellement POSIX. proposé par Richard Stallman (Richard Stallman) comme une abréviation pour P.ortables. O.pénétrant S.interface du système pour ONU Ix (Interface portable des systèmes d'exploitation pour UNIX). POSIX a été développé pour les systèmes d'exploitation de type UNIX (leurs premières versions comptent depuis le début des années 1970) afin d'assurer la transférabilité des applications au niveau du code source.

La description initiale de l'interface a été publiée en 1986, puis elle s'appelle IEEE-IX (version de Unix de l'IEEE). Cependant, le nom a rapidement changé, se transformant en POSIX et déjà dans la prochaine publication (retour en 1986) Cette nouvelle version a été utilisée. Pendant un certain temps sous POSIX, la référence (ou synonyme) a été comprise comme un groupe de documents connexes et une partie de l'ISO / CEI 9945, ainsi que de manière complète et approuvée Internationale ISO / CEI Standard 9945.1: 1990, Posix, 1990, 1990, a été adoptée dans 1990. Spécifications POSIX Définissez la norme Le mécanisme d'interaction entre le programme d'application et le système d'exploitation et comprend actuellement plus de 30 normes sous les auspices de l'IEEE, de l'ISO, de la CEI et de l'ANSI.

Tout au long de son histoire, POSIX a passé une croissance importante, bien que plusieurs fois changèrent les désignations de spécifications, leur contenu, leurs procédures et leur logistique spécifiques de leur vérification. Au cours de la dernière fois, plusieurs éditions de la norme POSIX ont été publiées dans diverses organisations internationales.

Historique de développement standard POSIX

La première version de la spécification IEEE STD 1003.1 a été publiée en 1988. Par conséquent, de nombreuses éditions de IEEE STD 1003.1 ont été adoptées en tant que normes internationales. Étapes de développement POSIX:

- 1990 Le bureau de rédaction publié en 1988 a été repensé et est devenu la base d'éditions et d'ajouts supplémentaires. Il a été approuvé comme une norme internationale ISO / CEI 9945-1: 1990.

- 1993 L'Office éditorial de 1003.1B-1993 vient.

- 1996 IEEE STD 1003.1B-1993, IEEE STD 1003.1C-1995 et 1003.1I-1995 ont été fabriqués, mais la partie principale du document est restée inchangée. En 1996, l'édition de IEEE STD 1003.1 a également été approuvée comme une norme internationale ISO / CEI 9945-1: 1996.

- 1998 Il existe une première norme pour "temps réel" - IEEE STD 1003.13-1998. Il s'agit de l'expansion de la norme POSIX pour les applications en temps réel intégrées.

- 1999 Il a été décidé d'apporter des changements importants dans le texte principal de la norme des 10 dernières années, y compris l'unification avec la norme 1003.2 (shell et utilitaires), depuis à ce moment-là, il s'agissait de normes distinctes. PASC a décidé de terminer le changement de texte de base après l'achèvement des normes de l'IEEE 1003.1A, 1003.1D, 1003.1G, 1003.1J, 1003.1Q et 1003.2B.

- 2004 Dernière aujourd'hui, le comité de rédaction de 1003.1 a été publié le 30 avril et a été publié sous les auspices du groupe de révision des normes communes d'Austin. Il a apporté des modifications concernant le conseil de rédaction de 2001. Formalement, le bureau de la rédaction de 2004 est appelé IEEE STD 1003.1, édition 2004, le groupe ouvert Spécifications de base standard technique, numéro 6 et comprend IEEE STD 1003.1-2001, IEEE STD 1003.1-2001 / COR 1-2002 et IEEE STD 1003.1-2001 / Cor 2-2004.

Les normes les plus importantes de POSIX pour RV OS

Pour les systèmes d'exploitation en temps réel, sept spécifications standard sont les plus importantes, mais seulement trois ont été largement prises en charge dans le système d'exploitation commercial:

1003.1A (Définition du système d'exploitation) Définit les interfaces principales du système d'exploitation, la gestion des tâches, les signaux, les fonctions de système de fichiers et les périphériques, les groupes d'utilisateurs, les convoyeurs, les tampons FIFO;

1003.1B (Extensions en temps réel) décrit des extensions en temps réel, telles que la signalisation en temps réel, l'expédition de priorité, les minuteries, les entrées synchrones et asynchrones, les sémaphores, la mémoire partagée, les messages. Initialement (jusqu'en 1993), cette norme a été indiquée comme POSIX.4;

1003.1c (threads) Définit les fonctions de support de flux (threads) - Contrôle de flux, Attributs de flux, MuTex, Dispatching. Initialement désigné comme POSIX.4A.

Outre ces normes, les normes suivantes sont importantes pour le RV, qui ont été mises en œuvre dans le cadre du projet STD 1003.1-2001:

IEEE 1003.1D-1999. Expansions supplémentaires de temps réel. Initialement désigné comme POSIX.4B;

IEEE 1003.1J-2000. Amélioration de l'expansion en temps réel (avancée);

IEEE 1003.1Q-2000. Tracé.

Procédure de certification

Pour répondre à la norme POSIX, le système d'exploitation doit être certifié en fonction des résultats de l'ensemble de tests correspondant. Depuis l'apparition de POSIX, l'ensemble de tests a subi des changements formels et réels.

En 1991, NIST a mis au point un programme de test POSIX dans FIPS 151-1 (http://standards.eeee.org/regauth/posix/posix-a.fm5.pdf). Cette option de test était basée sur l'IEEE 1003.3 "Standard pour les méthodes de test pour la mesure de la conformité à POSIX" 3, le 3 mai 1989. En 1993, NIST est diplômé du programme de test pour FIPS 151-1 et a commencé un programme de FIPS 151 -2 (www.itl.nist.gov/fipspubs/fip151-2.htm).fips 151-2 Adapté "Technologie de l'information - Interface système d'exploitation portable (POSIX) - Partie 1: Interface du programme d'application système (API)," ISO / IEC 9945-1: Norme 1990. Les ensembles de test pour FIPS 151-2 étaient basés sur IEEE 2003.1-1992 "Standard pour les méthodes de test pour mesurer la conformité à POSIX".

NIST distingue deux méthodologies de certification: auto-certification (auto-certification) et certification accréditée dans les laboratoires d'essais IEEE (laboratoires d'essais POSIX accrédités - APTL). Dans le premier cas, la société effectue des tests indépendamment, mais selon le plan approuvé dans NIST. Dans le second cas, le test est effectué par un laboratoire indépendant utilisant des ensembles de test automatisés. Deux laboratoires APTL ont été accrédités: Mindcraft (www.mindcraft.com) et Perennial (www.peren.com).

En 1997, NIST / ITL a annoncé son intention de mettre fin à la certification des FIPS 151-2 à la fin de l'année en cours (officiellement au 31 décembre 1997), au même moment, le groupe Open a annoncé qu'il allait prendre le 1er octobre. L'année du service de certification conformément aux FIPS 151-2, sur la base du programme NIST / ITL. Les mêmes fonctions du 1er janvier 1998 ont assumé l'Association de normalisation de l'IEEE (IEEE-SA), ainsi que sur les FIPS 151-2.

En 2003, IEEE-SA et Open Group a annoncé le début d'un nouveau programme commun pour la certification des dernières versions de POSIX, à partir de l'IEEE 1003.1 (TM) 2001. Le groupe Open a maintenant plusieurs tests qui couvrent IEEE STD 1003.1-1996, IEEE STD 1003.

2-1992, IEEE STD 1003.1-2003 et IEEE STD 1003.13-1998 (www.opengroup.org/testing/testssuites/posix.html). Le produit est considéré comme certifié par POSIX s'il a adopté la procédure de certification complète, conformément aux résultats des tests, il répond à toutes les exigences présentées et figure dans le registre officiel des produits certifiés.

Les ensembles de test incluent:

VSX-PCTS1990 (www.opengroup.org/testing/teststsuites/vsxpcts1990.htm) - Un ensemble de tests de conformité pour les interfaces système IEEE STD 1003.1-1990;

Vspse54 (www.opengroup.org/testing/teststsuites/vsse54.htm) - Un ensemble de tests de conformité pour IEEE STD 1003.13-1998 Profil PSE54 (temps réel polyvalent);

VSX-PCTS2003 (www.opengroup.org/testing/teststsuites/vsxpcts2003.htm) - Ensemble de tests de conformité pour les interfaces système STD IEEE 1003.1-2003 (pièces obligatoires uniquement);

VSC-PCTS2003 (www.opengroup.org/testing/teststsuites/vsting/teststsuites2003.htm) - Ensemble de tests de conformité pour IEEE STD 1003.1-2003 (Shell et Utilitaires - Seules les pièces obligatoires).

De plus, Open Group a mis au point des tests pour les normes de POSIX en temps réel et le profil de normes POSIX embarqué. Un ensemble de tests pour Posix Realtime (www.opengroup.org/testing/testssuites/realtime.html) comprend les tests suivants:

IEEE POSIX 1003.1B-1993 / 1003.1I-1995 Extension en temps réel et IEEE POSIX 1003.1.2003 Edition;

IEEE STD POSIX 1003.1C-1995 Threads (Pthreads) Extension et IEEE POSIX 1003.1.2003 Edition;

IEEE POSIX 1003.1D-1999 Extension en temps réel supplémentaire et IEEE POSIX 1003.1.2003 Edition;

IEEE POSIX 1003.1J-2000 Advanced Realtim Extension et IEEE POSIX 1003.1.2003 Edition;

IEEE POSIX 1003.1Q-2000 TRACE et IEEE POSIX 1003.1.2003 Edition et IEEE POSIX 1003.1.2003 Edition;

Set d'essais de profil de normes POSIX intégrées (www.opengroup.org/testing/testssuites/eMbedded.html) comprend les tests suivants:

IEEE POSIX 1003.1-1990 (TESTS 5310);

IEEE POSIX 1003.1B-1993 / 1003.1I-1995 Extension en temps réel (essais 1430);

EXTENSION DE FILS (PTHEADS) (Test de Pthreads) (1232 Test);

IEEE POSIX 1003.13-1998 Profil 52.

Un peu de confusion dans la terminologie

En ce qui concerne le groupe de normes POSIX en anglais, pas une, mais jusqu'à trois termes. Malheureusement, ils sont similaires en valeur et sont souvent traduits de manière égale, ce qui apporte une certaine confusion. Termes qui sont:

Compatibilité (littéralement «compatibilité»);

La conformité (littéralement «conformité»);

Sonformance (littéralement «consistance»).

Le premier terme appliqué à POSIX n'est pas formellement défini. La seconde signifie que l'organisation est un producteur de logiciels déclare de manière autonome que ce produit (entièrement ou partiellement) répond aux normes NIST-PCTS suivantes. Le troisième terme implique que logiciel Un système de test défini a été transmis soit à l'aide d'un laboratoire accrédité, soit au sein du groupe ouvert, ce qui inclut une confirmation documentaire (appelée déclaration de conformité). En outre, dans le texte de l'article partout, il y aura des originaux de termes pour exclure l'ambiguïté.

Certifié OS RV.

Si vous adhérez à des règles strictes nécessitant la publication des données sur le système d'exploitation certifié dans le registre officiel et les tests ont été effectués par niveau conformitéVous n'avez actuellement que deux systèmes d'exploitation d'exploitation certifiés (données sont données dans l'ordre chronologique):

- Lynxos v.3. (Produit de Systèmes en temps réel Lynx, appelé Lynuxworks, Inc., www.lynuxworks.com) conçu pour développer des systèmes embarqués opérant dans mode difficile En temps réel, fabricants d'équipements complets et de télécommunications, en particulier fabricants de systèmes intégrés d'utilisation militaire. Le développement peut être effectué à la fois sur le système cible (auto-hébergé) et sur l'ordinateur de l'outil (hôte), prêt à concevoir pour fonctionner sur le système cible (cible). Lynxos V.3 est certifié pour la cohérence (Conforme)standard POSIX sur la plate-forme Intel et PowerPC. Des informations à propos de ceci se trouvent sur le site Web de l'IEEE http://standards.deeee.org/regauth/posix/posix2.html.lynxos certifiés par POSIX 1003.1-1996 Mindcraft, qui est le laboratoire d'essais POSIX accrédité IEEE POSIX pour NIST FIPS 151 TESTS 2 CONFORMANCE. Suite de tests.. Numéro de document confirmant la certification: fichier de référence: IP-2LYX002, fichier de référence: IP-2LYX001.

- Intégrité V.5 (Le produit de la société Green Hills Software, www.ghs.com) est certifié pour la cohérence (Conforme) Par POSIX 1003.1-2003, interfaces système pour l'architecture PowerPC en juillet 2004 (http://get.posixcertified.dee.org/select_product.tpl). Ensemble de tests VSX-PCTS 2003.

Système d'exploitation POSIX et QNX

QNX V.4.20(Developer - Systèmes logiciels QNX ferroviaire, www.qnx.com) certifié pour la conformité (CONFORMITÉ) POSIX 1003.1-1988 pour la plate-forme Intel par Datafocus incorporé. Les tests ont été effectués le 13 septembre 1993, date de délivrance du document - 1 novembre 1993. Ensemble de tests Nist PCTS 151-1, version 1.1.

QNX Neutrino (version 6.3) est conforme (conforme aux normes suivantes de la famille POSIX (www.qnx.com/download/download/8660/portabilité.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).

Systèmes logiciels QNX, créateur de QNX Neutrino, prévoit également certifier (conformité) QNX Neutrino selon certaines de ces normes; Les travaux sont programmés pour 2005 (www.qnx.com/news/pr_959_1.html).

Littérature

1. Manuel d'utilisation de l'association de normes IEEE. IEEE, octobre 2004.

2. Kevin M. Orbeland.. POSIX en temps réel, programmation de systèmes embarqués, 2001.

3. ICEE / ANSI Standard 1003.1: Technologie de l'information - (POSIX) - Part1: Application système: Interface de programme (API).

4. Gallmeister B. O. Programmation pour le monde réel, Posix.4 Sebastopol, CA: O'Reilly & Associates, 1995.

5. Institut national des normes et de la technologie, PCTS: 151-2, Suite Test Posix.

6. POSIX: certifié par IEEE et le groupe Open. Politique certifiée. Le groupe ouvert, le 21 octobre 2003, révision 1.1.



Avez-vous aimé l'article? Partagez-le