Мне было интересно, обновляет ли сам чип времени компьютер время, даже когда компьютер выключен (например, BIOS или ОС посылают команду, которая, когда вы достигаете определенного времени, вы возвращаетесь назад / вперед 3600 секунд), или выполняет BIOS / OS обновлять его при первом запуске компьютера после активации DST?
2 ответа
Чип часов реального времени 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, испытывают странное поведение, вызванное обратным ходом системных часов при запуске системы.
дальнейшее чтение
- Джонатан де Бойн Поллард (2009). DOS Think способ хранения времени в корне нарушен. , Часто задаваемые ответы.
- Андрей Александрович Чернов (2012-03-08).
adjkerntz
. Руководства FreeBSD 9.2.
Материнская плата имеет батарею и часы, которые будут следить за временем, даже когда компьютер выключен, однако именно ОС определяет, когда настраивать часы вперед / назад в зависимости от настроек. Он не будет настроен до тех пор, пока операционная система не будет запущена в то время, когда предполагается ее изменить, или после первой загрузки после нее.