[image]

Статистика: очередной КА убит софтом

 
1 2 3 4 5 6 7 8

pokos

аксакал

pokos>> А вот какие там условия никто сказать не может — железячники много чего не предусмотрели,...
Это не я!!!!!

pokos> Вот они, как раз, предусмотрели намного больше, чем надо было. Иначе такое патчевание вообще было бы бессмысленно. Для таких фокусов обязателен недоиспользованный ресурс железа.
Mishka> Не, тут не согласен.
Непонятно, с чем ты не согласен-то? Если мотор могёт крутить на только на 3 оборота, то никакой патч не заставит его крутить на 4. Патч не в силах победить упор. А если до патча мотор умел крутить только на 2 оборота, то при чём тут железячники? У них-то на 3 крутится.

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

Mishka>...А на аппарате ничего в таком качестве предусмотрено не было.
Вот и я о том же. Программисты лоханулись по полной программе. В лабе, значить, у них ПО заливалось на ура. А как дошло до реальной жизни, заливщик и окуклилсо. Я бы тому, кто бутлодер писал, оба гениталия бы в тиски. Ну, и тестерам, конечно.

Mishka>... Я же уже приводил пример, когда мамы появились с двойным БИОСом ...
Да уж, у меня один коллега такую пользовал. Пришлось выкинуть, поскольку на них флешки были запаяны, а не на панельках, как у однобиосовых. Не спасло его, короче, дублирование при обновлении БИОСа. Тоже, видать программисты были ещё те.

Mishka> Я тебе могу сказать более того — не было реализовано в аппаратуре протокола обмена на достаточно высоком уровне.
Вообще-то, я и не вижу необходимости в таком прям высоком уровне. Достаточно, чтобы бутлодер чекал контрольную сумму и тупо перключал банк, если что не так.
   

pokos

аксакал

Mishka> Были в советских войсках торпеды без такового. :)
Без такового, это не значить с таковым, но через прерывалку. Без такового контроллеров дофига и больше было. К ним приходилось это снаружи прикручивать, так же как и монитор питания.
   

killik

опытный

Mishka> То-то у меня холодильник без разморозки и перерывов (за исключением когда нет лепездричества) работает уже восьмой год. :) А вот Бирюса старый, если не размораживать, сдыхал достаточно быстро.

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

З.Ы. А Бирюса - всегда фуфлом считалась. Может сейчас и исправились, да с чего бы :)
   

Mishka

модератор
★★★
pokos> Это не я!!!!!

Тогда цитируй правильно. :)

pokos> Непонятно, с чем ты не согласен-то? Если мотор могёт крутить на только на 3 оборота, то никакой патч не заставит его крутить на 4. Патч не в силах победить упор. А если до патча мотор умел крутить только на 2 оборота, то при чём тут железячники? У них-то на 3 крутится.

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

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

Вопрос не про ороклят. Вопрос про инфрастуктуру. Вот не было её и нет толком. А надо бы.

pokos> Вот и я о том же. Программисты лоханулись по полной программе. В лабе, значить, у них ПО заливалось на ура. А как дошло до реальной жизни, заливщик и окуклилсо. Я бы тому, кто бутлодер писал, оба гениталия бы в тиски. Ну, и тестерам, конечно.

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

pokos> Да уж, у меня один коллега такую пользовал. Пришлось выкинуть, поскольку на них флешки были запаяны, а не на панельках, как у однобиосовых. Не спасло его, короче, дублирование при обновлении БИОСа. Тоже, видать программисты были ещё те.

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

pokos> Вообще-то, я и не вижу необходимости в таком прям высоком уровне. Достаточно, чтобы бутлодер чекал контрольную сумму и тупо перключал банк, если что не так.

Какую контрольную сумму? Как узнать, что она пришла, если патчи переменной длины? Или ты на уровне одного блока? А за потерей блока должна следить программа? :F
   
RU Клапауций #22.04.2008 18:03  @Kernel3#21.04.2008 21:41
+
-
edit
 

Клапауций

координатор
★★☆
Kernel3> ЗЫ а я думал, P в PIC значит programmable :)

"Микроконтроллеры семейств PIC (Peripheral Interface Controller)..." :)
   

Mishka

модератор
★★★
pokos> Без такового, это не значить с таковым, но через прерывалку. Без такового контроллеров дофига и больше было. К ним приходилось это снаружи прикручивать, так же как и монитор питания.

