962 votes

Quelle est la signification de "POSIX" ?

Qu'est-ce que POSIX ? J'ai lu le Article de Wikipedia et je le lis chaque fois que je rencontre ce terme. Le fait est que je n'ai jamais vraiment compris de quoi il s'agissait.

Quelqu'un peut-il me l'expliquer en expliquant aussi "la nécessité de POSIX" ?

0 votes

Référence de définition rapide - whatis.techtarget.com/definition/

670voto

Alex Martelli Points 330805

POSIX est une famille de normes, spécifiée par la IEEE L'objectif est de clarifier et d'uniformiser les interfaces de programmation d'applications (et les questions connexes, telles que les utilitaires de ligne de commande) fournies par les systèmes d'exploitation Unix. Lorsque vous écrivez vos programmes pour qu'ils s'appuient sur les normes POSIX, vous pouvez être sûr de pouvoir les porter facilement sur une grande famille de dérivés d'Unix (y compris Linux, mais pas seulement !); si vous utilisez une API Linux qui n'est pas normalisée dans le cadre de Posix, vous aurez plus de mal si vous voulez porter ce programme ou cette bibliothèque sur d'autres systèmes Unix (par exemple, MacOSX) à l'avenir.

1 votes

1. Vous voulez dire que POSIX dit que tous les systèmes d'exploitation *nix (noyaux) devraient avoir au moins cet ensemble d'appels système, n'est-ce pas ? 2. Est-ce que Windows/MAC suit POSIX ? Si oui ou non, est-ce que Windows (95, 98, 2000, xp, vista, 7) suit une norme commune (qui peut être leur propre norme propriétaire) ? En d'autres termes, POSIX dans le monde Microsoft == ?

35 votes

Non, la norme se situe au niveau de l'API -- chaque appel spécifié peut être implémenté dans le noyau, ou dans la bibliothèque C en termes d'un autre appel, et c'est parfait pour Posix (et pour vos programmes aussi;-). MacOSX est conforme à Posix, voir devworld.apple.com/leopard/overview/osfoundations.html . Pour Windows, voir fr.wikipedia.org/wiki/POSIX#POSIX_pour_Windows : La conformité Posix n'est actuellement incluse que dans les éditions Enterprise et Ultimate (pas dans les moins chères!-), bien que vous puissiez vous en sortir avec Cygwin, fr.wikipedia.org/wiki/Cygwin .

24 votes

Votre commentaire est erroné, car la part de marché de Microsoft sur les ordinateurs de bureau, au moins, en fait "ce que le monde suit".

76voto

cletus Points 276888

POSIX est :

POSIX (prononcé /pzks/) ou " Portable Operating System Interface [pour Unix]". 1 est le nom d'une famille de normes connexes spécifiées par l'IEEE IEEE pour définir l'interface de l'interface de programmation (API), ainsi que ainsi que les interfaces shell et utilitaires pour les logiciels compatibles avec les variantes du système d'exploitation Unix, bien que la norme peut s'appliquer à n'importe quel système d'exploitation.

Il s'agissait essentiellement d'un ensemble de mesures visant à faciliter le développement et l'utilisation de différentes versions d'UNIX grâce à une API et des utilitaires (pour la plupart) communs. La conformité POSIX limitée s'est également étendue à diverses versions de Windows.

0 votes

1. Vous voulez dire que POSIX dit que tous les systèmes d'exploitation *nix (noyaux) devraient avoir au moins cet ensemble d'appels système, n'est-ce pas ? 2. Est-ce que Windows/MAC suit POSIX ? Si oui ou non, Windows (95, 98, 2000, XP, Vista, 7) suit-il une norme commune (qui peut être leur propre norme propriétaire) ? En d'autres termes, POSIX dans le monde Microsoft == ?

1 votes

En fait, il s'agissait d'un ensemble de mesures destinées à atténuer les difficultés liées au développement. C'ÉTAIT

5 votes

J'ai remis en question l'utilisation du mot était aussi, mais c'est discutable. Pour répondre à vos questions : (1) non, POSIX n'a absolument rien à voir avec le noyau, il décrit simplement comment il doit fonctionner ; (2) OS X est BSD et est tout à fait conforme à POSIX, mais il y a des zones grises. Windows 2008 est le plus proche de la plainte POSIX ; il n'y a pas d'équivalent de POSIX dans le monde Microsoft.

47voto

Jim Dennis Points 5454

Permettez-moi de donner l'explication "officieuse" la plus grossière.

POSIX est un ensemble de normes qui tente de distinguer "UNIX" et les systèmes de type UNIX de ceux qui sont incompatibles avec eux. Elle a été créée par le gouvernement américain à des fins d'approvisionnement. L'idée était que les marchés publics fédéraux américains avaient besoin d'un moyen de spécifier légalement les exigences pour diverses sortes d'offres et de contrats d'une manière qui pourrait être utilisée pour exclure les systèmes auxquels une base de code existante donnée ou le personnel de programmation ne serait PAS portable.

Puisque POSIX a été écrit post facto ... pour décrire un ensemble vaguement similaire de systèmes concurrents ... il n'a PAS été écrit d'une manière qui pourrait être implémentée.

Ainsi, par exemple, le NT de Microsoft a été écrit avec suffisamment de conformité POSIX pour pouvoir bénéficier de certaines offres ... même si le sous-système POSIX était essentiellement inutile en termes de portabilité pratique et de compatibilité avec les systèmes UNIX.

