Quelle est la signification de «POSIX»?

900

Qu'est-ce que POSIX? J'ai lu l'article Wikipedia et je le lis chaque fois que je rencontre le terme. Le fait est que je n'ai jamais vraiment compris ce que c'est.

Quelqu'un peut-il me l'expliquer en expliquant "le besoin de POSIX"?

les griffes
la source
10
unix.stackexchange.com/questions/11983/what-exactly-is-posix
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
référence de définition rapide - whatis.techtarget.com/definition/…
parasrish

Réponses:

623

POSIX est une famille de normes, spécifiées par l' IEEE , pour clarifier et uniformiser les interfaces de programmation d'application (et les problèmes annexes, tels que les utilitaires de shell de ligne de commande) fournis par les systèmes d'exploitation Unix-y. Lorsque vous écrivez vos programmes pour s'appuyer sur les normes POSIX, vous pouvez être sûr de pouvoir les porter facilement parmi une grande famille de dérivés Unix (y compris Linux, mais sans s'y limiter!); si et quand vous utilisez une API Linux qui n'est pas standardisée dans le cadre de Posix, vous aurez plus de mal si et quand vous voulez porter ce programme ou cette bibliothèque vers d'autres systèmes Unix-y (par exemple, MacOSX) à l'avenir.

Alex Martelli
la source
34
Non, la norme est 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 très bien pour Posix (et pour vos programmes aussi ;-). MacOSX est compatible Posix, voir devworld.apple.com/leopard/overview/osfoundations.html . Pour Windows, voir en.wikipedia.org/wiki/POSIX#POSIX_for_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 obtenir en partie avec Cygwin, en.wikipedia. org / wiki / Cygwin .
Alex Martelli
23
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".
Jed Smith
29
Je pense que ce que les griffes signifiaient, c'est que Microsoft ne fait pas beaucoup d'efforts pour être interopérable avec d'autres plateformes.
mipadi
12
@deltaray embrasse, étend et éteint . MS java (non standard java.util. Java.security, java.io, java.lang et java.awt), Internet Explorer (presque dit `` exploseur '') et .NET (oui, je sais qu'ils ont publié partiellement source pour .NET, mais sa licence est restrictive et ce n'est PAS encore un port linux. Mono est incomplet). Aussi, brevets exFAT . Vous avez tout à fait raison.
Wyatt8740
25
Microsoft's market share on desktops, at least, makes it "what the world follows"- Intéressant de noter à quel point les choses ont changé depuis ce commentaire de 2009 :)
GMA
516

Les choses les plus importantes que POSIX 7 définit

  1. API C

    Étend considérablement ANSI C avec des choses comme:

    • plus les opérations de fichier: mkdir, dirname, symlink, readlink, link() liens durs, poll(), stat, sync,nftw()
    • traiter et threads: fork, execl, wait, pipe, semaphors sem_*, la mémoire partagée ( shm_*) kill, les paramètres d'ordonnancement ( nice, sched_*), sleep, mkfifo,setpgid()
    • la mise en réseau: socket()
    • gestion de la mémoire: mmap, mlock, mprotect, madvise,brk()
    • utilitaires: expressions régulières ( reg*)

    Ces API déterminent également les concepts de système sous-jacents dont elles dépendent, par exemple fork nécessitent un concept de processus.

    De nombreux appels système Linux existent pour implémenter une fonction API POSIX C spécifique et rendre Linux conforme, par exemple sys_write,sys_read ... Beaucoup de ces syscalls ont également des extensions spécifiques à Linux cependant.

    Implémentation de bureau Linux majeure: glibc, qui dans de nombreux cas fournit simplement un wrapper peu profond aux appels système.

  2. Utilitaires CLI

    Par exemple: cd, ls, echo, ...

    De nombreux utilitaires sont des frontaux directs du shell pour une fonction API C correspondante, par exemple mkdir.

    Major application de bureau Linux: GNU Coreutils pour les petits, les projets GNU séparés pour les grands: sed, grep, awk, ... Certains utilitaires CLI sont mis en œuvre par Bash comme built-ins .

  3. Langue du shell

    Par exemple, a=b; echo "$a"

    Implémentation de bureau Linux majeure: GNU Bash .

  4. Variables d'environnement

    Par exemple: HOME, PATH.

    PATH la sémantique de recherche est spécifiée , y compris la façonPATH dont les barres obliques empêchent la recherche .

  5. Statut de sortie du programme

    ANSI C dit 0ou EXIT_SUCCESSpour le succès, EXIT_FAILUREpour l'échec, et laisse l'implémentation du reste définie.

    POSIX ajoute:

  6. Expression régulière

    Il existe deux types: BRE (de base) et ERE (étendu). Basic est obsolète et uniquement conservé pour ne pas casser les API.

    Celles-ci sont implémentées par les fonctions de l'API C et utilisées dans tous les utilitaires CLI, par exemple, grepacceptent les BRE par défaut et les ERE avec-E .

    Par exemple: echo 'a.1' | grep -E 'a.[[:digit:]]'

    Implémentation Linux majeure: glibc implémente les fonctions sous regex.h que des programmes comme greppeuvent utiliser comme backend.

  7. Structure du répertoire

    Par exemple: /dev/null,/tmp

    Le Linux FHS étend considérablement POSIX.

  8. Noms de fichiers

    • / est le séparateur de chemin
    • NUL Ne peut pas être utilisé
    • .est cwd, ..parent
    • noms de fichiers portables
      • utiliser au maximum 14 caractères et 256 au maximum pour le chemin complet
      • ne peut contenir que: a-zA-Z0-9._-

    Voir aussi: qu'est-ce que la conformité posix pour le système de fichiers?

  9. Conventions de l'API de l'utilitaire de ligne de commande

    Pas obligatoire, utilisé par POSIX, mais presque nulle part ailleurs, notamment pas dans GNU. Mais c'est vrai, il est trop restrictif, par exemple les drapeaux à une seule lettre (par exemple -a), pas de versions longues à double trait d'union (par exemple--all ).

    Quelques conventions largement utilisées:

    • - signifie stdin où un fichier est attendu
    • --termine les drapeaux, par exemple ls -- -lpour lister un répertoire nommé-l

    Voir aussi: Existe-t-il des normes pour les commutateurs et arguments de ligne de commande Linux?

  10. "ACL POSIX" (Listes de contrôle d'accès), par exemple, comme utilisé pour le backend setfacl.

    Cela a été retiré mais il a été implémenté dans plusieurs systèmes d'exploitation, y compris sous Linux avecsetxattr .

Qui se conforme à POSIX?

De nombreux systèmes suivent POSIX de près, mais peu sont en fait certifiés par l'Open Group qui maintient la norme. Les certifiés notables comprennent:

  • OS X (Apple) X signifie à la fois 10 et UNIX. Était le premier système Apple POSIX, sorti vers 2001. Voir aussi: OSX est-il un OS POSIX?
  • AIX (IBM)
  • HP-UX (HP)
  • Solaris (Oracle)

La plupart des distributions Linux sont très conformes, mais non certifiées car elles ne veulent pas payer le contrôle de conformité. K-UX d'Inspur et EulerOS de Huawei sont deux exemples certifiés.

La liste officielle des systèmes certifiés se trouve sur: https://www.opengroup.org/openbrand/register/ et également sur la page wiki .

les fenêtres

Windows a implémenté POSIX sur certaines de ses distributions professionnelles.

Comme il s'agissait d'une fonctionnalité facultative, les programmeurs ne pouvaient pas compter sur elle pour la plupart des applications d'utilisateur final.

La prise en charge a été déconseillée dans Windows 8:

En 2016, une nouvelle API de type Linux officielle appelée "Windows Subsystem for Linux" a été annoncée. Il comprend les appels système Linux, l'exécution d'ELF, des parties du /procsystème de fichiers, Bash, GCC, (TODO probablement glibc?), apt-getEt plus encore: https://channel9.msdn.com/Events/Build/2016/P488 donc je crois que cela permettra à Windows d'exécuter une grande partie, sinon la totalité, de POSIX. Cependant, il se concentre sur les développeurs / déploiement plutôt que sur les utilisateurs finaux. En particulier, il n'était pas prévu d'autoriser l'accès à l'interface graphique Windows.

Aperçu historique de la compatibilité officielle Microsoft POSIX: http://brianreiter.org/2010/08/24/the-sad-history-of-the-microsoft-posix-subsystem/

Cygwin est un projet tiers GPL bien connu qui "fournit des fonctionnalités substantielles de l'API POSIX" pour Windows, mais vous oblige à "recréer votre application à partir de la source si vous voulez qu'elle s'exécute sur Windows". MSYS2 est un projet connexe qui semble ajouter plus de fonctionnalités au-dessus de Cygwin.

Android

Android possède sa propre bibliothèque C (Bionic) qui ne prend pas entièrement en charge POSIX à partir d'Android O: Android POSIX est-il compatible?

Niveau bonus

La base standard Linux étend encore POSIX.

Utilisez les index non-frames, ils sont beaucoup plus lisibles et consultables: http://pubs.opengroup.org/onlinepubs/9699919799/nfindex.html

Obtenez une version zippée complète des pages HTML pour la grepping: Où est la liste des fonctions de l'API POSIX C?

Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
la source
18
Des exemples fantastiques, si vous aviez une définition comme la réponse acceptée, ce serait la meilleure réponse.
Marc
8
@Marc merci! J'essaie de ne pas répéter ce qui est dit dans les autres réponses car les gens les ont probablement déjà lus et d'éviter les doublons ;-) C'est un dilemme connu: meta.stackoverflow.com/questions/305645/…
Ciro Santilli 郝海东 冠状 病 六四事件 法轮功
1
Bonne idée d'expliquer réellement ce que POSIX couvre (et ce qui ne l'est pas).
sleske
4
Partout dans la littérature, des références à la «conformité POSIX» apparaissent, et la définition typique des personnes POSIX trouve «un ensemble de normes d'interopérabilité entre les systèmes d'exploitation de type Unix». Bien qu'utile, cette définition laisse planer de nombreux doutes, notamment en ce qui concerne les fonctionnalités qui devraient interagir. Bien sûr, vous pouvez aller lire toute la spécification POSIX pour vous plonger dans les détails (et y consacrer beaucoup de temps). Mais, cette réponse fournit le résumé si nécessaire pour avoir une vue d'ensemble de la portée de POSIX. Un merci spécial à Ciro pour avoir pris le temps de l'écrire!
ARX
Il peut également être utile d'ajouter des garanties Posix sur les types entiers. Je ne sais pas exactement ce qui est et ce qui n'est pas spécifié, mais je sais qu'au moins Posix nécessite l'existence de uint8_t, uint16_t, uint32_t et les types signés correspondants. Je ne sais pas si cela garantit que les types comme "int" ont une puissance de deux et qu'un système ne fera pas quelque chose de méchant comme un "int" avec 32 bits de valeur, 1 bit de signe et 31 bits de remplissage [donc incrémenter un uint32_t pourrait donner UB]; si vous avez le Standard à portée de main, il pourrait être agréable de dire ce qui est et n'est pas garanti à cet égard.
supercat
74

