Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

POSIX

Un article de Wikipédia, l'encyclopédie libre.

POSIX ((PortableOperatingSystemInterface) et leX exprime l'héritage UNIX) est une famille denormes techniques définie depuis1988 par l'Institute of Electrical and Electronics Engineers (IEEE), et formellement désignée parIEEE 1003. Ces normes ont émergé d'un projet de standardisation desinterfaces de programmation deslogiciels destinés à fonctionner sur les variantes dusystème d'exploitationUNIX.

Le termePOSIX a été suggéré parRichard Stallman, qui faisait partie du comité qui écrivit la première version de la norme. L'IEEE choisit de le retenir car il était facilement mémorisable[1],[2].

Présentation

[modifier |modifier le code]

POSIX spécifie, dans dix-sept documents[3] différents, lesinterfaces utilisateurs et lesinterfaces logicielles, la ligne de commande standard et l'interface descript qu'est leBourne shell[4]. Les autres commandes, services et utilitaires comprennentawk,echo,ed, et des centaines d'autres. Les services d'entrées/sorties de base (fichiers,terminaux,réseau) doivent être présents ; le système doit supportercertains attributs spécifiques pour les fichiers. POSIX définit aussi uneinterface de programmation standard, et celle-ci est prise en charge par la plupart des systèmes d'exploitation récents.

Une suite de tests pour POSIX accompagne le standard. Elle est appeléePCTS (POSIX Conformance Test Suite, suite de tests pour la conformité POSIX).

Comme l'IEEE vend très cher la documentation POSIX et ne permet pas sa publication surInternet, certains se sont tournés vers le standardSingle UNIX Specification. En effet, ce dernier est ouvert, accepte les propositions de quiconque veut y contribuer, et est disponible gratuitement sur Internet. Ce travail remonte au début de1998, lorsqu'un groupe de travail commun, l'Austin Group (en), a commencé à développer un standard qui est devenu laSingle UNIX Specification Version 3.

Bien qu'il soit principalement implémenté sur des systèmes de type UNIX, le standard POSIX peut être utilisé par n'importe quel autre système d'exploitation. Par exemple, MicrosoftWindows NT 3.x et4 sont certifiés conformes à POSIX.1:1990, ce qui est suffisant pour des applications POSIX relativement simples. Cependant, des programmes plus complexes ont besoin d'une compatibilité plus large. Des logiciels supplémentaires tels queServices for UNIX ouCygwin peuvent apporter à Windows ce niveau de compatibilité.UWIN offre une compatibilité POSIX[5], y compris sur les chemins de fichiers.

Le consortiumLinux Standard Base publie plusieurs extensions et des standards de fait pour les systèmes d'exploitation basés surLinux. Ils sont peu susceptibles d'être repris par les autres systèmes de type UNIX, qui respectent d'autres standards plus anciens, bien que dans de nombreux cas laLinux Standard Base reprenne ces derniers.

Une grande partie desAPI de POSIX a été définie à une époque où l'adressage des machines se faisait sur 32 bits au maximum. Pour préserver la compatibilité entre les différents systèmes, on recommandait à l'époque de ne pas dépasser la taille de 2 Go pour les fichiers, ceci dans le cas où le type standard « size_t » défini dans la bibliothèque C standard « stddef.h » était défini comme un entier non signé de 31 bits (la valeur de retour de certaines fonctions étant signée, car utilisant le type signé POSIX « ssize_t », et renvoyant un nombre négatif en cas d'erreur). En effet, ce symbole était utilisé par la plupart des définitions d'interface d'accès aux fichiers du langage C (IEEE std 1003.1-1990). Actuellement, cette limite n'est souvent plus d'actualité, puisque que les systèmes utilisent pour « size_t » le plus souvent un type non signé d'au moins 63 bits.

Organisation

[modifier |modifier le code]

Actuellement, la documentation de POSIX est divisée en trois parties :

  • les API (permet de définir la manière dont un composant informatique peut communiquer avec un autre) de base (qui comprennent des extensions à POSIX.1, les servicestemps réel, lesprocessus légers, les extensions temps réel, l'interface de sécurité, l'accès aux fichiers par le réseau, et lescommunications inter-processus par le réseau) ;
  • les commandes et utilitaires POSIX (extensions de portabilité des utilisateurs, corrections et extensions, utilitaire de protection et de contrôle, utilitaires pour le traitement par lots) ;
  • test de conformité à POSIX.

Versions

[modifier |modifier le code]

La norme POSIX a connu plusieurs versions :

Limitations

[modifier |modifier le code]

Certains systèmes POSIX peuvent éventuellement présenter des limitations qui donnent aux utilisateurs le sentiment d'être exposés à des bugs connus et avérés. C'est notamment le cas dessecondes intercalaires[7] ou de la non prise en compte de la possible présence de l'indicateur d'ordre des octetsUTF-8 dans leshebang.

Linux et POSIX

[modifier |modifier le code]

Variable d'environnement POSIXLY_CORRECT

[modifier |modifier le code]

Lavariable d'environnement POSIXLY_CORRECT permet d'indiquer si une commande doit se conformer à POSIX ou non. Les commandes d'administration ne sont pas concernées par cette variable.

Plusieurs dizaines de commandes adaptent leur fonctionnement en fonction de la valeur de POSIXLY_CORRECT ; les exemples les plus typiques sont les commandesgrep etfind, mais il en existe bien d'autres : apropos, at[8], df[9], …, rgrep,setfacl, etc.

Cette variable d'environnement sert par exemple à définir si une commande doit utiliser le format de donnée conforme à POSIX ou celui qui est utilisé par défaut par cette commande.

Certification POSIX de Linux

[modifier |modifier le code]

/Unifix Linux 2.0 de la société allemande Unifix et Linux-FT de Lasermoon sont certifiés POSIX.1FIPS 151-2[10],[11],[12]. Noyau 1.2.13[13]

Le siteDebian explique que« [...] la certification POSIX.1 (et FIPS 151-2) est très chère [et] rend peu probable l'obtention par Debian d'une certification officielle de conformité »[10].

Notes et références

[modifier |modifier le code]
  1. (en)The origin of the name POSIX. sur le site officiel de Richard Stallman.
  2. (en)POSIX® 1003.1 Frequently Asked Questions (FAQ Version 1.12)
  3. 1) Posix.1 ;2) Posix.1a ;3) Posix.2 ;4) Posix.3 ;5) Posix.4 ;6) Posix.4a ;7) Posix.4b ;8) Posix.5 ;9) Posix.6 ;10) Posix.7 ;11) Posix.8 ;12) Posix.9 ;13) Posix.10 ;14) Posix.11 ;15) Posix.12 ;16) Posix.13 ;16) Posix.15 ;17) Posix.17 ;Source
  4. « sh », surpubs.opengroup.org(consulté le)
  5. This note presents some issues on the porting of unix-based applications and libraries to unix-on-windows platforms like uwin and cygwin.http://www2.research.att.com/~gsf/download/win32/win32.html
  6. (en)« Linux Signals »
  7. Audrey Oeillet, « La seconde additionnelle de 2012 mal digérée par certains sites et programmes », surclubic.com,(consulté le).
  8. La commandeat permet de lancer une commande Unix à la date et l'heure spécifiées, voir(en)at (Unix)
  9. df : voir l'occupation du disque sur unsystème de fichiers, voir(en)df (Unix)
  10. a etbPage Debian parlant d'Unifix et de son dérivé LINUX-FT
  11. Unifix a été réalisé en Allemagne et la certification a été faite aux États-Unis (Article d'août 1996).
  12. (en)POSIX.1 (FIPS 151-2) Certification de LINUX-FT
  13. (en)The 1.2.13 kernel certified POSIX.1 Kernel 1.3.59 passed certification tests

Voir aussi

[modifier |modifier le code]

Sur les autres projets Wikimedia :

Articles connexes

[modifier |modifier le code]
  • LSB : ce projet est basé sur POSIX et a pour but de standardiser la structure interne des systèmes d'exploitation basés surGNU/Linux.
  • unistd.h : Cet include indique la version de la norme Posix à utiliser pour la compilation
  • Sanos

Liens externes

[modifier |modifier le code]
v ·m
NormesISO
Logo de l’Organisation internationale de normalisation
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=POSIX&oldid=230476813 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2026 Movatter.jp