Oui. POSIX est un groupe de normes qui déterminent un portable API pour les systèmes de type Unix. Mac OS x est basé sur Unix (et a été certifié comme tel), et conformément à la présente est conforme à POSIX. POSIX garantit que certains appels système sera disponible.
Essentiellement, Mac remplit les API nécessaires pour être conforme à POSIX, ce qui en fait un OS POSIX.
Toutes les versions de Linux ne sont pas compatibles POSIX. Les versions de noyau avant de 2,6 n'étaient pas conformes, et aujourd'hui, Linux n'est pas officiellement compatibles POSIX parce qu'ils n'ont pas sorti de leur manière d'obtenir la certification (qui ne sera probablement jamais se produire). Peu importe, Linux peut être considérée comme un système POSIX pour presque toutes fins et intentions.
qu'est ce qu'un portable API?
vous pouvez compter sur certains appels système pour être disponible, par exemple stat(), read(), etc.
Il existe de nombreuses versions de Linux. C'est à cause de Linux, POSIX a été créé?
"Toutes les versions ne sont pas des" signifie ici "Pas de versions sont" plutôt que "toutes les versions sont" ou "Certains sont des versions". Droit?
Linux n'est pas vraiment conforme à POSIX, car ils ne sont pas certifiés, et ils ne l'ont jamais été. De sorte que le libellé actuel est plus correct.
C'est ce que je pensais. Je faisais juste sûr, c'est tout.
pas de problème. La formulation est importante.
en raison de Linux, POSIX a été créé?" Pas de. Première norme POSIX 1988. M. Torvalds commence développement de Linux, 1991. en.wikipedia.org/wiki/Posix#Nameen.wikipedia.org/wiki/Linux#History. Comme je me souviens, POSIX est née de la nécessité de l'écrire portable Unix applications à travers l'AT&T Unix, BSD, Unix, etc.
Important fait: Mac utilise la BSD mise en œuvre de la POSIX utils, pas celui du projet GNU comme Linux.
Veuillez noter que OSX POSIX mise en œuvre est vieux, donc plus récente POSIX logiciel pourrait ne pas compiler.
Quelles sont les différences entre GNU et BSD utils? Si je comprends correctement, POSIX états d'un système d'exploitation doit disposer de certains services publics, et alors le système d'exploitation met en œuvre. OSX utilise implémentations de BSD et certaines distributions linux utilisent la GNU implémentations? Ces utilitaires système d'appels, parce que je pensais que les appels système ont été une partie du noyau
les appels système sont une partie du noyau, et sous Linux, ils n'ont qu'une assemblée officielle de l'interface, pas de C. POSIX ne précise pas toute l'assemblée de l'interface, seulement C, donc POSIX ne précise rien sur le noyau Linux lui-même. Dans la pratique, cependant, si l'OS n'est pas fait pour soutenir POSIX, il est difficile de le faire de manière efficace. GNU glibc met en œuvre les normes POSIX API C, souvent en enveloppant le noyau du système d'assemblage des appels en C. je ne sais rien à propos de BSD, mais j'imagine que la situation est similaire.
Pour toutes fins utiles, pour la plupart des développeurs UNIX et POSIX est égal à Linux. Techniquement, ce n'est certainement pas vrai cependant, et à la fois officiellement et dans la pratique, Linux n'est ni un UNIX, ni POSIX.
Oui, OS X est basé sur Darwin BSD, et depuis la version 10.5 (Leopard - 18-Mai-2007) tous les Intel/AMD versions ont été officiellement certifié conforme à la Unix 03 /norme POSIX par exemple.
Il y a de drôles de questions - par exemple, il n'est pas suffisant pour un programme qui tente d'adhérer à POSIX simplement spécifier _POSIX_C_SOURCE avec une valeur de dire 200809L d'avoir l'environnement à respecter - j'ai eu du mal avec le supposé GCC extension en cours de la realpath fonction est spécifié par POSIX - à moins que j'ai aussi spécifié non-standard _XOPEN_SOURCE avec une valeur de 700 le programme a eu des problèmes de compilation. Pas un biggie (la présence de ce dernier indicateur est pas showstop de POSIX, mais il est beaucoup moins portable), mais certainement un bourrin. Voir man 2 realpath.
Non, il n'est pas. MacOS est manquant tout un tas de fonctionnalités de POSIX, comme clock_nanosleep(). Il pourrait être compatible avec un sous-ensemble de la norme POSIX ou avec une très très vieille version de POSIX, mais ce n'est certainement pas conforme à POSIX.1-2017. Voir http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_nanosleep.html.
Oui. POSIX est un groupe de normes qui déterminent un portable API pour les systèmes de type Unix. Mac OS x est basé sur Unix (et a été certifié comme tel), et conformément à la présente est conforme à POSIX. POSIX garantit que certains appels système sera disponible.
Essentiellement, Mac remplit les API nécessaires pour être conforme à POSIX, ce qui en fait un OS POSIX.
Toutes les versions de Linux ne sont pas compatibles POSIX. Les versions de noyau avant de 2,6 n'étaient pas conformes, et aujourd'hui, Linux n'est pas officiellement compatibles POSIX parce qu'ils n'ont pas sorti de leur manière d'obtenir la certification (qui ne sera probablement jamais se produire). Peu importe, Linux peut être considérée comme un système POSIX pour presque toutes fins et intentions.
stat()
,read()
, etc.Oui, OS X est basé sur Darwin BSD, et depuis la version 10.5 (Leopard - 18-Mai-2007) tous les Intel/AMD versions ont été officiellement certifié conforme à la Unix 03 /norme POSIX par exemple.
POSIX est une spécification: http://www.unix.org/what_is_unix/single_unix_specification.html
Autant que je sache, Linux se conforme à la spécification, mais n'a pas encore certifiés
_POSIX_C_SOURCE
avec une valeur de dire200809L
d'avoir l'environnement à respecter - j'ai eu du mal avec le supposé GCC extension en cours de larealpath
fonction est spécifié par POSIX - à moins que j'ai aussi spécifié non-standard_XOPEN_SOURCE
avec une valeur de700
le programme a eu des problèmes de compilation. Pas un biggie (la présence de ce dernier indicateur est pas showstop de POSIX, mais il est beaucoup moins portable), mais certainement un bourrin. Voirman 2 realpath
.Non, il n'est pas. MacOS est manquant tout un tas de fonctionnalités de POSIX, comme
clock_nanosleep()
. Il pourrait être compatible avec un sous-ensemble de la norme POSIX ou avec une très très vieille version de POSIX, mais ce n'est certainement pas conforme à POSIX.1-2017. Voir http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_nanosleep.html.