Я тебе про то, что были реальные устройства, у которых не было watch dog timer — померать могли совершенно нормально. Правда я не знаю, пошла ли та торпеда на вооружение.
   
RU Серокой #22.04.2008 18:06  @Клапауций#22.04.2008 18:03
+
-
edit
 

Серокой

координатор
★★★★
Клапауций> "Микроконтроллеры семейств PIC (Peripheral Interface Controller)..." :)

Это разные вещи, у меня тоже смешалось. ) PIC - это интеловый контроллер прерываний и микрочиповский микроконтроллер. )
   
RU Kernel3 #22.04.2008 18:07  @Клапауций#22.04.2008 18:03
+
-
edit
 

Kernel3

аксакал

Клапауций> "Микроконтроллеры семейств PIC (Peripheral Interface Controller)..." :)
Я вот про это: Intel 8259 - Wikipedia, the free encyclopedia :)
   

Mishka

модератор
★★★
killik> Пять лет назад я помогал выносить из хозяйского дома ЗИЛ. Лет ему было, наверное, под тридцать. Он был окрашен двумя дополнительными местами облупившимися слоями краски, работал со старческим бульканьем, но температуру в морозилке держал. Правда, из-за разрушения резинового уплотнения внизу скапливался конденсат, который за годы проржавил насквозь корпус. Так как аппарат был достаточно тяжелым, мы решили его разобрать на агрегат и корпус, но оторвать трубки руками не получилось, так что всю холодильную часть вынесли отдельно, шкаф отдельно. Подозреваю, что холодильная часть так и осталась в рабочем состоянии...

Я тут уже рассказывал, что товарищ купил дом с холодильником в 1993. Холодильнику уже тогда было около 13 лет. GE, кажется. Хороший холодильник. Две вертикальные двери, на большой двери ещё маленькая дверца соусы всякие доставать. Они продали дом в 2002, а холодильник отдали родителям. Где он ещё прослужил 2 года. Когда дом продали, то его новые хозяева выкинули в рабочем состоянии. За это время он пережил малолетство 5 детей (а что такое дети — это открыли холодильник и внимательно изучаем что внутри), резинки не попортились, лёд с холодной выдавал на гора и в морозилке держал -25С спокойно не на последней мощи. Ни разу за всё время не размораживался и не обслуживался. Это со всеми релюшками и прибамбасами — клапанами, змеевиками и т.д.
   

au

   
★★☆
Ноу комментс :)

Optimistic Programming

We assume 1+1=2, but the evidence suggests that's often not true.

// www.embedded.com
 
   
+
-
edit
 

Kernel3

аксакал

Сумбурный текст ни о чём. Мужик всё в кучу навалил. Отсутствие проверки результата malloc() - это просто грубая ошибка. Но если люди привыкли писать исключительно юзер-моде код, то такое даже будет работать в 99.999% случаев. Отсутствие атомарных операций над volatile переменными и синхронизации вообще - это немного другое. Трудновоспроизводимые баги, связанные с временными зонами, линиями перемены дат и пр. - это третье.
   
Это сообщение редактировалось 23.04.2008 в 14:09
+
-
edit
 

Mishka

модератор
★★★
au, мы с тобой уже сошлись, что есть проблемы. :)
Твоя статья просто бальзам на мою измученную спором душу. :F Когда-то мы обсуждали такие стили программирования. Так называемые defensive styles. На какой-то момент, в real-time и embedded это было очень распространено. Попробую найти отголоски тех наших битв 4-х летней давности в виде найденных статей и книг. Проблемы там есть. Как решать их вовсе не очевидно. Например, одна из статей описывала вариант программирования, когда параметры проверяются на допустимый диапазон и, если параметр вне, то система должна заменить его некоторым значением (как его выбрать и/или получить — разговор отдельный). Рассуждения за — программа в устройстве не должна выдать сообщение об ошибке и завершиться аварийно. Минус — как в трагедии с Ареаном. Модуль всё время не падал, а выдавал некоторое значение, которые было ошибочным. Что и привело к...
   
+
-
edit
 

Mishka

модератор
★★★
Ну, про malloc-и и проверку пойнтеров он конкретно не прав. У нас бьют за это. И бьют сильно.

