Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

cr  26.09.2019      r+  01.06.2024      r-  15.07.2024      Pierre Pinard.         (Alertes et avis de sécurité au jour le jour)

En informatique, une époque (epoch en anglais) est une date et une heure à partir desquelles un ordinateur mesure l' heure du système. La plupart des systèmes informatiques déterminent l'heure en tant que nombre représentant les secondes retirées d'une (ou ajoutées à une) date et heure arbitraires. Par exemple :

  • Les systèmes d'exploitation Unix et POSIX mesurent le temps comme le nombre de secondes écoulées depuis le 1er janvier 1970 à 00:00:00 UT (temps universel), à un moment donné appelé l' « époque Unix ».
  • Les systèmes d'exploitation Windows, à partir de la version Windows NT et suivantes, mesurent le temps par intervalles de (10-7) à partir de 00.00 H le 1er janvier 1601, à un moment donné appelé l' « l'heure de l'époque NT ».

Les époques informatiques sont presque toujours spécifiées comme « heure universelle de minuit à une date donnée ».




Les systèmes de mesure du temps des logiciels varient considérablement dans la précision de cette mesure (granularité). Certains systèmes peuvent utiliser des unités de temps d'une journée, alors que d'autres peuvent utiliser des nanosecondes. Par exemple, pour une date époque de minuit UTC (00:00) le 1er janvier 1900, et une unité de temps d'une seconde, le temps entre minuit (24h00) du 1er janvier 1900 et minuit du 2 janvier 1900 est représenté par le nombre 86400 (nombre de secondes dans une journée). Lorsque les périodes antérieures à l'époque doivent être représentées, il est courant d'utiliser le même système, mais avec des nombres négatifs.

Cette représentation du temps est principalement destinée à un usage interne. Sur les systèmes où la date et l'heure sont importantes au sens humain du terme, les logiciels convertissent presque toujours ce numéro interne en une date et une heure représentatives dans un calendrier humain.




Il existe au moins six systèmes de navigation par satellite qui fonctionnent tous en transmettant des signaux horaires. Le GPS calcule le signal horaire d'une époque parmi les deux seuls systèmes satellites offrant une couverture mondiale, tandis que GLONASS calcule l'heure en décalage par rapport à l'heure UTC, l'entrée UTC étant ajustée en fonction des secondes intercalaires. Parmi les deux autres systèmes visant une couverture mondiale, Galileo calcule à partir d'une époque et Beidou calcule à partir de l'UTC sans ajustement pour les secondes intercalaires. Le GPS transmet également le décalage entre l'heure UTC et le temps GPS et doit le mettre à jour chaque fois qu'il y a une seconde intercalaire, ce qui oblige les appareils de réception GPS à gérer correctement la mise à jour. En revanche, les secondes intercalaires sont transparentes pour les utilisateurs de GLONASS. Les complexités du calcul du temps UTC à partir d'une époque sont expliquées dans la documentation Galileo de l'Agence spatiale européenne dans la rubrique « Équations pour corriger le délai système par rapport au délai de référence ».




Les ordinateurs ne stockent pas de grands nombres de manière libre et anarchique. Il s'agit de ne pas gaspiller des espaces mémoire. Chaque nombre stocké par un ordinateur se voit attribuer une quantité d'espace fixe. Par conséquent, lorsque le nombre d'unités de temps qui se sont écoulées depuis l'époque d'un système dépasse le plus grand nombre pouvant tenir dans l'espace alloué à la représentation temporelle, la représentation temporelle déborde et des problèmes peuvent survenir. Alors que le comportement d'un système, après un débordement, n'est pas nécessairement prévisible, dans la plupart des systèmes, le nombre représentant l'heure sera remis à zéro et le système informatique continuera avec une date et heure dans l'époque du système, mais complètement fausse.

Le plus célèbre problème publiquement connu de ce type est celui des systèmes anciens qui comptaient le temps comme le nombre d'années écoulées depuis l'époque du 1 er janvier 1900 et qui laissaient un espace juste suffisant pour stocker les nombres de 00 à 99. Ces systèmes ont rencontré le fameux « bug de l'an 2000 ». Ces systèmes, s'ils n'étaient pas corrigés au préalable, interprétaient la date du 1er janvier 2000 comme étant celle du 1er janvier 1900, ce qui a donné lieu à des erreurs imprévisibles au début de l'année 2000.




En informatique, la date charnière d'une époque (epoch) varie considérablement en fonction des arbitraires des différents systèmes d'exploitation ou logiciels. En voici quelques exemples :

Date de démarrage de l'époque

Usages principaux (systèmes ou logiciels)

Raison de cette sélection

0 janvier 0

