ネットワーク接続やクラウド連携が必須となった現代の電子機器の開発ではオープンソースソフトウエア(=OSS)の活用は避けて通れません。しかし元々PC向けの汎用CPUで動作するように作られたOSSを高機能SOCに移植するにはSOCに内蔵された各種周辺機能を動かすためのデバイスドライバーやOSが持つ表示/音声調停メカニズムとの合わせ込みが必要になります。しかしこれらの開発について半導体サプライヤーとセットメーカーの役割分担の線引きが曖昧なので実際にはベンダーによって「OSSへの対応レベル(=品質)」には大きな差があります。今回はルネサスが考える「OSSを使った製品開発の成功戦略」をご紹介します。
製品開発における 「ソフトウェア開発コストの急拡大」 は多くのセットメーカーの頭痛の種です。商品企画毎にゼロからソフトウェアを作るという伝統的なやり方は破綻したと考えて良いでしょう。解決策としてアプリケーションソフトを同一世代の品種間や複数世代間で出来るだけ使い回していく 「ソフトウエアファースト」 の考え方が提唱されていますが、ここで重要となるのは長期間に亘って利用できる 「サスティナブルなソフトウェア」 という考え方です。これまでソフトウェアは特定のユースケース(=絞り込まれた前提条件)を拠り所に開発/検証されてきたのですがSWを使い回していくには「将来発生するかもしれない未知の使い方」にも予め対応しておく必要があります。この検証手段のひとつに故意に間違ったデータをプログラムに喰わせてみるfuzz test があります。例えば表計算ファイルの拡張子を無理矢理 .mp4 に変更してメディアプレーヤに喰わせてみたりします。メディアプレーヤがフリーズせずに 「正しい動画ファイルではありません」とエラー表示するのが期待値ですが、特定用途向けに開発された組み込み機器の中にはこの種の意地悪テストに耐えられないものもあります。
OSSは元来誰がどんな使い方をしても破綻しないようにプログラムされていて(いるべきで)、その開発途上でのオープンなピアレビュー履歴も閲覧可能です。このような特性からOSSには長期運用に耐える品質が期待できるでしょう。(対象製品のユースケースに対する動作検証は依然としてセットメーカーの責任である事は言うまでもありませんが)もうひとつOSSが特定企業に帰属しない公知資産であることも長期運用観点でアドバンテージです。例えば Linux kernel は登場から既に四半世紀以上経過しましたが、現在でも創始者のリーナス氏が率いる開発コミュニティによって継続的で精力的な機能拡張や品質改善が行なわれています。企業に帰属するソフトウェアに類似のものはひとつもありません。
OSS の代表、Linux kernel コミュニティでは約10週間毎に最新バージョンをリリース
OSS本体は原則無償配布という事情もあって半導体サプライヤーのOSSへの取り組み姿勢は各社まちまちなのですが、ルネサスは比較的早い時期から積極的に取り組んできました。その歴史は家庭にインターネットが導入され始めた1995年頃まで遡ります。当時私たちは開発コミュニティからダウンロードしたコードに自社RISCマイコンが動作するように独自改造加えたものをお客様に配布していました。その後 CELF(CE Linux Forum)や Linux Foundation といったOSSの活用を目指した産業コンソーシアム活動や国際的な開発者会議などに参加する機会が増えて開発コミュニティの重鎮から直接OSSとの正しい付き合い方についてアドバイスを受ける事ができました。そこで学んだのは 「ダウンロードしたものを独自改造するのではなく、コミュニティの一員となってOSSの継続的な開発サイクルに参加し、長期にわたって活用可能なSW資産を構築する」 という考え方です。これを実践するためルネサスはコミュニティで活躍中の現役バリバリのカーネルデベロッパー数名と契約し、後追いではなくコミュニティの開発サイクルの中でルネサスのデバイスや評価ボード向けのコードを開発/検証していく 「Upstream First」 と呼ばれる開発プロセスを導入しました。現在お客さまに提供している Linux BSP (Board Support Package)は全てこの「Upstream First」に基づいて開発されているのでコミュニティが配布するどのバージョンにもルネサスのデバイスを動かす検証済みのコードが含まれています。
Sustainable SW の基盤となるUpstream First の考え方を全面的に適用しています
さらにBSPを構築/配布するプラットフォームを開発する 「Yocto Project」や車載向けの Linux 適用拡大を目指した 「AGL」 「GENIVI」 といった産業コンソーシアム活動においてもルネサスは重要な役割を担っています。またサスティナブルなソフトウェア実現の取り組みとしてLinuxの長期運用を目指している CIP(Civil Infrastructure Platform)や LTSI(Long Term Support Initiative)といった活動もリーディングしており、当社が配布するLinux BSP は全てコミュニティが指定する長期メンテナンス対象バージョンを採用していますが、これらの取り組みは「お客さまのSW投資を保全」するために極めて重要かつ有効と考えています。ルネサスは今後も開発コミュニティや産業コンソーシアム活動と連携を通して「SWの長期運用」 という産業界の期待に更に応えていきます。
Renesas R-Car 向けの Linux kernel の公開リポジトリ(最新版 kernel 対応を含め逐次更新している)
Renesas は Linux BSP 構築ツールを開発する Yocto Project の Advisory Board メンバー
社会インフラ向けにLinuxの長期運用を目指す CIP 、Renesas もコアメンバーとして活動を支援中