Discussion:POSIX

message: c'est quoi POSIX ???
----
J'ai souvent entendu dire que POSIX était l'acronyme de Portable Operating System based on unIX. François Trazzi 5 sep 2004 à 00:14 (CEST)
thread_title:  POSIX 

message: Les fichiers POSIX ne pouvaient dépasser 2 Go (soit 9 minutes environ de vidéo).
: Neuf heures j'imagine... Vanished2012 26 septembre 2005 à 13:56 (CEST)
thread_title:  2Go = 9 minutes de vidéo ?!!? En quelle qualité ? 

message: "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"
Je ne connais pas bien POSIX mais il me semble qu'il y a une contradiction dans cette phrase...
un entier SIGNÉ de 32 bits peut aller de -1 milliard a +1 milliard (environ); ce qui signifie que si la position courante est située au début d'un fichier de 2Gos, la moitié du fichier ne pourra etre pointé a partir de cette position...
un unsigned int me parraitrait plus approprié, mais alors, on ne pourrait pointer vers un octet situé avant la position courante...
??!!..
Arnaud Masserann
:Il me semble qu'il y a une erreur dans ton calcul : 2³² ~ 4·10⁹. Donc avec un entier signé, on adresse bien ±2 milliards et on peut donc bien accéder à n'importe quel endroit d'un fichier de 2Go depuis n'importe quel autre endroit.
:--Aldoo / ✉ 5 octobre 2006 à 15:28 (CEST)
thread_title:  limitation des 2Gos 

message: L'utilisation de l'imparfait laisse penser que la situation fut effectivement ainsi, et qu'elle a changé. Ce qu'il conviendrait d'expliquer.
Il est clair que pour des raisons de compatibilité, plusieurs systèmes des années 90 utilisaient le type long pour calculer les tailles et les emplacements dans les fichiers, ce qui impose une limite à 2 Go sur les architectures 32 bits, limite qui est devenu insuffisante.
Mais il ne me parait pas évident pourquoi et en quoi POSIX est impliqué dans cette affaire. Au contraire, un des avantages de la version initiale de POSIX en 1998 sur ses prédécesseurs comme UNIX V7 fut de définir des types spécialisés, en particulier off_t, et de les utiliser de manière consistante plutôt que de recourir à des types comme long qui dépendent de la plateforme sous-jacente, à l'époque la pratique habituelle. Utiliser off_t dans les programmes permet à ceux-ci de fonctionner sans problème à la fois sur les machines où le type off_t est un entier sur 32 bits (ce qui limite les fichiers à 2 Go), et sur les machines où le type off_test un entier sur 64 bits. Pas de limite pour le programme, si ce n'est celles de la machine ; et pas de souci pour le programmeur. Dès 1988.
La solution définie en 1996 par les vendeurs de systèmes fut d'obliger toutes les applications, donc y compris les applications strictement conformes aux normes et désireuses d'accéder à des grands fichiers, à pré-définir trois symboles (_LARGEFILE_SOURCE, _LARGEFILE64_SOURCE, _FILE_OFFSET_BITS=64, histoire probablement de contenter tout le monde). Jolie solution au problème de compatibilité des systèmes, quoi que peut-être un peu lourde. Cette solution fut imbriquée en 1997 dans la norme X/Open, un sur-ensemble de POSIX, renommée Single Unix Specification, version 2. À la même époque, la norme POSIX resta inchangée, car le problème n'est qu'un problème d'implémentation. En 2001, les deux normes POSIX et X/Open furent en grande partie fusionnées, et une des conditions de conformité pour les systèmes a été que le type off_t soit au moins de 64 bits, rendant au passage superfétatoires toutes les pré-définitions requises pour la conformité X/Open. Et sans impact sur les programmes POSIX. AntoineL (discuter) 17 octobre 2013 à 13:49 (CEST)
thread_title:  Où est-ce écrit ?