Posix

Norme Posix

Norme Posix

POSIX : un aperçu

L'interface du système d'exploitation portable (POSIX) est une norme IEEE qui facilite la compatibilité et la portabilité entre les systèmes d'exploitation. Théoriquement, le code source conforme à POSIX devrait être portable de manière transparente. Dans le monde réel, la transition des applications se heurte souvent à des problèmes spécifiques au système. Mais la conformité POSIX simplifie le portage des applications, ce qui permet de gagner du temps. Les développeurs doivent 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 d'ordinateur. Mais l'IBM System/360 a changé cela. 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 de 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 fonctionner sur des machines de plusieurs fournisseurs. Mais UNIX a commencé à se diviser en différentes saveurs. Outre le System V d'AT&T, il y avait Berkeley Software Distribution (BSD), Xenix et plus. Ce n'était pas facile de porter à travers ces saveurs. La promesse de la portabilité des applications a frappé un obstacle. Au cours des prochaines décennies, l'introduction de nouveaux systèmes d'exploitation ne ferait que rendre plus complexe le portage des applications sur le matériel, les systèmes d'exploitation et les fournisseurs.

La norme POSIX a été développée dans les années 1980 pour résoudre le problème de portabilité. La norme a été définie sur la base de System 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 comme ils le souhaitent tant que l'interface entre les deux est respectée. Étant donné que POSIX est indépendant du matériel, du système d'exploitation ou du fournisseur, il est plus facile d'obtenir la portabilité des applications.

La première norme POSIX a été publiée en 1988. Officiellement, il s'appelait IEEE Standard 1003.1-1988 Interface de 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 sous le nom ISO/IEC 9945-1:1990 Technologies de l'information - Interface de système d'exploitation portable (POSIX) - Partie 1 : Interface de programme d'application système (API).

Initialement, POSIX était divisé en plusieurs normes :

POSIX.1: Les services de base
POSIX.1b : Extensions en temps réel
POSIX.1c : Extensions de fils de discussion
POSIX.2: Shell et utilitaires

Après 1997, le groupe Austin a rassemblé toutes les normes sous un même toit. Depuis, les versions POSIX.1-2001 (également connu sous le nom IEEE Std 1003.1-2001), POSIX.1-2004 (également connu sous le nom de IEEE Std 1003.1-2004) et POSIX.1-2008 (également appelé IEEE Std 1003.1-2008) ont été publiés.

Des exemples de certains systèmes compatibles POSIX sont AIX, HP-UX, Solaris et MacOS (depuis 10.5 Léopard). D'autre part, Android, FreeBSD, Linux Distributions, OpenBSD, VMWare, etc., suivent la plupart des normes POSIX, mais ils ne sont pas certifiés.

Les bases de POSIX

POSIX.La norme 1-2008 traite de quatre domaines principaux :

  1. Volume de définition de base : Termes généraux, concepts et interfaces.
  2. Volume des interfaces système : Définitions des fonctions et sous-programmes de service système. Comprend également la portabilité, la gestion des erreurs et la récupération des erreurs.
  3. Volume Shell et utilitaires : Définition des interfaces de toute application vers les shells de commandes et les programmes utilitaires courants.
  4. Volume de justification : Contient des informations et un historique sur les fonctionnalités ajoutées ou supprimées et les raisonnements des décisions.

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

Certains des principes directeurs de la conception POSIX sont :

Développement d'applications POSIX

Le but de POSIX était d'améliorer la portabilité. Lorsque votre code source suit la norme, vous pouvez facilement compiler et exécuter le code sur une autre machine. Cependant, si POSIX est défini comme une exigence générale pour une application, cela peut prêter à confusion. La norme POSIX complète comprend 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 à des exigences particulières.

Il y a des idées fausses dans la communauté de développement selon lesquelles 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 du niveau. La norme est activement utilisée dans les serveurs, les postes de travail, les routeurs, les appareils mobiles, les systèmes embarqués et plus encore. 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 premier abord. Néanmoins, les développeurs d'applications doivent se familiariser avec les bases car cela apparaîtra comme une exigence de temps en temps. En raison du large champ d'application de la norme, il n'est pas possible de devenir un expert sur le document complet. Les développeurs peuvent contacter 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 quelle partie de la norme sera pertinente pour votre projet.

Une étude plus approfondie:

Les références:

Outils utiles pour les joueurs Linux
Si vous aimez jouer à des jeux sur Linux, il est probable que vous ayez utilisé des applications et des utilitaires comme Wine, Lutris et OBS Studio p...
Jeux HD remasterisés pour Linux qui n'ont jamais eu de version Linux plus tôt
De nombreux développeurs et éditeurs de jeux proposent une remasterisation HD d'anciens jeux pour prolonger la durée de vie de la franchise, veuillez ...
Comment utiliser AutoKey pour automatiser les jeux Linux
AutoKey est un utilitaire d'automatisation de bureau pour Linux et X11, programmé en Python 3, GTK et Qt. En utilisant ses fonctionnalités de script e...