На чем пишется софт для КА?

Автор hudvin, 06.05.2009 15:28:09

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

TAU

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

Цитироватьпреемственность
...вполне себе может быть обеспечена в рамках этой самой своей линейки специализированных ОС. Да и ПО в целом.
Вообще, в космической технике пробовать ставить новое, "перспективное" и "сделанное специалистами" за бугром, чревато.

bsdv

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


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

KBOB

Цитировать
Цитировать
ЦитироватьЯ персонально писал ОС РВ, готов ответить на вопросы.
А что именно Вы называете ОС РВ? Диспетчер прикладных задач? Управление "железом"?
ОС РВ = операционная система реального времени. Та, что писал я представляла из себя многозадачную ОС с вытеснением и приоритетностью задач/прерываний. Включала в себя диспетчер задач/прерываний, управление внешней памятью (процессор - специальное расширение Intel 286), драйверы PCMCIA, граф. адаптера  последовательного порта, сенсорного экрана, GPS-приемника (одного из первых), управление питанием и кое-что еще по мелочи. Библиотеки поддержки многозадачности (семафоры, очереди, мониторы и т.д.), работы с графическими функциями и т.п. Все писалось под конкретную задачу, с минимумом дополнительной функциональности. Писалось потому, что существующие компактные ОС РВ или не подходили к этому железу, или банально не влезали в память. После консультаций с разработчиками оных (в частности Apple и Gео Works) было решено плюнуть на это безобразие и рискнуть сделать самим.

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

Портировалось туда специальное ПО написанное для ОС VRTX и процессора МС68000.

А какой размер ядра? POSIX совместимость? Компилятор?
Россия больше чем Плутон.

TAU

ЦитироватьЯ то как раз и имел в виду отсутствие современных национальных стандартов, адаптированных европейских или чистых ГОСТ - это уже другой вопрос
Почему отсутствие? Присутствие. Вы вообще какие именно стандарыт имеете в виду?

ЦитироватьНасчет совместимости - вопрос сложный,к примеру я в последнее время не видел ни одного прикладного ПО в той или иной мере не использующего западные протоколы передачи данных
То есть - личный опыт обобщаете на всю отрасль?

ЦитироватьГлупо отказываться от достижений западной цивилизации, а задачи обеспечения национальных интересов вполне можно решать другими способами
Ну, есть вещи, которые надо делать и самим. Чтобы если, не дай Бог, что - смогли бы обойтись собственными силами.
А отказываться - с одной стороны, глупо. С другой - не все они столь хороши, эти "достижения западной цивилизации", надо перенимать лишь лучшее. Причем иногда у нас могут и превзойти в чем-то - своя цивилизация имется ;-)

bsdv

Цитировать
ЦитироватьЯ то как раз и имел в виду отсутствие современных национальных стандартов, адаптированных европейских или чистых ГОСТ - это уже другой вопрос
Почему отсутствие? Присутствие. Вы вообще какие именно стандарыт имеете в виду?

Я имею в виду положение со стандартами вообще, а в области ОС в частности.
Вот к примеру, упоминавшиеся уже выше ОС РВ соответствуют стандарту ISO http://ru.wikipedia.org/wiki/POSIX.
Каким отечественным стандартам соответствуют наши отечественные ОС РВ?

Цитировать
ЦитироватьНасчет совместимости - вопрос сложный,к примеру я в последнее время не видел ни одного прикладного ПО в той или иной мере не использующего западные протоколы передачи данных
То есть - личный опыт обобщаете на всю отрасль?
Обобщать я даже и не пытался, рановато пока :D .

Цитировать
ЦитироватьГлупо отказываться от достижений западной цивилизации, а задачи обеспечения национальных интересов вполне можно решать другими способами
Ну, есть вещи, которые надо делать и самим. Чтобы если, не дай Бог, что - смогли бы обойтись собственными силами.
А отказываться - с одной стороны, глупо. С другой - не все они столь хороши, эти "достижения западной цивилизации", надо перенимать лишь лучшее. Причем иногда у нас могут и превзойти в чем-то - своя цивилизация имется ;-)
Здесь я с вами согласен на 100%.

ОАЯ

Позвольте взгляд со стороны, и он буден немного длинным. Sorry.
Сейчас при программировании непрограммисты теряют много времени и сил для создании программ средней и повышенной сложности. (Если есть тандем программист и специалист, то чем сложнее программа, тем больше  противоречий  между ними). Сюда входит изучение интерфейса программирования, поверхностное изучение языка, отладка. Но и это не помогает при усложнении программ. Сразу возникает необходимость изучать язык глубоко и долго.
Это напоминает состояние дел в ламповой электронике. Каждый элемент, даже провода нужно было подобрать и соединить. И знать про них самое существенное. По-каскадно испытать, исправить и многое чего. Создать сложное мнголамповое устройство – это удел гигантов индустрии. Сейчас школьник соединив пяток деталей получает устройство не достижимое в те года.
Следовательно нужен такой же подход при программировании.

