O que é a época do Unix e quando foi a época do Unix?

O que é a época do Unix e quando foi a época do Unix?

Por que o Unix tem seu próprio conceito de tempo? Qual é a época e qual é o problema do Y2038?

O tempo Unix é um meio de representar uma data e hora específicas, usado pelo Linux, macOS e muitos outros sistemas interoperáveis. É tão difundido que provavelmente você o está usando sem se dar conta. Depois de entender o tempo Unix, no entanto, você o verá em muitos contextos. Diversas ferramentas podem ajudá-lo a trabalhar com o tempo Unix.

Qual é o propósito do tempo Unix?

O tempo Unix é uma contagem do total de segundos desde uma data e hora fixas. É um formato de data / hora (ou carimbo de data / hora) que parece diferente das datas e horas legíveis a que estamos acostumados. Isso é puramente por razões de eficiência. Demora muito menos espaço para armazenar um único número que representa os segundos do que para armazenar valores separados para o ano, mês, hora, etc.

Claro, em termos modernos, a diferença de espaço não é tão grande assim. Mas considere que o Unix se originou no final dos anos 1960, quando o armazenamento disponível era muito menor. Os carimbos de data / hora também são muito usados, portanto, o armazenamento deles aumenta. Por exemplo, cada arquivo possui três carimbos de data / hora associados a ele.

O formato é praticamente impossível de traduzir em sua cabeça, a menos que você seja um gênio matemático. Mas ainda tem algumas vantagens sobre alternativas mais legíveis, como Quarta, 21 de outubro de 2015 07:28:00 GMT . Você pode solicitar dois carimbos de data / hora Unix muito facilmente, em um piscar de olhos. Normalmente, também é mais rápido descobrir a diferença entre dois carimbos de data / hora. Isso é especialmente verdadeiro para datas próximas, como em dias adjacentes.

O que é a época do Unix e quando foi a época do Unix?

Sobre a época

Portanto, o tempo Unix é uma contagem total de segundos desde um ponto específico no tempo. Mas qual é esse momento? São 00:00:00 UTC do dia 1º de janeiro de 1970 . Isso geralmente é conhecido como Unix Epoch. Os programadores escolheram esta data para a época por conveniência, uma vez que era a data mais próxima quando inventaram a hora Unix.

Você pode muito bem ter visto esta data quando algo deu errado. É claramente um bug, mas que parece muito estranho quando resulta em uma data anterior à época em que muitos de nós nascemos! É completamente compreensível, entretanto, quando você sabe sobre o tempo do Unix. Se algum sistema está tentando exibir um carimbo de data / hora que não tem nenhum valor, ele geralmente será convertido em 0 e resultará na data de época exata.

O formato de dados de tempo Unix

Estritamente falando, não existe um. O tipo de dados original era um número inteiro de 32 bits, e esse costuma ser o caso, mesmo em sistemas muito mais poderosos.

Este tipo de dados permite que o valor armazene um total de 2 ^ 32 segundos, o que é pouco mais de 136 anos. Esse valor normalmente é assinado, o que significa que pode ser negativo ou positivo. Portanto, geralmente representa 68 anos em cada lado da época, ou seja, 1902-2038.

Este ainda é um período limitado, é claro. Mas o uso principal do formato de carimbo de data / hora era para conceitos como modificação de arquivo. A necessidade era muito de representar o tempo próximo ao presente, ao invés da história antiga ou distante no futuro. Mesmo para aplicativos como calendários, raramente há a necessidade de representar datas mais do que algumas décadas no futuro.

Mas isso não significa que esse período de tempo limitado seja sem problemas ...

O Problema do Ano 2038

O bug do ano 2000 ( um dos piores erros de programação da história ) afetou sistemas de computador que armazenavam anos como valores de dois dígitos. Quando chegou o ano 2000, esses sistemas trataram-no como se fosse 1900. Na verdade, não foi tão catastrófico quanto se temia, principalmente porque muitas pessoas despenderam muito tempo e esforço antecipadamente, preparando-se para isso.

Se você prestou atenção na seção anterior, pode ter notado um problema semelhante que pode afetar o tempo do Unix. Bem, o tempo Unix tem um problema de dados próprio: o problema Y2k38. (Geralmente é referido como um problema, não um bug; talvez tenhamos nos tornado mais otimistas desde o ano 2000!) Quando o tempo do Unix literalmente acabar em 2038, os sistemas tratarão as novas datas como 1902 ou 1970. Ou possivelmente eles ' Eu simplesmente falharei completamente.

Pelo menos esse problema não nos atingirá à meia-noite da véspera de Ano Novo. O segundo final do tempo Unix de 32 bits cairá no dia 19 de março. Na eventualidade, provavelmente atualizaremos a maioria dos sistemas em 2038 ou eles estarão obsoletos até então.

Alguns recursos úteis de carimbo de data / hora

O site do Epoch Converter é possivelmente o conversor de carimbo de data / hora mais abrangente disponível. Ele começa exibindo o tempo Unix atual - em tempo real - e adiciona quase todos os recursos imagináveis ​​além disso. Seu principal uso é para converter entre carimbos de data / hora e datas legíveis por humanos, em ambas as direções.

Dan's Tools é uma enorme coleção de aplicativos úteis da web, um dos quais é um conversor de timestamp . É mais básico, mas tem uma apresentação bem limpa e é fácil de usar.

Time.is apresenta outro visual ainda mais minimalista. Mostra a hora em vários formatos, incluindo a hora Unix. Inclui a hora atual no título da página, o que é útil.

O que é a época do Unix e quando foi a época do Unix?

Usando Tempo Unix com Ferramentas de Linha de Comando