Я начал дискуссию про размещение переменных на стеке в ветке про программирование контроллеров, в которой Thermostat учит других. :) И был грубо выгнан — людям не хватает памяти, люди не понимают, люди не смогут уследить. Глобальные переменные у них рулили. Нормально, да? :) А ты говоришь о культуре программирования. Кстати, то, что компиляторщик по обучению, помогает отслеживать расходы стека в процедурах на автомате. :)
   
RU Клапауций #22.04.2008 18:43  @Серокой#22.04.2008 18:06
+
-
edit
 

Клапауций

координатор
★★☆
Серокой> Это разные вещи...
Kernel3> Я вот про это...

Извините. Я немножко... э-э-э, как это?... стебаюсь. :) PIC ныне уже достаточно устоявшаяся аббревиатура. (смайл с высунутым языком, вспоминать его лень)
   
+
-
edit
 

Mishka

модератор
★★★
Kernel3> Сумбурный текст ни о чём. Мужик всё в кучу навалил. Отсутствие проверки результата malloc() - это просто грубая ошибка. Но если люди привыкли писать исключительно юзер-моде код, то такое даже будет работать в 99.999% случаев. Отсутствие атомарных операций над Volatile переменными и синхронизации вообще - это немного другое. Трудновоспроизводимые баги, связанные с временными зонами, линиями перемены дат и пр. - это третье.
Нормальный. Embedded Programming сейчас вошло в ту стадию, которую обычное программирование прошло лет 8 назад. Народу пришла тьма, научились программировать контроллеры много людей, кажеться очень лёгким делом — гораздо легче, чем железо проектировать. Возникла эйфория — а вот я сейчас да за пару дней такого напишу, что раньше на желез за год не мог. Вот только ту часть, что au называют системным подходом, оставили за бортом. Не сознательно, нет. Так получилось — просто кажущаяся простота тут же наводит на мысль, что можно сразу с кондочка всё сделать. Эта самая кажущаяся простота и приводит к тому, что Тико и я называю — переложим всё на плечи программистов — очень уж у них просто и быстро. Ошибка? Поправить в коде, пропустить через компилятор и готово исправление. Сказать, что забыли? :)
   
US Mishka #22.04.2008 18:51  @Клапауций#22.04.2008 18:43
+
-
edit
 

Mishka

модератор
★★★
Клапауций> Извините. Я немножко... э-э-э, как это?... стебаюсь. :) PIC ныне уже достаточно устоявшаяся аббревиатура. (смайл с высунутым языком, вспоминать его лень)

У нас устоявшаяся другая. :P
   
US Сергей-4030 #22.04.2008 19:56  @au#21.04.2008 19:27
+
-
edit
 

Сергей-4030

исключающий третье
★★
au> Очень просто. Если прерывания не запрещены, значит они будут. Это исходный тезис. И если во время важной операции возможны прерывания, значит система изначально нестабильна=ненадёжна. Это в рамках начального курса по системам на встроенных контроллерах. В вероятности играть никто не учит, по крайней мере нас учили не играть. Любой программист должен знать и знает (ну...) какие у него прерывания, он же их сам и расписывает. Так что моделировать тут нечего даже, автор наступил на собственный хвост.

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

ЗЫ Вам не кажется, что бывают ситуации, когда не забиваться на крайне маловероятные условия продуктивнее, чем забиваться? Вы не можете себе это представить? Ну вот, делаем патч для КА и НЕ ЗАБИЛИСЬ на крайне неблагоприятные условия. Упростили (== удешевили и ускорили разработку). Полностью сознавая, что при неблагоприятном стечении обстоятельств потеряем КА. Но при этом, (утрируя), не задержали эксперимент на три месяца, потребных на полную отладку. Вам кажется, что тут есть только один правильный вариант - ваш?

PPS Давно складывается впечатление, что вы считаете инженеров в области ПО менее способными, чем во всех других областях. Менее способными, образованными и т.п. и т.д. ;) Вопросик есть - почему вы так считаете? Это не отраслевая обида (не хватало еще! ;) ) - это просто недоумение, почему вы думаете, что нормальные, неглупые люди идут в ПО с меньшей охотой, чем в любую другую инженерию?
   
+
-
edit
 

Kernel3

аксакал

Mishka> Поправить в коде, пропустить через компилятор и готово исправление. Сказать, что забыли? :)
Протестировать :)
   