Плата – основная ОС.
Ее функция - закрепить все ОС и связи между ними. И больше ничего.

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

Провода – то же самое, но работающие как менеджер передачи данных.

Тогда создать простую программу будет также трудно, как и раньше, но сложную проще. Из готовых узлов с простым, дружественным интерфейсом непрограммист используя интеллект этих ОС легко исправит ошибки, сам оптимизирует структуру и объединит узлы в сложную программу. Способом объединения ОС может стать интернетовский протокол.
Немного упрощенное изложение.

Наработав разнообразные ОС-функции, перейти к «средней» степени интеграции. И далее... И тогда биолог, врач, геолог сможет организовать свое прикладное программное обеспечение для своих задач используя целые узлы и конструкции с простым, однообразным и понятным интерфейсом.

sychbird

ЦитироватьНаработав разнообразные ОС-функции, перейти к «средней» степени интеграции. И далее... И тогда биолог, врач, геолог сможет организовать свое прикладное программное обеспечение для своих задач используя целые узлы и конструкции с простым, однообразным и понятным интерфейсом.
Такие возможности существуют в графических интерфейсах объектно ориентированного прикладного программного обеспечения.(Delfy например) Есть и специализированные готовые программные продукты с возможность расширения и подключения дополнительных модулей.
Ответил со свойственной ему свирепостью (хотя и не преступая ни на дюйм границ учтивости). (C)  :)

jettero

Цитировать(Если есть тандем программист и специалист, то чем сложнее программа, тем больше  противоречий  между ними). Сюда входит изучение интерфейса программирования, поверхностное изучение языка, отладка. Но и это не помогает при усложнении программ. Сразу возникает необходимость изучать язык глубоко и долго.
...
Тогда создать простую программу будет также трудно, как и раньше, но сложную проще. Из готовых узлов с простым, дружественным интерфейсом непрограммист используя интеллект этих ОС легко исправит ошибки, сам оптимизирует структуру и объединит узлы в сложную программу. Способом объединения ОС может стать интернетовский протокол.
Немного упрощенное изложение.
Сложность программирования обуславливается сложностью предметной области, с которой работает система и которую моделирует программа. И если узко не ограничивать предметную область, то таких кирпичиков, на все случаи жизни, из которых можно собрать систему, как с микросхемами, не наделаешь.
Существует новый подход к программированию для работы со сложными системах, например для корпоративных систем управления. Этот подход называется Domain-driven_design и он упрощает создание очень сложных систем.

ОАЯ

ЦитироватьТакие возможности существуют в графических интерфейсах объектно ориентированного прикладного программного обеспечения.(Delfy например) Есть и специализированные готовые программные продукты с возможность расширения и подключения дополнительных модулей.

Это как раз аналогия: из готовых блоков собрать прибор. А если сменить подход к операторам языка программирования? Сделать из них подобие веб-узлов или операционных систем.
Сейчас "операция" выполняется принудительно и фиксировано.
В ОС она будет интелектуальной: сравнение с конфигурационным файлом, проверка на входе, анализ полученного результата, выдача в служебный канал сообщ. о ошибках и статистике, и т.д.  И уже из однообразных ОС собирать куски программ.  Эти куски будут уметь еще меньше, чем старый DOS, но иметь интерфейс для переговоров с программой на уровне школьника младших классов. Далее установка нескольких ОС на доске общей ОС.

KBOB

Цитировать
ЦитироватьТакие возможности существуют в графических интерфейсах объектно ориентированного прикладного программного обеспечения.(Delfy например) Есть и специализированные готовые программные продукты с возможность расширения и подключения дополнительных модулей.

Это как раз аналогия: из готовых блоков собрать прибор. А если сменить подход к операторам языка программирования? Сделать из них подобие веб-узлов или операционных систем.
Сейчас "операция" выполняется принудительно и фиксировано.
В ОС она будет интелектуальной: сравнение с конфигурационным файлом, проверка на входе, анализ полученного результата, выдача в служебный канал сообщ. о ошибках и статистике, и т.д.  И уже из однообразных ОС собирать куски программ.  Эти куски будут уметь еще меньше, чем старый DOS, но иметь интерфейс для переговоров с программой на уровне школьника младших классов. Далее установка нескольких ОС на доске общей ОС.
А вы продавать что будете? Готовые системы под ключь стоят деньгт, а отдельные кубики нужны только любителям.
Россия больше чем Плутон.

jettero

Тут спрашивали про отечественные RTOS,
недавно встретил ссылку на ось Багет http://ru.wikipedia.org/wiki/%D0%9E%D0%A12000

KBOB

ЦитироватьТут спрашивали про отечественные RTOS,
недавно встретил ссылку на ось Багет http://ru.wikipedia.org/wiki/%D0%9E%D0%A12000

Я слышал там вместо кнопок ОК и Cancel - "Так точно" и "Никак нет".  :shock:
Россия больше чем Плутон.

jettero

