В первых версиях Unix время отсчитывалось не в секундах, а в шестидесятых долях секунды: системные часы PDP-11 получали импульсы от американской электросети с частотой 60 Гц. Такой 32-битный счётчик заканчивался всего за несколько лет, поэтому разработчики перешли на секунды и выбрали удобную точку отсчёта — 1 января 1970 года.
Но и это решение не вечно. 19 января 2038 года знаковый 32-битный счётчик переполнится и отправит уязвимые системы в декабрь 1901-го. Проблема касается не только старых компьютеров: она может скрываться в
INT-полях баз данных, бинарных форматах, JavaScript-операциях, MySQL TIMESTAMP, файловых системах и прошивках устройств.В статье — история Unix-времени, наглядные эксперименты с C, JavaScript и ext4, а также разбор того, где искать проблему 2038 года уже сейчас.
Читать дальше на Хабре →
@usr_bin_linux
