POSIX - POSIX

Interface de système d'exploitation portable (IEEE 1003)
Statut Publié
Année commencée 1988 ; il y a 33 ans ( 1988 )
Dernière version Norme IEEE 1003.1-2017
2017 ; il y a 4 ans ( 2017 )
Organisation Groupe Austin ( IEEE Computer Society , The Open Group , ISO/IEC JTC 1 )
Normes associées ISO / CEI 9945
Domaine Interfaces de programmation d'applications
Abréviation POSIX
Site Internet obtenir .posixcertified .ieee .org

L' interface du système d'exploitation portable ( POSIX ) est une famille de normes spécifiées par l' IEEE Computer Society pour maintenir la compatibilité entre les systèmes d'exploitation . POSIX définit à la fois les interfaces de programmation d'applications (API) au niveau système et utilisateur , ainsi que les shells de ligne de commande et les interfaces utilitaires, pour la compatibilité logicielle (portabilité) avec les variantes d' Unix et d'autres systèmes d'exploitation. POSIX est également une marque déposée de l'IEEE. POSIX est destiné à être utilisé à la fois par les développeurs d'applications et de systèmes.

Nom

À l'origine, le nom "POSIX" faisait référence à IEEE Std 1003.1-1988, publié en 1988. La famille de normes POSIX est officiellement désignée comme IEEE 1003 et le numéro de norme ISO / IEC est ISO / IEC 9945.

Les normes ont émergé d'un projet qui a commencé vers 1985. Richard Stallman a suggéré le nom POSIX (prononcé pahz-icks, pas poh-six ) à l'IEEE au lieu de l'ancien IEEE-IX . Le comité l'a trouvé plus facilement prononçable et mémorable, et l'a donc adopté.

Aperçu

Unix a été choisi comme base d'une interface système standard en partie parce qu'il était « neutre vis-à-vis du fabricant ». Cependant, plusieurs versions majeures d'Unix existaient, il était donc nécessaire de développer un système de dénominateur commun. Les spécifications POSIX pour les systèmes d'exploitation de type Unix consistaient à l'origine en un seul document pour l' interface de programmation principale , mais sont finalement passées à 19 documents distincts (POSIX.1, POSIX.2, etc.). La ligne de commande utilisateur standardisée et l' interface de script étaient basées sur le shell UNIX System V. De nombreux programmes, services et utilitaires au niveau utilisateur (y compris awk , echo , ed ) ont également été standardisés, ainsi que les services requis au niveau du programme (y compris les E/S de base : file , terminal , et network ). POSIX définit également une norme threading API de bibliothèque qui est pris en charge par la plupart des systèmes d'exploitation modernes. En 2008, la plupart des parties de POSIX ont été combinées en une seule norme (IEEE Std 1003.1-2008 , également connue sous le nom de POSIX.1-2008).

