Факт: ошибка в автомобильном софте может стоить жизни. Что дальше?

Технологии
автор: Евгений Золотов  14 февраля 2014

«Shit happens», — гласит американская поговорка. Но некоторые неприятности не просто случаются, они обязаны рано или поздно произойти просто в силу закона больших чисел. Скажем, в шести миллионах строк кода непременно скрывается какое-то количество ошибок, и дайте возможность — рано или поздно одна из них проявит себя катастрофически. Шесть миллионов строк — это длина программного обеспечения, работающего в бортовых компьютерах современного среднестатистического автомобиля. А ошибка, которую теоретики так долго и упрямо ждали, найдена и сутки назад признана компанией Toyota в системном софте знаменитого гибрида Prius.

Toyota Prius — самый востребованный представитель племени гибридных авто и вообще одна из самых популярных моделей на авторынке. Тому есть причины: машина сравнительно безопасная и недорогая, плюс экономичная и чрезвычайно надёжная, что хорошо экономию по топливу дополняет (по данным авторитетного в Штатах журнала Consumer Reports — голоса общества защиты прав потребителей — одна миля обходится в 47 центов). И вот теперь для устранения дефекта отзываются все 1,9 миллиона этих красавиц, произведённых и проданных с 2010 года: половина придётся на Японию, четверть — на Штаты и Канаду, остальное соберётся из Европы, Австралии и других стран.

На самом деле одновременно Toyota отзывает ещё 300 тысяч своих авто других моделей — и тоже из-за (менее опасной) программной ошибки.

На самом деле одновременно Toyota отзывает ещё 300 тысяч своих авто других моделей — и тоже из-за (менее опасной) программной ошибки.

Дефект, заставивший Toyota решиться на эту меру, описан, прямо скажем, мутно, но даже в таком виде понятно, что случай беспрецедентный. В программном обеспечении автомобиля, управляющем, в частности, двигателем и генератором, допущено несколько ошибок. Проявляются они чрезмерной нагрузкой на мощные транзисторы, что чревато выходом их из строя и последующим аварийным отключением бортовой электроники. Произойти это может в том числе и во время движения: двигатель без предупреждения глохнет, машина сбрасывает скорость с возможной потерей управления. Эксплуатировать Prius после этого возможно, но ехать он будет очень медленно. По сообщению самой Toyota, вызванных ошибками в софте инцидентов (тем более с человеческими жертвами) не зафиксировано, хотя американские СМИ говорят о «сотнях поломок».

Что ж, тема потенциальной небезопасности системного софта, управляющего критически важными узлами автомобиля, весьма популярна в последние годы. Периодически всплывают страшные истории о том, как очередная группа исследователей, вломившись в электронные мозги, отключает тормоза на полном ходу или заставляет машину выкинуть какой-то ещё финт. А Toyota лично перенесла жуткий скандал из-за дефектной педали газа (в том числе и на Prius). Вы должны его помнить: лет пять назад обнаружилось, что машины компании склонны к неожиданному неконтролируемому ускорению, за чем последовали судебные иски, многочисленные расследования на высшем уровне, собственно суды, штрафы и компенсации, отзывы миллионов авто и даже приостановка производства (см., в частности, «Обратная сторона педали»). Многие грешили на софтверный дефект, но Toyota отстаивала версию о чисто механической неисправности — и следователи в конце концов один за другим встали на её сторону.

Таким образом, до вчерашнего дня все разговоры о «смертельно опасных багах в автомобильном софте» ограничивались либо чистой наукой, либо подозрениями, доказать которые так и не удалось. А вчера была пройдена веха: ошибка, заставляющая «Приусы» глохнуть, уже не воображаемая, не подозреваемая — она самая что ни на есть настоящая и признана официально. И это позволяет и даже требует сделать минимум три вывода, которые понадобятся нам, чтобы идти дальше.

140214-2

Итак, во-первых, необходимо признать, что степень зависимости автомобильных узлов и агрегатов от программного обеспечения перешла черту, за которой чисто программные ошибки способны привести к аппаратным поломкам (персональные компьютеры, например, её так и не перешагнули) и где ошибка действительно представляет опасность для человека.

Во-вторых, даже простое обновление программного обеспечения автомобиля (то есть без вмешательства в аппаратную часть, что, собственно, и собирается проделать Toyota в данном случае) может потребовать дорогостоящей — с точки зрения денег, времени и нервов — процедуры отзыва автомобиля или как минимум визита к официальному дилеру. Кроме того, хоть установка патча занимает лишь полчаса, его ещё требуется разработать и проверить, разослать дилерам и оповестить клиентов. В настоящий момент продавцы «Приусов» в США, например, всё ещё «заплатку» не получили.

В-третьих, даже активное добровольное участие вендора в исправлении обнаружившихся недостатков — а Toyota после многомиллиардных выплат в той истории с педалью стала сильно сговорчивей и теперь отзывает чаще, больше и охотней любого другого автопроизводителя — не решает самой проблемы софтверных дефектов. Отзыв — всего лишь реакция, следствие. Причина (баг) в следующий раз найдётся новая, ведь программ без ошибок не бывает.

