Norme POSIX

Norme POSIX

POSIX: un aperçu

L'interface du système d'exploitation portable (POSIX) est une norme IEEE qui aide à la compatibilité et à la portabilité entre les systèmes d'exploitation. Théoriquement, le code source conforme à POSIX devrait être transportable. Dans le monde réel, la transition des applications se présente souvent à des problèmes spécifiques au système. Mais la conformité POSIX rend plus simple aux applications de port qui peuvent entraîner des économies de temps. Les développeurs devraient donc se familiariser avec les principes fondamentaux de cette norme largement utilisée.

HISTOIRE DE POSIX

Les premiers programmeurs ont dû réécrire leurs applications à partir de zéro pour chaque nouveau modèle informatique. Mais le système IBM / 360 a changé. En 1964, il a introduit le système d'exploitation OS / 360. IBM a commencé à utiliser la même architecture matérielle pour permettre aux nouveaux modèles de réutiliser le même système d'exploitation. La présence d'un système d'exploitation commun sur plusieurs machines a mis en place la première étape pour la portabilité des applications.

À la fin des années 1960, l'arrivée d'Unix a ouvert de nouvelles possibilités. Bell Labs d'AT&T était responsable du développement initial de ce nouveau système d'exploitation. Il pourrait traverser des machines à partir de plusieurs fournisseurs. Mais Unix a commencé à se propager dans diverses saveurs. Outre le System V's AT&T, il y avait la distribution de logiciels Berkeley (BSD), Xenix et plus. Il n'était pas facile de porter à travers ces saveurs. La promesse de portabilité des applications a frappé une bosse de route. Au cours des prochaines décennies, l'introduction de nouveaux systèmes d'exploitation ne ferait que le rendre plus complexe pour les applications de port sur le matériel, les systèmes d'exploitation et les fournisseurs.

POSIX Standard a été développé dans les années 1980 pour résoudre le problème de la portabilité. La norme a été définie sur la base du système V et BSD Unix. POSIX ne définit pas le système d'exploitation, il définit uniquement l'interface entre une application et un système d'exploitation. Les programmeurs ont la liberté d'écrire leur système d'exploitation et leur application de toute façon qu'ils veulent tant que l'interface entre les deux est honorée. Parce que POSIX est indépendant du matériel, du système d'exploitation ou du fournisseur, il est plus facile d'atteindre la portabilité des applications.

La première norme POSIX est publiée en 1988. Formellement, il s'appelait IEEE Standard 1003.1-1988 Interface du système d'exploitation portable pour les environnements informatiques ». En 1990, une version internationale de la même norme avec de légères variations a été publiée en tant qu'ISO / IEC 9945-1: 1990 Technologies de l'information - Interface du système d'exploitation portable (POSIX) - Partie 1: Interface du programme d'application système (API).

Initialement, POSIX a été divisé en plusieurs normes:

Posix.1: Les services de base
Posix.1B: Extensions en temps réel
Posix.1C: Extensions de fils
Posix.2: Coquille et services publics

Après 1997, le groupe Austin a apporté toute la norme sous un seul parapluie. Depuis lors, les versions posix.1-2001 (également connu sous le nom de IEEE STD 1003.1-2001), POSIX.1-2004 (également connu sous le nom de IEEE STD 1003.1-2004) et POSIX.1-2008 (également connu sous le nom de IEEE STD 1003.1-2008) ont été publiés.

Des exemples de certains systèmes conformes à POSIX sont AIX, HP-UX, Solaris et MacOS (depuis 10.5 Léopard). D'un autre côté, Android, FreeBSD, Linux Distributions, OpenBSD, VMware, etc., Suivez la majeure partie de la norme POSIX, mais ils ne sont pas certifiés.

Bases de POSIX

Posix.1-2008 Offres standard avec quatre domaines principaux:

  1. Volume de définition de base: Termes, concepts et interfaces généraux.
  2. Volume d'interfaces de systèmes: Définitions des fonctions de service système et des sous-programmes. Comprend également la portabilité, la gestion des erreurs et la récupération des erreurs.
  3. Volume des coquilles et des services publics: Définition des interfaces de toute application sur les shells de commande et les programmes d'utilité communs.
  4. Volume de justification: Contient des informations et des histoires sur les fonctionnalités ajoutées ou rejetées et les raisons des décisions.

