Во-первых, на мой взгляд, «миллионы строк» — это жертва изнасилования журналистами.
Во-вторых, думаю, в 737 Max стоят сотни устройств с МК внутри (я не учитываю развлекательные панели в креслах, только авионику и автоматику), и если в каждом хотя бы по тысяче строк кода на асме — это уже миллионы строк. Здесь нет речи о ревизиях, разных моделях и комплектациях.
Платят, думаю, почасовую ставку, и в этом может быть одна из проблем — на мой взгляд, инженеру лучше платить за выполнение хорошо поставленной задачи, покрытой тестами и имеющей чёткие критерии выполнения и работоспособности, но увы.
В любом случае, ARM — нормальная архитектура для МК. Есть чипы за $0.5 с 32 Кб флэш-памяти и 8 Кб ОЗУ, работающие год от батарейки CR2032, есть чипы с несколькими ядрами, отлично справляющиеся с задачей управления парой двигателей.
Естественно, речь не о ядрах ARM Cortex A*, а о линейках M и R.
Возьмите несложный алгоритм (хотя бы PID-регулирование) и соберите его под любой микроконтроллер (скажем, ARM). На верхнем уровне у Вас будет несколько строк и читабельная программа. Если копнуть глубже — реализация PID занимает несколько экранов и всё ещё читабельна, а так же в идеале должна быть покрыта тестами.
Однако то, что заливается в контроллер, разворачивает связанные библиотеки (как минимум, cmsis для взаимодействия с железом и math) и занимает уже десятки тысяч строк кода (С) или сотни (инструкции процессора).
Если добавить сюда работу нескольких дублированных устройств, сетевой протокол, механизм голосования/выбора неисправных, и всё это так же будет содержать библиотеки — вот вам и миллионы строк кода (инструкций).
Проблема не в сумме зарплаты сотрудника, а в том, что не только разработка, но весь цикл проектирование-разработка-тестирование-приёмка проводился в компании, которая никогда не делала отказоустойчивые системы.
Если взять разработку в самой Boeing, где есть инженер, заложивший дублирование, тест-писатель, описавший известные ему и компании случаи отказов в тестах, и менеджер, который не примет код до того, как он пройдёт тесты — то да, можно заменить разработчика на дешёвого. Будет ли дешевле час работы сотрудника за $50 или неделя возни и возвратов индусу с $9 — другой вопрос.
А если вся задача делегирована людям, которые, условно, раньше делали софт уровня 1С — то ТЗ будет выглядеть как «типа надо компенсировать недостаток манёвренности», тесты буду выглядеть как «взлетаем, не хватает управления, триммирование включается, всё хорошо начальникама» — разработчик ПО (который, в отличие от менеджера и инженера, не обязан хоть что-то знать про самолёты) мог написать с первого раза идеальный код, который на 100% делает ровно то, что описано в ТЗ.
Но ТЗ неадекватно требованиям к подсистемам в авиации. В этом и проблема, насколько я понял — в делегировании проектирования целых подсистем в компании-подрядчики
При этом, кстати, я практически уверен (доказательства нужно искать среди тех, кто работал в Huawei тогда), что воровство было. Году так в 2003. И не абстрактный «консольный интерфейс настройки свитчей», а целые куски исходников из Cisco.
Но почему-то десять лет назад это никого не волновало… Пока Huawei был заштатным производителем недорогого и странного сетевого оборудования.
Возможно, потому что а) MS стремился продвинуть свой стандарт, а к концепции «мы дружим со всеми» они пришли как раз к закрытию своей мобильной ОС, и б) может получиться в случае, если Huawei не будет, как MS, раз в пару лет выпиливать под корень всю обратную совместимость с предыдущей версией/релизом/железом
Кредит доверия не очень большой, но пока есть. А дальше посмотрим.
Думаю, в час пик в принципе на некоторых участках достигается максимальная частота следования поездов с учётом российских интервалов и длины блок-участков.
Не злые, но задолбавшиеся языки также говорят, что при переходе с версии на версию MS Office, и даже при миграции документа, свёрстанного с использованием не входящих в поставку MSO шрифтов, форматирование документа может быть поломано. Например, таблица, умещавшаяся на N листах, резко переходит в режим text wrapping и начинает занимать N*2 листов, причём на каждой второй строке по одной букве.
Есть Pin change interrupt, срабатывает одно прерывание на N настроенных ножек, но тоже способ сэкваномить энергию и просыпаться только на N событий, а не постоянно жратт 10 мА.
Наоборот.
У Алисы есть номер 123 (её) и доступ к SIP-гейту.
Алиса выключает свой телефон и звонит Бобу с SIP-гейта, используя подмену номера на «123». У Боба отображается номер 123, хотя сам телефон выключен и при попытке позвонить на него будет «The line you are calling is out of network».
По-моему, вы немного запутали ситуацию «Alpine в контейнере в продакшн» и «Alpine в качестве хост-системы в продакшн».
Второе, возможно, выглядит странно, но у меня не хватает опыта оценить плюсы/минусы такого решения
Блок в смысле ECU с мелким реалтаймовым МК, или всё-таки речь про голову с цветным экраном?
У меня машина начала нулевых, и там вся прошивка весит сотню килобайт для ECU и десятки кб для всяких блоков комфорта.
Во-вторых, думаю, в 737 Max стоят сотни устройств с МК внутри (я не учитываю развлекательные панели в креслах, только авионику и автоматику), и если в каждом хотя бы по тысяче строк кода на асме — это уже миллионы строк. Здесь нет речи о ревизиях, разных моделях и комплектациях.
Платят, думаю, почасовую ставку, и в этом может быть одна из проблем — на мой взгляд, инженеру лучше платить за выполнение хорошо поставленной задачи, покрытой тестами и имеющей чёткие критерии выполнения и работоспособности, но увы.
Естественно, речь не о ядрах ARM Cortex A*, а о линейках M и R.
Однако то, что заливается в контроллер, разворачивает связанные библиотеки (как минимум, cmsis для взаимодействия с железом и math) и занимает уже десятки тысяч строк кода (С) или сотни (инструкции процессора).
Если добавить сюда работу нескольких дублированных устройств, сетевой протокол, механизм голосования/выбора неисправных, и всё это так же будет содержать библиотеки — вот вам и миллионы строк кода (инструкций).
Если взять разработку в самой Boeing, где есть инженер, заложивший дублирование, тест-писатель, описавший известные ему и компании случаи отказов в тестах, и менеджер, который не примет код до того, как он пройдёт тесты — то да, можно заменить разработчика на дешёвого. Будет ли дешевле час работы сотрудника за $50 или неделя возни и возвратов индусу с $9 — другой вопрос.
А если вся задача делегирована людям, которые, условно, раньше делали софт уровня 1С — то ТЗ будет выглядеть как «типа надо компенсировать недостаток манёвренности», тесты буду выглядеть как «взлетаем, не хватает управления, триммирование включается, всё хорошо начальникама» — разработчик ПО (который, в отличие от менеджера и инженера, не обязан хоть что-то знать про самолёты) мог написать с первого раза идеальный код, который на 100% делает ровно то, что описано в ТЗ.
Но ТЗ неадекватно требованиям к подсистемам в авиации. В этом и проблема, насколько я понял — в делегировании проектирования целых подсистем в компании-подрядчики
Но почему-то десять лет назад это никого не волновало… Пока Huawei был заштатным производителем недорогого и странного сетевого оборудования.
Кредит доверия не очень большой, но пока есть. А дальше посмотрим.
У Алисы есть номер 123 (её) и доступ к SIP-гейту.
Алиса выключает свой телефон и звонит Бобу с SIP-гейта, используя подмену номера на «123». У Боба отображается номер 123, хотя сам телефон выключен и при попытке позвонить на него будет «The line you are calling is out of network».
Второе, возможно, выглядит странно, но у меня не хватает опыта оценить плюсы/минусы такого решения