Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Что такое «Проблема 10000 года»? Почему она выведет из строя все компьютеры через 8 тысяч лет?

ОбществоТехнологии+3
Сергей Кузминов
  · 98,7 K
Интернетный барыга. Экс-менеджер контентных проектов на Яндекс.Кью. Экс-руководитель...  · 8 апр 2017  · takiedela.ru/author/sdobnov

Ну, заявление о том, что эта проблема так уж прямо станет причиной сбоев через 8000 лет, - чересчур поспешно. У нас все-таки есть достаточно времени для её устранения, поэтому «проблема 10000 года» представляется скорее теоретической, нежели практической.

Для тех, кому не терпится узнать, что же это за монстр такой, объясняю: большинство операционных систем и сторонних программ сейчас заточены под «четырёхцифровое» представление года, а от пяти цифр в году польются баги, ошибки и всё вот это вот. Да, такая, казалось бы, безобидная проблема, которая может погубить все информационные процессы компаний и домашних пользователей ПК через несколько тысяч лет. Хотя сомнительно, что в то время, когда наступит 9999 год, мы всё ещё будем пользоваться программным кодом, который в настоящее время заложен в программное обеспечение, но решение проблемы потребует перенастройки всех систем мира, что обойдётся государствам планеты в большие суммы денег. Это заявление не баснословно, и сейчас я объясню почему.

Дело в том, что «проблема 10000 года» - не единственная. Существует ещё как минимум две, одну из которых мы успешно пережили, а со второй нам ещё придётся столкнуться. Я говорю о «проблеме 2000 года» и «проблеме 2038 года».

В конце 90-х началось массовое обсуждение «проблемы 2000 года»: суть проблемы заключалась в том, что большая часть программного обеспечения, созданного в XX веке, использовала две цифры для представления года (то есть 1999 год превращался в 99, а 2000 должен был стать 00, то есть 1900). Проблема, на самом деле, стала актуальна гораздо раньше: для многих компаний, занимающихся, предположим, прогнозированием, пришлось искать решения задолго до наступления 2000 года. Так или иначе, было понятно, что избежать проблемы не получится; вопрос стал решаться на уровне государств. В России, например, была создана правительственная комиссия по «проблеме 2000». В сухом остатке во всём мире было потрачено более $300 млрд. на подготовку к вхождению в новое столетие.

Та самая «проблема 2000 года»: табло показывает 3 января 1900 года, хотя должно показывать 3 января 2000 года.

Касаемо «проблемы 2038 года», она представляется наиболее опасной из всех названных выше. Всё дело в «эре UNIX» - так называют время с 1 января 1970 года. Именно с этой даты ведётся отсчёт секунд практически во всех современных операционных системах. Таким образом, например, достигается удобство сравнения дат компьютером. Но вот в чём загвоздка: 19 января 2038 года в 03:14:08 значение переменной, которая хранит это самое количество секунд, прошедших с начала 1970 года, станет равным двойке в 31 степени. В двоичном представлении это аналогично единице и 31 нулю, отчего компьютер может ошибочно воспринять число как отрицательное (как это происходит см. здесь). Дальше простая арифметика: 1970 год 1 января (считаем за 0) вычесть двойку в 31 степени – получается минус двойка в 31 степени. Итог: время отскакивает назад и все мы мгновенно переносимся в 1901 год. Учитывая, насколько сильно IT сейчас внедрены во все государственные и негосударственные процессы, это будет без преувеличения катастрофой. Решение, конечно, есть: нужно заменить 32-битное представление секунд в системах на 64-битное, тогда можно будет отсрочить дату очередной проблемы на 292 млрд. лет. Но учитывая то, что сейчас продолжают разрабатываться и повсеместно использоваться 32-битные системы, возникают сомнения: а хватит ли времени на то, чтобы заменить их все к 2038 году?

Не сделал ничего важного и полезного за сегодня? Расскажи об этом!Перейти на yandex.ru/q/loves/you

у меня айпад пару раз отскакивал в 1901

Первый
Бездельник, ленивец, вэйпер.  · 18 апр 2017

К 2038 году, в штатном пользовании не останется компьютеров с 32 разрядной системой, так что 2038 год на всех устройствах "пройдёт" без нареканий, а о 10000 году говорить как минимум рано и бессмысленно, к тому времени возможно и нашей цивилизации то не останется, не то что современных девайсов и программ "заточенных" под четырёх символьную датусчисления.

Боже, каким же Я был тупым :)  · 10 апр 2017

Можно смело посылать человеков за семечками, которые говорят "вот через н-лет будет это или то".
Качественные специалисты в какой-либо области не смогут тебе сказать, что и как будет через 5-10 лет. У них просто нет такого объема информации о всех проектах людей. Поэтому, если кто-то говорит, что через н-лет будет что-то, то можешь уходить красиво, как крабик.

Скучный дед, на последней ступеньке между мудростью и маразмом. Я предупредил.  · 24 сент 2017

Сидят два мужика и обгладывают мамонта. - Слушай, как же люди будут жить через 10000 лет, мы ведь всех мамонтов к тому времени съедим? - Как, как!?. С голоду вымрут! 

Вроде не вымерли пока. Хотя мамонтов, таки - да, нету!

Будто не для Вас по всему миру сельское хозяйство, фермерство, пашут, сеют. Одним мамонтом сыт не будешь. Леса бы... Читать дальше
Выгнали с позором из "Института благородных девиц" за "неприличные" разговоры  · 8 апр 2017

По-моему это просто перепевка старой пугалки про проблему 2000. Многие опасались что компьютеры, настроенные на отсчет года по последним трем цифрам (1999 год в компьютерах считался как 999)  собьются или вырубятся, когда наступит 2000, а по их понятиям - 000. К счастью, это оказалась всего лишь пугалка.

Первый
Системный администратор Linux/Unix  · 8 апр 2017
Ерунда это все.  Проблема 2000 ничего не сломала и 10 тысячного не сломает и 100 тысячного. Если говорить о том, что все же может иметь место, так это проблема с POSIX-системами в 2038 году, а именно переполнение 32-х битного представления времени с начала UNIX-эпохи, но и эта проблема уже решена и для представления времени используется 64-х битное целое. Проблемы могут... Читать далее