У двоичного кода есть свои преимущества и недостатки
Помните 1999 год, когда опасения были в том, что когда год перейдет в 2000 год, компьютеры не поймут, что век изменился. Дата была бы сброшена до 1900 года, а компьютерно-зависимые системы по всему миру вышли бы из строя и сгорели, пишет IFLScience. Впрочем, благодаря широким и согласованным усилиям IT-овцев по всему миру все прошло гладко. Однако, похоже, to be continued...
19 января 2038: день истечения времени. Итак, самая высокая отметка времени, которую могут обрабатывать современные компьютерные системы, составляет 2147483647, что соответствует 19 января 2038 в 03:14:07 UTC.
Это число не случайно - каким бы произвольным ни казалось. Для 32-разрядной системы это просто слишком много цифр, поэтому счетчик может сбиться. Отметка времени станет отрицательным числом, что приведет к тому, что дата и время будут неверными. Так, 20 января 2038 может стать 13 декабря 1901 года. Это и возможна ошибка всех компьютеров 2038 года.
Об ошибке 2038 года известно по крайней мере с 2006 года, когда подобная проблема поразила программное обеспечение, поддерживаемое веб-сервером AOL. Конечно, 32 года – это более чем достаточно времени, чтобы найти решение.
Решение состоит в переходе на 64-разрядную поддержку времени. С 64 битами есть более чем достаточно места для хранения значений времени далеко за пределами обозримого будущего, даже если используются значения времени с высоким разрешением - на основе наносекунд.
Однако переход совершили не все базы данных. Устройства под управлением Windows, Linux, Android или iOS могут оказаться под угрозой, а также:
В общем, это может быть чрезвычайно разрушительным. Поэтому новым системам сегодня придается 64-битное целое число как стандарт. Но большая проблема связана с уже существующими системами. Однако, их переход – не так прост. Переход от 32-битных к 64-битным меткам времени приведет к тому, что куча уже существующих программ будет пытаться понять новую систему. А это, мягко говоря, очень сложно.
И это только начало. Кроме этого, существует проблема 2106, 2262 и даже проблема 2446 лет. Все они связаны с предположениями прошлых программистов относительно того, как долго мы будем использовать протоколы, изобретенные в середине XX века.
Но у нас было и все еще есть много времени, чтобы подготовиться к проблеме 2038 года, и когда она возникнет, все текущие компьютерные системы будут обновлены задолго до этого времени. Однако побочные эффекты могут возникнуть. Но будем оптимистами и на всякий случай скрестим пальцы!