Новости

RUST - альтернатива C/C++ ориентированная на безопасность кода, поддерживается nRF9160 официально

Nordic Semiconductor, видя современные тенденции рынка программирования и разработки устройств интернета вещей, представил поддержку языка Rust для семейства nRF91.

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

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

Про поддержку Rust на продуктах Nordic Semiconductor стало известно 2 года назад. Тогда была реализована работа SoftDevice S132 (скомпилированного стека Bluetooth) и Nordic SDK (HAL в открытых исходных кодах), написанных на C, в привязке к Rust для самого распространённого семейства nRF52. Код доступен в git.

После выхода в серию SIP модулей nRF9160 на базе новых Cortex-M33 , был запущен проект по интеграции Rust c семейством nRF91. Британская компания 42 Technology, специализирующаяся на консалтинге и разработке электронных устройств, впервые представила разработку Rust на nRF9160 ещё в феврале этого года. На прошлой неделе это решение было представлено со стороны Nordic Semiconductor после проведения испытаний. Код для нового семейства интегрирован с доступным ранее nRF52-HAL (git).

 Пара цитат:
 
В недавних полевых испытаниях, проведенных в Великобритании, 42 Technology заявляет, что ее приложение Rust создало безопасные зашифрованные соединения с облачными сервисами Amazon через раннюю сеть LTE Cat-M, развернутую сетевым оператором O2. Также заявлено, что приложение поддерживает NB-IoT, который в настоящее время запускается в Великобритании Vodafone и другими операторами.
 
«Rust - это идеальный язык программирования для работы на очень маленьком и недорогом оборудовании, изначально он был специально разработан с упором на безопасность памяти. Он предоставляет разработчикам современные мощные инструменты, позволяющие им быть высокопроизводительными - без значительных накладных расходов во время выполнения. А благодаря строгой проверке типов и заимствованиям компилятор Rust способен выявлять потенциальные проблемы безопасности на ранних этапах процесса разработки ».

 

Стоит отметить основные преимущества Rust перед традиционными языками используемыми при разработке встраиваемых приложений.
  • Повышенная безопасность работы с памятью относительно C/C++ при сохранении быстродействия ±10%,
  • Rust содержит в своём составе полный комплект для современной разработки:
    • компилятор,
    • менеджер пакетов (он же сборщик проектов, он же отвечает за запуск тестов),
    • генератор документации
    • отладчик gdb
  • Компилятор строг к тексту программы и имеет встроенный анализатор, в его выводе можно увидеть:
    • какой код не используется, какие переменные можно изменить на константный тип,
    • предупреждения, связанные со стилем программирования.
    • часто для ошибок компиляции приведены варианты ее устранения,
    • ошибки при инстанциировании обобщенного кода (шаблонов) лаконичны и понятны
  • Все строки имеют кодировку Unicode (UTF-8), отсутствуют проблемы с кодировками.
  • Есть поддержка итераторов и лямбда функций). Благодаря этому можно писать однострочные конструкции, которые выполняют множество операций с сложной логикой (то, чем славится Python).

Статей сравнивающих Rust с C/C++ в сети достаточно много, в том числе и в российском сегменте. Поэтому проверить результаты и/или изучить вопрос более детально не будет проблемой. Например, при подготовке этой статьи частично использовались материалы с habr.

 
Особо интересно становится применение Rust на архитектуры ARMv8-M, которая содержит ARM TrustZone и ARM CryptoCell. Так как в этом случае обеспечивает безопасность на всех уровнях, как аппаратных, так и программных.
 
Это краб Феррис, маскот Rust. Он передаёт Вам привет.
 
 

Каталог компонентов

194021, г. Санкт-Петербург, ул. Политехническая, д. 22

Телефон: +7 (812) 318-18-95. Факс: +7 (812) 318-18-94. E-mail: info@ultran.ru

© 2009-2015 ООО «Ультран». Все права защищены.

ChipFind - поисковая система по электронным компонентамEEN