Вот так мы и приходим к неприятному, но неизбежному вопросу: а можно ли вообще, путь даже теоретически, устранить опасность, представляемую ошибками в автомобильном софте? Ведь сложность его будет расти по мере роста сложности самих машин, сложность будет провоцировать новые ошибки, и, в отличие от персоналок, ошибки эти потенциально смертельно опасны. Как этому противостоять?

Имеющийся опыт, к сожалению, мало что даёт. Там, где цена программной ошибки слишком высока, — в космосе, например — проблему решают грубо: введением чрезмерно жестоких требований к разработке программного обеспечения. О российской практике ничего не скажу (может быть, поделятся читатели? В одной из предыдущих дискуссий уже всплыла интереснейшая ссылка на отечественный язык программирования ДРАКОН, мешающий писать с ошибками), но о том, как работает НАСА, известно хорошо. Скажем, приступая к разработке софта для «Шаттлов», заказчик и исполнители (в том числе IBM) исходили из предположения, что программное обеспечение является наиболее важным элементом всего комплекса, потому что именно оно связывает воедино всю механику и электронику на борту. Отсюда и процесс: над проверкой софта трудится почти половина команды, каждое вносимое изменение проверяется несколькими независимыми группами на разных уровнях абстракции — и всё равно пилотам пришлось иметь дело с сотнями страниц исключений и особенностей работы софта!

140214-3

Не стоит даже спрашивать, применимо ли это к автомобилям: слишком дорого! Однако выход есть. Помочь способно свободное ПО. Возьмись сегодня кто-нибудь разработать ядро Linux «с нуля», это обошлось бы ему в невероятную сумму. Но, понятное дело, никто «Линукс» не изобретает: желающие просто адаптируют его к своему железу и задачам. Точно так могла бы работать и воображаемая свободная ОС для автомобилей: одна на всех, адаптируемая конкретным вендором к конкретным моделям авто. Возможно даже, эту нишу Linux и займёт — если не подсуетится никто другой.

Камнем преткновения здесь остаётся тщательно охраняемая секретность электронных блоков управления автомобилем (ECU). Если прочие запчасти давно уже тяготеют к универсализации, то есть применимы на авто различных марок (и аналитики, кстати, упоминают эту тенденцию в числе причин, из-за которых отзыв становится дороже: ведь, если дефект обнаружился в универсальной запчасти, отзывать придётся не одну модель и, может быть, не одного производителя), то ECU остаются тайной за семьюдесятью замками.

Мы ничего не знаем об их устройстве, мало что — об алгоритмах работы. Спасибо Toyota, теперь по крайней мере признано, что в них случаются ошибки — и ошибки эти могут быть опасны для «железа» и человека. Но чтобы пустить туда свободную ОС — а значит, дать энтузиастам (и конкурентам!) заглянуть внутрь, — придётся попотеть. Даже производители видеокарт всё ещё — двадцать лет спустя после начала дискуссии — не отважились на гласность и скрывают схематику своих чипов. Что говорить об автомобилях!

Поделиться
Поделиться
Tweet
Google
 