RU Dem_anywhere #23.04.2008 02:19
+
-
edit
 

Dem_anywhere

аксакал
★☆
killik> Пять лет назад я помогал выносить из хозяйского дома ЗИЛ. Лет ему было, наверное, под тридцать.
Не далее чем сегодня отвёз на дачу холодильник не то 1976, не то 1978 года выпуска (не разобрать уже)
Работал без проблем, перестал удовлетворять исключительно ввиду недостаточных габаритов...
   

pokos

аксакал

Mishka> Т.е. мы уже протокол сделали чисто софтверным?
Не понял, при чём тут железо. Оно, как раз, исправно поток битов давало.

Mishka>....Кто должен был моделировать ситуацию?
Думается, тот человечище, который программу тестов писал.

Mishka> Не знаю, может руки не из того места растут.
Уж поверь, товарищ этот далеко не ламер.

Mishka> Какую контрольную сумму? Как узнать, что она пришла, если патчи переменной длины?
Мишаня, все эти вопросы давным давно решены. И нету тут АБСОЛЮТНО никаких проблем и даже вопросов.
   

pokos

аксакал

Mishka> Я тебе про то, что были реальные устройства, у которых не было watch dog timer — померать могли совершенно нормально.
И что с того? Не было - значит не надо было. А в том контроллере подохшем WDT и был, и есть.
   

pokos

аксакал

Mishka> ...Так получилось — просто кажущаяся простота тут же наводит на мысль, что можно сразу с кондочка всё сделать.
Это да. Причина простая - дофига теперь ПЗУ и ОЗУ в контроллерах стало, можно срать без оглядки, авось заработает.
   
AU au #23.04.2008 10:55  @Сергей-4030#22.04.2008 19:56
+
-
edit
 

au

   
★★☆
Сергей-4030> ЗЫ Вам не кажется, что бывают ситуации, когда не забиваться на крайне маловероятные условия продуктивнее, чем забиваться? Вы не можете себе это представить? Ну вот, делаем патч для КА и НЕ ЗАБИЛИСЬ на крайне неблагоприятные условия. Упростили (== удешевили и ускорили разработку). Полностью сознавая, что при неблагоприятном стечении обстоятельств потеряем КА. Но при этом, (утрируя), не задержали эксперимент на три месяца, потребных на полную отладку. Вам кажется, что тут есть только один правильный вариант - ваш?

Сергей, за такие мысли вас из насы бы уволили, и табуретку вслед кинули. Обсуждать тут нечего, но вы хорошо проиллюстрировали приведшее к инциденту. За подобные отклонения наса (по факту) отпинало авторов софта КА-инспектора, материалы жевались в теме про Ариан. В двух словах: грубое нарушение обязательных к исполнению методик.
   
RU Fakir #23.04.2008 12:30  @Сергей-4030#22.04.2008 19:56
+
-
edit
 

Fakir

BlueSkyDreamer
★★★★☆
Так а чего там было всё же с софтом инспектора, ссылочками не кинешься - где обсуждали?

Сергей-4030> PPS Давно складывается впечатление, что вы считаете инженеров в области ПО менее способными, чем во всех других областях. Менее способными, образованными и т.п. и т.д. ;) Вопросик есть - почему вы так считаете? Это не отраслевая обида (не хватало еще! ;) ) - это просто недоумение, почему вы думаете, что нормальные, неглупые люди идут в ПО с меньшей охотой, чем в любую другую инженерию?

Лично у меня сложилось ощущение, что в софт не неглупые люди идут с меньшей охотой, а наоборот - глупые не очень умные идут с большей :)
Но результат - примерно один. Что совой об пень, что пнём об сову.
   

pokos

аксакал

au> Сергей, за такие мысли вас из насы бы уволили, и табуретку вслед кинули....
Это вряд ли. Основная проблема софтового проекта ведь в чём? Сдать в срок! Вот и Мишаня, наверное, подтвердит.
Превышение сроков в данном случае очень плохо, это означает песец финансированию, сдвиг пуска, и т.д. дохрена гемора. Потому и делают, что успели. Потом патчат по заветам Лукича.
Вообще, управление софтовыми проектами - это гемор ещё тот. С железом куда проще. Это я вам говорю как человек, имевший опыт и в том, и в другом.
   
1 2 3 4 5 6 7 8

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru