Research and forecasts in IT
17 December 2010

Моё путешествие в будущее



Был тихий осенний вечер. Ничто не предвещало беды. Смеркалось. Я заканчивал плановый upgrade компьютера, в процессе которого по затерявшимся уже в истории причинам понадобилось сбросить BIOS. Дело не хитрое. Расположение батарейки и перемычки Reset на материнской плате известны – вперед! После включения и загрузки Windows 7 мне в ультимативном порядке было заявлено, что на дворе далекое будущее, а именно – 14201-ый год.



Приключения только начинались…

Преамбула


Собственно говоря, перевод времени при сбросе BIOS – не сюрприз. Меня и раньше бросало на годик туда-сюда. Но тут – сразу на 12 тысяч лет! Нечто из ряда вон. Взглянув на пролетающий за окном в сторону космопорта флиппер текущую дату и время, я решил немного покопаться в системе и выяснить, как будут вести себя имеющиеся у меня программы в подобной ситуации. Ведь другого шанса не будет – я не знаю, как можно установить такую дату (мне кажется, что ни BIOS ни ОС Windows этого не позволят).

Лирическое отступление


В разные времена разные околокомпьютерные СМИ, программисты и прочие эксперты предполагали глобальный апокалипсис ввиду невозможности компьютером обработать верно некую дату. В большинстве своем люди ошибались. Хотя и не всегда. Наиболее обсуждаемые даты:
  • 2000 год или Y2K – написано уже масса текста, добро пожаловать на википедию, повторяться не хочу.
  • 2011 или Y1C — локальная проблема Тайваня, Северное Кореи и может быть кого-нибудь еще, ведущего летоисчисление от разных нестандартных событий.
  • 2036 год – конец 64-битного времени в протоколе NTP. Создатели протокола клянутся , что по целому ряду причин ничего плохого не случится, но они вполне могут недооценивать креативную мощь индийской школы программирования.
  • 2038 год или Y2K38 – конец 32-битного времени. Всякие программы, использующие time_t, многие функции time.h и считающие летоисчисление от 1970 года заворожено наблюдают за пролетающей мимо розовой птицей Обломинго.
  • 10000 год – переход с 4-значных годов на пятизначные. Казалось бы – во-первых, откуда бы взяться глюку? А во-вторых – нам же все равно, не доживем ведь. Ан нет. Уже сегодня работает некоторое количество программ моделирования, расчетов и предсказаний, которым такие даты нужны. А на той же википедии уже сейчас есть примеры неверного вывода и расчета пятизначных дат даже в таких серьезных программах как Microsoft Office и OpenOffice. Кроме того, 31.12.9999 – это максимально возможное значение для .NET-овского класса DateTime в последней версии .NET. Поставьте себе в телефон напоминалку – «до 9999 года перейти на следующую версию .NET».
  • 30827 – последний год для виндовой структуры SYSTEMTIME и функций, её использующих (GetLocalTime, GetSystemTimе)
  • 292 277 026 596 год – конец 64-битного времени. Так чтобы сориентироваться – Земля упадет на Солнце всего через 7 500 000 000 лет (в 38 раз меньше времени). Число привел просто ради масштаба.

Ассистент, скальпель!


Итак, на дворе 14201 год. В аккурат между весьма близкими и реальными Y2K38\10000 и задолго до маловероятных 30827\много_миллиардов. Удобно усевшись в антигравитационное кресло и выпив нейтринный коктейль чаю, я приступил к экспериментам. По их итогам я разделил все имеющиеся у меня программы на 4 группы:
  • Зеленая – самая неинтересная и самая вызывающая уважение к её создателям. Программы, которые запустились и продолжили стабильно работать в полном функционале. Браво, снимаем шляпу.
  • Желтая – программы, запустившиеся и в основном заработавшие, выдающие, однако, предупреждения или неверно рассчитывающие временные интервалы.
  • Оранжевая – программы, которые запустились, но упали при обращении к некоторым функциям, связанными с датой и временем.
  • Красная – программы, упавшие при старте или выдавшие сообщение в духе «работать не могу» и закрывшиеся.



  • Mspaint – заработал отлично. А чего ему сделается
  • Блокнот — работает, включая функцию вставки даты по F5
  • Doctor Web – запустился и сказал, что у меня закончилась лицензия. Собственно говоря, к 14201 году и правда закончится. Поведение верное
  • Killcopy (это такая утилита для копирования файлов) – заработала верно, включая функции измерения скорости копирования, прошедшего и оставшегося времени копирования
  • Media Player Classic — работает, включая все функции по отображению длительности файла и времени воспроизведения
  • Microsoft Outlook — работает корректно, включая прием и рассылку писем, отображения даты их прихода\ухода, сортировку по дате
  • Tortoise Svn — работает без ошибок

