Дефект, заставивший Toyota решиться на эту меру, описан, прямо скажем, мутно, но даже в таком виде понятно, что случай беспрецедентный. В программном обеспечении автомобиля, управляющем, в частности, двигателем и генератором, допущено несколько ошибок. Проявляются они чрезмерной нагрузкой на мощные транзисторы, что чревато выходом их из строя и последующим аварийным отключением бортовой электроники. Произойти это может в том числе и во время движения: двигатель без предупреждения глохнет, машина сбрасывает скорость с возможной потерей управления. Эксплуатировать Prius после этого возможно, но ехать он будет очень медленно. По сообщению самой Toyota, вызванных ошибками в софте инцидентов (тем более с человеческими жертвами) не зафиксировано, хотя американские СМИ говорят о «сотнях поломок».
Что ж, тема потенциальной небезопасности системного софта, управляющего критически важными узлами автомобиля, весьма популярна в последние годы. Периодически всплывают страшные истории о том, как очередная группа исследователей, вломившись в электронные мозги, отключает тормоза на полном ходу или заставляет машину выкинуть какой-то ещё финт. А Toyota лично перенесла жуткий скандал из-за дефектной педали газа (в том числе и на Prius). Вы должны его помнить: лет пять назад обнаружилось, что машины компании склонны к неожиданному неконтролируемому ускорению, за чем последовали судебные иски, многочисленные расследования на высшем уровне, собственно суды, штрафы и компенсации, отзывы миллионов авто и даже приостановка производства (см., в частности, «Обратная сторона педали»). Многие грешили на софтверный дефект, но Toyota отстаивала версию о чисто механической неисправности — и следователи в конце концов один за другим встали на её сторону.
Таким образом, до вчерашнего дня все разговоры о «смертельно опасных багах в автомобильном софте» ограничивались либо чистой наукой, либо подозрениями, доказать которые так и не удалось. А вчера была пройдена веха: ошибка, заставляющая «Приусы» глохнуть, уже не воображаемая, не подозреваемая — она самая что ни на есть настоящая и признана официально. И это позволяет и даже требует сделать минимум три вывода, которые понадобятся нам, чтобы идти дальше.
Итак, во-первых, необходимо признать, что степень зависимости автомобильных узлов и агрегатов от программного обеспечения перешла черту, за которой чисто программные ошибки способны привести к аппаратным поломкам (персональные компьютеры, например, её так и не перешагнули) и где ошибка действительно представляет опасность для человека.
Во-вторых, даже простое обновление программного обеспечения автомобиля (то есть без вмешательства в аппаратную часть, что, собственно, и собирается проделать Toyota в данном случае) может потребовать дорогостоящей — с точки зрения денег, времени и нервов — процедуры отзыва автомобиля или как минимум визита к официальному дилеру. Кроме того, хоть установка патча занимает лишь полчаса, его ещё требуется разработать и проверить, разослать дилерам и оповестить клиентов. В настоящий момент продавцы «Приусов» в США, например, всё ещё «заплатку» не получили.
В-третьих, даже активное добровольное участие вендора в исправлении обнаружившихся недостатков — а Toyota после многомиллиардных выплат в той истории с педалью стала сильно сговорчивей и теперь отзывает чаще, больше и охотней любого другого автопроизводителя — не решает самой проблемы софтверных дефектов. Отзыв — всего лишь реакция, следствие. Причина (баг) в следующий раз найдётся новая, ведь программ без ошибок не бывает.
Вот так мы и приходим к неприятному, но неизбежному вопросу: а можно ли вообще, путь даже теоретически, устранить опасность, представляемую ошибками в автомобильном софте? Ведь сложность его будет расти по мере роста сложности самих машин, сложность будет провоцировать новые ошибки, и, в отличие от персоналок, ошибки эти потенциально смертельно опасны. Как этому противостоять?
Имеющийся опыт, к сожалению, мало что даёт. Там, где цена программной ошибки слишком высока, — в космосе, например — проблему решают грубо: введением чрезмерно жестоких требований к разработке программного обеспечения. О российской практике ничего не скажу (может быть, поделятся читатели? В одной из предыдущих дискуссий уже всплыла интереснейшая ссылка на отечественный язык программирования ДРАКОН, мешающий писать с ошибками), но о том, как работает НАСА, известно хорошо. Скажем, приступая к разработке софта для «Шаттлов», заказчик и исполнители (в том числе IBM) исходили из предположения, что программное обеспечение является наиболее важным элементом всего комплекса, потому что именно оно связывает воедино всю механику и электронику на борту. Отсюда и процесс: над проверкой софта трудится почти половина команды, каждое вносимое изменение проверяется несколькими независимыми группами на разных уровнях абстракции — и всё равно пилотам пришлось иметь дело с сотнями страниц исключений и особенностей работы софта!
Не стоит даже спрашивать, применимо ли это к автомобилям: слишком дорого! Однако выход есть. Помочь способно свободное ПО. Возьмись сегодня кто-нибудь разработать ядро Linux «с нуля», это обошлось бы ему в невероятную сумму. Но, понятное дело, никто «Линукс» не изобретает: желающие просто адаптируют его к своему железу и задачам. Точно так могла бы работать и воображаемая свободная ОС для автомобилей: одна на всех, адаптируемая конкретным вендором к конкретным моделям авто. Возможно даже, эту нишу Linux и займёт — если не подсуетится никто другой.
Камнем преткновения здесь остаётся тщательно охраняемая секретность электронных блоков управления автомобилем (ECU). Если прочие запчасти давно уже тяготеют к универсализации, то есть применимы на авто различных марок (и аналитики, кстати, упоминают эту тенденцию в числе причин, из-за которых отзыв становится дороже: ведь, если дефект обнаружился в универсальной запчасти, отзывать придётся не одну модель и, может быть, не одного производителя), то ECU остаются тайной за семьюдесятью замками.
Мы ничего не знаем об их устройстве, мало что — об алгоритмах работы. Спасибо Toyota, теперь по крайней мере признано, что в них случаются ошибки — и ошибки эти могут быть опасны для «железа» и человека. Но чтобы пустить туда свободную ОС — а значит, дать энтузиастам (и конкурентам!) заглянуть внутрь, — придётся попотеть. Даже производители видеокарт всё ещё — двадцать лет спустя после начала дискуссии — не отважились на гласность и скрывают схематику своих чипов. Что говорить об автомобилях!
К оглавлению
Здравствуйте, Доктор Зло! Победителей ненавидят, но это не повод не искать стратегию
Евгений Золотов
Опубликовано 13 февраля 2014
Говорят, внешность обманчива — и в случае с американцем Артуром Чу это эмпирическое правило справедливо на все сто процентов. Добродушному увальню, взирающему на нас с фотографии ниже, 30 лет, и он добропорядочный гражданин, зарабатывающий на жизнь чуть ли не самым скучным способом, какой только можно вообразить, — анализом страховых заявок. По его собственным словам, в свободное время он играет в любительском театре, но не профессиональная карьера и не театральные подмостки сделали его знаменитым — а Артур знаменит по-настоящему, его улыбку знает сегодня в Штатах, как говорится, каждая собака!
Прославился он благодаря телеэкрану, а точнее, популярной телевикторине, на которую попал в последних числах января и уже неделей позже именовался соотечественниками не иначе как Доктор Зло. Спросите, что такого страшного он совершил? Нет, не застрелил соперника в горячке азарта, не ограбил организаторов, даже не ругался матом. Он всего лишь проанализировал игру, сформулировал стратегию, статистически кратчайшим путём ведущую к выигрышу, и действовал в соответствии с ней, презрев общественное мнение!
Знатоки утверждают, что Чу — не изобретатель (а он, в общем, и не отрицает). Прошлые чемпионы вроде Роджера Крейга и Чака Фореста сами создавали программные модели игры. Артур всего лишь погуглил и обобщил. Зато стал самым шумным из всех!
Телевикторина Jeopardy!, участием в которой Чу и заработал свой сомнительный титул, идёт на американском ТВ вот уже сорок лет и представляет собой классическое состязание всезнаек за кучку наличности (по её образу и подобию построены десятки клонов в других странах, включая и лицензированную российскую «Свою игру»). Схема предельно проста: три соперника, три ограниченных по времени раунда, вопросы, сгруппированные по темам и оценённые пропорционально сложности.