Por que as faixas de datas na computação começam em períodos antigos?

-1

Ao ler o artigo da Wikipédia para o HFS + , observei que o intervalo de datas permitido é 1º de janeiro de 1904 a 6 de fevereiro de 2040 Da mesma forma, a faixa para NTFS é 1 de janeiro de 1601 - 28 de maio de 60056. Na minha opinião, isso é ridículo pensar sobre como não consigo pensar em nenhum caso em que um arquivo precisaria ter uma modificação / criação na data definida nos anos 1600 ou 1900. Eu posso entender a época do timestamp do Unix, pois seria razoável ter um arquivo criado / modificado nos anos 70, 80, etc., mas parece pouco lógico ter a época desses timestamps a serem configurados até agora no passado. / p>     

por svbnet 20.03.2017 / 02:08

3 respostas

2

Não é apenas NTFS; O timekeeping interno do Windows é feito usando o mesmo formato de hora e com o mesmo início de época.

Eles sabiam que queriam um valor de tempo binário de 64 bits, porque o valor original de 32 bits do Unix já era conhecido como um beco sem saída (esses contadores serão encerrados em 2038) e os valores de tempo de 64 bits já foram usados em VMS. 64 bits dá a capacidade de calcular cerca de 18 bilhões de bilhões de valores de tempo diferentes. Bem, na verdade, apenas 9 bilhões de bilhões, porque os valores de tempo com o conjunto de bits alto têm um significado diferente no Windows (como acontece no VMS). Então, nós realmente temos "apenas" 63 bits para contar a data e a hora do dia.

Considerando que o tempo Unix de 32 bits contava apenas segundos, os timestamps do Windows contavam em incrementos de 100 nanossegundos. Então, um valor de tempo de 1 significa 100 ns após a meia-noite de 1 de janeiro de 1601.

Mas por que escolher uma data tão "histórica"?

Bem, um deles faz com que o dia da semana e os cálculos semelhantes sejam um pouco mais fáceis, já que foi o primeiro ano do primeiro ciclo de 400 anos que incluiu computadores eletrônicos de qualquer tipo. Existe algum suporte muito autoritário por esse motivo.

No entanto, tenho que opinar que no contexto da computação moderna, a capacidade computacional adicional necessária para lidar com um ano inicial diferente seria bem pequena no contexto.

1º de janeiro de 1601 também é a data a partir da qual as datas do ANSI são contadas. Portanto, a "data do Windows" é o mesmo número de dia da "data ANSI", o que torna as coisas um pouco mais fáceis em vários lugares.

Também foi padronizado como "ano 1" do calendário gregoriano (mesmo que o calendário não tenha sido adotado em todos os lugares naquele momento).

Por um motivo de trabalho prático, no entanto, considere: Este formato data / hora permite que data / hora históricas sejam representadas em, e. bases de dados ao lado dos atuais, usando o mesmo formato. Uma base de dados genealógica, por exemplo, pode armazenar as datas de nascimento e morte de seus antepassados com mais de 400 anos, o que é muito mais longo do que a maioria desses registros existe de forma confiável.

Não haveria razão para estender isso antes, começando no ano de 1201 ou até mesmo em 1, por causa da transição do calendário juliano-gregoriano que começou em alguns países em 1582 e continuou até 1926, dependendo de em que país você estava. Todas as datas gravadas no formato de horário ANSI e, por extensão, no formato de horário "binário" do Windows são consideradas como calendário gregoriano.

btw, o VMS usa um esquema similar, mas seu tempo base é 17 de novembro de 1858. Esse foi um padrão escolhido pelo Smithsonian Astrophysical Observatory como uma "data base" para o rastreamento por satélite; isso foi relacionado ao uso anterior dos astrônomos do esquema original do Dia Juliano, que conta dias desde o meio-dia, 1º de janeiro de 4713 a.C. Neste esquema, 17 de novembro de 1858 sai para o Dia Juliano Modificado número 2.400.000. Ao usar o MJD em vez do JD, eles conseguiram encaixar datas contemporâneas em apenas 18 bits, o que foi um feito importante na época. Veja este artigo da VMS Engineering para detalhes.

    
por 20.03.2017 / 10:00
1

Quando examinado isoladamente, a faixa de tempo de NTFS pode parecer ilógica. Mas quando você olha para o quadro geral, é completamente lógico.

Uma das coisas que um sistema operacional faz é fornecer um conjunto de funções que a maioria dos programas precisará. Isso permite que os programadores se concentrem em seus programas em vez de perder tempo reescrevendo essas funções comuns para cada programa. Qualquer sistema operacional que não forneça essas funções provavelmente não será bem-sucedido. O Windows e o Linux fornecem centenas dessas funções.

O Windows inclui uma série de funções para representar e trabalhar com datas e horas. Para uma utilidade máxima, isso cobre um intervalo de datas tão amplo quanto razoavelmente possível. Muitos programas usam essas funções para uma ampla variedade de propósitos.

O sistema de arquivos NTFS foi lançado como parte da plataforma NT. Como qualquer sistema de arquivos moderno, ele precisava de alguma maneira de armazenar os carimbos de data do arquivo. Logicamente, os designers optaram por usar o mesmo sistema que o fornecido para os aplicativos. Isso simplifica as coisas para os desenvolvedores. É claro que o intervalo de datas é muito maior do que o necessário para os carimbos de data, mas não custa nada e não causa problemas. Usar um sistema diferente com um intervalo mais restrito de datas para carimbos de data teria sido ilógico.

    
por 20.03.2017 / 06:33
1

Datas (e sua especificação de formato no nível de bit) não são usadas apenas para rotular arquivos, mas também para cálculos e em muitos outros locais. Um historiador pode querer ter datas do século 17 ou 18 em suas colunas do Excel, por exemplo; ou um astrônomo calcula alinhamentos planetários nesses períodos.

Mesmo que a quantidade de pessoas que têm um uso é pequena, a perda é negligente - não importa muito se você pode usar este formato por 100 ou 5000 ou 60000 anos; provavelmente não sobreviverá aos próximos 50 anos.

    
por 20.03.2017 / 02:48