Связь между аппаратными и системными часами

Связь между аппаратными и системными часами

Я знаю, что аппаратные часы — это RTC, которые работают даже тогда, когда ПК (или другое устройство с RTC) выключен. (В Linux мы можем увидеть это время, набрав "hwclock") Второе упомянутое время, системное время, это время, которое реально используется ОС, Linux. Я могу увидеть его по команде "дата"

Но я все еще не знаю, как назначается системное время после запуска ПК. Есть ли в Linux какое-то смещение, которое затем используется, и расчет системного времени производится с использованием аппаратного времени и этого смещения?

Или это работает по-другому?

решение1

Да, есть эти два часа. RTC (они же CMOS Clock/Hardware Clock), как вы упомянули, и System Clock (они же Kernel Clock, Software Clock), значение которых сохраняется в конфигурации ОС. Эти системные часы основаны на прерываниях таймера.

И как очевидно, эти два могут иметь некоторое дробное смещение, из-за которого они будут отклоняться, и ОС имеет несколько стратегий для борьбы с дрейфом таймера. Один из распространенных современных способов синхронизировать оба с помощьюСервер временикак time.windows.com на основеПротокол сетевого времени.

решение2

Аппаратные часы против системных часов: Аппаратные часы — это работающие от батареи «часы реального времени» (также известные как «RTC», «CMOS-часы»), которые отслеживают время, когда система выключена, но не используются, когда система работает.

Связанный контент