POSIX c'est:

POSIX (prononcé / ˈpɒzɪks /) ou "Interface du système d'exploitation portable [pour Unix]" 1 est le nom d'une famille de normes connexes spécifiées par l'IEEE pour définir l'interface de programmation d'application (API), ainsi que les interfaces shell et utilitaires pour les logiciels compatible avec les variantes du système d'exploitation Unix, bien que la norme puisse s'appliquer à n'importe quel système d'exploitation.

Fondamentalement, il s'agissait d'un ensemble de mesures pour soulager la douleur du développement et de l'utilisation de différentes versions d'UNIX en ayant une API et des utilitaires (principalement) communs. La conformité POSIX limitée s'est également étendue à diverses versions de Windows.

cletus
la source
1. Vous voulez dire que POSIX dit que tous les OS * nix (noyaux) devraient avoir au moins cet ensemble d'appels système. droite? 2. WINDOWS / MAC suit-il POSIX? Si / Si ce n'est pas le cas, WINDOWS (95,98,2000, xp, vista, 7) suit une norme standard (peut-être leur propre propriétaire)? En d'autres termes, POSIX dans le monde Microsoft ==?
griffes
1
Fondamentalement, il "s'agissait" d'un ensemble de mesures pour soulager la douleur du développement. ÉTAIT??
griffes
5
J'ai remis en question l'utilisation du mot était aussi, mais c'est discutable. Pour répondre à vos questions: (1) non, POSIX a absolument rien à voir avec le noyau, il décrit simplement comment il doit fonctionner; (2) OS X est BSD et est assez compatible POSIX, mais il y a des zones grises. Windows 2008 est le plus proche de la réclamation POSIX; il n'y a pas d'équivalent de POSIX dans le monde Microsoft.
Jed Smith
1
@claws: ne veux pas salir la zone sous la réponse de cletus ... mais. J'ai lié POSIX.1-2008 dans ma réponse ... juste là.
Jed Smith
3
@Jed Smith, il n'y a pas de zones grises en termes de conformité avec Mac OS X; Mac OS X est certifié conforme à la spécification Single UNIX v3, une norme dont POSIX est un sous-ensemble.
Michael Aaron Safyan
43

