Pourquoi le temps Unix commence-t-il au 01/07/1970?


Réponses:


28

Je n'aurais pas su la réponse sauf que Google était là pour moi:

D' ici (nécessite un abonnement gratuit):

Linux suit la tradition établie par Unix de compter le temps en secondes depuis son "anniversaire" officiel - appelé "époque" en termes informatiques - qui est le 1er janvier 1970.

Une explication plus complète peut être trouvée dans cet article de Wired News . Cela explique que les premiers ingénieurs Unix ont choisi cette date de manière arbitraire, car ils devaient définir une date uniforme pour le début des temps, et le jour du Nouvel An 1970 semblait plus commode.


5

Unix n'est pas né en 1970.

Le 1er janvier 1970, à minuit, nous sommes à minuit. Rappelez-vous que ce n'est pas "l'anniversaire" d'Unix - des versions approximatives du système d'exploitation existaient déjà dans les années 1960. Au lieu de cela, la date a été programmée dans le système au début des années 70 uniquement parce que cela était pratique, selon Dennis Ritchie, l'un des ingénieurs qui a travaillé sur Unix chez Bell Labs à sa création.


Pratique à l'époque, peu pratique pour les développeurs du monde entier depuis.
Chris Halcrow

3
@ChrisHalcrow: qu'auriez-vous choisi comme temps 0 si vous étiez dmr? Et comment le choix est-il gênant pour les développeurs? L’inconvénient est que la mesure du temps en termes "humains" (années, mois, jours, heures / minutes / secondes, fuseaux horaires, heure avancée du jour) est compliquée et non pas parce que certains (arbitraire) $ t = 0 $ instant ont été choisis.
NickD

@ NickD, bonne invite pour une explication et un bon point! Je choisirais 00:00:00 du CE 0 cependant, car je suis convaincu que cela faciliterait les choses un peu plus facilement à calculer. S'il vous plaît expliquer ce qu'est «dmr»? Aussi, ironiquement, le fait que le PO exige une explication de la raison pour laquelle cette date a été choisie montre qu'il est intrinsèquement déroutant de comprendre l'utilisation du 01/01/70 comme date de référence!
Chris Halcrow

2
@ChrisHalcrow: dmr = Dennis Ritchie. Avez-vous calculé le nombre de secondes depuis votre origine choisie jusqu'à aujourd'hui? Combien de bits cela nécessite-t-il? Le PDP-11 avait des registres et des mots de 16 bits, mais il vous permettait de regrouper deux registres et deux mots pour créer des registres de 32 bits et des mots doubles pour certaines opérations. Cela vous donne +/- 68 ans à partir de votre temps 0 (ou +136 ans si votre temps n’était pas signé - mais dmr a choisi signé). Son choix est peut-être un peu mystificateur la première fois que vous le voyez, mais c'est une décision assez évidente compte tenu de ce qui précède ...
NickD

1
@ NickD - excellente explication! Cela devrait faire partie de la réponse acceptée - pourquoi ne pas déplacer votre commentaire là-bas et nous pouvons supprimer le nôtre d'ici?
Chris Halcrow

1

J'aime la question :-)

Permettez-moi d'essayer d'y répondre (source ofcourse source: internet)

Le temps Unix est représenté par un nombre entier de 32 bits (un entier) qui peut être positif ou négatif (signé). Unix a été développé à l'origine dans les années 1960 et 1970; le "début" de l'heure Unix a donc été défini le 1er janvier 1970 à minuit GMT (heure de Greenwich) - cette date / heure s'est vue attribuer la valeur 0 de l'heure Unix. comme l'époque Unix.

Un entier signé sur 32 bits peut représenter des nombres entiers compris entre -2147483648 et 2147483647. Étant donné que l'heure Unix commence à 0, les valeurs d'heure Unix négatives remontent dans le temps depuis l'époque et les nombres positifs avancent dans le temps. Cela signifie que l'heure Unix s'étend de la valeur de l'heure Unix de -2147483648 ou 20:45:52 GMT le 13 décembre 1901 à la valeur de l'heure Unix du 2147483647 ou de 3:14:07 GMT le 19 janvier 2038. Ces dates représentent le début, le pré-histoire et la fin de l'heure Unix.

La fin du temps Unix aura lieu le 19 janvier 2038 à 03:14:07 GMT. Le 19 janvier 2038, 03:14:08 GMT, tous les ordinateurs utilisant encore l'heure Unix 32 bits débordent. C'est ce qu'on appelle le "problème de l'année 2038". Certains pensent que ce sera un problème plus important que le "problème de l'an 2000". Pour résoudre le problème de l'année 2038, le correctif consiste à stocker l'heure Unix dans un entier 64 bits. Ceci est déjà en cours dans la plupart des systèmes d'exploitation 64 bits, mais de nombreux systèmes peuvent ne pas être mis à jour d'ici 2038.


5
En réalité, un seul paragraphe de cette question aborde la question, et elle est quelque peu imprécise (l'époque
Michael Mrozek


1
Thats Right Michael. From Wikipedia: Les premières versions de l'heure Unix avaient un entier de 32 bits incrémenté à une fréquence de 60 Hz, soit la fréquence de l'horloge système sur le matériel des anciens systèmes Unix. En conséquence, la valeur 60 Hz apparaît toujours dans certaines interfaces logicielles. L'époque diffère également de la valeur actuelle. La première édition du Manuel du programmeur Unix du 3 novembre 1971 définit l'heure Unix comme "l'heure écoulée depuis le 1er janvier 1971 à 00:00:00, mesurée en soixantième de seconde".
Nikhil Mulley

@Nikhil Je ne comprends toujours pas pourquoi 1970, uniquement parce qu'Unix a été développé à cette époque? Pourquoi pas 1960? ou mois différent jour différent?
Templier

@Nikhil ou ce n'est pas grave? Le premier jour, le premier jour semble meilleur et il a été fabriqué en 1971 pour que 1970 soit aussi meilleur?
Templier
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.