Браво, зеленая группа!


  • ОС Windows 7 в целом – запустилась и заработала. Все основные функции работы с файловой системой, сетью, драйверами, апплетами панели управления, администрирования и т.д. работают верно. Часики на панели задач вообще рассчитаны на 6-значные числа годов. Две мелочи – календарь не показывает даты больше 2099 и не синхронизируется время с Интернетом. Но об этом выдаются понятные сообщения и в целом общее впечатление эти факты не портят.



  • Калькулятор ОС Windows – работает, но странно отображает окно выбора дат



  • Microsoft Word и Excel — заработали, включая функцию вставки даты и времени (вставляет как текущую дату 1/28/1913, не падает)
  • Far — запускается и работает. В качестве даты вновь созданных файлов показывает 28.01.1420 года (Far просто потерял последнюю единичку в номере года)



  • Putty — сама программа запускается, однако коннекты по ssh срываются. Телнет — работает
  • Firefox — запустился, работает. На все абсолютно соединения по https отвечает, что они не доверены и предлагает согласиться с риском или уйти. После согласия с риском — работает. Прикольный момент, вот сколько места на диске предлагает мне Gmail ( может быть это переполнение типа даты-времени в Javascript – я не силен в нем, а может быть у Google и вправду такие планы)



  • Internet Explorer 9 — абсолютно аналогично Firefox
  • 7 zip — работает. Даты вновь созданных файлов отображает как 31 декабря 2107 года




  • Windows Explorer – запустился и заработал, однако стабильно падал при попытке вызвать контекстное меню. Не знаю, его ли это вина – в контекстное меню у меня интегрировано с пяток пунктов разных программ (SVN, Notepad++, Winamp и т.д.), возможно креш вызван кем-то из них
  • Keepass — запустился, основные функции работали хорошо. Нарисовал все значки крестиками, при выборе даты упал






  • Планировщик Windows — запускается и пишет ошибку о невозможности создать оснастку. Не падает, но и не работает



  • Dropbox — запустился, но пишет «can't establish secure connection»
  • GoogleTalk — падение с ошибкой



  • Skype — падение с ошибкой



  • Qip — падает



  • Visual Studio 2010 — не запускается



  • Adobe Reader — падает с ошибкой



  • Notepad++ — падает с ошибкой


  • DownloadMaster — падает с ошибкой



Выводы


  1. Ни разу не волнуйтесь. Мы все до этих глюков не доживем. К тому же их к тому времени исправят. Эксперимент чисто условный.
  2. И так не все так плохо. Красная группа не так уж велика, а с программами из остальных вполне можно работать.
  3. На удивление хорошее качество продуктов Microsoft – большинство программ запустилось и заработало.
  4. Ни один из сегодняшних мессенджеров не планирует жить долго. Надежда, видимо, в том, что к 14201-му году наука уже точно изобретет магию и мы все будем общаться телепатически.
  5. Ошибки браузеров, Dropbox и Putty скорее всего вызваны одной и той же причиной – чем-то связанным с временем действия SSL-сертификатов и т.д. Тем не менее, я отнес их всех в желтую группу, так как Tortoise Svn в той же ситуации корректно заработал и получил код по https как из нашего локального репозитория, так и из нескольких в Интернете.

P.S.


К окончанию экспериментов за окном над ядерной пустыней уже поднималось фиолетовое солнце. Я решил возвращаться. ОС Windows спокойно восприняла прыжок в прошлое на 12000 лет, перезагрузилась и продолжила жить долго и счастливо. Никаких проблем в функционировании железа или софта с тех пор не наблюдалось. Порой за чашечкой глинтвейна я рассказываю друзьям о моем путешествии, на что они лишь недоверчиво улыбаются.

Перед самым возвращением из 14201-го успел глянуть в Google Bing результаты ЧМ 2018. Вы не поверите…

+558
65.5k 266
Comments 196