¿Qué es la época de Unix y cuándo fue la época de Unix?

¿Qué es la época de Unix y cuándo fue la época de Unix?

¿Por qué Unix tiene su propio concepto de tiempo? ¿Cuál es la época y cuál es el problema de Y2038?





La hora Unix es un medio para representar una fecha y hora específicas, utilizada por Linux, macOS y muchos otros sistemas interoperables. Está tan extendido que probablemente lo esté utilizando sin darse cuenta. Sin embargo, una vez que comprenda el tiempo de Unix, lo detectará en muchos contextos. Varias herramientas pueden ayudarlo a trabajar con tiempo Unix.





¿Cuál es el propósito de Unix Time?

El tiempo de Unix es un recuento de segundos totales desde una fecha y hora fija. Es un formato de fecha / hora (o marca de tiempo) que se ve diferente de las fechas y horas legibles por humanos a las que estamos acostumbrados. Esto es puramente por razones de eficiencia. Se necesita mucho menos espacio para almacenar un solo número que representa segundos que para almacenar valores separados para el año, mes, hora, etc.





Por supuesto, en términos modernos, la diferencia de espacio no es tanta. Pero considere que Unix se originó a fines de la década de 1960 cuando el almacenamiento disponible era mucho más pequeño. Las marcas de tiempo también se usan mucho, por lo que su almacenamiento se acumula. Por ejemplo, cada archivo tiene tres marcas de tiempo asociadas.

El formato es prácticamente imposible de traducir en tu cabeza a menos que seas un genio matemático. Pero todavía tiene algunas ventajas sobre alternativas más legibles como Mié, 21 de Octubre de 2015 07:28:00 GMT . Puede solicitar dos marcas de tiempo de Unix muy fácilmente, de un vistazo. También suele ser más rápido calcular la diferencia entre dos marcas de tiempo. Esto es particularmente cierto para fechas cercanas, como en días adyacentes.



Sobre la Época

Entonces, el tiempo de Unix es una cuenta total de segundos desde un punto específico en el tiempo. Pero, ¿cuál es ese momento en el tiempo? Su 00:00:00 UTC sobre 1 de enero de 1970 . Esto a menudo se conoce como la época de Unix. Los programadores eligieron esta fecha para la época por conveniencia, ya que era la fecha más cercana cuando inventaron la hora Unix.

Es posible que haya visto esta fecha cuando algo salió mal. Claramente es un error, pero se ve muy extraño cuando resulta en una fecha anterior a la época en que muchos de nosotros nacimos. Sin embargo, es completamente comprensible cuando se conoce la época de Unix. Si algún sistema está intentando mostrar una marca de tiempo que no tiene ningún valor, a menudo se traducirá a 0 y dará como resultado la fecha de época exacta.





¿Dónde está el micrófono en los airpods?

El formato de datos de tiempo de Unix

Estrictamente hablando, no hay ninguno. El tipo de datos original era un entero de 32 bits y, a menudo, este sigue siendo el caso, incluso en sistemas mucho más potentes.

Este tipo de datos permite que el valor almacene un total de 2 ^ 32 segundos, que es un poco más de 136 años. Este valor suele estar firmado, lo que significa que puede ser negativo o positivo. Por lo tanto, generalmente representa 68 años a cada lado de la época, es decir, 1902-2038.





Este es todavía un período limitado, por supuesto. Pero el uso principal del formato de marca de tiempo fue para conceptos como la modificación de archivos. La necesidad era más que representar un tiempo cercano al presente, en lugar de la historia antigua o en el futuro lejano. Incluso para aplicaciones como calendarios, rara vez es necesario representar fechas de más de unas pocas décadas en el futuro.

Pero eso no significa que este período de tiempo limitado no tenga problemas ...

El problema del año 2038

El error Y2K (uno de los peores errores de programación de la historia) afectó a los sistemas informáticos que almacenaban años como valores de dos dígitos. Cuando llegó el año 2000, dichos sistemas lo trataron como si fuera 1900. En realidad, esto no fue tan catastrófico como se temía, principalmente porque muchas personas dedicaron mucho tiempo y esfuerzo a prepararse para ello.

