Автор Тема: Пракосмос  (Прочитано 4437 раз)

Geniepro

  • Hero Member
  • *****
  • Сообщений: 1955
  • Знайте- истина в том, что повторено трижды подряд!
    • Просмотр профиля
Пракосмос
« : Октябрь 15, 2012, 12:23:47 pm »
"Как у нас пишут ПО для космических аппаратов"
Цитировать
Все мои наблюдения оформлю в виде небольших тезисов.

1.  Большая часть ПО написана не профессиональными программистами.
    В основном функциональные системы написаны либо людьми имеющими инженерное образование связанное с летательными и космическими аппаратами, либо физиками и математиками, которым в силу необходимости пришлось научиться перекладывать свои знания на абстракции низкоуровневых языков программирования (типа C).
    Соответственно и на результаты такого написания кода без слёз взглянуть сложно.
...

И старая статья про ПО для шаттлов:
"Они пишут правильную вещь"
to iterate is human, to recurse, divine

Салат «рекурсия»: помидоры, огурцы, салат…

DIzer

  • Гость
Re: Пракосмос
« Ответ #1 : Октябрь 15, 2012, 12:36:58 pm »
Вранье все это  :D - согласно коровятам у нас пишут на передовом  и сверхнадежном ЯВУ Модула 2, с использованием уникальной среды "Дракон" .для формализации алгоритмов.. безо всяких элабораций, фунюкций и прошмонад...

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Пракосмос
« Ответ #2 : Октябрь 15, 2012, 01:39:45 pm »
Откровенно говоря, вот это дико напоминает идеалогию программирования на Обероне (неоднократно встречалось подобное в обсуждениях):
Цитировать
Преждевременные псевдооптимизации при явной пессимизации.
В программах почти всех инженеров ставших программистами по необходимости можно увидеть псевдомикрооптимизации, которые делают код нечитаемым (например: использование операций сдвига вместо умножения, использование битовых операций для ускорения исполнения программы, отказ от выделения функций для экономии на вызовах и т.д. и т.п.). Программы приобретают поистине кошмарный вид с десятком уровней вложенности и переиспользованием одной переменной для разных задач в пределах одной функции, с затейливой битовой арифметикой и шаманскими макросами имеющими глобальную область видимости.
Вместе с тем при компилировании релизной бортовой версии могут быть сознательно выключены все оптимизации компилятора и линковщика для обеспечения какой-нибудь редкоиспользуемой низкоуровневой функции (например: реализации бинарных патчей). Что в конечном счете приводит к тому, что бортовой код становится медленным как черепаха и выходит за такт жесткого реалтайма, и в свою очередь вызывает новую волну дебильных микрооптимизаций по включению тела функций в места их вызова и замены нормальных вычислений сдвигами и т.п.
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Пракосмос
« Ответ #3 : Октябрь 15, 2012, 01:41:50 pm »
и чо?  :D

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Пракосмос
« Ответ #4 : Октябрь 15, 2012, 02:04:45 pm »
А вот тут про то как готовились к запуску Бурана. Написано достаточно хорошим языком: http://www.buran.ru/htm/memory.htm
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Пракосмос
« Ответ #5 : Октябрь 15, 2012, 02:12:07 pm »
А вот тут про то как готовились к запуску Бурана. Написано достаточно хорошим языком: http://www.buran.ru/htm/memory.htm
ну  это беллетристика... лично я  просил завершить мыслю с предыдущей цитатой (в контексте  обсуждаемой темы - ИМХО - она, как не пришей к п. рукав...)

Илья Ермаков

  • Sr. Member
  • ****
  • Сообщений: 493
    • Просмотр профиля
Re: Пракосмос
« Ответ #6 : Октябрь 18, 2012, 07:12:38 pm »
"Роскосмос" - это огромное число предприятий, где ситуация в разных местах очень сильно отличается от "средней по палате".