MATLAB

Calendrier proleptique (relatif à la prolepse) . Cordonnées temporelles établies d'après un système de mesure du temps qui n'était pas encore établi lors du fait en question. Ici, il s'agit du calendrier grégorien proleptique qui sert à noter des événements s'étant produits avant 1582.

1er janvier 1

Microsoft .NET, Go, REXX, Rata Die

Calendrier proleptique (relatif à la prolepse) . Cordonnées temporelles établies d'après un système de mesure du temps qui n'était pas encore établi lors du fait en question. Ici, il s'agit du calendrier grégorien proleptique qui sert à noter des événements s'étant produits avant 1582.
Ère commune (veut remplacer les locutions « apr. J.-C./av. J.-C. » et commence en l'an 1 (ce qui pose le problème de l'abscence d'an 0), ISO 2014, RFC 3339

15 octobre 1582

UUID version 1

Date de bascule du calendrier grégorien

1er janvier 1601

NTFS, COBOL (développé par Grace Hopper), Win32/Win64

1601 était la première année des cycles de 400 ans du calendrier grégorien à l'époque où Windows NT a été codé.

31 décembre 1840

MUMPS

1841 une année non-bissextile avant la naissance du plus vieux citoyen américain vivant au moment du codage de ce langage de programmation.

17 novembre 1858

VMS, United States Naval Observatory, DVB SI 16-bit day stamps, other astronomy-related computations

Ce jour à 00:00:00 UT est le point de démarrage du calendrier julien modifié (MJD) equivalent au jour Julien 2400000.5

30 décembre 1899

Microsoft COM DATE, Object Pascal, LibreOffice Calc, Google Sheets

Valeur technique interne à Excel pour assurer la compatilibité avec Lotus 1-2-3.

31 décembre 1899

Microsoft C, Microsoft C++ 7.0

Un écart dans la dernière version non "visual" de Microsoft C/C++ qui a été finalement annulé.

0 janvier 1900

Microsoft Excel, Lotus 1-2-3

Alors que le 0 janvier 1900 devrait être l'équivalent du 31 décembre 1899, ces systèmes n'autorisent pas cette date à cause d'un bug plaçant 1900 comme une année bissextile.

1er janvier 1900

Network Time Protocol, IBMCICS, Mathematica, RISC OS, VME, Common Lisp, Michigan Terminal System, MVS

1er janvier 1904

LabVIEW, Apple Inc., Classic Mac OS, JMP Scripting Language, Palm OS, MP4, Microsoft Excel (optionally), IGOR Pro

1904 est la première année bissextile du XXe siècle.

1er janvier 1958

TAI

1er janvier 1960

SAS System

31 décembre 1967

Pick OS et variantes (jBASE, Universe, Unidata, Revelation, Reality)

Choisi de manière que (date mod 7) 0=Dimanche, 1=Lundi, 2=Mardi, 3=Mercredi, 4=Jeudi, 5=Vendredi, et 6=Samedi.

1er janvier 1970

Unix Epoch, connu également comme POSIX time, utilisé par Unix et les systèmes basés sur Unix (Linux, macOS), et la plupart des langages de programmation comme les implémentations du C/C++, Java, JavaScript, Perl, PHP, Python, Ruby, TCL, ActionScript. Utilisé également par PTP.

Excel - Convertir un timestamp en date et heure

January 1, 1978

AmigaOS (Les systèmes matériels Commodore Amiga ont été introduits entre 1985 et 1994. Dernière version OS 4.1 [décembre 2016]). AROS, MorphOS.

January 1, 1980

IBM BIOS INT 1Ah
Systèmes de fichiers DOS, OS/2, FAT12, FAT16, FAT32, exFAT

L'IBM PC avec son BIOS, aussi bien que 86-DOS, MS-DOS et PC DOS avec leur système de fichiers FAT12 furent développés et introduit entre 1980 et 1981

January 6, 1980

QualcommBREW, GPS (géolocalisation), ATSC 32-bit time stamps

Le GPS compte le nombre de semaines (une semaine commence le dimanche) et le 6 janvier est le premier dimanche de 1980.

January 1, 2000

AppleSingle, AppleDouble, PostgreSQL, ZigBee UTCTime

January 1, 2001

Apple Cocoa framework

2001 est l'année de la sortie de Mac OS X 10.0 (mais NSDate pour EOF 1.0 d'Apple a été développé en 1994).


Le temps est mesuré en nombre d'unités de temps depuis cette date. L'unité de temps la plus courante est la seconde. Il arrive que l'unité ne soit pas spécifiée et que l'on parle de tick, qui est la plus petite unité de temps gérée par le système d'exploitation.