La norme ne couvre pas les interfaces graphiques, les interfaces de base de données, la portabilité du code objet / binaire, les configurations système, les considérations d'E / S ou la disponibilité des ressources.

Certains des principes directeurs de la conception de POSIX sont:

  • POSIX est créé pour faciliter la portabilité des applications. Ce n'est donc pas pour les systèmes UNIX seulement. Les systèmes non UNIX peuvent également être conformes à POSIX.
  • La norme ne dicte pas le développement de l'application ou du système d'exploitation. Il ne définit que le contrat entre eux.
  • Le code source de l'application conforme à POSIX devrait être en mesure de courir sur de nombreux systèmes car la norme est définie au niveau du code source. Cependant, la norme ne garantit aucun objet ou portabilité au niveau du code binaire. L'exécutable binaire peut donc ne pas fonctionner même sur des machines similaires avec des systèmes matériels et d'exploitation identiques. La seule portabilité du code source est traitée dans la norme.
  • POSIX est écrit en termes de norme C. Mais les développeurs peuvent l'implémenter dans n'importe quelle langue qu'ils aiment.
  • La norme ne traite que des aspects du système d'exploitation qui interagisse avec les applications.
  • La norme est maintenue succincte en termes de longueur et large en termes de portée pour couvrir un large éventail de systèmes.
  • POSIX a été conçu pour simplifier la portabilité. Donc cela économisera du temps et de l'argent à long terme. Cependant, si vos applications ne sont pas conformes à POSIX, cela pourrait nécessiter un investissement de temps et de ressources important au début.

Développement d'application POSIX

Le but de POSIX était d'améliorer la portabilité. Lorsque votre code source suit la norme, vous pouvez compiler et exécuter facilement le code sur une autre machine. Cependant, si POSIX est défini comme une exigence générale pour une application, elle peut provoquer une confusion. La norme POSIX complète est de plus de 4000 pages avec plus de 1350 interfaces. Cela n'a pas de sens de tout mettre en œuvre. Ainsi, chaque projet doit définir les aspects de POSIX qui répondront aux exigences particulières.

Il y a des idées fausses dans la communauté du développement que la norme POSIX est ancienne et non pertinente. Ce n'est pas vrai. POSIX est un document vivant qui est régulièrement mis à jour par le groupe Austin. Tout le monde peut rejoindre le groupe et participer à l'amélioration de la norme. La norme est utilisée activement dans les serveurs, les postes de travail d'aujourd'hui, les routeurs, les appareils mobiles, les systèmes intégrés et plus. Il est utilisé pour les machines Unix et Linux.

Cependant, les développeurs doivent être conscients que la norme POSIX a des problèmes. Vous pouvez signaler tout bug que vous découvrez au groupe Austin et il sera examiné pour la prochaine révision.

Conclusion
Posix peut sembler intimidant au début. Pourtant, les développeurs d'applications devraient se familiariser avec les bases car il apparaîtra de temps à autre comme une exigence. En raison de la portée importante de la norme, il n'est pas possible de devenir un expert du document complet. Les développeurs peuvent atteindre les communautés Unix et Linux pour en savoir plus. Les communautés peuvent répondre à vos questions et vous donner une meilleure idée de la partie de la norme sera pertinente pour votre projet.

Une étude plus approfondie:

  • POSIX Document complet
  • FAQ POSIX
  • Le groupe de révision des normes communs d'Austin

Les références:

  • FAQ POSIX, groupe Austin
  • Groupe Austin
  • Document 7542098 /
  • Concepts de services système POSIX et UNIX
  • OpenGroup Doc 9699919799
  • Qu'est-ce que POSIX?, Université de l'Indiana
  • Standards Docs @ Open-std.org
  • Bill Gallmeister, Guide de programmation POSIX
  • Guide des programmeurs POSIX, Donald Lewine
  • StackOverflow ce qui est POSIX
  • HISTOIRE DE L'UNIX, DARWINSYS.com
  • Groupe ouvert Austin, papier POSIX
  • Wikipedia POSIX