Скоро все компьютеры превратятся в тыкву. Грозит ли нам проблема 2038 года?

25 декабря 2021 в 8:00
Источник: Сильвестр Талонов. Фото: u/curt_bean

Скоро все компьютеры превратятся в тыкву. Грозит ли нам проблема 2038 года?

Источник: Сильвестр Талонов. Фото: u/curt_bean

Более 20 лет назад весь мир стоял на ушах в преддверии 2000 года. Наступали новый век и очередное тысячелетие — события из ряда вон выходящие сами по себе, символизирующие начало другой эпохи. Ощущения были необычные, хотя для истории и течения времени нет никакого значения, что там за цифры на выдуманных человеком календарях.

Millennium bug

В новостях тогда активно обсуждали новый феномен, не характерный для прошлого, — проблему 2000 года. В интернете, на телевидении и даже в газетах пугали грядущим цифровым апокалипсисом: все компьютеры после наступления нового года превратятся в тыкву. А заодно — и электроника, которая хоть как-то умеет считать время. Странно, но все было завязано на то, как компьютеры записывают дату — или, вернее, год. Для его обозначения использовалось всего две цифры: например, 97, 98, 99 и, наконец, 00. Это позволяло сократить объем хранимых данных, да и смысла в четырех символах не было.

Фото: The Guardian

Но для компьютера два нуля вовсе не означало 2000 год: он мог «подумать», что наступает 1900-й или просто 0-й. Так могли появиться очень «старые» дети, которым сразу после рождения стукнуло 100 лет, банки путались бы в платежах, а самолеты летели бы в непонятном направлении — опасались этого и всего чего угодно еще.

На решение проблемы, которую обрисовали задолго до ее наступления, якобы направили сотни миллиардов долларов (точной цифры никто не знает). Гипотетический (отчасти, потому что сбои все же наблюдались) баг смогли обойти, и никакого апокалипсиса не настало. Одни говорили, что все было потрачено не зря и что в противном случае мир перестал бы существовать. Другие указывали на то, что огромное количество электроники не было затронуто мероприятиями по обеспечению «поддержки 2000 года», но на ее работе это никак не сказалось.

Проблема 2038 года

С тех пор прошло более 20 лет, уже меньше отделяет нас от аналогичной напасти — проблемы 2038 года. Она отчасти походит на свою предшественницу тем, что вновь компьютерам может не хватить символов для записи дат и прошедшего времени, которое чаще считается машинами в секундах. Только говорят, что теперь все серьезнее. Так ли это на самом деле?

Фото: PC Games Hardware

На заре современного компьютеростроения речь шла о 16-битных системах, способных хранить в своей памяти всего 65 536 значений. Это теперь компьютеры управляют практически всеми аспектами нашей жизни, а тогда они не были тесно интегрированы в нее. Позже распространение получили 32-битные системы, которые остались всерьез и надолго, однако не навсегда.

Время пойдет вспять после отметки 03:14:08.

Если говорить о подсчете времени, в распоряжении условного 32-битного «Скайнета» находится лишь 2 147 483 647 секунд, еще столько же — со знаком минус, но ими обычно нельзя воспользоваться. И вот эти секунды «закончатся» в 2038 году, так как отсчет ведется с 1970-го (со временем отсчета — «эпохами» — есть нюансы, так как «обычные» ПК, например, часто отсчитывают время с 1980 года; есть и другие исключения, продлевающие или укорачивающие время «жизни»). То есть 2 147 483 647 — максимальное число, которое умещается в 32-разрядной системе без «твиков».

Помните, в 2012 году отовсюду звучала песня Gangnam Style южнокорейского артиста PSY? Спустя пару лет композиция стала первой набравшей на YouTube более 2 млрд просмотров. И тогда проявился баг, напомнивший об ограниченных возможностях существующих систем (когда видеосервис только стартовал, казалось, что 32-битного поля более чем достаточно для счетчика просмотров).

В конце 2014 года оказалось, что счетчика не хватает. В начале декабря СМИ пестрели заголовками: «Хит Gangnam Style сломал YouTube». На самом деле все было не так, однако небольшой лаг в подсчетах все же случился — какие-то 5 млн просмотров. Само собой, в YouTube прогнозировали события, поэтому начали модернизировать систему заранее, переведя ее на платформу с поддержкой 64-битных типов данных. Над этим команда инженеров начала работать еще осенью 2014 года, увеличив максимально возможное количество просмотров до 9,22 квинтильона.

История с Gangnam Style — наглядный пример того, чем грозит 2038 год, если не предпринимать хотя бы минимальных усилий. 64-битные процессоры и соответствующее программное обеспечение для него стали мейнстримом давно: даже Windows XP успела перейти на 64 бита, а с 2011 года аналогичным путем двинулась Apple с ее настольной ОС. Однако в строю остается немало систем, не отвечающих новым требованиям, да и наверняка к тому времени останется кучка пользователей «древней» электроники.

Какие конкретно есть угрозы

GPS

Чаще всего вспоминают системы GPS, которые полностью завязаны на время и транслируют его. Существует миф, что спутники и управляющие системы в 2038 году могут выйти из строя, потянув за собой все остальное. Да, отсчет времени для GPS ведется как раз с 1980 года, однако он происходит по неделям и секундам в каждой из них. Более того, каждые 19,7 года (или 1024 недели) наступает событие GPS week number rollover, когда отсчет начинается заново: 10-битного значения достаточно для хранения информации только о 1023 неделях. Следующий сброс запланирован как раз на 2038 год (а прошлый состоялся в 2019-м).

Более того, современные устройства перешли на более совершенную систему, которая использует для хранения информации о неделях 13 бит, что позволяет считать недели без каких-либо проблем до 2137 года. Что касается конечного оборудования, здесь все кроется в своевременном обновлении ПО, а это зависит от его поставщиков и производителей. Ранее из-за запоздавшей реакции пострадали некоторые аэропорты, научное оборудование, системы слежения за погодой, бытовые GPS-навигаторы и даже старые iPhone и iPad. То есть основная проблема кроется в неправильной обработке данных о времени на конечном устройстве.

Для ГЛОНАСС эта проблема вовсе не характерна, а у других спутниковых систем «запас» времени иссякнет нескоро — лет через 50.

Компьютеры, смартфоны, базы данных и ПО

Сейчас сложнее найти новое устройство, которое работало бы на 32-битных платформах: все давно переходят на 64-битные, не остаются в стороне и мобильные девайсы.

Однако проблема не столько кроется в железе и операционных системах (отдельные 32-битные, которые могут использовать 64-битный тип данных для хранения времени, либо беззнаковые 32-битные, где это возможно), сколько касается прикладного ПО, встраиваемых систем, коммуникационных протоколов (NTP, например), баз данных, файловых систем, драйверов и остального. На условном 64-битном компьютере можно запускать 32-битное приложение, не совместимое с проблемой 2038 года, да и 64-битная программа может быть собрана «криво».

Теперь популярна и концепция интернета вещей, которая может стать одним из слабых звеньев цепи, если разработчики не предусмотрят все нюансы. Не исключено, что их пока будут частично игнорировать из-за желания сэкономить, снизив затраты на разработку и комплектующие. Так что в 2038-м «кое-какие» проблемы все же будут.

Для обхода может использоваться адаптация «несовместимого» кода. Это касается, например, баз данных, в которых возможно записывать даты в «правильном» формате — просто потребуется немного работы инженеров и больше дискового пространства (в четыре раза больше, если быть точнее). В прошлом это было серьезным ограничением, однако ныне это уже менее актуально.

ПО можно перекомпилировать (если, конечно, не утеряны исходники оригинального кода), остается и вопрос внутренней совместимости. Доступен переход на новые решения, но в некоторых случаях потребуется время. Представьте, как компания с 10 тыс. сотрудников запускает новый почтовый сервер с новым клиентом: надо все перенести, «отформатировать», как полагается, и объяснить, как с этим работать. Или системы видеонаблюдения с десятками тысяч камер и гигабайтами логов…

Проблема 2038 года считается реальной, однако лишь в случае бездействия. Аналогия — здоровье, которое пошатнулось от неправильного образа жизни, поддающегося корректировке. Наибольшие опасения у некоторых специалистов вызывают именно встраиваемые системы. Это касается автомобильных компьютеров, кондиционеров, систем видеонаблюдения, роутеров, да даже холодильников, электроника которых должна работать все время их существования.

Часть профессионального сообщества считает Y2K bug более серьезным, нежели грядущий в 2038-м — потому что тогда решение не было столь очевидным. В то же время через 17 лет компьютеры будут распространены куда шире, чем 21 год назад, и их будет в разы больше. Поэтому другая часть ждет восстания машин.

Читайте также:

искусственная сосна, ПВХ, 1.8 м, цвет зеленый, шишки
искусственная ель, литая, 0.9 м, цвет зеленый
искусственная ель, литая+ПВХ, 2.4 м, подсветка

Наш канал в Telegram. Присоединяйтесь!

Есть о чем рассказать? Пишите в наш телеграм-бот. Это анонимно и быстро

Перепечатка текста и фотографий Onlíner без разрешения редакции запрещена. ng@onliner.by