No Linux e no macOS, o programa de data é o utilitário principal para lidar com data / hora, incluindo carimbos de data / hora Unix. Chamado sem nenhum argumento, ele retorna a data / hora atual em um formato legível:

$ date Wed Feb 10 12:28:30 GMT 2021

Se você precisa da data / hora atual no horário Unix, use o argumento +% s :

$ date +%s 1612960114

Você pode converter de uma data legível para humanos em um carimbo de data / hora usando o sinalizador -d se a sua versão de data for compatível. A maioria das versões do Linux deve, por padrão:

$ date -d "Jan 2 1970" +%s 82800

No macOS, date é um programa diferente, que requer um conjunto diferente de sinalizadores:

$ date -j -f "%b %d %Y %T" "Jan 02 1970 00:00:00" "+%s" 82800

Indo na outra direção, você pode converter de um carimbo de data / hora Unix usando a sinalização -r :

$ date -r 1600000000 Sun 13 Sep 2020 13:26:40 BST

Alguns outros programas usam o formato % s para lidar com o tempo Unix. Por exemplo, se você deseja mostrar a data de modificação de um arquivo no tempo Unix, com a versão Linux de ls , você pode usar o seguinte:

$ ls -l --time-style=+%s index.tmp.html -rw-r--r-- 1 ubuntu ubuntu 17862 1521649818 index.tmp.html

Como Usar Tempo Unix em Linguagens de Programação

PHP tem a  função time () que retorna o timestamp Unix atual. Sua função date () leva um carimbo de data / hora como seu segundo argumento:

$ php -r 'echo date("Y-m-d", time());' 2021-02-11

JavaScript aborda as coisas de uma maneira interessante. Ele tem um método Date.now () para obter o número de milissegundos desde a época do Unix. Claro, você pode dividir isso por 1.000 e arredondar o resultado para fornecer o tempo Unix equivalente em segundos:

> Math.floor(Date.now() / 1000) 1613083012

Compreendendo o tempo Unix

O tempo Unix é um conceito simples que surge em muitos lugares. Depois de entendê-lo, você pode achar que é bastante útil, ao calcular diferenças de tempo, por exemplo. Você também pode reconhecer quando pode ser a causa de certos bugs.

Conceitos como época e carimbo de data / hora são uma parte importante da introdução ao Linux. Para saber mais sobre os fundamentos, como ls , verifique nosso guia de comandos básicos do Linux.


Como copiar e colar no Chromebook

Como copiar e colar no Chromebook

A primeira coisa que você pode se perguntar ao mudar para um Chromebook é como fazer as coisas básicas - o tipo de coisa que você tinha nas costas da mão em seu sistema operacional anterior. Copiar e colar é uma função fundamental que você deve usar em um ponto ou outro.

Como fazer um teste de digitação no Linux com tt

Como fazer um teste de digitação no Linux com tt

Na era moderna da tecnologia, a digitação se tornou uma das atividades mais comuns para muitas profissões. Aprender a digitar mais rápido com precisão pode ajudá-lo a realizar mais tarefas no mesmo período.

Wi-Fi não funciona no Ubuntu? Veja como consertar

Wi-Fi não funciona no Ubuntu? Veja como consertar

O Ubuntu é popular por sua robustez e relativamente menos erros. Mas não sem seu saco de problemas, com certeza. Um desses problemas é com o driver Wi-Fi. Você pode ligar o sistema apenas para descobrir que o Wi-Fi não está funcionando.

Como criar e ler códigos QR no Chromebook

Como criar e ler códigos QR no Chromebook

Códigos de resposta rápida, ou códigos QR para abreviar, são códigos de barras avançados que contêm mais informações do que um código de barras tradicional. Esses códigos são bidimensionais, permitindo que você os escaneie vertical ou horizontalmente.

Como instalar e remover pacotes no Arch Linux

Como instalar e remover pacotes no Arch Linux

Quer instalar pacotes no Arch Linux, mas não sabe como? Muitas pessoas enfrentam esse problema quando migram pela primeira vez de distribuições baseadas em Debian para o Arch. No entanto, você pode gerenciar facilmente pacotes em seu sistema baseado em Arch usando gerenciadores de pacotes.

Como instalar o Spotify no Linux

Como instalar o Spotify no Linux

O Spotify é um dos maiores serviços de streaming de música que existe. Possui clientes nativos para dispositivos móveis (Android e iOS) e desktop (Mac e Windows).

9 comandos básicos para começar a usar o Linux

9 comandos básicos para começar a usar o Linux

Os guias de instruções do Linux geralmente esperam que você execute certas operações no terminal, que podem parecer intimidantes no início. Mas não se preocupe; esta folha de dicas de comandos do Linux cobrirá o processo de abertura de um terminal e emissão de alguns comandos úteis.

Como mover arquivos do Linux com o comando Mv

Como mover arquivos do Linux com o comando Mv

Embora você provavelmente já saiba como mover um arquivo no Linux usando o navegador de arquivos GUI, você pode estar se perguntando se existe um comando mover no terminal que permite mover arquivos rapidamente para diretórios diferentes. O comando mv é o que você deseja e é fácil de usar com sua sintaxe simples e alguns sinalizadores de segurança opcionais.

Diferença entre o superusuário raiz no Ubuntu

Diferença entre o superusuário raiz no Ubuntu

Quer saber qual é a diferença entre Root Superuser no Ubuntu? Bem, nós temos você coberto aqui.

As 10 melhores distribuições Linux baseadas em Debian

As 10 melhores distribuições Linux baseadas em Debian

O Debian padrão e seu derivado popular Ubuntu são ótimas opções versáteis para um sistema Linux, mas se você tiver necessidades mais especializadas, pode querer uma alternativa Debian.