Permettez-moi de donner l'explication grossière "non officielle".

POSIX est un ensemble de normes qui tente de distinguer les systèmes "UNIX" et UNIX de ceux qui leur sont incompatibles. Il a été créé par le gouvernement américain à des fins d'approvisionnement. L'idée était que les marchés publics fédéraux des États-Unis avaient besoin d'un moyen de spécifier légalement les exigences pour divers types d'appels d'offres et de contrats d'une manière qui pourrait être utilisée pour exclure les systèmes auxquels une base de code ou un personnel de programmation existant ne serait PAS portable.

Puisque POSIX a été écrit post facto ... pour décrire un ensemble peu similaire de systèmes concurrents ... il n'a PAS été écrit d'une manière qui pourrait être mise en œuvre.

Ainsi, par exemple, le NT de Microsoft a été écrit avec suffisamment de conformité POSIX pour se qualifier pour 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 cours des décennies. Des choses comme le SPEC1170 (spécifié onze cent soixante-dix appels de fonction qui devaient être implémentés de manière compatible) et diverses incarnations du SUS (Single UNIX Specification).

Pour la plupart, ces "normes" se sont révélées inadéquates pour toute application technique pratique. Ils existent surtout pour l'argumentation, les disputes juridiques et d'autres raisons de dysfonctionnement.

