O seu sistema tem atualmente dois relógios -- o ``relógio de tempo real'' alimentado pela bateria, que mantém a hora mesmo quando o sistema é desligado ( também conhecido como o ``relógio da CMOS'', ``relógio do equipamento'' ou ``RTC'' ) e a ``hora do kernel'' ( algumas vezes chamada de ``relógio do programa'' ou ``relógio do sistema'' ), a qual é baseada na interrupção do marcador de tempo e é inicializada a partir do relógio da CMOS durante a inicialização. Os dois irão andar com diferentes taxas, então, eles irão gradualmente trabalharem separados um do outro,
Todas as referências ao ``relógio'' na documentação do xntpd, se
referem ao ``relógio do kernel''.
Quando você executa o xntpd ou timed
( ou qualquer outro programa que usa a chamada de sistema do
adjtimex ), o kernel do Linux assume que o relógio do kernel é
mais preciso do que o da CMOS, e reinicializa a hora da CMOS a cada 11
minutos
( até que a máquina seja reiniciada ).
Isto significa que o ``relógio'' não sabe mais quando é que o
relógio da CMOS foi mudado pela última vez, de modo que você não pode usar
o fator de correção no arquivo
/etc/adjtime.
Pode-se usar o ntpdate no arquivo de inicialização para
( inicialmente ) configurar o relógio a partir de um servidor de tempo antes
de iniciar o xntpd. Se não é sempre que se tem acesso a uma fonte
de tempo durante a inicialização da sua máquina, isto pode ser um pouco
inadequado -- o xntpd realmente não foi feito para ser usado
em situações como essa.
Teoricamente, alguém poderia escrever um programa para usar um serviço de
tempo e calcular automaticamente a taxa de alteração do relógios da
CMOS e do kernel.
Não conheço nenhum programa que faça isso, mas provavelmente a maioria
do código será copiado do xntpd.