Мне было интересно, обновляет ли сам чип времени компьютер время, даже когда компьютер выключен (например, BIOS или ОС посылают команду, которая, когда вы достигаете определенного времени, вы возвращаетесь назад / вперед 3600 секунд), или выполняет BIOS / OS обновлять его при первом запуске компьютера после активации DST?

2 ответа2

5

Чип часов реального времени MC146818, используемый в IBM PC/AT, действительно имел возможность вносить изменения в летнее время самостоятельно. Он работал правильно только в Соединенных Штатах и даже тогда работал правильно только в течение трех лет, пока закон не был изменен, и правило DST, которое было встроено в микросхему микросхемы, больше не соответствовало действительному правилу DST. Эта возможность обновления DST на оборудовании не использовалась десятилетиями.

Если ваша операционная система - операционная система DOS Think, то да, изменения DST применяются операционной системой к часам реального времени и, таким образом, только когда машина полностью включена и загружена в операционную систему. Однако известно, что эта система серьезно и фундаментально сломана почти столько же времени. Он подробно обсуждался на форумах с 1980-х годов.

Unices и UNIX-подобные операционные системы запускают аппаратный RTC в UTC и никогда не применяют к нему никаких изменений DST. На самом деле, в ядре операционной системы нет даже знаний о DST. Ядро и аппаратное обеспечение работают в UTC все время, а функция системной библиотеки применяет преобразование из UTC в местное стандартное время / летнее время на основе переменной среды TZ и обширной базы данных часового пояса на диске. Нет переключения между стандартным и летним временем как таковым. Функция преобразования просто выдает правильное смещение местного времени в соответствии с конвертируемым временем.

Да, BSD и Linux могут работать в режиме DOS Think с аппаратными часами, работающими не в формате UTC. Это не особенно хорошая идея, и есть много дополнительных хрупких механизмов, которые идут вместе с ней. Например, системные администраторы, такие как systemd должны убедиться, что они сообщили ядру о местном времени перед fsck , потому что в противном случае люди в часовых поясах, которые опережают UTC, испытывают странное поведение, вызванное обратным ходом системных часов при запуске системы.

дальнейшее чтение

1

Материнская плата имеет батарею и часы, которые будут следить за временем, даже когда компьютер выключен, однако именно ОС определяет, когда настраивать часы вперед / назад в зависимости от настроек. Он не будет настроен до тех пор, пока операционная система не будет запущена в то время, когда предполагается ее изменить, или после первой загрузки после нее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .