Electronics Information Service

組込みシステム技術者向け
オンライン・マガジン

MENU

SOLUTION

京都マイクロの次世代プログラミング言語Rustの使用が可能に、SOLIDソフトウェア開発環境Ver.3.0 をリリース

2021.10.20  6:08 pm

京都マイクロコンピュータ株式会社(以下、KMCと記載)は、本年12月よりKMCのリアルタイムOS(以下、RTOSと記載)ベースの組込みソフトウェア開発プラットフォームSOLID(以下、SOLIDと記載)に次世代プログラミング言語Rustに対応したSOLID Ver.3.0をリリースすることを発表します。
     
1.プログラミング言語Rustに対応
KMCでは以前からオープンソースプログラミング言語であるRustに注目しており、SOLID開発環境でのRust対応の開発を行ってきました。2021年9月末には、SOLIDがRustにTier 3ターゲットとして追加されました (*1)。
このあと、Rustコミュニティでリリースに向けた手順を経て、SOLID-OS(TOPPERS/ASP3およびFMP3)でのプログラミングに、Rustライブラリ群の多くを利用できるようになり、SOLID-OS/TOPPERSのタスクやハンドラがRust言語で記述できるようになります。
    
一方でKMCは、RTOSを含んだ組込みソフトウェア開発プラットフォーム “SOLID”を2017年より提供開始し、多くのお客様にご使用いただいています。SOLID-OSは、GCCおよびLLVM/Clangに対応しており、商用利用可能なRTOSおよび開発環境ライセンスも提供しています。
今般、SOLID-OSサポートがRustに追加されたことにより、弊社提供のSOLIDもRustを全面的に利用できるよう、バージョンアップいたします。
・IDEビルドツールのRust対応(Rustコンパイラは公式配布版のバイナリリリースを使います)
・ソースコードデバッガのRust対応 SOLID Ver.3.0のリリースは2021年12月頃を予定しています。
KMCは、今後もRustコミュニティと継続的に協力し、組込みシステムでのRust言語の普及に努めてまいります。
    
(*1) Tier 3ターゲットでの対応になるので、RustコンパイラはNightly版のみ使用できます。
https://github.com/rust-lang/rust/commit/da9ca41c318aadcc0a9e8f72f86c1d36c8fe6d5d
     
2. SOLID Ver.3.0の新機能 “スレッドサニタイザ”
SOLID Ver.3.0では、Rust言語対応以外にも、新機能としてLLVM/Clang環境でスレッドサニタイザが利用可能となります。 スレッドサニタイザとは、実行時にスレッド(タスク)間でのデータアクセスの競合を検出する機能です。同期しない複数のスレッドが同じメモリをアクセスする場合に、少なくとも一つのスレッドが書込みをしている場合の競合を検出し、デバッガが競合箇所を特定してユーザに通知します(*2)。
SOLIDでは大規模なRTOSシステム設計が可能となるよう、DLL機能や分散開発機能を備えていますが、プログラムが大規模化するとスレッド間のメモリ競合が発生した場合に、競合発生タイミングが不定期となりその原因を検出するのが難しいという課題がありました。スレッドサニタイザは、この問題を解決するのに大変有効な機能です。
    
(*2) スレッドサニタイザは全ての競合検出を担保するものではありません。 変数競合検出によるパフォーマンス低下を少なくするため一定の確率での検出となりますが、検出できた競合についてはその競合が確定となります。

3. 今後の予定
今後、以下の予定でRust版SOLIDのご紹介、リリースを計画しています。
  • 2021年10月24日~25日に開催される、TOPPERS開発者会議にて、当社のエンジニアがRustについて講演します。
    (https://solid.kmckk.com/SOLID/archives/5087)
  • 2021年11月4日~5日に開催される、DSForum 2021 にて、当社のエンジニアがRustについて講演します。また、エンジニア講演の他に、弊社スポンサー講演にて、SOLID Ver.3.0について、開発環境の、Rust対応やスレッドサニタイザ対応について、デモンストレーション交えて紹介し、オンライン展示コーナーで、Rust言語対応などSOLID Ver.3.0の説明を行います。
    (https://solid.kmckk.com/SOLID/archives/5103)
  • Rust言語が利用可能なSOLID Ver.3.0は、2021年12月にリリースを予定しています。
    現在SOLIDのライセンスをお持ちの方は、追加費用なしでVer.3.0にアップデートいただけます。また新規にSOLIDライセンス契約をされる場合も、従来とライセンス費用は変わりません。

名古屋大学 大学院情報学研究科 附属組込みシステム研究センター長・教授 高田広章様からのコメント
「この度、京都マイクロコンピュータ株式会社のRTOS開発プラットフォームSOLIDにおいて、新しいプログラミング言語Rust対応版をリリースすることになり、大変心強く思います。
私は日頃から、情報技術ばかりでなく組込みシステム開発技術でも新しい技術を取り込んで革新させていくべき、と考えています。中でもプログラミング言語については「いつまでもC言語でよいのか?」という問題意識を感じており、最新のオープンソースソフトウェアであるRustはTOPPERSプロジェクトでも大変注目している言語の一つです。
SOLIDでは、TOPPERS/ASP3およびFMP3カーネルをRust対応するということなので、この新しい開発環境に大いに期待しています。」
    
京都マイクロコンピュータ株式会社 代表取締役社長 山本彰一のコメント
「私達KMCはこれまでにもGCCやLinuxをはじめとするオープンソースソフトウェア(OSS)開発環境関連製品をリリースしてきました。SOLIDも多くのOSS技術を利用しており、弊社エンジニアは日々OSSに触れて開発をしています。
OSSの技術を取り込みまた貢献することで、組込みソフトウェアの開発環境をより良くする事を目標に長年ビジネスをしてきた点がKMCの大きな強みだと考えています。
Rustは、実行効率とソフトウェア安全性を言語レベルで保障可能な仕組みを持っているため、今後の肥大化するソフトウェアを支える大きな柱となっていくと考えています。この Rust を商用ツールとして市場に提供することは、KMCの使命です。また Rust 研究に取組んできた若手エンジニアが新たに開発メンバーに加わり、開発に多大な貢献をしてくれた事も頼もしく思っています。
今後もKMCは開発環境のRust言語対応や、Rustの普及にも努めてまいります。」
    
    
京都マイクロコンピュータ株式会社
https://www.kmckk.co.jp