Si prestaste atención en la sección anterior, es posible que hayas detectado un problema similar que podría afectar la hora de Unix. Bueno, la hora de Unix tiene un problema de datos propio: el problema Y2k38. (A menudo se lo considera un problema, no un error; ¡quizás nos hemos vuelto más optimistas desde el año 2000!) Cuando el tiempo de Unix literalmente se agote en 2038, los sistemas tratarán las nuevas fechas como 1902 o 1970. O posiblemente ' Simplemente fallaré por completo.

Al menos este problema no nos golpeará al filo de la medianoche de la víspera de Año Nuevo. El último segundo del tiempo Unix de 32 bits caerá el 19 de marzo. En la eventualidad, es probable que actualice la mayoría de los sistemas para 2038 o estarán obsoletos de todos modos.

Algunos recursos útiles sobre marcas de tiempo

los Convertidor de época site es posiblemente el conversor de marcas de tiempo más completo disponible. Comienza mostrando la hora actual de Unix, en tiempo real, y agrega casi todas las funciones imaginables además de eso. Su uso principal es la conversión entre marcas de tiempo y fechas legibles por humanos, en ambas direcciones.

Dan's Tools es una gran colección de aplicaciones web útiles, una de las cuales es convertidor de marca de tiempo . Es más básico, pero tiene una presentación muy limpia y es fácil de usar.

Time.is presenta otro aspecto aún más minimalista. Muestra la hora en varios formatos, incluida la hora Unix. Incluye la hora actual en el título de su página, lo cual es útil.

Uso de Unix Time con herramientas de línea de comandos

En Linux y macOS, el fecha El programa es la utilidad principal para lidiar con la fecha / hora, incluidas las marcas de tiempo de Unix. Llamado sin ningún argumento, devuelve la fecha / hora actual en un formato legible por humanos:

|_+_|

Si necesita la fecha / hora actual en tiempo Unix, use el +% s argumento:

|_+_|

Puede convertir una fecha legible por humanos en una marca de tiempo utilizando la -D marca si tu versión de fecha lo apoya. La mayoría de las versiones de Linux deberían, de forma predeterminada:

|_+_|

Donde bonito, fecha es un programa diferente, que requiere un conjunto diferente de banderas:

|_+_|

Yendo en la otra dirección, puede convertir desde una marca de tiempo Unix usando el -r bandera:

|_+_|

Algunos otros programas usan el %s formato para hacer frente a la hora Unix. Por ejemplo, si desea mostrar la fecha de modificación de un archivo en tiempo Unix, con el Versión de Linux de ls , puede utilizar lo siguiente:

|_+_|

Cómo usar Unix Time en lenguajes de programación

PHP tiene la tiempo() función que devuelve la marca de tiempo actual de Unix. Su fecha() La función toma una marca de tiempo como segundo argumento:

|_+_|

JavaScript se acerca a las cosas de una manera interesante. Tiene un Date.now() método para obtener el número de milisegundos desde la época de Unix. Por supuesto, puede dividir esto por 1,000 y redondear el resultado para obtener el tiempo Unix equivalente en segundos:

|_+_|

Entendiendo el tiempo de Unix

El tiempo Unix es un concepto simple que surge en muchos lugares. Una vez que lo entienda, puede que le resulte bastante útil, por ejemplo, al calcular las diferencias horarias. También puede reconocer cuándo puede ser la causa de ciertos errores.

Conceptos como la época y las marcas de tiempo son una parte importante para comenzar con Linux. Para obtener más información sobre elementos esenciales como ls , consulte nuestra guía de comandos básicos de Linux.

Cuota Cuota Pío Correo electrónico 9 comandos básicos para comenzar con Linux

¿Quiere familiarizarse con Linux? Comience con estos comandos básicos de Linux para aprender las tareas informáticas estándar.

Leer siguiente
Temas relacionados Sobre el Autor Bobby Jack(58 Artículos publicados)

Bobby es un entusiasta de la tecnología que trabajó como desarrollador de software durante la mayor parte de dos décadas. Es un apasionado de los juegos, trabaja como editor de reseñas en Switch Player Magazine y está inmerso en todos los aspectos de la publicación en línea y el desarrollo web.

Más de Bobby Jack

Suscríbete a nuestro boletín

¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!

Haga clic aquí para suscribirse