Вам Действительно Нужен Исходный Код?



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

То же самое справедливо и для любого купленного программного обеспечения.

Является ли это разумным ответом для всех случаев и почему исходный код иногда необходим, а иногда он менее полезен, чем ожидалось? Существует ряд ключевых критериев, которые инженеры используют при выборе операционной системы реального времени (RTOS).

Многие из них — стоимость, функциональность, лицензирование, поддержка — несомненно, очень важны (особенно стоимость — это наши реалии).

Однако другой критерий — наличие исходного кода — возможно, не так важен, но всегда оценивается как сильный фактор.

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

Этот подход справедлив только для продуктов с открытым исходным кодом; в других случаях производители могут взимать плату за исходный код или предоставлять его по запросу.

Разработка аппаратного обеспечения.

Сюда также входит исходный код, что особенно актуально для разработки с использованием VHDL и Verlog. Как здесь обстоят дела? Исторически сложилось так, что при выборе интегральной схемы и проектировании ее применения инженер опирался на спецификации, определяющие функциональность, цоколевку, требования к питанию и т. д. И в то же время никто не ожидал увидеть полную схему внутреннего устройства ИС, хотя часто можно было увидеть структурную схему (в основном как иллюстративный материал, облегчающий понимание принципов работы), а иногда даже принципиальную схему (для аналоговых микросхем типа ОУ), хотя без номиналов.

Инженер, разрабатывающий сегодня прошивку ASIC или FPGA, скорее всего, будет использовать некоторые предварительно созданные IP-блоки — предварительно упакованный блок, обеспечивающий определенную функциональность.

Однако выбор будет основываться на спецификациях, и совсем не очевидно, что в комплект поставки войдет оригинальный HDL для IP. Этот подход «черного ящика» хорошо известен в мире аппаратного обеспечения.

Безопасность.

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

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

При использовании IP, будь то аппаратное обеспечение или поставляемое программное обеспечение, сбои в поставках как таковые маловероятны (за исключением случаев одноразовых лицензий), но постоянная поддержка должна присутствовать.

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

Если исходный код IP доступен, это позволяет решить любую (ну, почти любую) программную проблему, даже если поставщик больше не может предложить поддержку.

По этой причине многие покупатели ОСРВ и т. д. хотели бы иметь исходный код на полке, даже если они никогда не просматривают его, на всякий случай.

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

Большинство ПК похожи на многие другие, и единственный выбор — между средой выполнения: Windows, Mac или Linux. С другой стороны, встроенные системы невероятно разнообразны: у них разные процессоры, конфигурации памяти и периферийные устройства.

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

Хотя многие продукты, такие как RTOS, поставляются в двоичной форме (обычно это библиотека, настроенная для конкретной архитектуры), требования к доставке исходного кода могут стимулировать поставщиков, устраняя необходимость хранить и поддерживать множество вариантов, поскольку предоставление IP в качестве источника решает многие из этих проблем.

проблемы.

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

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

Сертификация.

Для некоторых типов приложений, например, военных/авиационных и медицинских, прошивка должна быть сертифицирована на безопасность и соответствие различным стандартам.

Этот процесс сложен и дорог и обычно требует проверки каждой строки кода.

Поэтому обычно невозможно приобрести «предварительно сертифицированные» единицы программного обеспечения, поскольку проверке подлежит все приложение.

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

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

Ответ может показаться очевидным: исходный код программы — это набор файлов, содержащих инструкции высокого уровня или языка ассемблера, которые можно скомпилировать и собрать в функционирующие двоичные инструкции.

Сразу вопрос: являются ли необходимые для процесса преобразования программы и среда выполнения для них частью исходного кода (в бинарном виде)? Тем не менее этому определению соответствует как минимум 3 формы, в которых может быть представлен «исходный код» (например, поговорим о языке C) в порядке ухудшения качества: 1) Действительно исходный код, с хорошей версткой, четкими соглашениями об именах переменных и хорошо прокомментирован (при условии, что он есть у разработчика IP, что совершенно необязательно).

2) Строки кода, которые будут успешно скомпилированы, НО без комментариев или особо значимых имен-идентификаторов.

3) Строки кода после перекрытия, что делает код нечитаемым для человека, но приемлемым для компилятора.

Это делается путем замены имен идентификаторов бессмысленными и удаления всех комментариев и синтаксически ненужных пробелов.

Идет обратный процесс, но его результаты вряд ли можно назвать приемлемыми.

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

Однако при принятии решения о покупке, если вам требуется исходный код, важно убедиться, что это вариант; если сомневаетесь, просто попросите образцы.

2) обычно используется, когда продавец хочет поставить необходимый минимум, которого может быть (только) достаточно для сертификации.

3) используется для защиты содержимого ИИП от посторонних глаз, а это означает, что программное обеспечение получает преимущество настраиваемости, но не более того.

Недостатки исходного кода.

Самый большой недостаток наличия исходного кода: это очень заманчиво.

Каждый разработчик хочет сделать свое ПО как можно лучше (ну есть такая точка зрения).

Так, например, если API RTOS не работает оптимально для приложения, наличие исходного кода дает возможность его изменить.

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

Что делать, если возникла проблема с функциональностью RTOS? Поставщик не будет поддерживать модифицированный продукт. Что делать, если выйдет новая версия ОСРВ? Включение его в редизайн может потребовать значительного времени на повторные модификации, особенно если их автор у вас больше не работает (ну либо вы делали эти модификации 3 года назад и конечно, либо, как говорится, конечно, вы не сделали потрудитесь написать соответствующую документацию).

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

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

Теги: #Программирование микроконтроллеров #Программирование микроконтроллеров
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.