En parcourant la spec de YMODEM

XMODEM, YMODEM et ZMODEM,  ce sont ces protocoles qui permettent de transférer par liaison série des fichiers (les jeunes qui ne savent pas ce qu'est une liaison série, ils se taisent).

Je me suis dernièrement trouvé face à un soft qui semblait très sélectif dans sa compatibilité, n'acceptant pour les transferts YMODEM que ceux en provenance de HyperTerminal® disponible sur MS Windows®. Pour les autres clients, et particulièrement sous Linux, bizarrement, la taille de transfert indiquée donnait des valeurs qui ressemblaient fortement à un code de retour de fonction -1 interprété comme un entier non signé (ah.. Les joies des valeurs spéciales comme code de retour, il faudra que je vous en parle un jour).

Voulant percer le mystère de cette vilénie, j'ai décidé de voir de plus près de quoi il en retournait. Il apparaît que derrière la taille du fichier, de manière optionnelle, on peut disposer sa date de modification et ses droits unix. En ce que j'ai pu comprendre, l'outil n'accepte que la version sans option et ne gère pas les cas où les champs optionnels sont présents. En effet, la gestion sous DOS n'incluait pas ces  champs. Ceci est assez compréhensible, vu la gestion du temps à l'époque de MS-DOS. Plus précisément :

     Two Microsoft blunders complicate the use of modification dates in
     file transfers with MSDOS(TM) systems. The first is the lack of
     timezone standardization in MS-DOS. A file's creation time can not
     be known unless the timezone of the system that wrote the file4 is
     known. Unix solved this problem (for planet Earth, anyway) by
     stamping files with Universal Time (GMT). Microsoft would have to
     include the timezone of origin in the directory entries, but does
     not.  Professional-YAM gets around this problem by using the z
     parameter which is set to the number of minutes local time lags GMT.
     For files known to originate from a different timezone, the -zT
     option may be used to specify T as the timezone for an individual
     file transfer.

Deux remarques à propos de ce texte :

  • Nous sommes en 2011, et je me cogne à une limitation du DOS des années 80. Un truc mal fichu au départ, c'est de la dette technique pour l'avenir, et quelque fois à long terme...
  • L'auteur souligne que Unix a résolu le problème de manière simple, mais pointe tout de même une limitation. L'utilisation du GMT est restreint à une utilisation sur la planète Terre. Mais c'est vrai que ce n'est pas tout les jours qu'on envoie son calculateur dans l'espace. D'ailleurs, y-a-t'il un système de temps pour l'espace ?
GodSlayer Monday 31 October 2011 at 10:44 am | | QOTD

No comments

(optional field)
(optional field)
Remember personal info?
Small print: All html tags except <b> and <i> will be removed from your comment. You can make links by just typing the url or mail-address.