• 検索結果がありません。

組込みLinux向けS/W開発環境構築手法の一提案

N/A
N/A
Protected

Academic year: 2021

シェア "組込みLinux向けS/W開発環境構築手法の一提案"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)情報処理学会第 76 回全国大会. 3A-4. 組込み Linux 向け S/W 開発環境構築手法の一提案 井邊. 研吾†. 攝津. 敦†. 落合. 真一†. 情報技術総合研究所†. 三菱電機株式会社. 1. はじめに 組込み機器の H/W の高機能化に伴い、多くの機能 をサポートする高機能 OS を利用することが増えて いる。その1つが Linux である。Linux はソースコ ードが開示されており、開発に応じたカスタマイズ が可能である。また、組込み機器の H/W 構成は様々 であるが、Linux のカーネルコンフィグレーション 機能により各種 H/W への適用が考慮されている。こ のように、H/W 毎にカスタマイズさせ Linux を動作 させる実行環境に関する検討はなされている。 しかし、実開発ではリリースした後も長期間保守 が行われるため、それを考慮した S/W 開発が必要と なる。長期間保守において、ソースコードから過去 にリリースしたバイナリと同じものを生成できるこ とが重要であり、本稿では長期間保守を考慮した S/W 開発環境の構築について検討した。. S/W 管理対象 (現在) ソースコード ユーザランド カーネル ブートローダ (U-boot). 不具合時に 生成したい. コンパイラ. 実行環境. クロス コンパイラ. Linux ユーザランド. 外部データ. カーネル ブートローダ (U-boot). ユーザランド用 クロスコンパイラ パッケージ 生成環境. 図 1 組込み Linux 向け S/W 開発 2.2. 外部データ保持 再度同じ実行環境を作るためには、ソースコード 2. 組込み Linux 向け S/W 開発の から生成できない外部のデータも保持しておく必要 長期間保守の課題と解決策 がある(図 1)。例えばユーザランドを生成するため 実開発での組込み Linux 向け S/W 開発は、数十年 に、ディストリビュータのパッケージを利用してい 間保守する必要がある。このような長期間の保守を る場合にはそのパッケージも保持対象となる。また、 する場合、S/W 構成管理と外部データにおいて課題 クロスコンパイラで使用するライブラリ等も保持し がある。以下に課題の詳細と解決策について述べる。 ておく必要がある。これらの多くは、利用する時に 2.1. S/W 構成管理 ネットワーク上から取得するが多く、それらが長期 開発時と不具合発生時で長い時間が経過している 間提供される続ける保証がないため、外部データに 場合がある。このような状況下で不具合解析をする ついても全て保持し、バージョン管理を行うことが 場合、再度実行環境を生成できことが重要である。 重要である。 しかし、カーネルだけ開発当時のソースコードを保 3. 組込み Linux 向けバージョン管理 持していても、同じ実行環境を作ることができない。 長期間保守における S/W 構成管理と外部データ保 図 1 に示すように実行環境には、カーネルに加 持を考慮したバージョン管理について提案する。 えて、ブートローダやユーザランドのバイナリが必 3.1. S/W 構成管理 要である。ソースコードからそのバイナリを生成す 組込み向け Linux の S/W 構成管理は図 2 のよう るためにはコンパイラが必要となる。組込み S/W 開 なリポジトリ構成を提案する。組込み向け Linux 発では、クロスコンパイラを用いることが一般的で S/W 開発のような長期開発・保守をする場合には、 ある。クロスコンパイラは H/W や Linux の構成によ S/W 構成パターンである Task Branch [1]を利用す り異なり、汎用的でない H/W を用いた場合、クロス るの が適してい る。こ の Task Branch を 組込み コンパイラから開発しなければならない。 Linux 向け S/W 開発に適用した場合、図 2 の共通メ このクロスコンパイラも開発時と同じものでなけ インラインの trunk には新規開発のベースとなるソ れば、同じソースコードでも同じバイナリが生成で ースコードを保持し、各適用開発を branches で分 きない。このように、ソースコードだけを管理する 離する。その branches の中で、各開発の trunk、 構成管理を行っていると、不具合時に対応できなく branches、tags を作成し管理する。共通メインラ なる問題がある。 インの tags には新規開発時のバージョンを記録し このため構成管理には、ソースコードに加えそれ ていく。各開発で機能追加等開発が終了した段階で、 らをコンパイルス開発環境も合わせてバージョン管 共通メインラインがある trunk にマージする。他の 理する必要がある。 開発にも機能追加を適用することで、重複開発を防 ぎ、開発コスト削減につながる。また、各開発の保 守は共通メインライン一本で管理できるため保守性 も高くなる。. A Proposal of a Softwere Development Environment for Embedded Linux Kengo Ibe, Atsushi Settsu, Shinichi Ochiai †Information Technology R&D Center, Mitsubishi Electric Corporation. 1-33. Copyright 2014 Information Processing Society of Japan. All Rights Reserved..