Jim Dennis
la source
1
Alors, comment se fait-il que Linux implémente la plupart de POSIX, y compris de nombreuses extensions?
ninjalj
8
@ninjalj: Linux a été écrit pour implémenter un ensemble pratique de fonctions de type UNIX. Cela tout en se conformant à POSIX est parfaitement logique. Cependant, mon point de vue était que POSIX n'a ​​pas été créé comme spécification pour la mise en œuvre de nouveaux systèmes d'exploitation ... il a été créé comme un moyen pour le personnel des marchés publics américains de distinguer ceux qui se sont qualifiés pour certaines catégories dans les offres de ceux qui ne l'ont pas été. . L'objectif sous 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 en cours de route.
Jim Dennis
3
Plutôt ingénieux de votre part de prétendre que le POSIX a été écrit post facto! C'est la marque d'une bonne organisation d'élaboration de normes (OEN) où le consensus n'est pas atteint tant qu'au moins une mise en œuvre conforme n'existe pas.
fpmurphy
4
@fpmurphy: La création d'une spécification ex post facto basée sur une ou deux implémentations interopérables est la norme pour les normes de protocole de mise en réseau IETF ... qui interagissent sur des couplages intentionnellement lâches. Le processus de normalisation du système d'exploitation n'a pas été un succès. L'API entre les programmes et le système (noyau ou micro-noyau et ses serveurs de sous-système) est beaucoup plus étroitement couplée que les clients et les serveurs ou les pairs sur les réseaux. (Je ne dis pas que c'est impossible; je souligne simplement qu'il y a des différences et que l'histoire n'a pas montré que ces dernières étaient prometteuses).
Jim Dennis
2
Les efforts de l'IEEE pour spécifier POSIX en 1985 ont été encouragés par le gouvernement américain. Faites des recherches, lisez un livre d'histoire ou quelque chose.
rustyx
29

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

