Como o horário de verão funciona em um computador?

0

Fiquei imaginando se o chip de tempo do computador atualiza o horário, mesmo quando o computador está desligado (por exemplo, o BIOS ou o SO envia um comando que, quando você atinge um determinado horário, volta / avança 3600 segundos) ou faz o O BIOS / OS atualiza-o na primeira vez em que você inicia o computador após o horário de verão?

kat
fonte

Respostas:

5

O chip de relógio em tempo real MC146818, como usado no IBM PC / AT, realmente tinha a capacidade de fazer alterações de horário de verão por conta própria. Ele só funcionou corretamente nos Estados Unidos e, mesmo assim, funcionou corretamente por apenas três anos até a lei ser alterada, e a regra do horário de verão que estava conectada ao circuito do chip não correspondia mais à regra do horário de verão. Esse recurso para atualizar o horário de verão no hardware não é usado há décadas.

Se o seu sistema operacional for um sistema operacional DOS Think, sim, as alterações de horário de verão serão aplicadas ao relógio em tempo real pelo sistema operacional e, portanto, somente quando a máquina estiver totalmente ligada e iniciada no sistema operacional. No entanto, esse sistema é conhecido por ser sério e fundamentalmente quebrado por quase tanto tempo. Foi discutido minuciosamente em fóruns de discussão on-line desde os anos 80.

Unices e sistemas operacionais UNIX-like executar o hardware RTC em UTC, e nunca aplicar quaisquer alterações do horário de verão para ele. De fato, não existe nenhum conhecimento de horário de verão no kernel do sistema operacional. O kernel e o hardware operam no UTC o tempo todo e uma função da biblioteca do sistema aplica uma conversão do UTC no horário local padrão / horário de verão com base na TZvariável de ambiente e em um extenso banco de dados de fuso horário no disco. Não há uma alternância entre o horário padrão e o horário de verão em si. A função de conversão simplesmente gera o deslocamento da hora local correto de acordo com a hora que está sendo convertida.

Sim, os BSDs e Linux podem ser executados da maneira DOS Think, com o relógio do hardware executando algo diferente do UTC. Essa não é uma idéia particularmente boa, e há muitos mecanismos frágeis adicionais que acompanham isso. Por exemplo, os gerentes de sistema, como esses, systemddevem garantir que informaram ao kernel sobre a hora local antes da fsckexecução, porque, caso contrário, as pessoas nos fusos horários que estão à frente do UTC experimentam um comportamento estranho causado pelo retrocesso do relógio do sistema durante a inicialização do sistema.

Leitura adicional

JdeBP
fonte
1

A placa-mãe possui uma bateria e um relógio que acompanharão o tempo, mesmo quando o computador estiver desligado; no entanto, é o sistema operacional que determina quando ajustar o relógio para frente / para trás, dependendo das configurações. Ele não é ajustado até que o sistema operacional esteja em execução no momento em que deveria ser alterado ou após a primeira inicialização posterior.

Nick Gulino
fonte
Há NIST também não? Sincronize via relógio da Internet (como exemplo).
Carl B
Correto em um sentido. Você pode usar o NTP (Network Time Protocol), que sincroniza o relógio interno do computador com o Tempo Universal Coordenado (UTC). No entanto, essa ainda é uma função do sistema operacional e somente ajusta o relógio para UTC (GMT nos velhos tempos). O sistema operacional ainda precisa convertê-lo para o seu fuso horário atual (por exemplo, moro perto de Melbourne, na Austrália, portanto, é GMT +10) e aplicar o horário de verão, se aplicável.
precisa