The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"SpaceX использует Linux и обычные x86-процессоры в Falcon 9"
Отправлено Аноним, 07-Июн-20 20:11 
> В Сях и Плюсах сделать это особенно просто в силу множества причин,
> ибо языки заточены на тонкое их использование умелыми руками профессионалов.

1) Си был сделан системщиками. У ни надежность выше среднего "по роду деятельности".
2) Плюсы таки имхо стоит рассматривать отдельно. Там можно наворотить очень сложные и концептуальные вещи, которые не понятно как взаимодействуют с железом, нестандартными ситуациями и прочим. В духе того бреда HW exception vs Ada, только еще и софтварно.
3) Мой личный опыт с сями таков что на них можно писать аккуратно и предсказуемо. Если не относиться к этому процессу как вебмакака. А с таким отношением никакой ЯП не поможет.
4) В случае си довольно просто понять как это маппится на железо и взаимодействовать с оным. И у МКшных сишников ситуация "прилетел HW эксепшн, а мы ниипем что это за зверь" - редкость. Сишники бывают достаточно близки к bare metal для того чтобы подумать что делать при watchdog timeout, крутом exception, затыке железа и проч. Теоретики в своих абстракциях обычно не заморачиваются этим - они не ижненеры, полное видение системы вне их контекста мышления.

> Неопределённое поведение. Даже оно, взятое само по себе, должно ставить крест на
> использовании Сей и Плюсов в критических задачах.

С чего бы? Прогеры просто не должны полагаться на него. И вообще, имхо, господам теоретикам нехило бы попытаться что-нибудь сделать по своим лекалам. Вот тогда им станет понятнее в чем прикол. И wtf is "tunnel vision". Утык в 1 проблему при том что проблема многогранна и многофакторна к добру не приводит.

> Особенности работы с типами данных. Напоминаю ещё раз о переворачивающихся самолётах.

Уже не падающих, в отличие от ракет с адой? :)

> Какое число у нас получается при добавлении единички к последнему, допустимому для
> объявленного типа данных? :-)

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

> Арифметика указателей. Скажи, положив руку на пульс планеты: это точно то, что
> надо для написания ПО для критических применений? Точно-точно?

Это не следует использовать без острой нужды. Иногда - таки надо. Простой пример: boot loader занимающийся апдейтом основной фирмавары. Указатель на точку входа в фирмвару нам все же надо чтобы ее запустить. Или надо это вообще на ассемблере?

Туда же странные для вас вещи типа global state "вне контекста" программы и потому переживающие HW reset, так что после ресета чипа можно быренько вспомнить где были и что делать. Double-edged sword, есть риск наступить на факт что ресет не приводит к деглюкации. И тут что важнее: быстрый tune-in или более гарантированная деглюкация. Смотря что перевешивает.

Еще ща memmapped регистры железок - адреса в памяти. Это типовой паттерн проектирования железа. Так что работа с HW = "доступ к адресам". Что хотите, то и делайте! А делая математику над этим надо еще понимать реальные обращения к адресу. Потому что есть IRQs которые могут там же что-то хотеть, а железо само меняет регистры по ходу пьесы. Безбашенная реализация без понимания ведет к race conditions. Стреляющих раз в год. Это очень трудноуловимые и потому опасные классы багов.

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

> Особенности управления памятью и сишной строки.

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

> i++ vs ++i, наконец.

Внезапно, это лишь маппинг того что де-факто умеет железо. И иногла удобно одно, иногда другое. Это позволяет оптизировать некоторые алгоритмы vs железо. Опять же если програмер понимает это, ничем не грозит. И расписно в каждом втором мануале на чипы.

> Зачем вся эта милота и красота там, где от любой ошибки может
> упасть ракета и запороть проект стоимостью в миллиарды, да ещё и убить экипаж и зрителей?

Если кто-то не заметил, красоты оставляют столько, сколько обосновано. Поэтому апликушные рожи пишут немного не так как микроконтроллерщики и являются малость раздолбаями. Особенно плюсовики.

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

Вот тут я согласен - "простая насколько это возможно, но не более того". То-есть - если мы знаем что у нас 12-битный ADC, получение сэмпла более 0xFFF намекает хьюстону про проблемы. Туда же и таймаут железки. Даже "simple automation" может уйти навечно в себя если частица воткнется. И будет очень кстати если код 1) заметит это и 2) не будет делать откровенно провальные действия, как те адовики.

> Я не утверждаю, что писать такой софт на Си/Си++ нельзя, но ещё
> раз повторяю свою мысль: для критических задач создали Аду. Люди, которые
> её придумали, были уж наверняка не глупее нас и что-то таки понимали.

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

> Ну вот, а спрашиваешь, что не так с Сишечкой. С ней-то всё
> так, но с людьми, которые её используют, всегда что-то не так.
> Это инструмент не для всех, я считаю. Она слишком многое позволяет.