Depuis 2014, la documentation POSIX est divisée en deux parties :

  • POSIX.1, édition 2013 : définitions de base POSIX, interfaces système, commandes et utilitaires (qui incluent POSIX.1, extensions pour POSIX.1, services en temps réel, interface de threads, extensions en temps réel, interface de sécurité, accès aux fichiers réseau et les communications réseau de processus à processus, les extensions de portabilité utilisateur, les corrections et extensions, les utilitaires de protection et de contrôle et les utilitaires de système par lots. Il s'agit de POSIX 1003.1-2008 avec le rectificatif technique 1.)
  • Test de conformité POSIX : Une suite de tests pour POSIX accompagne la norme : VSX-PCTS ou la suite de tests de conformité VSX POSIX .

Le développement de la norme POSIX a lieu au sein du groupe Austin (un groupe de travail conjoint entre l'IEEE, l'Open Group et l' ISO/IEC JTC 1 ).

Versions

Pièces avant 1997

Avant 1997, POSIX comprenait plusieurs normes :

Versions après 1997

Après 1997, le groupe Austin a développé les révisions POSIX. Les spécifications sont connues sous le nom de Single UNIX Specification , avant qu'elles ne deviennent une norme POSIX lorsqu'elles sont formellement approuvées par l'ISO.

POSIX.1-2001 (avec deux TC)

POSIX.1-2001 (ou IEEE Std 1003.1-2001) correspond à la spécification Single UNIX version 3.

Cette norme consistait en :

  • les définitions de base, numéro 6,
  • les interfaces et en-têtes système, numéro 6,
  • les commandes et utilitaires, numéro 6.

IEEE Std 1003.1-2004 impliquait une mise à jour mineure de POSIX.1-2001. Il incorporait deux mises à jour mineures ou errata appelés rectificatifs techniques (TC). Son contenu est disponible sur le Web.

POSIX.1-2008 (avec deux TC)

Les spécifications de base, édition 7 (ou IEEE Std 1003.1-2008 , édition 2016) sont similaires à la version 2017 actuelle (au 22 juillet 2018).

Cette norme comprend :

  • les Définitions de base, numéro 7,
  • les interfaces et en-têtes système, édition 7,
  • les commandes et utilitaires, numéro 7,
  • le volume de la justification.

POSIX.1-2017

IEEE Std 1003.1-2017 (Révision de IEEE Std 1003.1-2008) - Norme IEEE pour les technologies de l'information — Spécifications de base de l'interface de système d'exploitation portable (POSIX(R)), édition 7 est disponible auprès de The Open Group ou IEEE et est, à compter du 22 juillet 2018, la norme actuelle. Il est techniquement identique à POSIX.1-2008 avec les Rectificatifs Techniques 1 et 2 appliqués. Une copie en ligne gratuite peut encore être disponible.

Controverses

Blocs de 512 vs 1024 octets

POSIX impose des tailles de blocs par défaut de 512 octets pour les utilitaires df et du , reflétant la taille typique des blocs sur les disques. Lorsque Richard Stallman et l' équipe GNU implémentaient POSIX pour le système d'exploitation GNU , ils s'y sont opposés au motif que la plupart des gens pensent en termes de blocs de 1024 octets (ou 1 KiB ). La variable d'environnement POSIX_ME_HARDER a été introduite pour permettre à l'utilisateur de forcer le comportement conforme aux normes. Le nom de la variable a ensuite été changé en POSIXLY_CORRECT . Cette variable est maintenant également utilisée pour un certain nombre d'autres bizarreries de comportement.

Systèmes d'exploitation orientés POSIX

Selon le degré de conformité aux normes, on peut classer les systèmes d'exploitation comme entièrement ou partiellement compatibles POSIX. Les produits certifiés sont disponibles sur le site Web de l'IEEE.

Certifié POSIX

Certaines versions des systèmes d'exploitation suivants ont été certifiées conformes à une ou plusieurs des diverses normes POSIX. Cela signifie qu'ils ont réussi les tests de conformité automatisés.

Principalement conforme à POSIX

Les éléments suivants, bien qu'ils ne soient pas officiellement certifiés compatibles POSIX, sont en grande partie conformes :

POSIX pour Microsoft Windows

  • Cygwin fournit un environnement de développement et d'exécution largement compatible POSIX pour Microsoft Windows .
  • MinGW , un fork de Cygwin, fournit un environnement de développement moins conforme à POSIX et prend en charge les applications compatibles programmées en C via Msvcrt , l'ancienne bibliothèque d'exécution Visual C de Microsoft.
  • Sous - système Microsoft POSIX , un sous-système Windows facultatif inclus dans les systèmes d'exploitation basés sur Windows NT jusqu'à Windows 2000. POSIX-1 tel qu'il était dans la révision de 1990, sans threads ni sockets.
  • Interix , à l'origine OpenNT par Softway Systems, Inc., est une mise à niveau et un remplacement du sous - système Microsoft POSIX qui a été acheté par Microsoft en 1999. Il a d'abord été commercialisé en tant que produit complémentaire autonome, puis l'a ensuite inclus en tant que composant dans Services Windows pour UNIX (SFU) et l'ont finalement incorporé en tant que composant dans Windows Server 2003 R2 et les versions ultérieures du système d'exploitation Windows sous le nom de « Sous-système pour les applications UNIX » (SUA) ; plus tard rendu obsolète en 2012 (Windows 8) et abandonné en 2013 (2012 R2, 8.1). Il permet une conformité POSIX totale pour certains produits Microsoft Windows .
  • Le sous-système Windows pour Linux , également connu sous le nom de WSL, est une couche de compatibilité permettant d'exécuter des exécutables binaires Linux de manière native sur Windows 10 à l'aide d'une image Linux telle qu'Ubuntu, Debian ou OpenSUSE, entre autres, agissant comme une mise à niveau et un remplacement des services Windows pour UNIX. Il est sorti en version bêta en avril 2016. La première distribution disponible était Ubuntu.
  • UWIN d'AT&T Research implémente une couche POSIX au-dessus des API Win32.
  • MKS Toolkit , créé à l'origine pour MS-DOS, est un progiciel produit et maintenu par MKS Inc. qui fournit un environnement de type Unix pour les scripts, la connectivité et le portage des logiciels Unix et Linux sur les systèmes Microsoft Windows 32 et 64 bits . Un sous-ensemble a été inclus dans la première version de Windows Services for UNIX (SFU) en 1998.
  • La bibliothèque d'exécution Windows C et l' API Windows Sockets implémentent les fonctions API POSIX couramment utilisées pour l'accès aux fichiers, à l'heure, à l'environnement et aux sockets, bien que la prise en charge reste largement incomplète et pas entièrement interopérable avec les implémentations compatibles POSIX.

POSIX pour OS/2

Environnements principalement compatibles POSIX pour OS/2 :

  • emx+gcc – largement conforme à POSIX

POSIX pour DOS

Les environnements partiellement compatibles POSIX pour DOS incluent :

  • emx+gcc – largement conforme à POSIX
  • DJGPP – partiellement conforme à POSIX
  • Noyau multitâche DR-DOS via EMM386 /MULTI - une extension API frontale de threads POSIX est disponible

Conforme via la couche de compatibilité

Les éléments suivants ne sont pas officiellement certifiés compatibles POSIX, mais ils sont en grande partie conformes aux normes en implémentant la prise en charge POSIX via une sorte de fonctionnalité de compatibilité (généralement des bibliothèques de traduction ou une couche au-dessus du noyau). Sans ces fonctionnalités, ils sont généralement non conformes.

Voir également

Les références

Liens externes