2009-07-07 25 views

Respuesta

358

Versiones anteriores del tiempo del sistema medido de Unix en intervalos de 1/60 s. Esto significaba que un entero sin signo de 32 bits solo podía representar un lapso de tiempo inferior a 829 días. Por esta razón, el tiempo representado por el número 0 (llamado epoch) tuvo que establecerse en el pasado más reciente.Como esto fue a principios de la década de 1970, la época se estableció en 1971-1-1.

Más tarde, la hora del sistema se modificó para aumentar cada segundo, lo que aumentó el lapso de tiempo que podría representar un entero sin signo de 32 bits a alrededor de 136 años. Como ya no era tan importante exprimir cada segundo del mostrador, la época se redondeó a la década más cercana, convirtiéndose así en 1970-1-1. Uno debe suponer que esto se consideró un poco más limpio que 1971-1-1.

Tenga en cuenta que una de 32 bits firmado número entero usando 01/01/1970 como su época puede representar fechas hasta 2038-1-19, fecha en la cual se ajustará alrededor de 13/12/1901.

+25

¿Tiene 1/60 algo que ver con la frecuencia de la red eléctrica estadounidense? – xtofl

+47

Es la frecuencia de uno de los osciladores en las placas del sistema utilizadas en ese momento. No era necesario que el oscilador fuera de 60 Hz ya que funcionaba con corriente continua, pero probablemente era barato usar lo que fuera más común en ese momento, y los televisores se producían en serie entonces ... –

+16

En realidad, en ese momento, era muy común que los relojes de la computadora y los RTC se sincronizaran con la forma de onda de la red de los EE. UU. porque era (¿es?) muy confiable. Se multiplicó para obtener el reloj del procesador, y se dividió para obtener segundos para el RTC. – Alexios

-7

Respuesta corta: ¿Por qué no?

Respuesta más larga: El tiempo en sí realmente no importa, siempre y cuando todos los que lo usan estén de acuerdo en su valor. Como 1/1/70 ha estado en uso durante tanto tiempo, su uso hará que el código sea lo más comprensible posible para el mayor número de personas posible.

No hay gran mérito en elegir una época arbitraria simplemente para ser diferente.

+1

Pero por qué 1970 se elige como el año. – rahul

+33

Porque Unix se desarrolló en 1969 y se lanzó por primera vez en 1971, por lo que era razonable suponer que ninguna máquina tendría que representar un sistema antes de 1970-01-01-00: 00: 00. –

+3

Como desarrollador de juegos de simulación histórica, parece bastante tonto que los diseñadores de algunos objetos de tiempo tienden a asumir todos los programas sólo va a querer representar fechas en el futuro o en el pasado reciente. Por supuesto, podemos programar nuestras propias representaciones, o trabajar en un factor de ajuste, pero aún así. – Dronz

43

History.

las primeras versiones de Unix tiempo tenían un entero de 32 bits incrementando a un ritmo de 60 Hz, que fue la tasa de el reloj del sistema en el hardware de los primeros sistemas Unix. El valor 60 Hz todavía aparece en algunas interfaces de software como resultado. La época también difería del valor actual. El primera edición Unix del programador Manual fecha 3 de noviembre, 1,971 define el tiempo Unix como "el tiempo desde 00:00:00, de enero 1, 1971, medido en sexagésimos de un segundo".

+1

El tiempo de la época es el 1 de enero de 1970, no el 1 de enero de 1971. –

+71

@Steve: Históricamente, él tiene razón, estás equivocado. ;-) – Stobor

7

http://en.wikipedia.org/wiki/Unix_time#History explica un poco sobre los orígenes del tiempo Unix y la época elegida. La definición de tiempo Unix y la fecha de época pasó por un par de cambios antes de estabilizarse en lo que es ahora.

Pero no dice por qué se eligió exactamente 1/1/1970 al final.

extractos notables de la página de Wikipedia:

El primera edición del Manual del Programador Unix fecha 3 de noviembre, 1971, define el tiempo Unix como "el tiempo desde las 00:00:00, Jan. 1, , medido en sexagésimas de segundo ".

Debido a [el] rango limitado, la época fue redefinida más de una vez, antes de que se cambiara la frecuencia a 1 Hz y la época se estableció en su valor actual.

Varios problemas posteriores, incluida la complejidad de la presente definición, resultan del tiempo Unix que se ha definido gradualmente por el uso en lugar de totalmente definido para empezar.

Cuestiones relacionadas