Unix completou seus 50 anos! E já tem problemas à vista!

Unix completou seus 50 anos! E já tem problemas à vista!

2020 é um ano significativo para o Unix: no início do ano, o sistema operacional original completava 50 anos. A hora do Unix, também conhecida como “datas da era”, é o número de segundos decorridos desde 1º de janeiro de 1970. Mas o que incomoda os desenvolvedores de kernel sobre o 50º aniversário do Unix?

Embora alguns dos primeiros desenvolvimentos do Unix tenham precedido o início oficial de sua “era”, em 1º de janeiro de 1970 permanece o ponto zero no tempo POSIX. Portanto, com o início de 1º de janeiro de 2020, a plataforma completou 50 anos oficialmente.

Tempo Unix versus tempo humano

Do ponto de vista do tempo humano, 50 anos é um longo período. Do ponto de vista do tempo do Unix, não há nada de especial em 50 anos, e 43 anos não seriam menos significativos. Os sistemas Unix (incluindo Linux) armazenam os valores de data e hora como o número de segundos decorridos desde 1970-01-01 00:00:00 UTC, com um registro em 32 bits. 

Para determinar quantos segundos se passaram desde esse tempo e, portanto, o valor atual do tempo do Unix, você pode executar o comando:

$ date +%s

1576883876

O argumento% s após o comando date exibe a data e a hora atuais como o número de segundos desde o início de 1970-01-01.

unix-completou-seus-50-anos-e-ja-tem-problemas-a-vista

Qual é a data máxima que os sistemas Unix podem armazenar?

Para entender quanto tempo um sistema Unix pode aguentar, é necessário avaliar a capacidade de um campo de 32 bits. Isso pode ser calculado da seguinte maneira:

$ echo ‘2^32’ | bc

4294967296

No entanto, como o Unix também preserva números negativos, um bit é reservado para o sinal, reduzindo o tempo para:

$ echo ‘2^31’ | bc

2147483648

E como a numeração do Unix começa em 0, isso significa que temos 2.147.483.648 valores, mas o maior é 2.147.483.647 – o valor da data e hora do Unix não pode exceder esse número. Assim como o odômetro de um carro não pode mostrar mais de 999.999 quilômetros – adicione 1 e o valor será redefinido para zero.

Quanto tempo dura um ano em segundos?

O número de segundos por ano pode ser calculado da seguinte forma:

$ expr 24 \* 60 \* 60 \* 365

31536000

Em um ano bissexto, mais um dia é adicionado:

$ expr 24 \* 60 \* 60 \* 366

31622400

Como o Unix mostra seu 50º aniversário?

unix-completou-seus-50-anos-e-ja-tem-problemas-a-vista

1 de janeiro de 2020 às 12:00 da manhã, haverá tempo 1577836800. O cálculo é um pouco mais complicado, porque os anos bissextos devem ser levados em consideração. Houve 12 anos desde o início da era Unix, começando em 1972 e terminando em 2016. Ou seja, anos comuns se passaram 38.

É assim que o comando expr parece contar segundos nos últimos 50 anos:

$ expr 24 \* 60 \* 60 \* 365 \* 38 + 24 \* 60 \* 60 \* 366 \* 12

1577836800

Ou então, levando em consideração os cálculos anteriores:

$ expr 31536000 \* 38 + 31622400 \* 12

1577836800

Essa maneira de registrar o tempo tornou os sistemas Unix imunes ao problema do ano 2000, o que fez as pessoas se preocuparem, no final de 1999, que a mudança para 2000 poderia prejudicar os sistemas de computadores. As dificuldades acabaram sendo muito menos do que o esperado. 

De fato, somente os aplicativos que registram anos em um formato de dois dígitos encontraram zerar a data. Muitos desenvolvedores fizeram um trabalho extra para garantir que seus aplicativos não sejam afetados pelo problema do Y2K.

Quando o tempo do Unix terá problemas?

Os sistemas Unix esperam dificuldades semelhantes não antes de 2038, quando as datas armazenadas no formato descrito acima excederem o espaço de 32 bits. Ainda faltam 18 anos, mas os desenvolvedores do kernel já estão trabalhando para evitar futuras falhas.

O problema de 2038 às vezes é chamado de problema do Y2K38. Se não for resolvido antes da terça-feira, 19 de janeiro de 2038, após essa data, os sistemas poderão pensar que 1901 chegou. Uma maneira de resolver esse problema é alternar para uma representação de 64 bits das informações de data e hora. Alguns acreditam que isso será muito mais difícil do que parece.

De qualquer forma, é muito cedo para entrar em pânico. E hoje, o 50º aniversário dos sistemas Unix, que são reconhecidos como um dos sistemas operacionais mais importantes da história, é realmente importante.

Fonte: 3dnews.ru, internetua.com