Есть, например, РКК "Энергия", занимающаяся, в числе прочего, МКС-ом. ПО для МКС занимается группа академика Микрина (он также проф. Бауманки; есть его отличный учебник по бортовым системам управления, издательство МГТУ им. Баумана).
У них там вполне себе UNIX-based-процесс разработки (на QNX), со всеми современными принципами. Даже boost используют :)
Принципы обеспечения надёжности - за счёт дробления системы на мелкие изолированные процессы, которые взаимодействуют сообщениями по специфицированным протоколам. Т.е. граница надёжности - мини-процесс.
Вот несколько их презентаций.
http://narod.ru/disk/62652190001.43967d8e7b686e201afd9b430e3fac58/1.ppt.html
http://narod.ru/disk/62652270001.38e2039ff48adab3d28cfdf03cad8156/3.ppt.html
http://narod.ru/disk/62652366001.189854592074da4a1e4f52490f04e2da/4.ppt.html
ПО, кстати, у них разрабатывают программисты, коллектив довольно молодой (да и сам Микрин не стар). Специальная подготовка, конечно, нужна, обычный пальцегнутый выпускник ВМК МГУ ещё должен пальцы свои разогнуть и понять специфику и ответственность.

(Колташёв и НПО Решетнёва - тоже флагманы, но они далеко, я знаю не больше, чем в статьях про Модулу-2.)

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Пракосмос
« Ответ #7 : Октябрь 19, 2012, 04:47:33 pm »
Цитировать
... Это и устаревшие морально операционные системы, подходы к проектированию, реализации и тестированию программных продуктов.

Вот чего я никогда не понимал, так это термин "морально устарел". Какое отношение технология имеет к морали? Штука (устройство, ЯП, ОС и так далее) либо справляется с задачами которые на неё возложены, и тогда оно не устарело, либо не справляется (например стоимость поддержки/тех. обслуживания стала слишком высока) и тогда эта штука устарела натурально, а не "морально".
Y = λf.(λx.f (x x)) (λx.f (x x))

Berserker

  • Sr. Member
  • ****
  • Сообщений: 254
    • Просмотр профиля
Re: Пракосмос
« Ответ #8 : Октябрь 20, 2012, 12:00:41 pm »
Традиционно различают физический износ и моральный. Второй имеет две формы:
1) Когда стоимость создания такого же объекта в современных условиях ниже, чем в то время, когда создавался объект;
2) Когда производительность/эффективность объектов, созданных в настоящее время, больше, чем у старых.

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

valexey_u

  • Hero Member
  • *****
  • Сообщений: 3013
    • Просмотр профиля
Re: Пракосмос
« Ответ #9 : Октябрь 20, 2012, 12:56:33 pm »
Традиционно различают физический износ и моральный. Второй имеет две формы:
1) Когда стоимость создания такого же объекта в современных условиях ниже, чем в то время, когда создавался объект;
2) Когда производительность/эффективность объектов, созданных в настоящее время, больше, чем у старых.

Видимо, по аналогии и "морально устарел". Значит, что таких же результат можно достигнуть быстрее и с большей эффективностью, расширяемостью и т.д..
Физического износа у ПО не бывает вообще, а оставлять ПО только моральный износ/устаревание - как то глупо. Тем более что сверхновое ПО иногда (точнее часто) страдает от тех же проблем что и древнее (нельзя легко найти специалистов по этому ПО, хреново работает и так далее).

Поэтому "традиционные различия" для ПО просто не применимы. Это все равно что сказать: законы Ньютона морально устарели (ну да, ведь есть ОТО!).
Y = λf.(λx.f (x x)) (λx.f (x x))

DIzer

  • Гость
Re: Пракосмос
« Ответ #10 : Октябрь 20, 2012, 01:13:40 pm »
Глупость, основа высказывания принципиальное различие между объективным,материальным,физическим и субьективным,нематериальным,моральным,этическим соответственно и употребление  1.категорическое несогласие с использованием чего либо не нуждающееся в рациональном обосновании  2. Когда неприятие порождено исключительно иррациональными, в том числе морально-этическими причинами,3.-чисто для усиления высказывания (эмоциональное)-основанное на ассоциациях порождаемых этими словами в мозгах аудитории