Pull to refresh

Comments 44

и даже если самолёт летит гораздо выше, они всё равно будет передавать значение FL600.

Вот это костыли
Это все, скорее всего, из-за секретности. Высоты на которых проводят свои операции военные засекречены, и именно поэтому передатчик останавливается на FL600.
Нет, просто выше 60000 футов неконтролируемое пространство.
16 бит (2 октета) выделялось в ПО. Видимо писали тесты, которые должны пройти, а не которые должны проверять отказоустойчивость)
Это они попытались 16 бит сэкономить от 32 битного int-а. Оптимизаторы, однако))
Не факт, что у них int изначально был 32 битный ;) М.б. как раз 16 битный, а то и вовсе 8 битный. А потом получилось так, что формат структуры оставили для совместимости :) В общем то обычная практика для долгоиграющих проектов, к которым военные как раз относятся. Помимо этого существуют ещё «зипы» — оборудование, которое должно спокойно хранится несколько десятилетий, и м.б. быстро использовано в качестве замены в случае отказа установленного.
Ну вот там сидели два программиста и обсуждали:
— Слушай, у нас высота может большая быть сделаем ее 32-битной.
— Да не, не будет никто так высоко летать, а у нас железка 16-битная. Так что давай делать 16 бит высоту, съэкономим память, и работать побыстрее будет.

Так и получается потом, что потом самолеты под землю уходят при переполнении интов. :D
Читал о похожей проблеме в израильских ВВС — программное обеспечение самолётов не было расчитано на отрицательные высоты и стабильно падало при полётах над Мёртвым Морем, уровень которого значительно ниже уровня моря.
UFO landed and left these words here
В «Гигабайтах власти» еще примеры были. Достоверность не знаю.
Я слышал версию, что ПО не падало, а просто самолет переворачивался кверху брюхом на отрицательных высотах :)
И задом летал, с отрицательной скоростью :)
Все, нашел. Переворота не было, был крэш и ребут. А переворот, как сказали ниже, был из другой оперы: при пересечении экватора.
Не потреблял топливо, а вырабатывал.
UFO landed and left these words here
Похоже это и есть то самое ПО, поскольку сломалось при переполнении uint16, а не на int16.
Товарищей, которые 8-битным счётчиком на установке по радиотерапии убили несколько десятков человек (из-за переполнения подавалась бешенная доза радиации вместо указанной) перевели в авиационный отдел? Они сделали выводы из предыдущей ошибки и больше никогда не используют 8-битные счётчики.
Не хочется занудствовать, но по «несколько десятков» и «8-битный счётчик» вы не правы.
В чём проблема использовать нормальные числа? Какие могут быть двухбайтовые целые числа в 2014-м году? Ну что за экономия на спичках?
Обратите внимание на новость — «официальные источники молчат, но мы думаем, что дело было так». Вспоминается серия из Южного Парка. «Переселенцам помогали инопланетяне. Не верите? А вы можете предоставить доказательства, что инопланетян там не было? Вот то то же!» Как-то так делаются новости…
Учитывая, что самолёт U-2 выпускается уже почти 60 лет, еще неизвестно когда на этом экземпляре последний раз софт меняли.
Ну тут проблема не в самолете. На нем ПО не обновляли. Летал он там десятилетиями, а проблема возникла после обновления системы мониторинга на земле.
Та модель, которая летает сейчас, выпущена в начале 80-ых. К тому же, эти самолеты регулярно обновляются
Вот я сегодня схожим вопросом озадачился, когда документация IBM на DB2 сказала мне, что имя администратора базы в линуксе не может быть более 8 символов. В противном случае база даже не поставится.
Запросто — микроконтроллеры наше всё. Ещё пять лет 16-битные контроллеры широко применялись. И дадже сейчас применяются.
Во-вторых, система могла и 20 лет назад разрабатыватья — оно с авиационной безопасностью свзяано и потому никто не торопится менять.
И самое главное — есть языки программирования, где целое до сих пор 16 бит — вот такой сюрприз.
Это как в тех случаях когда первые версии F-22 при пересечении экватора переворачивались на спину и не могли из США в Японию пересечь линию дат :)
UFO landed and left these words here
А измеряли бы высоту в метрах — не достигли бы такого предела :)
Угу, 65535 метров хватит для всех! ;)
Через пару десятков лет и этого будет мало
Собственно, в этом и был смысл моего предыдущего комментария.
скорее всего, тут дело не только в ПО, а еще и в протоколе передачи данных — поле высоты всего 16 бит, вот и получили проблемы…
Не совсем сходится :) Официальное название этой модели — U-2S
Стоимость проекта 2.1млрд $, но как ни странно, они умудрились допустить программную ошибку практически в самом начале…
Сто раз твердили — проверяй входные данные, но некоторые очень любят получать по лицу старыми граблями — видать лицо уже приняло форму ручки граблей. Можно ведь было сделать вывод сообщения об ошибке с требованием узнать у пилота — а на какой высоте он сейчас, или перевести работу в ручной режим, а не тупо интерпретировать неправильные значения.
Sign up to leave a comment.

Articles