Hank Gay
la source
15
Il n'est pas seulement «censé» faciliter l'écriture de code multiplateforme, il facilite également l'écriture de code multiplateforme. La seule exception est Windows, car Microsoft pense que c'est en quelque sorte mieux que tout le monde et n'a pas besoin de se conformer. Cependant, je prédis que cela fonctionnera contre eux, d'autant plus que Mac et Linux gagnent plus de 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.
Michael Aaron Safyan
D'après ce que j'ai entendu de personnes qui travaillent avec lui beaucoup plus étroitement que jamais, cela a peut-être rendu les choses plus faciles, mais ce n'était certainement pas suffisant pour l'impression en écriture unique, exécutable sur n'importe quel POSIX. les gens obtiennent quand ils entendent que c'est une «norme» pour les systèmes d'exploitation.
Hank Gay
6
Ils ne pensent pas qu'ils sont «meilleurs que tout le monde»; ils savent qu'ils sont plus gros que tout le monde. C'est aussi pourquoi ils changeront de musique en perdant des parts de marché. Ce n'est pas unique pour eux, par exemple, Netscape a commencé à se soucier beaucoup plus des normes Web quand elles n'étaient plus les plus populaires.
Ken
L'écriture d'une application pour utiliser uniquement des API POSIX facilite le portage entre différents systèmes d'exploitation Unix et Unix. Cependant, il s'agit de la norme de consensus du plus petit dénominateur commun - les utilitaires ou applications spécifiques au système d'exploitation ou au matériel nécessitent généralement une réécriture.
fpmurphy
2
@Ken et c'est pourquoi nous ne devrions pas laisser le chrome de Google devenir trop confortable.
Wyatt8740
29

POSIX est un ensemble de normes mises en avant par IEEE et The Open Group qui décrit comment un Unix idéal fonctionnerait. 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 bizarreries - POSIX est particulièrement utile à ceux de l'industrie car il définit un environnement standard pour fonctionner. Par exemple, la plupart des fonctions de la bibliothèque C sont basées sur POSIX; un programmeur peut donc en utiliser un dans son application et s'attendre à ce qu'il se comporte de la même manière sur la plupart des Unices.

Cependant, les zones divergentes d'Unix sont généralement au centre, plutôt que celles standard.

La grande chose à propos de POSIX est que vous êtes invités à le lire vous-même:

Les spécifications de base du groupe ouvert Numéro 7

Le numéro 7 est connu sous le nom de POSIX.1-2008, et il y a de nouvelles choses là-dedans - cependant, Google-fu pour POSIX.1 et autres vous permettra de voir l'historique complet derrière ce qu'est Unix.