Читайте также
«Умные» вещи с открытыми исходниками: чудачество или перспектива?
«Умные» вещи с открытыми исходниками: чудачество или перспектива?
Цифровой рычаг: как высокие технологии спасли и чуть не похоронили шестерых туристов в Неваде
Цифровой рычаг: как высокие технологии спасли и чуть не похоронили шестерых туристов в Неваде
Осторожно: человек за штурвалом! Автоматика против безопасности
Осторожно: человек за штурвалом! Автоматика против безопасности
  • Stavr Ognev

    > (персональные компьютеры, например, её так и не перешагнули)

    Что за проявление некомпетентности от уважаемого автора? Перешагивали компьютеры, ещё как перешагивали. Был продолжительный этап, когда перегрев приводил к физическому выгоранию процессоров, видеокарт, сбой программы — к падению считывающих головок на поверхность жёстких дисков. Были приняты меры, введены аппаратные триггеры, включающие аварийное отключение и вот мы уже забыли.
    Отсутствие физического компенсатора на случай сбоя ПО — это болезнь детства, прошла у ПК, пройдёт и у авто.

    • труляляй

      перегрев? да это и не нужно. новости про uefi почитайте, когда железо уходит в небытиё при реализации софта согласно спецификации.

      приплыли

    • Sentinel

      Да нет, я помню, конечно, все эти страшные рассказы про дыры в мониторах. Помню, как головки в винтах PC XT парковать нужно было вручную. Но по факту — а какие-то документальные подтверждения катастрофических последствий остались?

      • Stavr Ognev

        Документальные? Цифровое фото 90ого года?..
        Так может и об автомобилях лет 20 писать не будем, пока не останется одни «документальные подтверждения» о подобных конструктивных просчётах разыскивать? Или журналисту обязательно нужно привлечь внимание высосанной из пальца СЕНСАЦИЕЙ?

        • Sentinel

          Да, документальные. Знаете, история с рассказами очевидцев, исходниками, публикациями, резонансом. Как Червь Морриса.

          • Andrew Bogorodsky

            Google HDD head crash

  • Евгений Леонов

    …вот меня всегда напрягали слишком умные автомобили. Даже уже давно и прочно зарекомендовавшие себя инжекторные двигатели. Всякие ABS, ESP и прочее — может и помогают в чем-то, но во первых — не панацея, во вторых — любое усложнение системы неизбежно ведет к увеличению возможных неисправностей.
    Я могу согласиться с вспомогательными системами, типа парктроников, но исключительно в уведомительном режиме, а никак не в перехватывающем управление.
    P.S.: а еще я не люблю АКПП :)

    • Vladimir Stepanov

      Евгений, извините, но «слишком умные двигатели» вас напрягают просто потому, что вы дятел. К сожалению, таких дятлов на дороге огромное количество. И они одним своим присутствием создают на дороге столько проблем, сколько не создаст даже самый глючной софт.
      Вероятно, вы хотите аргументов. Я мог бы привести их целую кучу, но, пардон муа, вы их всё равно либо не поймёте, либо пропустите мимо ушей. Поэтому приведу основной, убойный аргумент:
      ВЫ ДЯТЕЛ.

      • Andrey

        не знаю, есть ли где реальная статистика, но считается, что самые надежные автомобили — это были немецкие середины 90х годов. Теперь основной бюджет автопроизводителей тратится на электронную мутоту, а не на увеличение надежности механических компонентов, им это просто невыгодно. Из автомобиля хотят сделать гаджет, который бы меняли каждые два -три года. Да, в некоторых автомобилях все эти системы оправданы, вроде Lancer Evolution. В целом, безопасность стала выше, а надежность — меньше

        • Афиук

          И ведь это правильно! В странах, где производят лучшие (в т.ч. массовые) автомобили, человеческая жизнь дороже железяки. Вы не оставите по наследству своё авто внукам, если разобьётесь и не заведёте детей.

      • Дмитрий Дворников

        Скажите это пилотам Формула 1. Они ведь спят и видят, когда к их болиду «приструячат» очередную автоматизированную фишку. Конечно, в них полно автоматики, но не вмешивающейся в процесс вождения. Я начинал ездить в начале 80-х и аварийность была не в пример меньше (и не потому-что было меньше авто. В сезон отпусков на популярных кавказских маршрутах были пробки точно такие-же как и сейчас), просто водители полагались на собственный опыт и только на него. В принципе автоматизация вещь хорошая в плане экономии топлива, возможности адаптации под стили вождения, возможности глубокого контроля множества параметров узлов автомобиля, но только до тех пор, пока они не заменяют опыт и мозги водителя.

        • Denis Mitropolskiy

          Вы не могли бы привести статистику? Поверхностый (весьма) поиск по интернетам дал следующие цифры по погибшим в ДТП:
          «27,5 тыс. чел. в 1980 году и 26 тыс. чел. в 2009 году. А количество автомобилей в 5 раз больше.»

          И какое отношение к статье имеет Формула 1? Почему не Тур де Франс?

          • Дмитрий Дворников

            Только в России гибнет в год более 30 тыс. человек в авто авариях. Моя статистика по Лен. области 1986 г. 600 чел. 2012 г. — 3700 чел. И это официальная статистика, отправляемая в главк. Спорить с Вами даже не желаю, потому как все для вас ДЯТЛЫ, а вы звиздец какой крутой водилО, правда до первого столба. Удачи на дорогах, правда если Вы всех подряд будете считать дятлами, то долго не проживете и никакие ABSEBD вам не помогут….

          • труляляй

            статистика не изменится особо, если будут использовать иконки вместо ремней безопасности.

      • Евгений Леонов

        А вот у меня будет аргументированный ответ, и дятлом я назову Вас, аргументированно. (Да здравствует срач! :))

        Про дятлов:
        1. Дятлы на дороге, видимо надеясь на автоматику (электроннику) предупреждающую о столкновении, забывают смотреть в зеркала.
        2. Дятлы на дороге, надеясь на системы стабилизации, забывают о элементарной физике.
        3. Дятлы на дороге, надеясь на подушки безопасности и прочие системы, начинают считать себя бессмертными.
        4. Дятлы на дороге, надеясь на полный привод и системы стабилизации, забывают про элементарную безопасность, и опять же про физику.

        Про Вас, Владимир:
        1. Вы дятел — потому что переходите на личности не имея аргументов.
        2. Вы дятел — потому что, видимо, считаете себя асом вождения (сколько у Вас часов тренировок экстремального вождения?)
        3. Вы дятел — потому что заведомо считаете оппонента менее грамотным.

        А теперь, чтобы не остаться дятлом, аргументируйте свою точку зрения.

        • OlegDDL

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

    • Дмитрий Дворников

      Аминь! Форд Шелби и Камаро 70-х наше ВСЕ!

  • Artem Artemenko

    Да, а у Теслы, просто пропатчили по интернету. Если по логике ошибка неизбежна, то надо закладывать возможность ее устранения.

    • Георгий Камнев

      согласен, вот только вспоминается как через сертификаты взламывали windows для распространения трояна под видом обновления http://habrahabr.ru/post/105964/

      «ирус Stuxnet нанес серьезный урон иранской ядерной программе. Используя уязвимости операционной системы и пресловутый «человеческий фактор», Stuxnet успешно поразил 1368 из 5000 центрифуг на заводе по обогащению урана в Натанзе»

  • Domo

    Напрягает не столько цифра — 6 миллионов строк, сколько проприетарность этого кода: каждая контора изобретает свой велосипед, в каждом велосипеде будут свои баги.

    • труляляй

      не только это напрягает. фактически, ни одна автомобильная контора не имеет опыта в написании высококачественного кода. проектирование железа, дизайн — пожалуйста. софт — плохо, либо совсем плохо.

  • jno

    1. В мире ПК такое было — можно было спалить монитор, играя с полярностью развёртки. 2. В мире вообще уже есть Стакснет. 3. Есть, скажем, авиационное ПО.

    • Sentinel

      А про монитор — точно не байка?
      Стакснет — имхо, частный случай. Ведь не персоналки горели.

      • Инженер

        Были мониторы у Ролсена, вероятность выхода из строя которых зависела от частоты развертки. Причем частоты были паспортные.

        • jno

          Это было задолго до ролсена — в 80-х.

      • jno

        В технических мануалах по программированию адаптеров VGA было прямо чёрным по-английски прописано, что так делать не надо. Что-то было, ЕМНИМС, и у Ральфа Брауна. Стакс так же мочил «периферию»…
        Впрочем, про возможность спалить ЦП тут тоже уже поминалось.

      • Sergey Filippov

        На персоналках был «Чернобыль», который стрирал флэш c биосом. И был, помнится, несколько лет назад какой-то глюк с прошивками сидюков, когда попытки установки Линукса его убивали. А вот — из более-менее свежего: http://www.bit-tech.net/news/hardware/2013/01/31/linux-samsung-deaths/1

    • Andrew Bogorodsky

      Вспоминаются мониторы Samsung, вышедшие с огромными наклейками «Процессорное управление не допустит выхода монитора из строя!» Одни из первых с такой защитой, между прочим! Linux про них не знал первое время и при попытке автонастройки гарантированно выжигал напрочь (именно это процессорное управление? %-) Чик — брррр — пффф… У меня двое знакомых на это налетели: один домой себе купил и сжёг в первый же вечер, другой получил их в банк для рабочих мест, — сервисный центр был в тихом молчании, когда им привезли 17 новеньких трупиков даже с неоторванными наклейками, обещающими, что это невозможно! ;-) Ничего, поменяли по гарантии…

  • Vladislav Chinuchin

    Чем Линукс-то поможет? Да, взять отлаженное ядро дешевле, чем своя/заказная разработка. Но к этому ядру всё равно надо разрабатывать:
    — драйвера для оборудования, специфичного для авто в целом и каждого производителя в частности (ну где вы в стандартных репозиториях видели драйвера какого-нибудь топливного насоса?);
    — алгоритмы специфичные для авто;
    — и в целом комплекс ПО, включая интерфейсы;
    Из информации в http://old.computerra.ru/own/kiwi/503411/ можно сделать вывод, что проблема была не в ядре, а в алгоритмах, и использование ядра Линукс ничем бы в той ситуации не помогло.
    Это я всё к чему: серьёзно заниматься нужно автопроизводителям разработкой специализированного ПО. Возможно СПО в рамках какой-нибудь ассоциации автопроизводителей. А успокаивающие мантры «возьмите линукс и всё сразу улучшится» оставьте клиническим идио… оптимистам.

    • Пётр

      помочь бы смог не столько сам линукс сколько принцип его разработки. Если б производители не зажимали свой код, а совместно его разрабатывали и тестировали, то это бы во-первых улучшало качество, а во-вторых позволяло бы отлавливать и фиксить большее число ошибок.

      • Astophir Galaus

        Это ерунда. Какое бы свободное ПО не использовали автопроизводители, в ответе всегда будут они и чужие разработки им
        даром не сдались потому что это большая ответственность. Автомобиль это
        ведь не смартфон с Андроидом, ошибки в ПО будут куда серьезнее, если
        простой пользователь сделает правки в заводской версии ОС, то аппарат
        мигом снимается с гарантии, что уж говорить про автомобиль (до такого
        его просто не допустят ни рьяное общество ни сами производители). А что
        касается тестов, то пользователи в любом случае будут испытывать
        реальный, серийный продукт, а исправлять возможные ошибки все равно
        придется производителям, а это значит что суть свободного ПО не имеет к
        этому прямого отношения.

        • Пётр

          Что ерунда? Принцип чем больше тестов проведено, тем больше багов найдено? Или чем на большем числе аппаратных конфигураций обкатан код, тем больше багов найдено? Или чем больше разработчиков работают над кодом тем больше багов они смогут исправить? Или что железо, которое нельзя испортить программно спроектировано лучше чем железо, которое программно испортить можно?

          • Astophir Galaus

            А Вы про что написали в первом сообщении? Вот это и ерунда. Вы не сравнивайте чисто ПО для разнообразных ПК и ПО для специализированной техники. Где, по-Вашему все эти пресловутые тестеры будут испытывать ПО автомобиля? Дома, у себя на компьютерах? Это невозможно. А автопроизводитель не будет бесплатно, да и даже по сниженным ценам, высылать доморощенным тестерам свои автомобили. Экономически не оправдано.

          • Пётр

            Попробуйте задаться вопросом где эти тестеры сейчас обкатывают автомобильный софт. Или вы считаете, что автомобили выпускают на рынок не прогнав через тысячи тестов?

          • Astophir Galaus

            «Эти» тестеры сейчас нигде не испытывают автомобильное ПО, разве что в чьем-то воображении.

          • Пётр

            Хм, кажется это ваша цитата
            >А что касается тестов, то пользователи в любом случае будут испытывать реальный, серийный продукт
            Ну и глупо думать, что производители софт не тестируют. Очень глупо.

          • Astophir Galaus

            «будут», т.е. предполагается, но не испытывают в настоящее время.

          • Пётр

            Глупо думать, что производители софт не тестируют. Очень глупо.

          • Astophir Galaus

            Весьма согласен.

          • Пётр

            Вы же сами написали, что сейчас софт никто не тестирует. Или это было ваше альтер эго?

          • Astophir Galaus

            Ошибаетесь, я такого не писал. Прочитайте внимательно.

          • Пётр

            Цитирую
            >»Эти» тестеры сейчас нигде не испытывают автомобильное ПО

          • Astophir Galaus

            А Вы поняли что цитируете? Речь о доморощенных тестерах которые существуют в воображении, мы же с Вами обсуждаем всего лишь идею, не так ли?

          • Пётр

            Тогда вам следовало уточнить, что вы говорите о каких то мифических доморощенных тестерах. Видимо поэтому вы взяли слово эти в кавычки. Только подобные моменты стоит сразу уточнять, особенно если комментарий не имеет отношения к текущей теме.

          • Astophir Galaus

            Речь изначально шла о не профессиональных тестерах которые существуют только в идее свободного ПО для автомобилей. Поэтому все мои комментарии в этой теме имеют к ней непосредственное отношение. «Заблудились в трех соснах»? Извольте, но это не моя проблема.

          • Пётр

            >Речь изначально шла о не профессиональных тестерах
            Ну так получается, что это вы заговорили о непрофессиональных тестерах, о чем сами сказали 2мя постами выше.

          • Astophir Galaus

            Это не имеет решающего значения для Вашей попытки оправдать свою ошибку. Да и вообще это дело побоку, а желания вести полемику у меня нет.

          • Пётр

            >Это не имеет решающего значения для Вашей попытки оправдать свою ошибку
            Ну да, мне не удалось заметить момент когда в беседу вмешались пресловутые непрофессиональные тестеры. Каюсь, мыслей читать не обучен.
            >желания вести полемику у меня нет
            Конечно, я под дулом пистолета заставил вас написать 9 постов против вашего желания.

          • Astophir Galaus

            Будьте добры, отличать полемику от дискуссии.

          • Пётр

            10 постов.

            Грамотный человек обязан отличать
            полемику от дискуссии
            дискуссию от диспута
            диспут от спора
            и .т.д.

      • MA

        Предлагаете «корпорации добра» открыть все их наработки в направлении самодвижущущейся самоуправляемой повозки? Спасибо, не нужно. Гуглу и его «звездной команде», осилившей такую разработку я еще худо-бедно смогу доверять, а вот патчам непризнанного гения Васи Пупкина уже нет.

        • Пётр

          Предлагаю вам в качестве проверки отправить кривой патч, например разработчикам ядра и понять наконец, что ваш Вася Пупкин легко может оказаться среди разработчиков того самого «ответственного» софта.

          • MA

            Может конечно, как в обсуждаемой нами статье. Но судя по всему его работодатель попал по-крупному и теперь приложит массу усилий чтобы подобного не произошло впредь. Да и другие тоже не будут пассивно смотреть на случившееся, а пошевелятся в нужном направлении.

            Но повстречаться с вылетевшим навстречку (а чо, я тока чуток конфиги поправил, чтобы лохи на светофоре нюхнули паленой резины) счастливым обладателем тюнингованной «ласточки» с патченной BolgenOS (к нативному Линуксу у меня в общем-то аллергии нет — живет, развивается, не идет вразнос) на борту мне бы все равно не хотелось — пусть это будут Тойота или Гугл, которых после нескольких подобных случаев сживут со света.

          • Пётр

            >Но судя по всему его работодатель попал по-крупному и теперь приложит массу усилий чтобы подобного не произошло впредь. Да и другие тоже не будут пассивно смотреть на случившееся, а пошевелятся в нужном направлении.
            Вы действительно в это верите?

          • MA

            > Вы действительно в это верите?

            да, я только в то что угроза потерь выражающихся 8-9 значными цифрами и может заставить их шевелиться и верю.

          • Пётр

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

          • MA

            Да вроде ничего особого еще не случилось. Где-то приложил, где-то недоложил, в результате — «вспухли конденсаторы». Но производитель, что только делает ему честь, признал проблему (пусть и косясь на меч американской Фемиды) и собирается ее исправить за свой счет.

          • Пётр

            >Да вроде ничего особого еще не случилось
            Отзыв _всех_ проданных автомобилей это вообще то «случилось».

    • Дмитрий Дворников

      Все верно.

  • Сергей Зыкин

    Дублирование «триадой». Параллельная работа 3-х комплексов и блок логики. Вероятность одновременной ошибки в 2-х блоках (при отличии показаний принимается истинной информация от 2-х блоков) намного меньше.

    • Hctib Asivop Usirogi

      Если блоки идентичны, то от ошибки программиста не спасает — она есть во всех трех!

    • Геннадий Лебедев

      Это способ коррекции ошибки в железе, применяется в вариациях в космосе, напрмер, где есть сильно ненулевая возможность получить ошибку вычисления из-за внешних воздействий — радиации, космических лучей. Описываемый Евгением случай связан не с ошибкой железа, а с логической ошибкой в софте.

  • MA

    > персональные компьютеры, например, её так и не перешагнули

    У сегейта, помнится, года два назад ошибки в прошивке делали (некоторые модели при некоторых обстоятельствах) винчестер мертвым. И что, контроллеры винчестеров теперь тоже переводить на управление под Linux? И сами процессоры в которых тоже бывают и аппаратные и программные ошибки тоже?

  • Геннадий

    Из этой статьи я сделал вывод, что если хочешь надежности, то не стоит покупать самые новые автомобили, ПО в которых еще не прошло проверку временем.

  • Mike Potanin

    Сейчас наметился прогресс в области языков программирования. Так на Haskell очень большую часть ошибок отлавливает компилятор. Правда, для встраиваемых систем реального времени он не очень подходит. Лично я надеюсь, что в эту область придет Rust. И еще значительная часть кода должна генерироваться из декларативных описаний, на языках типа Modelica.

  • Шкoльник

    Therac-25

    • Sentinel

      А хорошо вспомнили!

  • zZzzZzzZzzZzyzZzzZzzZzzZzzZz

    «Даже производители видеокарт всё ещё…» — эти гаврики могут сколь угодно долго играть в прятки — от их продукции не зависят жизни.

    • ExMuser

      От секретности *их* продукции зависят *их* жизни. :)

  • snarkabout

    Евгений, откуда у вас такое навязчивое желание всунуть Linux куда можно и куда нельзя? Всему свое место. Во встроенных системах, тем более автомобилях используются ОС реального времени, всем остальным там делать нечего. Советую также ознакомиться с вот этими публикациями чтобы получить некоторое понятие о ситуации:
    http://ko.com.ua/kachestvo_vstraivaemogo_po_ili_pogrom_vsyo-taki_sluchilsya_98518
    http://ko.com.ua/slozhnoe_i_tolko_li_dlya_programmistov_prodolzhenie_istorii_s_firmware_toyota_i_para_slov_o_poleznom_v_bytu_101816
    Насколько я понимаю методологию разработки этого ПО, никаких «энтузиастов» к нему и на пушечный выстрел не подпустят.

    • Sentinel

      Ну.. поправьте, если ошибаюсь, насколько знаю из собственного опыта и вижу из чужого, такого железа и задач (по крайней мере на массовом рынке), для которых нельзя было бы с пользой заточить Линукс, нет совсем или почти. Так что экстраполировать ситуацию на автомобили — логично.

      А насчёт «не подпустят».. Оставьте эти страшилки для кого-нибудь другого. Я не автомобильный фанатик, пиетета перед автовендорами не испытываю. В этой ситуации я скорее просто хакер, а ECU — ещё одна железка, которую нужно изучить и написать драйвер. Так что как минимум мы получим свободные (пусть не полнофункциональные, пусть не без ошибок) «дрова» для автомобилей. Да ведь и сейчас уже вроде бы машины перепрошивают, нет? (кажется, это называется «чиповать» у автомобилистов). Помнится, друг пару лет назад перепрошил свою бэху ради более шустрого разгона — сменил прошивку в сервисе. И ничего, пока не посадили.

      • snarkabout

        Так что как минимум мы получим свободные (пусть не полнофункциональные, пусть не без ошибок

        И мы возвращаемся к

        Факт: ошибка в автомобильном софте может стоить жизни. Что дальше?

        То есть мы вместо чужих ошибок лучше своих добавим. Ну и кстати, машина этого друга который прошивку сменил, осталась на гарантии после операции? То есть со своим оборудованием можно делать что угодно — но и ответственность за его поведение несете вы сами. Та же самая политика, кстати, и причина почему перешитые телефоны снимают с гарантии. Я не говорю что мне нравится эта политика, но логика за ней понятна.
        Там в статьях кстати определяется самое узкое место встроенных систем — тестирование. Довольно сомнительно что у открытого ПО оно будет лучше.

        • jno

          у правильных систем должно быть правильное проектирование.
          и верификация.

          тестирование — так, от мух…

          • snarkabout

            Правильные системы, на правильном железе, правильными программистами, с правильными менеджерами которые все это поддерживают…
            Я умер и попал в рай?
            *Раз, два, три…. Разряд!*
            А кто все эти люди в белых халатах которые стоят вокруг меня..?
            *… три месяца спустя*
            — Что значит «педаль заклинило» ?!!
            — Не волнуйтесь, сейчас наш менеджер вам все объяснит!

          • jno

            ну, самолёты падают не так уж часто — значит можно.
            а ежели кому-то дорого кажется, то неча на зеркало пенять — качество ПО может быть весьма высоким, а может и бангалорным. зато — дешёвый софт-то.

      • jno

        введут лицензирование, поди…
        будет, как у летунов.

      • Astophir Galaus

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

      • Альфа

        По-хорошему, Линукс пора закрывать, вводя либо микроядро, либо экзоядро. Больно уж усложнилась системка.

    • jno

      есть и RT-Linux :)

  • Олег из Германии

    «Скажем, в шести миллионах строк кода непременно скрывается какое-то количество ошибок, и дайте возможность — рано или поздно одна из них проявит себя катастрофически. »

    Ошибочное утверждение. Если бы речь шла 6 миллионах строк, написанных людьми, то я бы безусловно с этим согласился. Но в автомобилестроении это не так. Знаете какой процент строк из этих 6 миллионов написан белковыми программистами? Я отвечу — 0%. Все 6 миллионов строк создаются генераторами кода. Инженеры-автомобилестроители рисуют себе в Матлабе графические модели управления узлами и системами автомобиля, а кодогенераторы уже без участия программистов из этих моделей синтезируют код, который и прошивается в бортовые компьютеры и микросхемы.

    Да, эти самые кодогенераторы пишут люди (в том числе Ваш покорный слуга), которые естественно ошибаются и ошибаются. Но QA (контроль качества) еще никто не отменял. Причем контроль двойной — свой собственный + каждый автопроизводитель перепроверяет еще раз. А знаете, в чем в 99% проявляются ошибки генерации кода? Правильно — он не компилируются. В оставшихся 0,999% — он не будет работать. Зависнит, сгенерит исключение и т.д и т.п. Но как то прокукарекает и даст о больном месте знать. Но допустим случилось чудо, и получился неправильно работающий код. Это всплывет почти сразу, как тронется с места первый автомобиль с этим кодом. Случится это на испытаниях или обкатке еще на заводе.

    А вот чтобы неправильная по вине кодогенератора работа кода проявлялась только в каком-то редко встречающейся в реальной жизни комбинации факторов, такое ну очень маловероятно. Угадать пароль, какой-нибудь надежный криптоситемы и то вероятнее.

    Вывод. С основным тезисом согласен — от софта может исходить угроза жизни. Но, конкретный пример это никак не подтверждает. Для меня очевидно, что речь идет об инженерной ошибке. Ну недокумекали инженеры чего-то для редкого случая. Так такие же ошибки случались и 10 и 20 и 100 лет назад. И в некоторых случаях эти ошибки стоили человеческих жизней.

    • Пётр

      Простите, а драйвера тоже пишут кодогенераторы?

      • Олег из Германии

        Можно сказать да.
        Ваш вопрос не совсем корректен, так как драйвер — это некая абстракция, позволяющая программам взоимодействовать с «железом» при посредничестве ОС.

        Здесь доступ идет напрямую. Без посредничества. «Железо» прекрасно описывается в Матлабе (специфицируются характеристики входящих и изходящих сигналов) после чего можно (и это относительно просто!) можно сгенерировать код для взаимодействия с железом. Более того, автоматически генерится код, который с большой долей вероятности отловит глюки и отказы самого железа.

        • Denis Fed

          вы глупость написали …

        • Valentin Tayursky

          Вы исходите из доверия Матлабу.
          Я с ним работал — хорошая система, спорить не буду. Удобная, многофункциональная и т.п. и т.д. Вот только сколько ошибок в самом Матлабе — знают лишь его разработчики. И их явно не нулевое количество, ибо идеальных программ не бывает… Ну разве что кроме «Hello world».
          Так что я бы не был так уверен в ничтожности шанса на софтверный баг в авто-ПО.

    • skinners

      …»Если компилятор не обнаружил ни одной ошибки в Вашей
      программе, то ищите ошибку в компиляторе.» (с) Закон Мёрфи

    • Denis Fed

      Знаете какой процент строк из этих 6 миллионов написан белковыми программистами?

      Отвечу я … 100% или близко к этому.

      • Ivan Kulikov

        почему белковыми? ведь одного только дигидрогена монооксида аж 60%

    • Geographist

      А в блоксхемах, которые столь успешно рисуют столь же успешно избавившиеся от необходимости писать на языках программирования люди, ошибок быть не может?

    • Sentinel

      Но в автомобилестроении это не так.

      Олег, а — как специалист — набросайте ссылок на ресурсы по теме, которые вы считаете полезными?
      Спасибо за ценный комментарий. Подозревал, что к этому идёт, но не думал, что так запущенно :-)

  • ExMuser

    Вот что происходит, когда Япония встречается с Индией.
    Спасибо за статью, Евгений. Приусов у нас во Владивостоке — как у вшивого блох. Сам тоже себе хочу.

    • Sentinel

      Мечтаю пригнать от вас машинку. Как знать, может и Приус ;-)

      • ExMuser

        Милости просим! По мостам на новой машине прокатитесь! :)

  • Denis Fed

    >Помочь способно свободное ПО.

    Каким образом ? Как это заменит дорогой аудит кода ?

  • Ivan Kulikov

    Т.к. будущее все таки за электромобилями (или гибридами в крайнем случае, ну ок, пусть будет современная паровая машина с замкнутым циклом пара, или двс Стирлинга на жидком водороде с супермаховиком) почему бы разработчикам не сделать так, чтобы при нажатии педали тормоза работала чисто механическая схема (ладно, дублирующая) торможения, не пропущенная лишний раз через ЭВМ? А настройки торможения рекуперацией сколько угодно регулируйте на сенсорном экране вашего авто, как на Тесле, или механическим ползунком на отдельной консоли.
    Ещё плюс должна быть возможность поворотом ключа (или отдельной кнопкой) заглушить двигатель/разомкнуть цепь (а она и так везде есть, как мне кажется).
    Для совсем рьяных мазохистов и параноиков можно добавить механическую педаль сцепления даже в электрокар.
    И гидроусилитель руля, на всякий случай, тоже должен быть не подключен к бортовой ЭВМ.
    Также должна быть одна кнопка(или их простенькая комбинация) перехода на ручное управление с автопилота. Я думаю в гугломобилях она также имеется.
    В итоге, не совсем представляю как на современном этапе развития техники, не совсем добропорядочные программисты/инженеры/компиляторы, восставший злобный всепланетный AI, или в случае внезапного перехвата управления не менее злобными дяденьками из спецслужб с целью превратить ваше авто в консервную банку, а вас, в кусок мяса нашпигованный металлом, углеродным волокном, битым стеклом и горящей пластмассой в этой самой консервной банке, как они смогут это все совершить, если у вас есть описанные выше педали и кнопочки?
    Только в том случае, если вы сидите в машине крепко связанным, да ещё на заднем сиденье, а место водителя пустует.

    • Valentin Tayursky

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

      Если реализовывать вашу идею — то она вернет нас снова в 80ые. Не буду говорить хорошо это или плохо, но уверен, что многие будут против такого.

      • Ivan Kulikov

        Но ведь постепенное превращение автомобиля в умного робота на колесах, подключенного к сети по всем возможным каналам связи, во чреве которого вы будете передвигаться, при этом не имея приоритета в управлении — согласитесь, это уже довольно стереотипный сюжет для фантастики и киберпанка, по умолчанию предполагающий возможность перехвата управления вашей машины кем-либо в своих целях, не говоря уже о банальной слежке за пользователем (хотя для неё теперь достаточно мобильников).
        Я не параноик и не неолуддит, но тем не менее меня настораживают подобные тенденции. Конечно же, лояльному и не выходящему из правового поля большинству, беспокоиться не о чем, но кто знает, во что может в будущем вылиться эта пока что призрачная возможность, где ошибки в ПО ещё самое безобидное что может произойти.

        • Valentin Tayursky

          Соглашусь. Из всего этого могут получится реально страшные вещи в лучших традициях того же киберпанка.
          Но тут вопрос в том, за что будет платить деньги «большинство».
          К примеру, просто возьмем коробки передач. По сведениям из википедии, жители США, предпочитают исключительно автоматические коробки передач. Причем МКП от них далека настолько что они часто и управлять то машиной с механикой не в состоянии. Если делать машины которые еще больше упростят вождение — они с радостью купят.

  • rey

    есть несколько подходов. Есть проверка требований на непротиворечивость, автоматическая.
    Есть верификаторы программ, показывающие соответствие программы спецификации. Тут две (три?) ветки — логические пруверы, и прочие. Прочие — это подход от суперкомпиляторов, и совсем свежее, еще не оперившееся направление — алгебраические верификаторы программ (привет всякой теоркатегорщине) (которые являются более объемлющим методом, чем верификация от суперкомпиляторщиков). Разработкой последнего, прямо сейчас на глазах у изумленной публики, занимается товарищ sober-space (жж), aka Осман Бинеев. Возьмите у него интервью на эту тему, авось интересный материал выйдет. К тому же «на взлете» тему словите. :)

Хостинг "ИТ-ГРАД"
© ООО "Компьютерра-Онлайн", 1997-2017
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.
«Партнер Рамблера» Почта защищена сервером "СПАМОРЕЗ" Хостинг "Fornex"