Heure Unix
L'heure Unix ou heure Posix (aussi appelĂ©e Unix Timestamp) est une mesure du temps fondĂ©e sur le nombre de secondes Ă©coulĂ©es depuis le 00:00:00 UTC, hors secondes intercalaires. Elle est utilisĂ©e principalement dans les systĂšmes qui respectent la norme POSIX[1], dont les systĂšmes de type Unix, d'oĂč son nom. C'est la reprĂ©sentation POSIX du temps.
Heure POSIX
Associer un événement dans le temps à un nombre réel
Pour associer un Ă©vĂ©nement Ă un nombre rĂ©el, il suffit d'utiliser des rĂ©fĂ©rences naturelles et universelles : par exemple, les pĂ©riodicitĂ©s de rotation de la Terre sur elle-mĂȘme, et autour du Soleil. Ces pĂ©riodicitĂ©s sont suffisantes pour Ă©tablir des calendriers, c'est-Ă -dire des relations entre des Ă©vĂ©nements et des dates, mĂȘme si quelques efforts sont nĂ©cessaires pour bien dĂ©finir les rĂ©fĂ©rences utilisĂ©es[2] (chaque pays a les siennes, toutes adoptĂ©es Ă des instants diffĂ©rents) ; les dates de ces calendriers ne sont que des nombres exprimĂ©s dans un systĂšme de numĂ©ration un peu compliquĂ© qui a pour unitĂ©s le jour, la semaine, le mois, la saison, l'annĂ©e, etc., et l'heure Posix n'est qu'une rĂ©fĂ©rence parmi d'autres exprimĂ©e sous forme d'un simple nombre.
Principaux systÚmes de mesures utilisés
Voici les principaux systÚmes de mesure du temps qui ont été imaginés et utilisés jusqu'à nos jours[3] :
Sigle | Signification | DĂ©finition |
---|---|---|
GMT | Temps moyen de Greenwich[4] | Encore en usage dans certains pays pour des aspects légaux[5].
NĂ©anmoins la dĂ©finition de ce systĂšme de mesure est ambigĂŒe[4]. C'est la raison pour laquelle, en dehors de cet usage administratif, il est prĂ©fĂ©rable d'utiliser UTC. |
UT | Temps universel | Ce systÚme définit le jour comme la durée moyenne de rotation de la Terre autour de son axe.
Cette dĂ©finition pose quelques difficultĂ©s car la vitesse de cette rotation nâest pas constante, elle diminue lentement sous lâeffet des marĂ©es et, de plus, prĂ©sente des irrĂ©gularitĂ©s imprĂ©visibles : la durĂ©e des jours UT est trĂšs lĂ©gĂšrement supĂ©rieure, en moyenne, Ă 86 400 secondes (nombre de secondes dans 24h). L'Ă©cart est de lâordre de la seconde sur une Ă trois annĂ©es. On distingue plusieurs versions de UT : UT0, UT1, UT1R, UT2. On se reportera Ă l'article « Temps universel » pour plus de dĂ©tails. |
TAI | Temps atomique international | Ce systĂšme est fondĂ© sur une dĂ©finition internationale de la seconde. Son Ă©talon est constituĂ© par plusieurs horloges atomiques rĂ©parties dans le monde. La mesure du temps dans ce systĂšme est strictement rĂ©guliĂšre Ă la diffĂ©rence de la prĂ©cĂ©dente pour qui son Ă©talon n'a pas la mĂȘme rĂ©gularitĂ©. En consĂ©quence, TAI et UT s'Ă©loignent progressivement l'un de l'autre du fait du ralentissement du second.
|
UTC | Temps universel coordonné |
Ce systÚme est adopté comme base du temps civil international par un grand nombre de pays. Le mot « coordonné » indique que :
Autrement dit, UTC est identique au TAI (il en a la stabilitĂ© et lâexactitude) Ă un nombre entier de secondes prĂšs[6], et les secondes intercalaires lui permettent de coller Ă UT Ă 0,9 s prĂšs ; c'est ce que montre la figure ci-dessus[7].
|
Choix d'une origine du temps
Pour mesurer le temps, il faut choisir une origine :
Ăvolution du temps
Il faut indiquer comment Ă©volue ce nombre en fonction du temps qui passe :
- Pour chaque seconde écoulée, l'heure POSIX s'accroßt d'exactement d'une unité et ce de façon invariable tout au long de l'année, sauf lorsque l'IERS décide[8] d'ajouter (ou de supprimer) une seconde intercalaire ; le tableau ci-dessous illustre le cas de l'ajout de la seconde intercalaire qui a eu lieu le à minuit[11].
# | TAI | UTC | TAI - UTC | Heure Posix | |
---|---|---|---|---|---|
1 | 2009-01-01T00:00:30 | 2008-12-31T23:59:57 | 33 | 1 230 767 997 | |
2 | 2009-01-01T00:00:31 | 2008-12-31T23:59:58 | 33 | 1 230 767 998 | |
3 | 2009-01-01T00:00:32 | 2008-12-31T23:59:59 | 33 | 1 230 767 999 | |
4 | 2009-01-01T00:00:33 | 2008-12-31T23:59:60 | 33 | 1 230 768 000 | ajout d'une seconde intercalaire[12] |
5 | 2009-01-01T00:00:34 | 2009-01-01T00:00:00 | 34 | 1 230 768 000 | |
6 | 2009-01-01T00:00:35 | 2009-01-01T00:00:01 | 34 | 1 230 768 001 | |
7 | 2009-01-01T00:00:36 | 2009-01-01T00:00:02 | 34 | 1 230 768 002 |
L'Heure Posix n'est pas une représentation linéaire du temps, il y a des anomalies[12], comme la ligne 5 du tableau ci-dessus.
Il n'y a pas correspondance bijective entre l'heure UTC et l'heure Posix ; ce dernier ne permet pas de représenter les secondes intercalaires présentes dans UTC, comme la ligne 4 du tableau ci-dessus : 2008-12-31T23:59:60 UTC.
Temps écoulé entre deux événements
Il ne faut pas mĂ©langer ces diffĂ©rentes rĂ©fĂ©rences (par exemple, l'an zĂ©ro d'un calendrier ne commence pas au mĂȘme instant que celui d'un autre) et Ă©galement parce que tous ces calendriers ont besoin de s'adapter aux pĂ©riodicitĂ©s non multiples les unes des autres, par exemple les annĂ©es bissextiles, ou bien les irrĂ©gularitĂ©s de ces pĂ©riodicitĂ©s. Ces adaptations compliquent un petit peu les calculs, en fonction de la prĂ©cision que l'on recherche ; par exemple, il s'est Ă©coulĂ© un an peut ĂȘtre une information suffisante ou bien il faudra tenir compte du caractĂšre bissextile de l'annĂ©e pour rĂ©pondre Ă la mĂȘme question exprimĂ©e en nombre de jours. Cela veut dire qu'il faut conserver une mĂ©moire du passĂ©, la mĂ©moire de chaque seconde qui passe.
Dans la plupart des cas, une simple différence des heures Posix suffit, sauf si les deux événements sont à cheval sur une ou plusieurs secondes intercalaires. Pour calculer un délai exact en toutes circonstances, il faut tenir compte des secondes intercalaires.
Toutefois, l'occurrence des secondes intercalaires Ă©tant faible[13], la probabilitĂ© de commettre une telle erreur est donc faible ; et si malgrĂ© tout le cas se produit, alors l'amplitude de l'erreur est peut-ĂȘtre faible[14], et il n'y a dans ce cas pas besoin de se prĂ©occuper de ces secondes intercalaires ; le tableau ci-dessous montre diffĂ©rents exemples.
La méthode pour compléter une ligne de ce tableau est la suivante :
- si le dĂ©lai calculĂ© entre les deux Ă©vĂ©nements d'intĂ©rĂȘt est de l'ordre de M secondes, alors la probabilitĂ© qu'une seconde intercalaire soit dans cet intervalle est de M sur le nombre total N de secondes pendant une annĂ©e (c'est-Ă -dire en prenant pour hypothĂšse qu'une seconde intercalaire est ajoutĂ©e chaque annĂ©e),
- une année compte N = 365 x 24 x 3 600 = 31 536 000 secondes,
- la probabilitĂ© de commettre une erreur 1/M est donc de M/N = Mx3,2âŻĂâŻ10-8.
L'application de cette méthode pour des délais M=10, 100, 1000 donne le tableau suivant :
Délai à mesurer (M) | Probabilité d'erreur | Amplitude de l'erreur |
---|---|---|
10 s | 3,2âŻĂâŻ10-7 | 10 % |
100 s | 3,2âŻĂâŻ10-6 | 1 % |
1 000 s | 3,2âŻĂâŻ10-5 | 0,1 % |
Ă la limite, si le dĂ©lai Ă calculer entre les deux Ă©vĂ©nements d'intĂ©rĂȘt est d'un an, alors la probabilitĂ© est de 100 % de commettre une erreur de 3,2âŻĂâŻ10-8.
La probabilitĂ© de commettre une erreur donnĂ©e et l'amplitude de cette erreur varie inversement l'une de l'autre ; une autre façon de prĂ©senter les choses pourrait ĂȘtre de dire :
- si le dĂ©lai calculĂ© est petit, alors l'erreur peut ĂȘtre forte, mais la probabilitĂ© de la commettre est faible,
- si le délai calculé est grand, alors la probabilité de commettre l'erreur est forte, mais l'erreur est faible.
Si ce couple (probabilité de commettre une erreur / amplitude de l'erreur) est inacceptable, ou bien si on ne sait pas en évaluer l'impact, alors il est sûrement nécessaire de se poser la question de savoir pourquoi on utilise UTC et quel est le besoin de précision nécessaire, ou bien de prévoir l'usage de tables à mettre à jour dÚs que l'insertion/retrait d'une seconde intercalaire est programmé[8] - [15].
Conversion de l'heure UTC en heure Posix
Hormis les trÚs rares anomalies mentionnées précédemment à propos des secondes intercalaires, il est aisé de convertir une heure UTC en une heure Posix et inversement.
Exemple : Quelle est l'heure Posix en tout début de la journée du (ligne 5 du tableau 1 ci-dessus) :
- de l'Ă©poque Posix au , 39 annĂ©es se sont Ă©coulĂ©es dont 10 bissextiles[16] (voir tableau dâaide ci-dessous),
- soit 14 245 jours de 24x3 600=86 400 secondes chacun,
- soit 1 230 768 000 secondes écoulées depuis l'époque Unix, hors secondes intercalaires.
Nombre de jours écoulés | ||||
---|---|---|---|---|
1 970 | 1 971 | 1 972 | 1 973 | 3*365+366 = 1461 |
1 974 | 1 975 | 1 976 | 1 977 | 1461 |
1 978 | 1 979 | 1 980 | 1 981 | 1461 |
1 982 | 1 983 | 1 984 | 1 985 | 1461 |
1 986 | 1 987 | 1 988 | 1 989 | 1461 |
1 990 | 1 991 | 1 992 | 1 993 | 1461 |
1 994 | 1 995 | 1 996 | 1 997 | 1461 |
1 998 | 1 999 | 2 000 | 2 001 | 1461 |
2 002 | 2 003 | 2 004 | 2 005 | 1461 |
2 006 | 2 007 | 2 008 | 2*365+366 = 1096 | |
14 245 |
Il existe également des outils[17] qui réalisent ces calculs trÚs simplement, comme ce « shell script » pour convertir un nombre de secondes depuis l'époque Posix en une date :
#!/bin/sh # convertir un nombre de secondes depuis l'Ă©poque Posix # en date # exemple: date -u -R --date "1970-01-01 1230768000 seconds" date -u -R --date "1970-01-01 $* seconds"
Conversion d'une heure Posix en heure UTC
Le calcul inverse ne prĂ©sente pas de difficultĂ©, et de la mĂȘme façon il existe des outils[17] qui rĂ©alisent ces calculs trĂšs simplement, comme ce script bash pour convertir une date en un nombre de secondes depuis l'Ă©poque Posix :
#!/bin/sh # convertir une date (attention au format de l'argument) # en nombre de secondes depuis l'Ă©poque Posix # exemple: date --date "2009-01-01 00:00:00+00:00" "+%s" date --date "$*" "+%s"
Heure UNIX
Nombre limité d'années qu'un systÚme UNIX particulier peut représenter
La mĂ©thode plus courante pour lire l'heure sous Unix, est l'appel Ă la fonction suivante qui retourne une valeur numĂ©rique de type "time_tâ
".
time_t time(NULL);
Ce type time_t est couramment utilisé pour manipuler l'heure UNIX, malheureusement la norme POSIX n'en précise pas (clairement) la taille :
- si c'est une machine 32 bits, time_t sera vraisemblablement un entier signé 32 bits. Ce compteur permet de gérer une période totale de 232 secondes, soit à peu prÚs 136 années. La date la plus reculée est , et la plus avancée est .
- Lorsque cette date la plus avancée sera franchie, cette représentation va déborder (en), c'est-à -dire qu'elle ne sera plus capable de continuer à représenter l'heure Unix correctement. Ce problÚme est appelé le bug de l'an 2038. L'image animée ci-contre illustre le phénomÚne de débordement.Illustration du phénomÚne de débordement.
Heure Unix | UTC | |
---|---|---|
date la plus reculĂ©e : -231 | â2 147 483 648 | 1901-12-13 T 20:45:52 |
Ă©poque Unix : 0 | 0 | 1970-01-01 T 00:00:00 |
date la plus avancée : 231-1 | 2 147 483 647 | 2038-01-19 T 03:14:07 |
- si c'est une machine 64 bits, time t sera vraisemblablement un entier signé 64 bits ; les limites seront alors supérieures à 292 milliards d'années soit beaucoup plus que l'ùge de notre planÚte ou son espérance de vie.
Cette impossibilitĂ© de reprĂ©sentation ne met pas forcĂ©ment en cause le fonctionnement de la machine elle-mĂȘme, c'est-Ă -dire le fonctionnement de son systĂšme d'exploitation[18] mais le fonctionnement de ses applications et son interopĂ©rabilitĂ© avec les autres machines. En effet, il n'est pas suffisant qu'une machine sache localement gĂ©rer cette limite, mais il faut Ă©galement que toutes les machines qui lui sont connectĂ©es[19] soient capables de gĂ©rer cette limite et ce de la mĂȘme façon.
Plusieurs cas peuvent se présenter :
- soit on a affaire Ă un parc de machines bien maitrisĂ©es, c'est le cas par exemple des systĂšmes embarquĂ©s. Dans ce cas, une solution pour gĂ©rer cette frontiĂšre peut ĂȘtre de s'assurer que le parc de machines n'utilise que des applications dĂ©veloppĂ©es spĂ©cialement pour ĂȘtre robustes face Ă cette situation[20] - [21],
- soit on a affaire à un parc de machines trÚs hétérogÚnes et non maitrisées, c'est le cas par exemple des machines du monde entier qui sont connectées sur internet. Dans ce cas, une solution serait de généraliser le codage de cette heure Unix sur 64 bits à toutes les machines, y compris celles en 32 bits. On peut également raisonnablement espérer que toutes les machines seront au moins 64 bits à l'aube de 2038.
Utilisation d'une résolution inférieure à la seconde
Les systÚmes Unix entretiennent en général un compteur dont la résolution est plus fine que la seconde. Cette heure est accessible par un appel à la fonction suivante :
int gettimeofday(struct timeval *tv, NULL);
La valeur numĂ©rique retournĂ©e par cette fonction est mĂ©morisĂ©e dans la variable « struct timeval *tvâ
» définie de la façon suivante :
struct timeval { int tv_sec; /* secondes */ int tv_usec; /* microsecondes de 0 Ă 999999 */ };
L'emploi de cette rĂ©solution infĂ©rieure Ă une seconde amĂšne la question de savoir ce qui se passe lorsqu'une seconde intercalaire est ajoutĂ©e ou retranchĂ©e ? Il semblerait que ce point soit Ă la charge du systĂšme d'exploitation[22]. En l'absence de spĂ©cification claire, plusieurs scĂ©narios sont donc possibles en fonction du systĂšme d'exploitation considĂ©rĂ©[23] - [24]. Les trois exemples ci-dessous exposent les trois catĂ©gories de cas qui semblent les plus reprĂ©sentatives, ils ne traitent que l'aspect insertion d'une seconde intercalaire mais ils pourraient facilement ĂȘtre adaptĂ©s au cas de la suppression :
- l'horloge systĂšme peut ĂȘtre ajustĂ©e brutalement d'une seconde, ce qui donnera l'impression d'un retour en arriĂšre[25].
# | UTC | tv_sec | tv_usec | |
---|---|---|---|---|
4 | 2008-12-31T23:59:60.000 | 1 230 768 000 | 0 | |
2008-12-31T23:59:60.500 | 1 230 768 000 | 500 000 | ||
5 | 2009-01-01T00:00:00.000 | 1 230 768 000 | 0 | heure ajustée brutalement |
2009-01-01T00:00:00.500 | 1 230 768 000 | 500 000 | ||
6 | 2009-01-01T00:00:01.000 | 1 230 768 001 | 0 |
- l'horloge systĂšme peut ĂȘtre maintenue constante pendant une seconde pendant l'insertion de la seconde intercalaire. Cela signifie que l'heure ne reviendra pas en arriĂšre mais sera figĂ©e, en consĂ©quence le possible impact sur les applications devrait ĂȘtre en principe moindre[25].
# | UTC | tv_sec | tv_usec | |
---|---|---|---|---|
4 | 2008-12-31T23:59:60.000 | 1 230 768 000 | 0 | |
2008-12-31T23:59:60.500 | 1 230 768 000 | 0 | heure figée | |
5 | 2009-01-01T00:00:00.000 | 1 230 768 000 | 0 | heure figée |
2009-01-01T00:00:00.500 | 1 230 768 000 | 500 000 | ||
6 | 2009-01-01T00:00:01.000 | 1 230 768 001 | 0 |
- l'horloge systĂšme peut ĂȘtre ralentie pour compenser l'insertion de la seconde intercalaire[25].
# | UTC | tv_sec | tv_usec | |
---|---|---|---|---|
4 | 2008-12-31T23:59:60.000 | 1 230 768 000 | 0 | |
2008-12-31T23:59:60.500 | 1 230 768 000 | 250 000 | heure ralentie | |
5 | 2009-01-01T00:00:00.000 | 1 230 768 000 | 500 000 | heure ralentie |
2009-01-01T00:00:00.500 | 1 230 768 000 | 750 000 | heure ralentie | |
6 | 2009-01-01T00:00:01.000 | 1 230 768 001 | 0 |
Utilisation du TAI
L'idée d'utiliser le temps atomique international a déjà été proposée et défendue par de nombreuses personnes[26], mais ce n'est pas le sens qui a été donné par l'histoire, le choix retenu fut celui qui aujourd'hui est figé par la norme POSIX.
Daniel J. Bernstein a Ă©galement Ă©crit des articles et logiciels[21] pour l'utilisation de TAI sur des systĂšmes de type UNIX.
Gigaseconde Unix
La gigaseconde Unix désigne l'heure Unix 109, qui représente le .
Notes et références
- l'heure Unix au moment oĂč cette page fut gĂ©nĂ©rĂ©e
- POSIX est une marque déposée de « IEEE » ; UNIX est une marque déposée de « The Open Group ».
- On pourra également consulter (en) Epoch time vs. time of day pour une discussion sur certains aspects légaux, et également les autres pages de ce site ; en particulier (en) Plots of deltas between time scales pour comparer les écarts entre différentes références.
- Il ne faudrait pas penser que cette liste est aussi courte, on pourra consulter (en) Time Scales pour une liste plus exhaustive et précise.
- Lâutilisation de lâancienne appellation standard « temps moyen de Greenwich » (GMT, de lâanglais « Greenwich Mean Time ») est dĂ©sormais dĂ©conseillĂ©e parce que sa dĂ©finition est ambiguĂ«, au contraire dâUTC, qui doit lui ĂȘtre prĂ©fĂ©rĂ©e. Ce sigle sâĂ©tait imposĂ© par la prĂ©pondĂ©rance de la marine britannique durant le XIXe siĂšcle et fut plus tard rebaptisĂ© Temps universel (UT, de lâanglais Universal Time). Comme le temps UTC est le temps civil du mĂ©ridien origine des longitudes Ă Greenwich, certains ont tentĂ© de prolonger lâusage de GMT en le traduisant dĂ©sormais par « Greenwich Meridian Time » mais ce glissement sĂ©mantique nâa aucune valeur officielle.
- Voir l'article (en) Greenwich Mean Time| l'utilisation de GMT dans la législation.
- Dans lâĂ©chelle UTC, les secondes et tous les autres sous-multiples (milliseconde, microseconde, etc.) sont de durĂ©e constante, mais la minute et toutes les unitĂ©s supĂ©rieures (heure, jour, semaine, etc.) sont de durĂ©e variable. Lâajout ou la suppression de ces secondes intercalaires est rare, de lâordre d'une seconde sur une Ă trois annĂ©es. La plupart des jours UTC comportent 86 400 secondes, la plupart des heures 3 600 secondes, et la plupart des minutes 60 secondes mais certains peuvent comporter respectivement 86 401 s ou bien 86 399 s, 3 601 s ou bien 3 599 s et 61 s ou bien 59 s.
- Si on traçait sur un graphique similaire la diffĂ©rence entre UT1 et TAI, on verrait UT1 et TAI s'Ă©loigner progressivement l'un de l'autre au rythme du ralentissement de la rotation de la Terre ; de mĂȘme, on verrait UTC et TAI s'Ă©loigner l'un de l'autre par bons successifs au rythme de l'ajout/suppression des secondes intercalaires.
- Cet ajout (ou suppression) a lieu soit la fin de la derniĂšre minute du dernier jour du mois prĂ©cĂ©dant le 1er juillet ou le 1er janvier, exceptionnellement cela peut ĂȘtre le 1er avril ou le 1er octobre, et est annoncĂ© 6 mois Ă l'avance par l'IERS via son (en) BULLETIN C - Product metadata. En mars 2009, il nây a jamais eu de suppression de secondes intercalaires, et vraisemblablement il n'y en aura jamais compte tenu du fait que la vitesse de rotation de la terre diminue inexorablement. Il pourra ĂȘtre intĂ©ressant de consulter les autres bulletins de l'IERS (en) IERS Bulletins.
- Les secondes intercalaires futures sont prĂ©vues avec une anticipation de six mois au maximum, c'est le rythme Ă lequel l'IERS diffuse son bulletin de prĂ©vision. Pour les valeurs passĂ©es on peut faire usage dâune table.
- Il y a une difficultĂ© avec cette dĂ©finition, dans le sens qu'UTC n'existait pas avant 1972 ; cette difficultĂ© est contournĂ©e en utilisant des nombres nĂ©gatifs pour une date antĂ©rieure Ă l'Ă©poque ; ainsi 04-10-1957T00:00:00Z, 4 472 jours avant l'Ă©poque, est reprĂ©sentĂ© par l'heure POSIX â4 472 Ă 86 400 = â386 380 800.
- Voir Leap Seconds.
- Un PC ne va pas spontanĂ©ment ralentir/accĂ©lĂ©rer son compteur interne par lui-mĂȘme ; l'ajustement peut ĂȘtre fait par l'utilisateur ou bien plus vraisemblablement, s'il est connectĂ© Ă internet, de façon automatique et quasi-silencieuse par un service d'horloge, gĂ©nĂ©ralement il s'agit de NTP.
- Le graphique ci-dessus montre que la période d'insertion d'une seconde intercalaire est entre une et trois années.
- Plus le délai est grand et plus l'impact d'une seconde d'erreur est faible et inversement.
- Pour que cette derniĂšre mĂ©thode soit utilisable Ă bord d'un systĂšme embarquĂ©, cela nĂ©cessiterait la mise en Ćuvre d'une mise Ă jour automatique et en temps rĂ©el de la table.
- Une annĂ©es est bissextile si elle est multiple de 4, mais non multiple de 100 sauf si multiple de 400 (exemple, 2000 Ă©tait bissextile). Lâapplication de cette rĂšgle montre quâil est suffisant de tester la divisibilitĂ© par 4 entre 1901 et 2099.
- Voir par exemple ce (en) Convertisseur secondes / date.
- Par exemple, le systÚme d'exploitation Linux continue à fonctionner au-delà de cette date la plus avancée.
- Il faut comprendre le mot connecté au sens large, cela concerne la connexion ethernet, mais également l'échange de fichiers via des disques amovibles pour lesquels la datation des fichiers est un point important, pour les sauvegardes par exemple.
- On pourra consulter avec intĂ©rĂȘt le (en) site web consacrĂ© Ă la dissĂ©mination de l'information Ă propos du bug de l'annĂ©e 2038 qui fournit une solution pour fonctionner jusqu'en 2106, aussi bien sur les machines 32 bits que 64 bits.
- On pourra Ă©galement considĂ©rer l'usage du TAI et consulter avec intĂ©rĂȘt les articles Ă©crit par D. J. Bernstein Ă ce sujet :
- UTC, TAI, and UNIX time un article général sur ce sujet,
- libtai une bibliothĂšque pour manipuler TAI sur un systĂšme de type UNIX,
- clockspeed qui est le plus simple des clients SNTP/NTP.
- Voir (en) The NTP Timescale and Leap Seconds.
- Un article (en) Leap Second Handling by Operating Systems expose 3 cas possibles. Il est dit : « Linux kernels and most other Unix-like systems care about the leap seconds and handle them correctly. » mais sans réellement préciser ce que correctly signifie au juste.
- Voir (en) Five different ways to handle leap seconds with NTP
- Comme exemple pour Ă©valuer l'impact de ces diffĂ©rents scĂ©narios, on pourrait imaginer un instrument de mesure de vitesse qui mesure le dĂ©lai Ă©coulĂ© pour une distance parcourue donnĂ©e : dans le 3e cas, la vitesse sera surestimĂ©e, au maximum dans un rapport 2, et dans les deux premiers cas d'un rapport qui pourra ĂȘtre infini. On se rappellera tout de mĂȘme que la probabilitĂ© d'occurrence d'un tel phĂ©nomĂšne est rarissime, voir plus haut
- Voir en particulier (en) History of IEEE P1003.1 POSIX time by Landon Curt Noll (en).
Voir aussi
Articles connexes
Liens externes
- (en) History of IEEE P1003.1 POSIX time by Landon Curt Noll (en)
- (fr) Institut de Mécanique Céleste et de Calcul des Ephémérides (Observatoire de Paris - Bureau des longitudes - CNRS)
- (en) International Earth Rotation and Reference Systems Service (IERS)
- (en) The Future of Leap Seconds in UTC by Steve Allen
Bibliographie
- (en) The Authorized Guide to Version 3 of the Single UNIX Specification (version librement accessible de IEEE Std 1003.1, 2004 Edition)