
Насколько я понимаю, файл дрейфа NTP ( /var/lib/ntp/ntp.drift
в дистрибутивах на основе Debian) хранит смещение пиров NTP и системных часов. Однако системные часы означают ли батарейку CR232 на моей материнской плате? Что-то еще? Кроме того, я прав, что этот файл дрейфа используется только при ntpd
запуске?
решение1
Компьютеры имеют аппаратное обеспечение таймера, которое генерирует периодические прерывания, известные как тики. Они обычно происходят 100 или более раз в секунду. Таймер может быть частью RTC, но даже устройства без RTC имеют аппаратное обеспечение таймера. Как аппаратное обеспечение таймера, так и RTC имеют тенденцию отклоняться от реального времени, измеренного атомными часами.
NTP работает с системными часами (программными), которые обновляются каждый тик. Значение, сохраненное в , /var/lib/ntp/ntp.drift
используется для внесения небольших корректировок в частоту прерываний таймера. Это называется дисциплинированием часов. NTP будет периодически пересчитывать дрейф и обновлять частоту и значение в файле ntp.drift
.
Обычно системные часы устанавливаются из RTC при загрузке системы. Это происходит до запуска демона NTP. В зависимости от флагов, установленных при запуске демона NTP, он может выйти из строя, если время RTC значительно сместилось. Чтобы предотвратить это, обычно запускали команду ntpdate
для выполнения начальной настройки.
Во время контролируемого выключения RTC обычно устанавливается на системное время (локальное или UTC). Это помогает гарантировать, что время будет относительно точным при перезапуске системы. Чтобы это работало, RTC должны получать питание, когда система выключена. Системы с RTC имеют батарею, которая питает RTC, и часто некоторую энергозависимую память, которая содержит данные о конфигурации системы.