EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

Ограничение использования OpenSCADA во времени


Author Message
Written on: 17. 12. 2009 [10:32]
almaz
Almaz Karimov
Contributor
Topic creator
registered since: 25.09.2008
Posts: 516
OpenSCADA использует UNIX формат времени. До 19 января 2038 года 03:14:08 можно не беспокоиться.icon_smile.gif
Вот выписка из вики:
19 января 2038 года в 03:14:08 по всемирному времени значение переменной типа time_t, отсчитывающей число секунд, прошедших с 1 января 1970 года, достигнет 2^31, что может привести к ошибочной интерпретации этого числа как отрицательного. Возможное решение данной проблемы состоит в использовании не 32-битной, а 64-битной переменной для хранения времени, чего хватит ещё на 300 миллиардов лет.

До 2038 года OpenSCADA может оказаться в каждой железке. Устанем потом обновлять прошивки систем даже если уязвимость будет устранена в исходниках.
Нельзя ли перейти на 64-битное время заранее? Например до версии OpenSCADA 1.00... Конечно ещё и linux надо перевести на такое время...

21 век - век повсеместной автоматизации. Главное - во благо всем людям.
Written on: 18. 12. 2009 [13:32]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
almaz wrote:

OpenSCADA использует UNIX формат времени. До 19 января 2038 года 03:14:08 можно не беспокоиться.icon_smile.gif
Вот выписка из вики:
19 января 2038 года в 03:14:08 по всемирному времени значение переменной типа time_t, отсчитывающей число секунд, прошедших с 1 января 1970 года, достигнет 2^31, что может привести к ошибочной интерпретации этого числа как отрицательного. Возможное решение данной проблемы состоит в использовании не 32-битной, а 64-битной переменной для хранения времени, чего хватит ещё на 300 миллиардов лет.

Уже, и давно.
"time_t" это производный тип за которым, например в Linux, стоит базовый тип "long int", который на x86_64 и является 64-разрядным.
Кроме того внутри OpenSCADA используется свой базовый тип для хранения времени, а именно "long long int", который всегда 64-разрядный и содержит ещё микросекунды, истечёт в 300 тысяч лет.


Learn, learn and learn better than work, work and work.



16859