プラグイン
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

また、ヒープ上に動的メモリ確保されるオブジェクトは、ランタイムライブラリにバイナリ互換性がない限り、モジュール境界を越えて確保・解放することができないが[1][2]、対となる動的なメモリ確保と解放の処理をプラグインのモジュール内に閉じ込めてしまうことで、プラグインの開発者とアプリケーションの開発者が異なるコンパイラや異なるコンパイルオプション、異なるプログラミング言語を使用することも可能である。

ダイナミックリンクライブラリは、WindowsではDLL形式が、macOSLinuxなどのUNIX / Unix系OSではso形式が用いられることが多い。これは、OSの開発者が規格化したサブルーチン呼び出し手順であり、OSがその呼び出しを実現する標準APIなどを提供しているので、プラグインを開発する者もプラグイン機構を開発する者も簡単にかつ安定して利用できるからである。プラグインを実装する側では特定の名前と呼び出し規約を持つサブルーチンを実装してシンボルをエクスポートしておき、プラグインを利用するホストアプリケーション側では実行時にモジュールをロードして名前の文字列をもとにサブルーチンのアドレスを探索し、見つかった場合はそのサブルーチンのアドレスを利用して呼び出す、というダイナミックバインディングの技術が用いられる。

Windowsではプラグインの実現にCOM/ActiveXテクノロジーが用いられていることもある。注入されるコードは単純なサブルーチンではなく、オブジェクト指向のインターフェイスを実装したクラスとして実現される。.NET Frameworkではプラグイン機構の実現を容易にするためのフレームワークとして、バージョン4.0でManaged Extensibility Framework(英語版)が追加された。

なお、スクリプト言語の処理系をアプリケーションに組み込んでおくことで、プラグインと類似の機構を実現することもできる。
セキュリティ

アプリケーションの外部からコードを読み込んで実行することで、サードパーティ製のプラグインを利用できるようにすると、コードインジェクションやコードの改竄によって、アプリケーションが不正に使用されるというセキュリティ上の問題が発生する可能性が大幅に高まる[3]。あらゆる可能性を考慮しなければならなくなるため、アプリケーションの動作検証も難しくなる。アプリストアにおけるプライバシーとセキュリティの品質維持の観点から、アプリケーションのパッケージ外部にあるコードを動的に読み込んで実行しないようにポリシーを定めているプラットフォーム[4]や、ユーザーの同意が得られた場合のみアドオンや拡張機能を取得できるように定めているプラットフォームもある[5]

実際に、Adobe Flash Playerのプラグインはセキュリティホールの温床となっており[6]iOSプラットフォーム上では最後までサポートされなかった。
プラグインの形式

Adobe Illustrator用プラグイン

Adobe Photoshop用プラグイン

Netscapeシリーズのウェブブラウザ用のプラグイン

Mozilla Firefox用のプラグイン - 関連:拡張機能 (Mozilla)


Winamp用のプラグイン

Susieプラグイン

Sleipnirプラグイン

Movable Typeプラグイン

Eclipse用のプラグイン

Apache Maven用のプラグイン

LightWave (3次元コンピュータグラフィックス)

VSTインストゥルメント (DTM)

AU (DTM)

DirectXインストゥルメント (DTM)

TDM (DTM)

HTDM (DTM)

RTAS (DTM)

プラグインとして動作するソフトウェア

Adobe Flash Player

Adobe Shockwave Player

Adobe Acrobat Reader

QuickTime

Windows Media Player

Microsoft Silverlight

Real Player

電子国土Webシステム

3DMLW

主要なプラグイン対応ホストソフトウェア

Internet Explorer

Netscapeシリーズ

Mozilla

Firefox

Opera

Safari

Google Chrome

シイラ

Susie

Windows Media Player

Winamp

Notepad++

脚注
出典^ DLL の境界を越えて CRT オブジェクトを渡す場合に発生する可能性のあるエラー 。Microsoft Docs
^ C++ ライブラリ サポート 。 Android NDK 。 Android Developers
^ セキュリティに関するヒント 。 Android デベロッパー 。 Android Developers
^ アプリの中核品質 。 Android デベロッパー 。 Android Developers
^ Microsoft Store ポリシー - UWP applications 。Microsoft Docs
^ アップル、旧バージョンの「Adobe Flash」プラグインを遮断 - CNET Japan

関連項目

ダイナミックリンクライブラリ


記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:14 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef