Проблему, которую можно было ожидать 19 января 2038 года во вторник в 03:14:07 по Всемирному времени (UTC), исправили разработчики Linux в новой версии ядра 5.6. Одним из основных разработчиков, занимающихся этой проблемой является Арнд Бергманн, который и сообщил об исправлении в ядре Linux за восемнадцать лет до возможного временного апокалипсиса из-за использования способа хранения даты, согласно стандарту POSIX (UNIX timestamp, Unix epoch).
Над решением этой проблемы разработчики Linux трудились несколько лет — y2038-endgame.
И вот, 29 января 2020 года стало известно, что разработчики не только решили эту проблему 2038 для ядра Linux 5.6, а также собираются портировать патчи для ее решения в ранние версии ядра Linux — 5.4 и 5.5.
Правда, пока что решение сделано с несколькими оставшимися оговорками, например, пользовательское пространство и приложения, работающие в нем, должны быть построены на базе 64-битного формата time_t, а не 32-битного. Поддержка 64-битного формата time_t существует в библиотеках GNU C Library 2.32 и Musl libc 1.2. Также со стороны приложений пользовательского пространства, чтобы избежать проблемы 2038 года, они должны использовать все современные системные вызовы ядра Linux.
26 января 2020 года стало известно, что Линус Торвальдс представил первый стабильный релиз ядра Linux 5.5 под кодовым названием Kleptomaniac Octopus. Выпуск новой версии ядра Linux вышел в соответствии с графиком, спустя два месяца после выхода предыдущей стабильной версии. Исходный код Linux 5.5 доступен для загрузки с портала kernel.org.
lingvo
Ну наконец-то! Мы уже заждались этого патча.
mapron
Если не секрет, я так понял из вашего коммента, вы внедряете 32-системы на базе Linux с ожидаемым сроком поддержки > 20 лет. Что это за сфера? Атомная энергетика?
justhabrauser
Если делать в стиле
"…як-…як — и в продакшн""после нас — хоть потоп", то на выходе получается винда.Newbilius
Получается операционная система, являющаяся лидером для домашних ПК на протяжении более чем 20 лет? Да, беда...
justhabrauser
АвтоВАЗ был лидером автомобильной промышленности на 1/6 части суши 30 лет.
И что?
Количество — показатель качества?
И где винфоны теперь?
engine9
А винфон, царствие ему небесное, как мобильная ОС в плане целостности дизайна — непревзойден. ИМХО.
justhabrauser
… никем, кроме Symbian :-)
engine9
Увы, не пользовался. Правда хороша?
justhabrauser
Не то слово.
Надежно, как танк. И шустро.
babindevil
Это был шедевр, на моём N80 было после загрузки, свободно оставалось 18 Мб оперативы запускал 10 приложений и все летало, кстати можно было самому писать программы на питоне. но были минусы симбиан плохо работало с приложениями на яве, и просто так не прошьёшь чистой вычищенной прошивкой как сейчас андроид. На моей мобиле в 2007 году был вайфай, ИК порт(использовал как пульт для телека) и две камеры 3.2 Мп и 2 Мп, но тольк вайфай в городе был только в одном месте и видеосвязь в России не работала, можно сказать они опережали время
engine9
А почему так было, удачная архитектура? Старались программисты?
А ее кто-то пытался воскресить или переписать?
justhabrauser
… а потом нокию купило Microsoft.
Дальше продолжать?
Aldrog
Я многое точно не знаю, но примерная история такая:
Nokia начали развивать следующее поколение Symbian под именем MeeGo -> Под давлением Microsoft разработку свернули -> Сообщество создало форк Mer -> Выходцы из Nokia основали Jolla, взяли под крыло Mer, на его базе сделали Sailfish, для обхода патентов UI создали заново.
Параллельно сообществом развивается полностью свободный дистрибутив Mer под названием NemoMobile.
Dima_Sharihin
Извините, но MeeGo — это ни разу не Symbian, а продолжение разработки линух-дистрибутива Нокии под названием Maemo (использовался в N810/N900). Задумывалась, как "операционная система для всего" (см. Windows 10), правда в итоге так никуда и не пошла.
Aldrog
Да, наверное Вы правы, я ничем из продуктов Nokia не пользовался, слежу только начиная с Sailfish/Mer.
Знаю только что MeeGo позиционировался как замена Symbian.
softaria
>АвтоВАЗ был лидером автомобильной промышленности на 1/6 части суши 30 лет.
Искусственное ограничение. Альтернативы на эту часть суши не допускадись.
У винды таких преференций нет и не было.
justhabrauser
То есть об OEM-договорах Вы никогда не слышали.
Windows удобна не потребителям, а производителям (это не одно и то же).
И не столько удобна, сколь выгодна.
Была, по крайней мере (сейчас в среде серверов выгоднее Linux).
Пример из наших пенатов — 1С.
Как самолет: "и тошнит — и выйти некуда".
Если для онкобольных уже долгие годы единственный вариант — удаление опухоли, то это значит, что хирургия среди них популярна?
softaria
Вы не видите разницы между OEM договорами, которые заключались компаниями добровольно и ограничением допуска на рынок СССР на уровне государства? Любой производитель операционок имел право заключать OEM договора. Microsoft просто сделал лучшее предложение. Да — производителям. Но если бы потребитель был массово не согласен с таким выбором производителей, эти договора бы анулировали. Кому захотелось бы перепродовать продукт, который наносит ущерб бизнесу и бренду?
JerleShannara
А какая разница, если в результате OEM договора(ограничения государства) я либо не мог вообще купить ноутбук(автомобиль) с линуксом(иностранный), либо мог купить пару весьма посредственных моделей? Мне как пользователю разницы не было, т.к. на полках(автосалонах) были в основном только виндовые буки(В/Г/З/УАЗ).
softaria
Ветка начиналась с утверждения Newbilius, что винда является лидером для домашних ПК на протяжении более чем 20 лет.
Это лидерство подвергли сомнению, сравнив с ситуацией на закрытом автомобильном рынке СССР.
Я не согласен с тем, что сравнение корректно. Винда стала лидером в конкурентной среде. (Что не отменяет низкое техническое качество ее первых версий)
justhabrauser
Винда стала лидером в среде Микрософт.
А Микрософт стало лидером в среде IBM-PC решением самой IBM (которую потом и бортанула, но это отдельная история).
Так что за чистую конкуренцию — немного натянуто.
softaria
Конкуренция никогда не бывает чистой. Каждый пользуется всем, что ему доступно и на что он готов пойти. Это не отменяет сам факт конкуренции.
И, да — вы видели, например, Linux в 1995 году? Для простых пользователей даже его установка была непосильной задачей. Как и работа в нем.
mkll
Начиная с какой-то величины — фактически отменяет. Де-юре она есть, де-факто — ее нет.
netch80
>И, да — вы видели, например, Linux в 1995 году? Для простых пользователей даже его установка была непосильной задачей.
Именно в 1995-м проблемы как раз ещё не было. Была непривычность, да. Те, кто привыкли к DOS & Windows 3.x, должны были переходить на заметно другой стиль во всём. Но установка DOS и Windows была не легче — тоже куча тонкостей и необходимость знания глубоко технических деталей. Более того, некоторые вещи с Linux были заметно проще — например, у него было меньше проблем с геометрией диска выше 500MB.
Ситуация, что пользовательский (десктопный) линукс заметно отставал, выросла с Windows 95/98 и далее на 2000. Вот тогда Microsoft хорошо поработал на упрощение установки и запуска (причём оригинальная 95 ещё сильно страдала… вот OSR2 наконец стала выглядеть прилично), и на развитие vendor lock-in через MS Office. К 2005 это укрепилось окончательно, а средства для Linux только-только начали выходить из сырого состояния.
> Как и работа в нем.
Если уже добыт (что было непросто без связей), установлен и запущен — работа была простой и лёгкой, знаю по своему опыту. Вот взаимодействие с другими становилось чем дальше, тем сложнее — пока основную часть этого взаимодействия составляли офисные документы…
iig
Если работа не связана с обработкой документов (M$Office), чертежей (AutoCad, PCAD, etc), графики (Photoshop, Corel) — да, было всё просто :D
netch80
Да, я про это сказал там. >90% боли составляло именно отсутствие Linux-версий целевых программ. Сама ОС проблем давала минимум.
(Мне некоторое время было ещё веселее — под FreeBSD — добавлялся слой эмуляции Linux для заметной части того, что таки было.)
Am0ralist
Стоп-стоп-стоп. По OEM договору производителей никак не ограничивали на возможность выпуска ноутбуков под линуксом или другой ОС. Если же вы не можете купить под линуксом, то возможно это связано с тем, что производителю было не выгодно на нём выпускать (например, потому, что косяки оного ложились бы на плечи производителя, а МС сама обновляла винду ту же).
Более того, пример с андроидом на мобильных показал, насколько обратная ситуация была бы адом. Никакущая поддержка, редкие обновления, большая часть смартфонов не может быть обновлена до последних версий ОС, обновления заканчивались не редко примерно тогда же, когда и оканчивались продажа девайсов в розницу.
netch80
> По OEM договору производителей никак не ограничивали на возможность выпуска ноутбуков под линуксом или другой ОС.
Фактически — ограничивали, ибо:
>> In the late 1980s, Microsoft began requiring OEMs to pay Microsoft a “per processor license fee” for each computer they shipped, regardless of whether they installed Windows on the computer. This arrangement gave OEMs a powerful incentive not to pay for and install competing operating systems. (источник)
Если вы скажете, что необходимость платы за Windows, даже если она не установлена, это не ограничение… обычно такое принято называть «иезуитство».
Am0ralist
Вы забыли добавить:
Т.е. никак не касается популярности windows, с учетом масштабов роста ПК с 94 года на несколько порядков и то, что за это время многие другие продукты не только успели завоевать рынок, но и уже исчезнуть. Успех в 3.11 никак не объясняет успехов 9х, XP, 7. Более того, были ещё виста и 8-ка, которые показали то, что навязать ОС достаточно трудно.В итоге оправдываться тем, что было даже больше, чем 25 (! пофиксил!) лет назад (тогда в интернете всего нескольких млн пк выходило), сейчас, когда одна десятка где-то под миллиард имеет — это уже как-то совсем можно от безысходности. Сколько млрд. устройств было выпущено с тех времён без этого пункта?
netch80
> Успех в 3.11 никак не объясняет успехов 9х, XP, 7.
Объясняет — за счёт того, что уже был подавляющий образец. Дальше правильная политика развития этой базы с учётом совместимости позволила сохранить набранное господство.
> Более того, были ещё виста и 8-ка, которые показали то, что навязать ОС достаточно трудно.
Потому что альтернативой были более ранние версии того же.
> это уже как-то совсем можно от безысходности.
Да, они приняли достаточно мер, чтобы поддержать этот успех. Но без его начального достижения ничего бы не получилось. А дальше надо было просто не напортачить уж совсем грубо.
Вот с принципиально новыми рынками это не прошло, потому что софт надо было полностью переписывать и т.д.
NBAH79
это на всех базах данных сказывается
le1ic
В БД свой формат хранения времени, с ОС не связан
pfr46
habr.com/ru/post/485546
le1ic
И? Ну в MySQL такой же формат, как и в линукс. на int32 завязано, не иначе, удивительно да? )) Уверен: еще в десятках других систем так же. Но это никак не делает их зависимыми друг от друга. Починка Линукса не починит MySQL.
pfr46
Так вы уж определитесь свой в БД формат или всё же UNIX_TIMESTAMP.
iig
В mysql (например) есть форматы DATETIME, DATE и TIMESTAMP. DATETIME должно хватить до 9999 года.
pfr46
DATETIME может и хватит, а вот TIMESTAMP увы…
le1ic
Формат хранения в БД не зависит от формата структур API OS. Так вам понятно?
lingvo
Да. Как это может быть ни странно для ITшников, но системы на базе 32-х битного Линукса вполне себе используются во встраиваемом оборудовании, которое по требованиям должно служить 20+ лет. Да, это та же энергетика и подстанции, где используются системы синхронизации времени на базе GPS и различное Ethernet оборудование.
Вот мы используем такое оборудование в своих проектах и нам сложно объяснять клиентам, что то, что мы им устанавливаем, потребует патча где-то между сегодня и 2038-ым годом (или, что более вероятно, замены оборудования до 2038г), а иначе наша система просто накроется, и при этом мы даже не можем толком протестировать, к каким плачевным последствиям это может привести, если они не сделают апгрейд вовремя. То есть это явная бомба замедленного действия.
А разработчики того оборудования нам говорят "Ну ждем, пока Linux ядро пофиксят" и скидывают ссылку на этот баг.
gecube
Почему нельзя протестировать? Вы не можете собрать тестовый контур и в нем перевести время вперёд ?
lingvo
Настолько далеко перевести не можем. Не предусмотрено.
mapron
Что значит странно? я сам так-то опыт эмбеда имею =) просто таких сроков поддержки пока не встречал, 10 лет это норма. Если не секрет, кто минусит мой коммент выше — что не так? Я как-то грубо спросил?
thauquoo
Вопрос странно поставлен — если это не внедрение на > 20 лет и не атомная энергетика, то проблема не стоит внимания?
32-битное оборудование стоит и в промышленности, и в автовокзалах на кассах, и в школах, и в обычных небогатых пользователей. В 2038 году н 32-битном ПК уже нельзя будет набирать текст или пользоваться софтом, который до сих пор иногда выпускается 32-битным?
mapron
Простите, ключевой момент «поддержка без обновления».
В
Как правило (я не ручаюсь за 100% кейсов), но все же, обновления — вполне себе опция. Сложно представить чтобы у небогатого пользователя не было возможности обновить систему. Ведь ядро 5.6 это не последняя версия с поддержкой 32 бит, будут же еще.
Поэтому да, по умолчанию подразумеваешь что-то сильно жесткое.
Даже в системах энергетики периодически обновления софта делаются (да, это далеко не автоматически, и это обновление по сути как маленькое внедрение целиком новой системы с приемкой, испытанием, и выведением сперва резервной цепи, после тестирования — уже основной).
fougasse
Broadcasting, например, в чём, собственно, проблема с 32-битными системами?
justhabrauser
Обыкновенный контроллер бурильни.
В герметичном ящике, закапывается в землю и его уже никто никогда выкапывать не будет.
Гарантия — 15-25 лет.
mapron
Спасибо.
puyol_dev2
18 лет до 2038, а они уже заждались ))
Squoworode
50 лет с начала эпохи, заждались уже
Balling
Ммм. Я боюсь вам придется ещё подождать, так как там еще нужен glibc и там все очень так себе. https://sourceware.org/glibc/wiki/Y2038ProofnessDesign
hottabxp
Лучше рано, чем поздно.