Jed Smith
la source
2
Je pense que vous utilisez le terme "UNIX" de manière incorrecte. UNIX fait désormais référence à la spécification UNIX unique et tout système d'exploitation UNIX est un système d'exploitation conforme à la spécification UNIX unique. Peut-être voulez-vous dire comme UNIX?
Michael Aaron Safyan
8
@Michael: Compte tenu de vos commentaires dans d'autres réponses, vous êtes évidemment 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 ma signification a été transmise indépendamment du choix d'un label avec lequel vous pourriez être en désaccord. De plus, Windows est compatible POSIX dans les versions haut de gamme. Respirez et reculez, s'il vous plaît.
Jed Smith
1
@Jed Smith, à part des opinions bien arrêtées, l'implication de la publication est que certains systèmes d'exploitation certifiés conformes UNIX ne le sont pas ... donc, je pense qu'il est juste de dire que cela est trompeur. En outre, en ce qui concerne Windows, tant qu'il existe des éditions qui ne sont pas conformes, les développeurs ne peuvent pas s'appuyer sur POSIX lorsqu'ils ciblent la plate-forme Windows, annulant ainsi tout le but d'avoir POSIX.
Michael Aaron Safyan
Unix est un système d'exploitation. UNIX est une marque détenue par The Open Group. Les systèmes certifiés selon les profils de marque UNIX95, UNIX98 ou UNIX03, dont la conformité à une version particulière de la spécification UNIX unique constitue la majorité des exigences de marque, peuvent utiliser le terme UNIX.
fpmurphy
6

En 1985, des individus d'entreprises de l'industrie informatique se sont réunis pour développer la norme POSIX (Portable Operating System Interface for Computer Environments), qui est largement basée sur la définition d'interface UNIX System V (SVID) et d'autres efforts de normalisation antérieurs. Ces efforts ont été encouragés par le gouvernement américain, qui avait besoin d'un environnement informatique standard pour minimiser ses coûts de formation et d'approvisionnement. Lancé en 1988, POSIX est un groupe de normes IEEE qui définissent l'API, le shell et les interfaces utilitaires d'un système d'exploitation. Bien qu'elles visent les systèmes de type UNIX, les normes peuvent s'appliquer à tout système d'exploitation compatible. Maintenant que ces normes sont de plus en plus acceptées, les développeurs de logiciels peuvent développer des applications qui s'exécutent sur toutes les versions conformes d'UNIX, Linux,

Extrait du livre: Un guide pratique pour Linux

Koray Tugay
la source
4

Posix est plus un OS, c'est un "OS standard". Vous pouvez l'imaginer comme un système d'exploitation imaginaire, qui n'existe pas réellement, mais il a une documentation. Ces documents sont la «norme posix», définie par l'IEEE, qui est la grande organisation standard des États-Unis. Les systèmes d'exploitation implémentant cette spécification sont «conformes Posix».

Les réglementations gouvernementales préfèrent les solutions conformes à Posix dans leurs investissements, ce qui signifie que la conformité à Posix présente un avantage financier important, en particulier pour les grandes entreprises informatiques des États-Unis.

La récompense pour un système d'exploitation entièrement compatible Posix, c'est la garantie qu'il compilera et exécutera toutes les applications compatibles Posix de manière transparente.

Linux est le plus connu. OSX, Solaris, NetBSD et Windows NT jouent également ici. Free- et OpenBSD ne sont que «presque» conformes à Posix. La conformité posix du WinNT n'est qu'une pseudo-solution pour éviter cette réglementation gouvernementale ci-dessus.

peterh - Réintégrer Monica
la source
3

Cette norme fournit une base commune pour les systèmes d'exploitation de type Unix. Il spécifie comment le shell doit fonctionner, à quoi s'attendre de commandes comme ls et grep, et un certain nombre de bibliothèques C que les auteurs C peuvent s'attendre à avoir disponibles.

Par exemple, les canaux que les utilisateurs de ligne de commande utilisent pour enchaîner les commandes sont spécifiés en détail ici, ce qui signifie que la fonction popen (canal ouvert) de C est conforme à la norme POSIX et non à la norme ISO C.