Diverses autres normes pour UNIX ont été écrites au fil des décennies. Des choses comme SPEC1170 (qui spécifie 1170 appels de fonctions qui doivent être implémentés de manière compatible) et diverses incarnations de SUS (Single UNIX Specification).

Dans la plupart des cas, ces "normes" sont inadaptées à toute application technique pratique. Elles existent surtout pour l'argumentation, les querelles juridiques et autres raisons dysfonctionnelles.

2 votes

Alors comment se fait-il que Linux implémente la plupart de POSIX, y compris de nombreuses extensions ?

9 votes

@ninjalj : Linux a été écrit pour implémenter un ensemble pratique de fonctions de type UNIX. Le faire en se conformant à POSIX est parfaitement logique. Cependant, mon point de vue est que POSIX n'a pas été créé comme une spécification pour implémenter de nouveaux systèmes d'exploitation ... il a été créé comme un moyen pour le personnel d'approvisionnement du gouvernement américain de faire la distinction entre ceux qui sont qualifiés pour certaines catégories dans les offres et ceux qui ne le sont pas. L'objectif de Linux est de fournir les fonctionnalités utilisables d'une manière qui soit raisonnablement compatible, robuste et performante. POSIX n'est pas tout à fait un accident de parcours.

3 votes

C'est plutôt ingénieux de votre part de prétendre que POSIX a été écrit post facto ! C'est la marque d'une bonne organisation de développement de normes (SDO) où le consensus n'est pas atteint avant qu'au moins une implémentation conforme existe.

31voto

Hank Gay Points 36173

POSIX est une norme pour les systèmes d'exploitation qui était censée faciliter l'écriture de logiciels multiplateformes. C'est particulièrement important dans le monde d'Unix.

19 votes

Il n'est pas seulement "censé" faciliter l'écriture de code multiplateforme, il facilite effectivement l'écriture de code multiplateforme. La seule exception est Windows, parce que Microsoft pense qu'il est en quelque sorte meilleur que tout le monde et n'a pas besoin de se conformer. Cependant, je prédis que cela va jouer contre eux, en particulier lorsque Mac et Linux gagneront des parts de marché. S'ils sont vraiment pour les "développeurs, développeurs, développeurs", ils se rendront compte que les développeurs veulent la conformité à UNIX.

1 votes

D'après ce que j'ai entendu de la part de personnes qui travaillent avec lui de beaucoup plus près que je ne l'ai jamais fait, cela a peut-être rendu les choses plus faciles, mais ce n'était certainement pas suffisant pour l'impression d'écrire une fois et de fonctionner sur n'importe quel POSIX que la plupart des gens ont lorsqu'ils entendent dire que c'est un "standard" pour les systèmes d'exploitation.

7 votes

Ils ne pensent pas qu'ils sont "meilleurs que tout le monde" ; ils savent qu'ils sont plus grand que tous les autres. C'est aussi pourquoi ils changeront de discours lorsqu'ils perdront des parts de marché. Ce n'est pas propre à eux, par exemple, Netscape a commencé à se soucier beaucoup plus des standards du web quand ils n'étaient plus les plus populaires.

29voto

Jed Smith Points 9022

POSIX est un ensemble de normes mises en avant par l'IEEE et l'Open Group qui décrit comment un Unix idéal devrait fonctionner. Les programmeurs, les utilisateurs et les administrateurs peuvent tous se familiariser avec le document POSIX et s'attendre à ce qu'un Unix conforme à POSIX fournisse toutes les fonctionnalités standard mentionnées.

Étant donné que chaque Unix fait les choses un peu différemment - Solaris, Mac OS X, IRIX, BSD et Linux ont tous leurs particularités - POSIX est particulièrement utile pour ceux qui travaillent dans l'industrie car il définit un environnement standard dans lequel opérer. Par exemple, la plupart des fonctions de la bibliothèque C sont basées sur POSIX ; un programmeur peut donc en utiliser une dans son application et s'attendre à ce qu'elle se comporte de la même manière sur la plupart des Unix.

Cependant, les domaines divergents d'Unix sont généralement mis en avant, plutôt que les domaines standards.

L'avantage de POSIX, c'est que vous pouvez le lire vous-même :

Spécifications de base de l'Open Group numéro 7

Le numéro 7 est connu sous le nom de POSIX.1-2008, et il contient de nouvelles choses. Cependant, en cherchant POSIX.1 sur Google, vous pourrez voir toute l'histoire de ce qu'est Unix.

2 votes

Je pense que vous utilisez le terme "UNIX" de manière incorrecte. UNIX fait maintenant référence à la spécification UNIX unique, et tout système d'exploitation UNIX est un système d'exploitation qui se conforme à la spécification UNIX unique. Peut-être voulez-vous dire "de type UNIX" ?

8 votes

Michael : Compte tenu de vos commentaires dans d'autres réponses, vous êtes manifestement une personne très polarisée avec des opinions qui ne sont pas exactement constructives. Ce commentaire spécifique est très pédant, et mon sens a été transmis indépendamment du choix d'une étiquette avec laquelle vous pourriez être en désaccord. De plus, Windows est compatible POSIX dans les versions haut de gamme. Respirez et prenez du recul, s'il vous plaît.

1 votes

@Jed Smith, les opinions fortes mises à part, l'implication du post est que certains systèmes d'exploitation qui sont certifiés conformes à UNIX ne le sont pas... donc, je pense qu'il est juste de dire que c'est trompeur. En outre, en ce qui concerne Windows, tant qu'il existe des éditions non conformes, les développeurs ne peuvent pas compter sur POSIX lorsqu'ils ciblent la plate-forme Windows, ce qui annule l'objectif même de POSIX.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X