LINUX.ORG.RU

Полётный софт в SpaceX (+ видео)

 , , ,


0

4

Алексей Пахунов (украинский программист работающий в SpaceX) опубликовал в своём блоге пост (+видео) о полётном програмном обеспечении использующемся в SpaceX
>>> https://blog.not-a-kernel-guy.com/2017/12/11/bazel-spacex/

Свежая презентация про полетный софт в SpaceX в целом, и про миграцию с make на Bazel в частности:

Основные моменты:

  • Два основных репозитория: один содержит полетный код, второй - код симуляции. Более миллиона строк C++ в каждом. Немного Python.
  • Используется своя версия Linux, поддержкой которой занимается отдельная команда.
  • C++ код собирается под несколько разных процессорных архитектур.
  • Полетный код для Falcon и Dragon собирается из одного репозитория.
  • “Test like you fly” - код тестируется в тех же самых условиях, что наблюдаются в полете. Софт и железо тестируются как единая интегрированная система.
  • Система непрерывной интеграции выполняет более 8 тысяч заданий в день.

Вторая половина презентации посвящена миграции с древней системы сборки на основе make на более современный Bazel. Эта часть будет интересна в основном тем, кто интересуется системами сборки кода.

P.S.: Полезности

★★★★★

Последнее исправление: atsym (всего исправлений: 11)

Я очень надеюсь, что оно не закончится трагедией. Серьезно.

Berluskoni ★★
()
Ответ на: комментарий от atsym

Наверное, их дистр называется «LinuX» ;-)

а еще про роскосмос флудят! сами крестами обложились по самые гланды!

conalex ★★★
()
Ответ на: комментарий от conalex

сами крестами обложились

Не Wayland'ом же единым ;-)

atsym ★★★★★
() автор топика
26 января 2018 г.

Жжем!

Из блога Алексея Пахунова

https://blog.not-a-kernel-guy.com/2018/01/24/heavy-static-fire/

Сегодня, наконец, прожгли Falcon Heavy:
>>> https://www.youtube.com/watch?v=sNgByUWwFKU

Ух сколько же я тикетов в баг трекере закрыл за последний год - не пересчитать. Большая часть была про Falcon Heavy.

Хотя казалось бы всех дел - слепить три одинаковых ракеты вместе… Самый смешной момент с прожига - меньше чем за 10 минут до T-0, когда уже все на нервах, range уведомляет, что они визуально обнаружили чьё-то присутствие вблизи от пускового стола. Что, понятное дело, грозит переносом прожига. Меньше чем через минуту range снова выходит на связь и дает отбой - мол, это просто какая-то бетонная конструкция. Не иначе, кто-то внезапно что-то построил.

Детали по подготовке к запуску Falcon Heavy
>>> Falcon Heavy Demo Flight: DONE! Поговорим?! ;-)

atsym ★★★★★
() автор топика
Последнее исправление: atsym (всего исправлений: 1)

Уроки разработки полетного софта (by Алексей Пахунов)

Часто, когда речь заходит про космический софт, можно слышать “ну уж там-то код компилируется со всеми предупреждениями”, или “ну уж там-то наверняка запускается статический анализатор кода и все ошибки исправляются”, или “ну уж там то тесты покрывают код на 100%“. Как вы скорее всего уже догадались рая нет. Вернее, рай в планах был, но из-за превышения сметы успели достроить только ад. К счастью, костры успели развести только под половиной котлов, поскольку часть дров заменили бетонными шпалами, а расположение котлов забыли задокументировать.
...

Детали - https://blog.not-a-kernel-guy.com/2018/02/17/fsw-lessons/

atsym ★★★★★
() автор топика
14 мая 2018 г.

Репозитории SpaceX 'мигрируют': Subversions → Git

Алексей Пахунов: "-... Я в последнее время много играюсь с миграцией Subversion на Git и многие их косяки так в глаза и лезут..."

atsym ★★★★★
() автор топика
Последнее исправление: atsym (всего исправлений: 3)
13 июля 2018 г.

Как я провел прошлую пятницу

Алексей Пахунов пишет:

«Расскажу как я провел прошлую пятницу. Провел я её пытаясь понять, почему простой как доска тест-кейс не работает. Тест-кейс запускает код в среде, которая симулирует полетное окружение: среду выполнения, показания датчиков и т.д. Далее выполняется простой сценарий - тест-кейс получает телеметрию и выполняет действия/проверки по наступлению определенных событий...»

P.S.: Особенности программирования на Python.

atsym ★★★★★
() автор топика
Ответ на: Репозитории SpaceX 'мигрируют': Subversions → Git от atsym

https://blog.not-a-kernel-guy.com/2018/04/22/svn-git/

эффективное использование Git подразумевает, что никто не анализирует историю изменений коммит за коммитом.

Дальше можно не читать.

tailgunner ★★★★★
()

@slashdot : «Is C++ a 'Really Terrible Language'? bit.ly/2KYIc4H»(1)

@elonmusk : «Yes»(2)

@Grady_Booch : «I suspect that Bjarne would disagree.»(3)

@elonmusk : «C»(4)

@Ko_Sulli : «Pascal»(5)

@elonmusk : «Turbo»(6)

@sivarajkumar237 : «What about Python? It got Best Programming Language of the year award.»(7)

@elonmusk : «🖤🖤🖤 Python 🖤🖤🖤»(8)

@annerajb : «Hmm at this point not sure what's real and what's sarcasm ...»(9)

@elonmusk : «Python is done right. Great name story too.»(10)

@kulpability : «hey now! our embedded controllers are now partitioned - control on one side- Linux and capability for Python based analytics on the other. 🐍»(11)

@annerajb : «Doing control in c I assume?»(12)

@elonmusk : «Tight control code is always C»(13)

atsym ★★★★★
() автор топика
Последнее исправление: atsym (всего исправлений: 1)

Табличные юнит тесты

Алексей Пахунов:

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

Читать дальше - https://blog.not-a-kernel-guy.com/2018/08/01/table-driven-unit-tests/

atsym ★★★★★
() автор топика

Текстовые данные в юнит тестах

Алексей Пахунов:

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

Читать дальше — https://blog.not-a-kernel-guy.com/2018/08/05/text-data/

atsym ★★★★★
() автор топика
Последнее исправление: atsym (всего исправлений: 1)

Вторая половина презентации посвящена миграции с древней системы сборки на основе make на более современный Bazel. Эта часть будет интересна в основном тем, кто интересуется системами сборки кода.

самое важное для запуска в космос

Harald ★★★★★
()
25 сентября 2018 г.
16 ноября 2018 г.

Ну-ка, еще разок

Алексей Пахунов:

Питоний пакет retrying - универсальная заплатка для кода, который может поломаться из-за внешних причин. Например, socket.connect() может закончится ошибкой из-за непредвиденной ситуации в сети. Заворачиваем вызов в @retry и бац! Все работает.

...

(читать дальше...)

atsym ★★★★★
() автор топика
Последнее исправление: atsym (всего исправлений: 1)

Марс: Внутри SpaceX

Алексей Пахунов:

National Geographic начал показывать второй сезон сериала Марс и вместе с первым эпизодом выложил серию про SpaceX. Такого количества знакомых лиц в документальном фильме я еще не видел. Я там тоже засветился в 42:56. :)

Красиво снято. Рекомендую посмотреть.

(читать дальше...)

atsym ★★★★★
() автор топика
Ответ на: комментарий от morse

Ты настроил бота на прямую трансяцию твиттера на лор?

Нет, конечно.

atsym ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.