Программирование реалтаймных надежных систем - априори не для всех. Там вообще нехило бы знать довольно много о железе, софте и как это де-факто взаимодействует. Иначе можно наступить на очень странные грабли. Скажем некоторая mmaped периферия очень требовательна к порядку доступа. Си достаточно прост чтобы это неплохо обыграть. А остальные... даже не знаю.

> Городская легенда гласит, что:

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

> Нифига подобного. Причина именно та, что я писал: экономят на механике, материалах
> и людях, которые умеют с этим грамотно работать.

Чем больше трубочек, проводочков и проч, тем быстрее при вибрации что-нибудь отвалится или замкнет. Механика подвержена износу и усталости. Не все из этого хоршо заметно, диагностика сложна, ненадежна, трудоемка, плавающее КЗ вообще могут не заметить на земле, а потом уже поздняк.

Грубо говоря, МК к его датчику + шина в которую он сливает результат имеют в 9000 раз меньше причин для отвала + могут в самодиагностику, не зависящую от внимания персонала, etc. И даже залоггить transient failure. Мне нравится этот аспект. Это и затраты на майнтенанс уменьшает, и убирает дофига человеческого фактора. Аналогично, можно не тянуть кучу механики черти-куда, поставив управление и исполниловку где удобно.

> Иногда, пожалуй, лучше не знать, как и где экономят — будешь спокойно спать…

Я в курсе что типичный лайнер никогда не взлетает в 100% исправном состоянии. Водилы жмущие педали не видят длинный лог ошибок OBD-II. Но меня этим не удивить.

> Аналоговый вычислитель в машинах зачастую лучше бы решал, но он дороже и
> его сложнее делать. Да и не модно, не молодёжно.

Я даже видал несколько таких и в азы ОУ умею. Но замечу что это в принципе не может ряд вещей. Оно в принципе не может переключиться на радикально иной plan B малой кровью. Есть некая разница между вычислителем и тюринг-полным процессором. МК может мониторить кипу связанных датчиков и если вон то например перегревается, выключить или сменить режимы. Добиться такого интеллекта от аналоговщины малореально и гарантирует толпу наладчиков с крутилками - и толпу отказов на этой почве.

> Ой, ну не надо быть таким наивным. :-) Никуда ничего не наступает,

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

> просто экономия и норма прибыли при использовании электроники получаются больше, вот
> и суют её всюду.

Кроме этого есть и технические моменты, труднореализуемые или невозможные. Аналоговый вычислитель сложно "пробросить на 1000 километров". А цифровые отсчеты - хоть на другую сторону глобуса.

> как мы знаем, тиражирование отработанной и окупившейся микросхемы чрезвычайно дёшево,
> а тирижирование уже написанного софта не стоит вообще ничего —

И это тоже. Более того - монтаж печатных плат и чипов куда технологичнее чем месиво из кучи проводов требующее кучу мануальщины. С рисками ошибок и отказов, опять же. Однажды оттестив печатку, накопипастить не вопрос. А клубок проводов в шкафу собирать отдельно - и каждый раз может выйти лажа. Цифровые системы радикально упростили это - и сделали надежным. Если роботы собрали плату 100 раз, 101-я скорее всего ничем не хуже.

> в отличие от тиражирования любой материальной детали или узла.

Копипаста всем понравилась - токарей отправили за сборщиками шкафов, сделав CNC которые вполне себе хардварная версиея копипасты. А идеал это автоматическая фаба. Ей модель на вход, девайс на выход. И уже есть автоматические фабы без людей.

> ИТ делает для производителей производство дешевле — это единственная _реальная_
> причина продвижения ИТ. Попутно _иногда_ улучшаются _некоторые_ потребительские свойства
> товара, но чаще всего не улучшается ничего, а улучшение заменяется агрессивной рекламой,
> убеждающей нас в наличии такового.

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

>> 1) Сделало возможным много того что было невозможным или нецелесообразным.
> Например?

Проц в плите! Программируемые времена, детект пустой плиты, антисклероз и safety timeout. Автоматические кастрюли, с которыми кто угодно повар: насыпал, залил, запустил программу и забыл. Через часик готово. А оно там само режимы телепает. Или робот-пылесос. С ним вокруг куда чище, он не ленивый. Все это делает жизнь лучше. А порой и безопаснее: забытая плита это хреново. Хорошо что авторы фирмвари в курсе склерозности людей.

На жесткой логике такое вообще не особо прокатило бы. А жизню лучше явно делает.

> Добавило всюду экранов и сенсоров? Да уж, прогресс…

Ну вон робот автоматически пыль коллекционирует, иногда только бак вытряхнуть. А из интерфейсов 1 кнопка - "сделать зашибись". Работает, через час - зашибись!

> Примеров, пожалуйста, в студию.