Koray Tugay
la source
3

POSIX est l'abréviation de Portable Operating System Interface et est une norme IEEE conçue pour faciliter la portabilité des applications. POSIX est une tentative d'un consortium de fournisseurs de créer une seule version standard d'UNIX.

Farruh Habibullaev
la source
0

POSIX définit un ensemble de normes pour un système d'exploitation ou un programme. L'objectif est d'écrire de nouveaux logiciels compatibles avec les systèmes de type UNIX.

Par exemple, un programme exécuté sur Linux peut également être compilé et exécuté sur d'autres systèmes de type UNIX comme Solaris, HP-UX et AIX, etc.

Les exemples les plus populaires sont la GNU Bashconformité et l' gawkutilitaire 100% POSIX .

sras
la source
0

Posix régit l'interopérabilité, la portabilité et dans d'autres domaines tels que l'utilisation et le mécanisme de fork, les autorisations et les normes de système de fichiers tels que / etc, / var, / usr, etc. . Par conséquent, lorsque les développeurs écrivent un programme sous un système compatible Posix tel que par exemple Linux, il n'est généralement pas toujours garanti de fonctionner sur un autre système compatible posix tel que le système AIX d'IBM ou d'autres variantes commerciales d'Unix. Posix est une bonne chose à avoir en tant que tel, il facilite le développement logiciel pour une portabilité maximale pour laquelle il aspire. J'espère que cette réponse a du sens.

Merci à Jed Smith & Tinkertim d'avoir signalé mon erreur - ma mauvaise !!! :(

t0mm13b
la source
Les normes de système de fichiers sont gérées en dehors de POSIX.
Jed Smith
Vous confondez POSIX avec des choses comme le LSB (Linux Standard Base). Deux (principalement) systèmes d'exploitation compatibles POSIX seraient FBSD et Linux, mais tous deux ont une organisation du système de fichiers et des installations de bibliothèque par défaut assez différentes.
Tim Post
0

Une spécification (schéma directeur) sur la façon de rendre un système d'exploitation compatible avec le dernier système d'exploitation UNIX (que Dieu le bénisse!). C'est pourquoi macOS et GNU / Linux ont des lignes de commande de terminal, des interfaces graphiques, des bibliothèques, etc. très similaires, car ils ont tous deux été conçus selon le plan POSIX.

POSIX ne dit pas aux ingénieurs et aux programmeurs comment coder mais quoi coder.

MCH
la source
-1

Quelques faits sur POSIX qui ne sont pas si brillants.

POSIX est également l'interface d'appel système ou l'API, et elle a presque 30 ans.

Il a été conçu pour l'accès aux données sérialisées au stockage local , en utilisant des ordinateurs uniques avec des processeurs uniques.

La sécurité n'était pas une préoccupation majeure dans POSIX par conception, conduisant à de nombreuses attaques de conditions de concurrence au fil des ans et obligeant les programmeurs à contourner ces limitations.

De graves bogues sont toujours en cours de découverte, des bogues qui auraient pu être évités avec une conception d'API POSIX plus sécurisée.

POSIX s'attend à ce que les utilisateurs émettent un appel synchrone à la fois et attendent ses résultats avant d'émettre le suivant. Les programmeurs d'aujourd'hui s'attendent à émettre de nombreuses demandes asynchrones à la fois pour améliorer le débit global.

Cette API synchrone est particulièrement mauvaise pour accéder aux objets distants et cloud, où la latence élevée est importante.

prosti
la source
L'API du noyau synchrone ne signifie pas nécessairement les processus à un seul thread et les E / S sérialisées. Cela n'a rien à voir non plus avec les machines SMP. Ce ne sont absolument pas liés. (Bien que je convienne que l'API du noyau de synchronisation est sous-optimale, mais pas aussi lourdement que dans votre message semble.)
Peterh - Rétablir Monica