ЦитироватьЯ слышал там вместо кнопок ОК и Cancel - "Так точно" и "Никак нет".  :shock:
скорее всего миф  :D
графическая оконная система для RTOS не требуется

хотя раз она POSIX совместимая можно X-Windows прикрутить и надписи на кнопки поставить как хочется )))

KBOB

Цитировать
ЦитироватьЯ слышал там вместо кнопок ОК и Cancel - "Так точно" и "Никак нет".  :shock:
скорее всего миф  :D
графическая оконная система для RTOS не требуется

хотя раз она POSIX совместимая можно X-Windows прикрутить и надписи на кнопки поставить как хочется )))

Сходил по вашей-же ссылке.
ЦитироватьСоответствие стандартам
При разработке операционной системы использовались следующие международные стандарты:
POSIX 1003.1, стандарт на мобильные операционные системы (программный интерфейс);
стандарт С, описывающий язык и библиотеки языка С.
графическая подсистема X Window System (клиент-сервер)
Россия больше чем Плутон.

jettero

Ну вот, значит все-таки прикрутили X-Винды :D
Но в целом это излишне именно для RTOS. Хотя конечно можно придумать какие то приложения где это будет полезно, например для отладки. Но на рабочей встраиваемой системе их обычно нету, зачем оконная система на спутнике или ракете? Не будут же ими управлять соединяясь по telnet'у и тыкая мышкой в кнопки? :shock:
Я даже на вебсерверы под FreeBSD окна не ставлю, все гораздо проще и быстрее делается в командной строке.

PS что нету оконного интефейса я сделал вывод по этой странице http://www.niisi.ru/intro1.htm , читая ее по диагонали, я его там не нашел в спеках
и еще раз глянул ссылку на википедии, там есть скриншот интерфейса - кнопки на английском http://ru.wikipedia.org/wiki/%D0%A4%D0%B0%D0%B9%D0%BB:Osrvconfig.png

sychbird

ЦитироватьНу вот, значит все-таки прикрутили X-Винды :D
Но в целом это излишне именно для RTOS. Хотя конечно можно придумать какие то приложения где это будет полезно, например для отладки. Но на рабочей встраиваемой системе их обычно нету, зачем оконная система на спутнике или ракете? Не будут же ими управлять соединяясь по telnet'у и тыкая мышкой в кнопки? :shock:
Я даже на вебсерверы под FreeBSD окна не ставлю, все гораздо проще и быстрее делается в командной строке.
Командная строка критична к ошибке набора. Для оператора системы реального времени да еще в скафандре это не проходит.
Ответил со свойственной ему свирепостью (хотя и не преступая ни на дюйм границ учтивости). (C)  :)

jettero

ЦитироватьКомандная строка критична к ошибке набора. Для оператора системы реального времени да еще в скафандре это не проходит.
Ну в окнах с мышкой они тем более не работают, тем более в скафандре :)
RTOS это специфичный зверь, как правило там нет такого оператора, как есть на обычном ПК.
Управляющие воздействия там могут приходить от датчиков, кнопок, тумблеров итп. Окна для управления RTOS на рабочем объекте почти нигде не используют. А командная строка нужна для удаленного управления, отладки, диагностики итп.

TAU

ЦитироватьСуществует новый подход к программированию для работы со сложными системах, например для корпоративных систем управления. Этот подход называется Domain-driven_design
Эх, jettero-jettero... Молодо-зелено?  :wink:

"Новый подход", говорите? Для корпоративных систем?

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

Которые использовались активно, между прочим, издавна именно в космической отрасли при создании БПО - HAL/S, ПРОЛ, ПРОЛ2, СИПРОЛ, ГРАФИТ/ФЛОКС, и т.д., и т.п.

TAU

ЦитироватьКаким отечественным стандартам соответствуют наши отечественные ОС РВ?
Нашим стандартам (ГОСТам). Кои иногда бывают скопированными с западных, иногда - нет. Иногда это вообще стандарты предприятия. Но, тем не менее, безусловно существующие в природе . :wink:

jettero

Цитировать
ЦитироватьСуществует новый подход к программированию для работы со сложными системах, например для корпоративных систем управления. Этот подход называется Domain-driven_design
Эх, jettero-jettero... Молодо-зелено?  :wink:

"Новый подход", говорите? Для корпоративных систем?

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

Которые использовались активно, между прочим, издавна именно в космической отрасли при создании БПО - HAL/S, ПРОЛ, ПРОЛ2, СИПРОЛ, ГРАФИТ/ФЛОКС, и т.д., и т.п.
Гм... Судя по всему вы перевели с английского слова Domain-Driven Design и уже решили, что знаете о чем идет речь :D

DDD не имеет отношения к проблемно-ориентированным языкам, там суть подхода совсем в другом ;) Для применения парадигмы DDD достаточно любого ООП языка.

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

Учите матчасть 8)  Evans, E., Domain-Driven Design - Tackling Complexity in the Heart of Software, 2004, Addison-Wesley