Построены ли сегодня новые системы с теми же процессорами, языками программирования и программным обеспечением для разработки, что и 20 или более лет назад?
Под новыми я подразумеваю, что эти системы в настоящее время разрабатываются для будущих авиалайнеров или недавно были введены в эксплуатацию впервые.
Любые конкретные примеры новых конструкций, используемых в крупных авиалайнерах последнего поколения (наиболее очевидными примерами являются A350 и 787), будут лучше, чем общие ответы.
Меня интересуют примеры из любых бортовых систем (но не, например, бортовых развлечений).
В рамках этого вопроса: склонна ли отрасль обновлять свои продукты посредством постепенных обновлений микропроцессоров и языков программирования, которые она принимает, или она склонна к переходу на новые технологии раз в поколение? И есть ли существенные различия в том, как к этому подходят производители авиакомпаний (в отличие от военной/авиационной промышленности общего назначения)?
Примечание. Я больше сосредоточился на изменениях в авиационном оборудовании и программном обеспечении, чем на том, что используется в настоящее время, поскольку вопрос, связанный с языками программирования, все еще актуален для «новых» самолетов. Я не хочу дублировать этот вопрос или ответы на него. По моему мнению, C++, C# и Ada, вероятно, будут доминирующими языками программирования для авионики, по крайней мере, в следующем десятилетии.
Во-первых, вы должны понимать жизненный цикл самолета. Многие самолеты находятся в эксплуатации более 30 лет . Авионика получает обновления (будь то добавление новых функций, исправление ошибок или добавление в соответствии с требованиями). Однако основная часть работы выполняется во время первоначальной разработки программного и аппаратного обеспечения. Затем конфигурация в основном фиксируется до тех пор, пока это поколение авионики не будет заменено производителем или модернизировано другим производителем.
Если авионика проходит через обновление поколения (например, от ЭЛТ до ЖК-экранов), все изменения должны стоить затрат, поэтому обычно мало что меняется. Может процессор, но точно не язык программирования. Например, G1000 отсутствовал в течение 12 лет, прежде чем было выпущено следующее поколение аппаратного обеспечения (хотя в то же время они выпустили множество обновлений программного обеспечения для аппаратной совместимости, синтетического зрения и т. д.).
Точно так же Avidyne Entegra отсутствовала в течение пяти лет и постоянно добавляла основные функции, такие как погода по каналу передачи данных и подход LPV, прежде чем, наконец, обновить аппаратное обеспечение в выпуске 9 в 2009 году. Самолеты Falcon, такие как Falcon 900, имели обновление программного и аппаратного обеспечения для своей авионики в 2011 году . , но это обновление было основано на семействе аппаратных и программных средств Primus Epic, первому поколению которого уже исполнилось 9 лет. Я считаю, что все 900-е все еще работали на старом оборудовании 1996 года до обновления 2011 года. На другом конце спектра от этих медленных обновлений находится военная система JSF, разработанная таким образом, чтобы ее можно было легко обновлять каждые несколько лет (но они не говорят, как часто).
Ценность авионики обычно определяется не экзотическими новыми функциями и уж точно не вычислительной производительностью. Ценность определяется надежностью, соблюдением требований и соблюдением требований безопасности . Для этого требуются функции, достаточно простые для понимания инженером и пилотом и достаточно надежные, чтобы от них зависели сотни жизней. Таким образом, новые добавляемые функции, как правило, требуют небольшой дополнительной производительности, и мало стимулов для передовых технологий или новейших парадигм программирования, таких как облачные вычисления, машинное обучение или объектная ориентация.
Инженер из Rockwell Collins сказал то, что применимо ко всей авионике: «В прошлом мы изо всех сил пытались уместить все, что нам нужно, в размер процессора и скорости, которые у нас были, и как получить все эти биты через интерфейсы, которые у нас были. Процессоры, которые у нас есть сейчас, и оптоволоконные интерфейсы, это больше не проблема... Теперь проблема заключается в том, как управлять и разрабатывать хорошее, безотказное программное обеспечение, а также тестировать все задействованные строки кода. Итак, теперь, когда у нас есть вся обработка и пропускная способность, которая нам нужна, мы должны убедиться, что можем использовать ее, а не загонять себя в угол».
Верификация — один из важнейших движущих факторов (и затрат) при использовании процессора и языка программирования. Все аппаратное и программное обеспечение должно иметь уровень безопасностиприкрепленный к нему, при этом наиболее важные функции (например, авионика для автоматической посадки) считаются «Уровнем А», что означает, что такой отказ авионики может иметь катастрофические последствия. Чтобы соответствовать строгим требованиям безопасности к программному обеспечению уровня А (что часто составляет один такой отказ на 10^9 летных часов), программное и аппаратное обеспечение необходимо тщательно протестировать, чтобы гарантировать, что ничего не пойдет не так. Это включает в себя покрытие каждого условия в каждой строке кода. Большинство инструментов, разработанных для работы с вашим языком программирования и архитектурой программного обеспечения, также нуждаются в формальной проверке (обычно называемой «квалифицированной»). Вдобавок ко всему, необходимо провести дорогостоящие летные испытания, чтобы оценить любые изменения. Это создает большую инерцию и означает полную перестройку существующего продукта или создание нового продукта с нуля только для того, чтобы получить "
Виртуализация (позволяющая различным ОС действовать так, как будто они работают сами по себе, но на самом деле работают с прослойкой между собой и голым оборудованием) и многоядерная обработка теперь поддерживаются некоторыми ОС реального времени для коммерческих готовых процессоров. . Они должны соответствовать стандартам DO-332 и других материалов. Согласно моему тексту от 2013 года, это все еще находится на стадии изучения, и ни одна авионика с такими характеристиками не была сертифицирована. Основная проблема заключается в том, что многоядерные процессоры не просто имеют больше функций, но и имеют больше функций, которые не всесторонне задокументированы или протестированы. Для получения дополнительной информации о проблемах с использованием многоядерных процессоров см . CAST 32 FAA и эту презентацию .
На выбор языка программирования и процессора для каждого продукта влияет множество факторов, некоторые из которых:
Я считаю, что наиболее распространенными языками, используемыми в системах, критически важных для безопасности полетов, являются C и Ada, а C++ получает все большее распространение в последние 10 или 15 лет.
Процессоры могут варьироваться от простых 8-битных микропроцессоров SO8 до PowerPC и многоядерных процессоров x86 или ARM System on Chips. Электронное оборудование, такое как PLD и FPGA, также становится популярным для определенных рабочих нагрузок.
минут
Даниэле Прочида
multi-core processors [have] features that are not comprehensively documented or testable
- другими словами, будущие поколения ЦП могут оказаться совершенно непригодными для критически важных аэрокосмических приложений! 2) может наступить время, когда микропроцессорное оборудование, на котором построены эти очень консервативные системы, просто станет недоступным - не станет ли это триггером для перестройки программного/аппаратного обеспечения с нуля?Коди П
Коди П
Джон Стори
Коди П
Джон Стори
Скотти3785
разбойники