Да те же самолеты. Новые статистически (в пересчете на вылет, километр, ...) здорово надежнее. Картинные факапы конечно да, но... пока не было цифровых систем, были люди. Они лажались чаще. Устранение human factor поднимает надежность инженерных систем. Однажды люди решили что железный TCAS в приоритете над мясным диспетчером. Прецеденты, прецеденты.

> 4) значительно улучшило предсказуемость планируемого устаревания промышленных изделий
> и вознесло копроэкономику на невиданные высоты.

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

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

Так вышло что будущее пришло а новые стандарты не сделали. Точнее, призматический литий - стандартен. Просто вариантов X*Y*Z легион, под все мыслимые нужды. Но если задаться целью, найти банку можно. Электроника защиты или BMS - вопрос номер два. Я пару раз реюзал от родной банки.

Самое стандартное из - 18650, наверное. Батареи "для лаптопов" которые перекочевали в современные фонари, электроинструмент, powerbank и проч, где надо как можно больше электричества при меньшем размере и весе. И нет, как угодно, но меня зачастую не устроят более тяжелые и объемистые батарейки где В ТРИ РАЗА меньше энергии в том же размере. Это достаточно хорошее улучшение чтобы я поканителился.

> Моторов-миллионников, которыми были славны некоторые производители в шестидесятые,
> семидесятые и восьмидесятые годы, нынче не делают.

Я знаю авто которые десяток лет и более юзали без особых ремонтов, намотав почтительные расстояния. Не миллион, конечно.

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

> же. Вопрос: кто (производитель vs потребитель) и сколько приобретает и теряет
> при покупке традиционного корыта 40 лет назад и модно-молодёжного сегодня (после
> приведения ценников к единому курсу, конечно).

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

> Эти паттерны называются планируемое устаревание, ага. :-)

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

> 1) их можно самостоятельно починить в гараже при помощи кувалды и такой-то матери;

И с электроникой частично катит, просто для электронщиков вместо механиков.

> 2) они реалтаймовые безо всяких ухищрений;

Только медленные процессы. Сунуться в микросекунды? Упс, инерция.

> 3) они дают прекрасную обратную связь — опять же без ухищрений;

Вспотевший водила vs руль без усилителя жарким летом поспорил бы на тему багов и фич.

> 1) тяга всегда стоит денег, её невозможно тиражировать бесплатно;

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

> 2) для её проектирования и производства нужно иметь _настоящих_ квалифицированных инженеров
> и специалистов других наук, а не погромиздов, копипастящих с шлаковерфлоу.

В эпоху CNC и CAD копипастеры там в почете. В этом их пойнт.

> Система всё равно остаётся механической по существу. :-)

Система следует другим паттернам - есть сеть/шина, есть роли на ней, они чем-то перекидываются. Одна группа проводов на все. Или даже радио. Или интернет. Прокиньте тягу на другую сторону шарика?

Более того - цифровые системы можно собирать в более глобальные вещи для глобальной координации и мониторинга. Энергетикам и т.п. явно по вкусу.

> Добавляя электронику, мы добавляем ещё один слой, в котором возможны отказы.

Но обычно и выкидываем много слоев.

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

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

> Двигатели-миллионники — и можно спор закрывать. :-)

Это ширпотреб, и видимо в целом пиплам столько не надо, никто и не парится.

> Почему её не хотят применять шире — это для меня загадка. Наверное,
> как и с Паскалем, всё дело в скобках. :-)

Возможно. Я начинал с паскаля. Отличная штука чтобы понять как надо. И зело нудная чтобы на нем что-то реальное делать. На сях мне как-то явно прикольнее. И в конечном итоге я могу им зарулить почти любую мыслимую задачу от фирмвари МК до патча кернела или какой-то сетевой штуки делающей странные вещи.

> Но всё же напомню ещё раз, что Аду _специально_ сделали для авиастроения,
> ракетостроения и пр.

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

>> А на другие планеты таки надо расселиться.
> Зачем?

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

> Логика, нужная и достаточная для начала занятия программированием, чрезвычайно примитивна,

Оно все же требует немного абстрактного мышления. Это довольно продвинутая форма нервной деятельностии, не каждое двуногое на это способно.

> Ею в той или иной мере обладают все психически полноценные человеки.

Думаю, максимум что светит какому-нибудь борцу или пловцу программировать - кнопки в лифте.

> МК это что?

МикроКонтроллеры (MCU). Как правило сие небольшие чипы, где процессорное ядро, RAM и (Flash)ROM упакованы в 1 чип. "Маленькие компьютеры" для встраиваемых применений. Самые мелкие и предсказуемые, умеют в жесткий реалтайм и быстрые и предсказуемые реакции (порядка микросекунд если не наносекунд), заточены на взаимодействие с физическим миром.

https://en.wikipedia.org/wiki/Microcontrollers

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру