Table des matières de l'article :
Qu'est-ce que l'interface de système d'exploitation portable (POSIX) ?
POSIX (Portable Operating System Interface) est un ensemble d'interfaces de système d'exploitation standard basées sur le système d'exploitation Unix . La spécification POSIX la plus récente - IEEE Std 1003.1-2017 - définit une interface et un environnement standard qui peuvent être utilisés par un système d'exploitation ( OS ) pour fournir un accès aux applications compatibles POSIX. La norme définit également un interpréteur de commandes (shell) et des programmes utilitaires communs. POSIX prend en charge la pPortabilité des applications au niveau du code source afin que les applications puissent être créées pour s'exécuter sur n'importe quel système d'exploitation compatible POSIX.
Un bref historique de la norme POSIX
Les interfaces POSIX ont été initialement développées sous les auspices de IEEE . Cependant, la norme POSIX est actuellement en cours de développement et de maintenance par le Austin Common Standards Revision Group, communément appelé Groupe Austin .
L'Austin Group est un groupe de travail conjoint composé de membres de l'IEEE, de l'Open Group et du Comité technique conjoint 1 de l'Organisation internationale de normalisation ( ISO ) et de la Commission Electrotechnique Internationale (CEI). IEEE est propriétaire de la marque POSIX. L'Open Group, propriétaire de la marque Unix, est un consortium mondial qui développe des normes technologiques.
POSIX est né du besoin de rendre les applications plus portables sur différents systèmes. Au début de l'informatique, les programmeurs devaient réécrire leurs applications pour chaque modèle d'ordinateur et de système d'exploitation. Cela a commencé à changer lorsque IBM a présenté sa gamme d'ordinateurs System/360, qui pouvaient tous exécuter le même système d'exploitation, OS/360. Avec ces nouveaux systèmes, les applications pourraient être rendues plus portables, ce qui permettrait d'économiser énormément de temps de développement.
Quand UNIX est né, à peu près au même moment, il était également prometteur en ce sens qu'il pouvait fonctionner sur des machines de différents fabricants. Cependant, alors qu'UNIX a commencé à créer différentes versions, le portage du code entre ces variantes UNIX est devenu difficile. La promesse de portabilité UNIX perdait du terrain.
Pour résoudre ce problème de portabilité, POSIX a été formé dans les années 80. La norme était basée sur System V UNIX et BSD UNIX d'AT&T, les deux plus grandes variantes à l'époque. Il est important de noter que POSIX n'a pas été conçu pour contrôler la manière dont les systèmes d'exploitation étaient construits : toute entreprise était libre de concevoir sa propre variante UNIX comme bon lui semblait. POSIX ne concernait que la manière dont une application s'interface avec le système d'exploitation. En langage programmeur, une interface est la méthode par laquelle le code d'un programme peut communiquer avec un autre programme. L'interface s'attend à ce que le programme A fournisse un type spécifique d'informations au programme B. De même, le programme A s'attend à ce que le programme B réponde avec un type spécifique de données.
Qu'est-ce que la norme POSIX ?
En un mot : portabilité.
Il y a plus de 60 ans, les programmeurs devaient réécrire complètement le code s'ils voulaient que leur logiciel fonctionne sur plus d'un système. Cela ne s'est pas produit très souvent en raison des dépenses impliquées, mais la portabilité est devenue une fonctionnalité au milieu des années 60, non pas via POSIX, mais dans le domaine du mainframe.
Au fil des ans, la spécification POSIX a continué d'être révisée et réorganisée. À un moment donné, chaque norme était officieusement appelée POSIX, suivie d'une décimale, puis du numéro de norme. Par exemple, POSIX.1 était la norme pour une interface de programmation d'application dans le langage C et POSIX.2 était le shell standard et l'interface utilitaire du système d'exploitation. Ces normes ont été officiellement désignées respectivement par IEEE Std 1003.1 et IEEE Std 1003.2.
Il y a également eu des amendements à la norme de base, comme IEEE Std 1003.1b-1993, qui traitait des extensions en temps réel. Cependant, toutes les différentes spécifications ont été fusionnées en une seule norme, Norme IEEE 1003.1 , qui a été mis à jour pour la dernière fois en 2017 et publié en 2018. Officiellement, il s'appelle IEEE Std 1003.1-2017. Cependant, il est également appelé POSIX.1-2017 ou, de manière plus informelle, POSIX.1.
La norme POSIX porte également d'autres noms. L'Open Group l'appelle The Open Group Base Specifications Issue 7, édition 2018, et l'ISO/IEC l'appelle ISO/IEC 9945:2009. L'ISO/CEI a adopté la norme en 2009 et a ajouté le corrigendum technique 1 fin 2012 et le corrigendum technique 2 en mars 2017, le mettant à égalité avec IEEE Std 1003.1-2017.
La spécification POSIX.1-2017 définit les services de base nécessaires pour créer des applications conformes à POSIX. Ils établissent une sémantique et une syntaxe standard pour aider les développeurs à écrire des applications portables. POSIX.1 se compose des quatre volumes suivants :
- Définitions basiques. Fournit des définitions communes pour la spécification, y compris les termes, les concepts, la syntaxe, les fonctions de service et les informations de ligne de commande
- Interfaces système. Fournit des détails sur les termes et concepts d'interface et définit les interfaces fonctionnelles disponibles pour les applications qui accèdent aux systèmes compatibles POSIX.
- Coques et utilitaires. Décrit les commandes et les utilitaires disponibles pour les applications qui accèdent aux systèmes compatibles POSIX, y compris le langage de commande utilisé sur ces systèmes.
- Raisonnement. Inclut des informations historiques sur le contenu de la norme et pourquoi certaines fonctionnalités ont été ajoutées ou supprimées.
POSIX.1 adopte une approche « écrire une fois, adopter partout » de la spécification en fournissant un certain nombre de services de base nécessaires pour créer des applications de manière efficace. La norme met l'accent sur les structures et les fonctionnalités qui sont importantes pour le développement d'applications, plutôt que de se concentrer sur les techniques nécessaires pour atteindre ces capacités. La norme POSIX est conçue pour être utilisée à la fois par les intégrateurs système, les ingénieurs système et les développeurs d'applications.
En conclusion
La norme POSIX permet aux développeurs de créer des applications, des outils et des plates-formes sur de nombreux systèmes d'exploitation en utilisant une grande partie du même code. Ce n'est pas du tout une exigence d'écrire du code selon la norme, mais cela aide considérablement lorsque vous souhaitez porter votre code sur d'autres systèmes.
Fondamentalement, POSIX est destiné aux concepteurs de systèmes d'exploitation et aux développeurs de logiciels, mais en tant qu'utilisateurs d'un système, nous sommes influencés par POSIX, que nous le réalisions ou non. C'est grâce à la norme que nous sommes capables de travailler sur un système UNIX ou Linux et de transférer ce travail sur un autre système et d'y travailler sans accroc. En tant qu'utilisateurs, nous bénéficions de nombreux avantages en termes de convivialité et de réutilisation des données entre les systèmes.