2010-01-22 2 views
6

J'ai cherché dur mais toujours confus pourquoi POSIX est appelé "Portable Operating System Interface", ce que j'ai appris est que c'est une bibliothèque de threading pour l'environnement Unix, parce que quand vous devez l'utiliser sous Windows, vous devez utiliser cygwin ou " Windows Services d'Unix ", etc. C'est pourquoi je suis confus pourquoi il s'appelle Portable OSIX. Je suis un programmeur C/C++ professionnel dans le domaine Windows mais nouveau sous Unix/Linux. Merci pour vos réponses à l'avance.Pourquoi POSIX est appelé "Portable Operating System Interface"?

+3

Posix est BEAUCOUP plus que pthreads ... Commencez ici: http://en.wikipedia.org/wiki/POSIX (désolé, je n'ai pas le temps d'écrire une meilleure réponse maintenant) – Fredrik

+7

La première erreur que vous avez faite supposait que Windows était "portable". Ce n'est pas. Presque tout ce qui est utilisé * sauf * windows est POSIX. – Ether

Répondre

13

Avant Posix, le Unix family tree devenait très diversifié et incompatible. Un programme écrit pour un Unix n'était pas compatible avec un Unix différent sans effort de portage significatif. Posix était l'une des tentatives de présenter un ensemble commun d'utilitaires et d'interfaces de programmation afin que votre logiciel soit portable vers plusieurs versions d'Unix. Puisque Posix concerne l'interface et non le système d'exploitation actuel, il est possible d'avoir une façade Posix sur un système d'exploitation non Unix (tel que le Microsoft Windows Services for Unix présentant une façade Posix sur Windows).

+0

Oh, cela signifie que POSIX est seulement portable pour différentes versions sous UNIX, je pensais qu'il était portable de façon hétérogène.J'ai fedoraCore10 installé pouvez-vous me donner un point de départ comment démarrer la programmation avec pThreads dans fedoraCore10. Merci. – MahSan

+3

Posix peut également être effectué sur des systèmes d'exploitation autres que Unix (tels que Windows). J'ai ajouté un nouveau paragraphe à ma réponse pour l'expliquer plus. –

+0

Merci beaucoup pour votre intérêt et vos bonnes réponses, le lien que vous avez fourni est vraiment utile. merci encore – MahSan

9

Un ou deux traînards ont décidé de ne pas faire partie de leur noyau ne le rend pas moins portable à presque tous les autres systèmes d'exploitation importants.

+0

Pouvez-vous définir votre opinion/réponse, je ne suis pas assez bon en anglais pour comprendre ce merci. – MahSan

+1

La plupart des systèmes d'exploitation * suivent * POSIX dans une certaine mesure. Seuls quelques-uns ont décidé de ne pas le faire. –

+3

+1 pour la bigoterie de la plateforme. plate-forme amusante bigoterie à cela. – asveikau

4

POSIX est simplement une interface pour les systèmes d'exploitation qui définit des concepts tels que les threads, les processus, les signaux, les tubes et les E/S. Ce n'est pas la seule interface portable sur plusieurs interfaces, mais c'est simplement une norme. Le nom a été défini par Richard Stallman dans les années 1980.

La raison de la définition de POSIX était que de nombreuses versions différentes d'UNIX étaient incompatibles, car les systèmes d'exploitation ne s'étaient pas mis d'accord sur la mise en œuvre de threads ou de processus.

Voici quelques liens pour d'autres recherches:

+1

Le lien RMS est bien documenté. Ce que je n'ai jamais pu confirmer, cependant, c'est si c'était une blague (le comité était en train de créer une P.S.) ou non. Personne ne veut le dire ... –

+0

Le premier lien est mort – Shahbaz

3

POSIX définit un ensemble de fonctions portables C, shell, les programmes qui font la vie d'un programmeur plus facile car étant donné les définitions dans POSIX, il est beaucoup plus facile d'écrire du code portable (pas seulement C, mais aussi des scripts shell). Imaginez si tout le monde avait sa propre façon de faire les choses!

Tous les systèmes d'exploitation ne sont pas compatibles avec POSIX, donc si vous devez les développer vous aussi, vous devez faire des choses spécifiques au système. Mais POSIX est probablement la norme portable à travers différents types de systèmes aujourd'hui. Bien sûr, il y a ISO C, qui est plus portable, mais il est difficile d'écrire des programmes très utiles en ISO C!

Questions connexes