More Related Content
PDF
Vivado hls勉強会5(axi4 stream) PDF
IBM Rational Team Concertに触れてみた PDF
Vivado hls勉強会2(レジスタの挿入とpipelineディレクティブ) PDF
Vivado hls勉強会4(axi4 master) PDF
PDF
PDF
ComSys 2012 Yabusame Talk PDF
Viewers also liked
PDF
PDF
PDF
PPTX
PPTX
Japan Robot Week 2016 RTM講習会 第1部 PDF
Japan Robot Week 2016 RTM講習会 第2部 PDF
Japan Robot Week 2016 RTM講習会 第3部 PDF
Similar to ポータブルコンポーネントマネージャの実装
PDF
PDF
PDF
PDF
160705-w02 RTミドルウエア講習会・早稲田大 ODP
ODP
PDF
OSvのご紹介 in OSC2014 Tokyo/Fall PDF
PDF
BHyVe: The BSD Hypervisor ODP
PPT
PDF
PDF
PDF
160705-02 RTミドルウエア講習会・名城大 PDF
PDF
PDF
PDF
17th_ACRi_Webinar_Sadasue-san_Slide_20240724 PPTX
TechEd2008_T1-407_EffectiveHyper-V PDF
Backdoor!! vmware-tools と 統合サービスに見るハイパーバイザの呼び出し方 ポータブルコンポーネントマネージャの実装
- 1.
- 2.
Portable?
• Port = 港
–大航海時代、各国に様々な規格の港が存在
– うまく作られた船でないと入港できない
– Portable = 様々な規格に対応可能の意
• 類語
– Porting = 移植作業
- 3.
コンポーネント開発&配布の問題
• OpenHRIの例
–開発当初(2009年半ば)の想定環境
• サポートプラットフォームはLinuxのみ
• ロボット(組み込み)向けパッケージング
– ユーザの声
• Windows版も欲しい!
– 現在の想定環境
• LinuxとWindowsをサポート
• 両環境のインストーラ
- 4.
- 5.
Javaの世界
- Write once. Run anywhere. -
• Javaソースコードを中間コード(Javaバイト
コード)にコンパイル
• 中間コードはプラットフォームに非依存
• 各プラットフォーム上で動く中間コード実行器
(JVM)
⇒中間コードはどのプラットフォームでも動く!
リアルタイムシステムでは問題も、、、
- 6.
- 7.
- 8.
- 9.
LLVM
-Low-Level Virtual Machine -
• 2000年にイリノイ大学で開発が開始
• 背景
– 複雑になりすぎたGCCのソースコードを整理
– アルゴリズムレベルの最適化とプロセッサレベルの最適
化を分離(中間コードの導入)
– C, C++, Objective-C, Fortranをサポート
– x86, ARM, ....をサポート
• 現状
– iOS開発の標準コンパイラ
– FreeBSDの次期標準コンパイラ
- 10.
LLVM
- Low-Level Virtual Machine -
C++ x86
C++用LLVM x86用LLVM
ソースコード LLVM
フロントエンド バックエンド ターゲット
バイトコード
フロントエンド開発者 バックエンド開発者
(アルゴリズムレベルの最適化に注力) (プロセッサレベルの最適化に注力)
- 11.
JVMと比較したLLVM
• C, C++,Objective-C, Fortranをサポート
• ガベージコレクション「も」サポート
– ガベージコレクションを排除可能
• 逐次コンパイルと事前コンパイルによる実行
• ガベージコレクション排除&事前コンパイル
条件であればリアルタイム要件を達成可能
- 12.
- 13.
- 14.
x86-Linux用
CORBA コンポーネント x86-Linux
サービス マネージャ ターゲット
C++ (LLVMバックエンド)
コンポーネント
ソースコード
ARM-Linux用 ARM-
LLVM CORBA コンポーネント Linux
バイトコード サービス マネージャ ターゲット
(LLVMバックエンド)
x86-Windows用
CORBA x86-
コンポーネント
サービス Windows
マネージャ
(LLVMバックエンド) ターゲット
- 15.
- 16.
まとめ
• Portability(移植性)の高いRTコンポーネント
実現の手段として
– LLVMバイトコードへのコンパイル環境の整備
– マネージャへのLLVMバックエンドの組み込み
– プラットフォームに依存しないコンポーネント配布
が可能に
• 想い
– そろそろ組み込みボードでもコンポーネントを動
かしたい
– コンポーネントのクローズドソース配布にも案外メ
リットは多い
- 17.
付録A:インストール方法
1.gitレポジトリからのチェックアウト
$ gitclone git://github.com/yosuke/OpenRTM-aist-portable.git
2.コンパイルとインストール
$ cd OpenRTM-aist-portable
$ ./build/autogen
$ ./configure
$ make
$ sudo make install
3.LLVMのインストール
http://llvm.orgを参照(要バージョン2.9以上)
- 18.