(2) 情報処理学会第 76 回全国大会. 共通メインライン / ┣trunk/ ┃ ┣linux/ ┃ ┣u-boot/ ┃ ┣userland/ ┃ ┗dev_env ┃ ┣branches/ ┃ ┣develop#1 ┃ : ┃ ┣develop#2 ┃ : ┃ ┗tags/ ┣linux/ ┣u-boot/ ┣userland/ ┗dev_env. 開発用ブランチ ┣develop#1 開発#1用 ┃ ┣trunk/ ┃ ┃ ┣linux/ ┃ ┃ ┣u-boot/ ┃ ┃ ┣userland/ ┃ ┃ ┗dev_env/ ┃ ┣branches/ ┃ ┃ ┣linux/ ┃ ┃ ┣u-boot/ ┃ ┃ ┣userland/ ┃ ┃ ┗dev_env/ 開発環境 ┃ ┗tags/ ┃ ┣linux/ ┃ ┣u-boot/ ┃ ┣userland/ ┃ ┗dev_env/ ┣develop#2 開発#2用 ┃ ┣trunk/ ┃ :. 表 1 バージョン管理方法の比較 集中管理方式 バージョン ○リビジョン番号が の把握 シーケンシャル 作業用 ◎ファイル単位 コピー リポジトリ ◎リポジトリを の保守 バックアップする 開発者間の △データのコピーに データ共有 なるため変更履歴が 残らない 一時作業の ×中央リポジトリに 履歴管理 コミットした履歴の みしか残らない. 分散管理方式 △リビジョン番号が ハッシュ値 ×リポジトリ単位 ×リポジトリが 複数あり統一して 管理できない ◎リポジトリから取り 込むため。変更履歴も コピー可能 ◎開発者個人の履歴を 保持できる. 3.2.2. 考察 集中管理方式と分散管理方式で大きな違いは、ロ 図 2 リポジトリ構成 ーカルリポジトリを保持するか否かである。 ここまでは従来の S/W 構成管理と同様であるが、 リポジトリが複数存在するため、リビジョン番号 これらに加え各開発で開発環境も管理する。開発環 がハッシュ値で生成しており、リビジョンの前後関 境にはクロスコンパイラや各開発で必要となる外部 係が把握しにくいが、ツールを用いて前後のリビジ データも保持し、バージョンを管理する。 ョンを確認できるため、大きな問題にはならない。 開発環境は図 2 の開発#1 用の dev_env に該当す また、開発者間のデータ共有において集中管理では る。開発環境で共通的に利用できるような外部デー 変更履歴が残らない問題も中央リポジトリを介して タは共通メインラインに保持し、共通化できないも データを共有することで変更履歴を残すことができ のは、各開発の dev_env で管理する。もし、部分的 る。一時作業の履歴管理は、集中管理方式の課題と に別の開発の dev_env を共有できるような場合には、 なるが、長期間保守の観点では、開発者個人の作業 各開発間で共有する。 の履歴が必須ではないため課題とはしない。 不具合発生時にはリリースしたバージョンのソー 長期間保守を考慮した場合、組込み Linux の保守 スコードと開発環境をコピーし、バイナリを生成す 期間の間リポジトリも保守を継続しなけなければな る。このとき、外部からのデータを必要としないた らない。このため、開発者がローカルのリポジトリ め開発時と同様の物を生成できる。 で作業し、リリースしてしまうような場合、開発者 3.2. バージョン管理方法 のローカルリポジトリを保持し続けなければならず、 S/W のバージョン管理には集中管理方式と分散管 管理対象が複数になり、複雑化するため管理ミスが 理方式があり、長期保守する組込み Linux 向け S/W 発生する可能性がある。これを防ぐため、中央管理 開発において、どちらが適切かを検討する。 方式を採用することが望ましい。また、リポジトリ をローカルにクローニングする場合、今回のように 3.2.1. 集中管理方式と分散管理方式 表 1 に集中管理方式と分散管理方式の比較を示す。 コンパイラや外部データまで保持しているとリポジ トリが膨大になるため、リポジトリを各開発者がク 集中管理方式では中央にリポジトリを配置し、そ ローニングするとデータ量が莫大になる問題もある。 のデータを開発者がコピーして作業する。作業完了 リポジトリ自身の長期間保守の観点から、分散管 後中央リポジトリにコミットすることで、変更履歴 理方式ではなく、集中管理方式がよいと判断する。 を記録する。集中管理方式では、中央リポジトリの 1 つであるため、リビジョン番号をシーケンシャル 4. おわりに に割り当てることができ、リビジョンの前後関係が 本稿では、組込み Linux 向け S/W 開発環境におい 把握しやすい。また、ファイル単位での作業用のコ て、長期間保守を実現するためソースコードだけで ピーができるため、管理の負荷も低く、リポジトリ はなくコンパイラや外部データも保持する方法につ のバックアップも容易に行える利点がある。 いて提案した。また、それらのバージョン管理方法 一方、分散管理方式では、各開発者がリポジトリ としては集中管理方式が適切であることを示した。 を所持する。開発者は別のリポジトリからクローニ 今後は本提案手法を用いて運用を実施し、運用上の ングして開発を開始する。作業完了後は開発者がロ 課題について検討していく。 ーカルリポジトリにコミットして変更履歴を記録す 参考文献 る。分散管理方式では開発者個人が、リポジトリを [1]Stephen P. Berczuk , Brad Appleton, Software 所持するため、一時的な作業の変更履歴も保持する Configuration Management Patterns: Effective Teamwork, ことができ、また、他の開発者のリポジトリを自分 Practical Integration, pp.179-184 Addison-Wesley Longman のリポジトリに反映させることが容易であるため、 Publishing Co., Inc., Boston, MA, 2002 最新のソースコードを反映しやすい利点がある。. 1-34. Copyright 2014 Information Processing Society of Japan. All Rights Reserved..

(3)

参照

関連したドキュメント

構成要件段階において未遂犯の成立を基礎づけるとされている「法益侵害結果が発生した

  ・kseg0:  仮想アドレスの上位 3 ビットが 100 の場合,選択されるアドレス空間 は kseg0 という名前の 512MB のカーネル空間である.kseg0

そこで本章では,三つの 成分系 からなる一つの孤立系 を想定し て,その構成分子と同一のものが モルだけ外部から

1、研究の目的 本研究の目的は、開発教育の主体形成の理論的構造を明らかにし、今日の日本における

(1)環境部【廃棄物(ごみ)関係】事務分掌 ( 平 成 28 年 度 事 務 概 要 ・抜 粋 ) 環境総務課

LPガスはCO 2 排出量の少ない環境性能の優れた燃料であり、家庭用・工業用の

ソリューション事業は、法人向けの携帯電話の販売や端末・回線管理サービス等のソリューションサービスの提

本資料は Linux サーバー OS 向けプログラム「 ESET Server Security for Linux V8.1 」の機能を紹介した資料です。.. ・ESET File Security