IEEE 1003

IEEE 1003

POSIX

POSIX est le nom d'une famille de standards définie depuis 1988 par l'IEEE et formellement désignée IEEE 1003. Ces standards ont émergé d'un projet de standardisation des API des logiciels destinés à fonctionner sur des variantes du système d'exploitation UNIX. Le terme POSIX a été suggéré par Richard Stallman en réponse à la demande de l'IEEE d'un nom facilement mémorisable[1]. C'est un acronyme de Portable Operating System Interface, dont le X exprime l'héritage UNIX de l'Interface de programmation.

POSIX spécifie dans 17 documents[2] différents les interfaces utilisateurs et les interfaces logicielles. La ligne de commande standard et l'interface de script est le Korn shell. Les autres commandes, services et utilitaires comprennent awk, echo, ed, et des centaines d'autres. Les services d'entrées/sorties de base (fichiers, terminaux, réseau) doivent être présents (pour les spécifications POSIX sur les attributs de fichiers, voir Spécifications POSIX sur les attributs de fichiers). POSIX définit aussi une API standard pour les bibliothèques de threading qui est pris en charge par la plupart des systèmes d'exploitation récents.

Une suite de tests pour POSIX accompagne le standard. Il est appelé PCTS (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 sur Internet, certains se sont tournés vers le standard Single UNIX Specification (en). 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 de 1998, lorsqu'un groupe de travail commun, l'Austin Group (en), a commencé à développer un standard qui est devenu la Single 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, Microsoft Windows NT est conforme à POSIX.1, ce qui est suffisant pour des programmes POSIX relativement simples. Cependant, des programmes plus complexes ont besoin d'une compatibilité plus grande. Des logiciels supplémentaires tels que Microsoft Windows Services for UNIX (en) ou Cygwin peuvent apporter à Windows ce niveau de compatibilité.

Le consortium Linux Standard Base publie plusieurs extensions et des standards de fait pour les systèmes d'exploitation basés sur Linux. Malheureusement, elles sont peu susceptibles d'être reprises par les autres systèmes de type UNIX, qui respectent d'autres standards plus anciens, bien que dans de nombreux cas la Linux Standard Base reprenne ces derniers.

Une grande partie des API de POSIX ont été définies à une époque où l'adressage des machines se faisait sur 32 bits au maximum. Pour cette raison, les fichiers POSIX ne pouvaient dépasser 2 Go. En effet, le standard précisait que la position d'un octet de fichier par rapport à la position courante était contenue dans un entier signé de 32 bits.

Sommaire

Organisation

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 services temps réel, les processus légers, les extensions temps réel, l'interface de sécurité, l'accès aux fichiers par le réseau, et les communications 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

La norme POSIX a connu plusieurs versions :

  • POSIX.1c, extension sur les processus légers (les threads) (IEEE Std 1003.1c-1995) :
    • la création, le contrôle et la suppression des thread
    • l'ordonnancement des thread
    • la synchronisation des thread
    • l'interception des signaux (Signal Handling)

Linux et Posix

Variable d'environnement POSIXLY_CORRECT

La variable 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 commandes grep et find, mais il en existe bien d'autres : apropos, at[4], df[5], ..., 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

Unifix Linux 2.0 de la société allemande Unifix et Linux-FT de Lasermoon sont certifiés POSIX.1 FIPS 151-2[6],[7] [8] (Federal Information Processing Standard[9]). Noyau 1.2.13[10]

Le site Debian explique « les normes de POSIX ne sont pas gratuites et la certification POSIX.1 (et FIPS 151-2) est très chère »[11].

Programmation

Les include

L'include "unistd.h"[12] est utilisé pour programmer en langage C des exécutables qui seront conformes à POSIX. Par exemple, pour le célèbre programme Hello world, il faut utiliser "unistd.h" à la place de "stdio.h"[13] (voir Hello world en langage C).

Références

  1. (en) POSIX® 1003.1 Frequently Asked Questions (FAQ Version 1.12)
  2. 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
  3. (en) Linux Signals
  4. La commande at permet de lancer une commande Unix à la date et l'heure spécifiées, voir (en) at (Unix)
  5. df : voir l'occupation du disque sur un système de fichier, voir (en) df (Unix)
  6. Page Debian parlant d'Unifix et de son dérivé LINUX-FT
  7. [http://www.linuxjournal.com/article/0131 Unifix a été réalisé en Allemagne et la certification a été faite aux USA (Article d'août 1996)
  8. (en)POSIX.1 (FIPS 151-2) Certification de LINUX-FT
  9. Federal Information Processing Standard
  10. (en) The 1.2.13 kernel certified POSIX.1 Kernel 1.3.59 passed certification tests
  11. Page du site Debian parlant de la certification POSIX
  12. unistd.h
  13. (en) stdio.h

Liens externes

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « POSIX ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article IEEE 1003 de Wikipédia en français (auteurs)

Игры ⚽ Нужно сделать НИР?

Regardez d'autres dictionnaires:

  • IEEE 1003 — Das Portable Operating System Interface (POSIX [ˈpɒsɪks]) ist ein gemeinsam von der IEEE und der Open Group für Unix entwickeltes standardisiertes Application Programming Interface, das die Schnittstelle zwischen Applikation und dem… …   Deutsch Wikipedia

  • IEEE Standards Association — The Institute of Electrical and Electronics Engineers Standards Association (IEEE SA) is a leading developer of global industry standards in a broad range of industries, including:* Power and Energy * Biomedical and Healthcare * Information… …   Wikipedia

  • IEEE — Offizielles Logo des IEEE Das Institute of Electrical and Electronics Engineers (IEEE, meist als „i triple e“ [ai trɪpl i:] gesprochen) ist ein weltweiter Berufsverband von Ingenieuren aus den Bereichen Elektrotechnik und Informatik mit Sitz in… …   Deutsch Wikipedia

  • IEEE — Institute of electrical and electronics engineers Logo de l’IEEE L’Institute of Electrical and Electronics Engineers ou IEEE (que l’on peut prononcer « i trois e ») est une organisation à but non lucratif. L’IEEE compte plus de 325.000… …   Wikipédia en Français

  • IEEE-488 — англ. Standard Digital Interface for Programmable Instrumentation кабель IEEE 488 с соед …   Википедия

  • IEEE 802 — группа стандартов семейства IEEE, касающихся локальных вычислительных сетей (LAN) и сетей мегаполисов (MAN). В частности, стандарты IEEE 802 ограничены сетями с пакетами переменной длины. Число 802 являлось следующим свободным номером для… …   Википедия

  • IEEE 1394 — Interface Тип Последовательная связь История Разработчик Apple Computer (сейчас Apple, Inc.) Разработано 1995 Производитель Разнооб …   Википедия

  • IEEE 802.11n-2009 — is an amendment to the IEEE 802.11 2007 wireless networking standard to improve network throughput over the two previous standards 802.11a and 802.11g with a significant increase in the maximum net data rate from 54 Mbit/s to 600 Mbit/s (slightly …   Wikipedia

  • IEEE 802.2 — is the IEEE 802 standard defining Logical Link Control (LLC), which is the upper portion of the data link layer of the OSI Model. The LLC sublayer presents a uniform interface to the user of the data link service, usually the network layer.… …   Wikipedia

  • IEEE 802.1Q — is the networking standard that supports Virtual LANs (VLANs) on an Ethernet network. The standard defines a system of VLAN tagging for Ethernet frames and the accompanying procedures to be used by bridges and switches in handling such frames.… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”