ソフトウエア‐かいはつキット【ソフトウエア開発キット】
読み方:そふとうえあかいはつきっと
SDK
読み方:エスディーケー
別名:ソフトウェア開発キット,Devkit
SDKとは、ソフトウェアを開発するために必要な技術文書やツールなど一式のことである。
SDKは、OSや技術ごとに存在し、これらに関連するソフトウェアを開発する場合に入手する必要がある。入手にあたっては、無償の場合、有償の場合があり、開発ツールのパッケージを購入すると、必要なSDKが含まれている場合もある。また、技術の内容によっては、契約が必要な場合もある。
なお、ハードウェアを制御するためのソフトウェアである、ドライバを開発するためのSDKを、DDK(Driver Developmet Kit)と呼ぶことがある。
参照リンク
Microsoft Windows SDK for Windows Vista
開発環境: | リコンパイル リポジトリ リビルド SDK Subversion シンボリックデバッガ 条件コンパイル |
ソフトウェア開発キット
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/01/13 14:22 UTC 版)
![]() |

ソフトウェア開発キット(ソフトウェアかいはつキット、英語: Software Development Kit、SDK)は一般に、特定のソフトウェアパッケージ、ソフトウェアフレームワーク、ハードウェアプラットフォーム、コンピュータシステム、オペレーティングシステム、ゲーム機などのためのアプリケーションを作成するためにソフトウェア技術者が使用する開発ツールのセットを意味する。
概要
ソフトウェア開発キットは、APIとして特定のプログラミング言語用のインタフェースを定義したファイル群という形式のような簡単なものである場合もあるし、何らかの組み込みシステムと通信するための特殊なハードウェアやプロトコル仕様を含む場合もある。一般的なツールとしては、コンパイラやリンカ、デバッガ、その他のユーティリティソフトウェアなどのツール類が含まれる。SDKが統合開発環境にバンドルされていることもある。SDKには、サンプルコードやサポートのための技術ノートなどの何らかの文書が含まれていることが多い。
ソフトウェア技術者は、一般に開発対象としているシステムの開発者からSDKを受け取る。SDKを直接インターネットからダウンロードすることも多い。開発者がそのシステムやプログラミング言語を使うことを促進するため、SDKは無料で配布されることが多い。時にはSDKがマーケティングのツールとして利用されることもある。例えば、ある製品上で動作するプログラムを開発して販売したいと考える人々は、プログラムを開発・テストするために対象製品を買うことになるが、対応するSDKが無料で配布されていれば、製品購入のハードルが下がる可能性が高くなる。
SDKは、何らかのライセンスが設定されており、そのライセンスと非互換なライセンスでソフトウェアを開発しようとした場合に困った事態が発生する。例えば、プロプライエタリなSDKは自由ソフトウェアの開発には不適である。また、GPLのSDKはプロプライエタリなソフトウェア開発に向かない可能性がある。LGPLのSDKは一般にプロプライエタリな開発でも安全と言える。[独自研究?]
オペレーティングシステムへのアドオン形式のSDK(例えばMac OS用のQuickTime)は、アドオンソフトウェア自身を含んでいることがある(再配布の必要がないにしても、開発目的で使用するために含むことがある)。少なくとも立ち上げ時点でシステム構成をOSに問い合わせてアドオンの有無を調べるようなアプリケーションを作成することも可能であり、そうすると興味深い状況が発生する。通常であれば、アドオンがなければ実行が失敗するだけだが、アドオン無しでも機能を限定してある程度動作するようなアプリケーションをひとつのバイナリで作成することは不可能ではない。すなわち、アドオンをインストールしていない(ライセンスを持っていない)システム上で、そのアドオンのSDKを使ったアプリケーションが(機能を使っていないとは言え)動作しているわけであり、ライセンス上の扱いが焦点になる。
特定のシステムやサブシステムのためのSDK提供者は、「ソフトウェア」という用語の代わりに別の用語を使用することもある。例えば、PalmSourceはPalm OS開発キット(Palm OS Development Kit、PDK)を提供している。
マイクロソフトは以前デバイスドライバ開発のためのSDKをDriver Development Kit (DDK) という名称で提供していたが、これはのちにWindows Driver Kit (WDK) に置き換えられた。
Appleはユーザー空間で動作するデバイスドライバ開発のためにSystem ExtensionとDriverKitを用意している[1]。
上位レベルのウィジェット・ツールキットやアプリケーションフレームワークは、一般的に各プラットフォーム用のSDKに用意されている下位レベルのAPIを利用して実装される。これらは通例SDKには分類されないが、公式にサポートされる上位レベルAPIとしてSDKの中に含まれていることもある。
実例
- マイクロソフトのWindows SDK、旧DirectX SDK、.NET Framework SDK、.NET Core SDK
- Java
- オラクル(旧サン・マイクロシステムズ)のJDK
- IBMとアップル他が参画したOpenJDK
- Eclipse Foundation の Eclipse SDK
- Unreal Development Kit
- ソニー・コンピュータエンタテインメント (SCE) のPlayStation Mobile SDK
- ソニーの「ネットやろうぜ!」
- グーグルのAndroid SDKとAndroid NDK
- AppleのiOS SDK
- LunarGのVulkan SDK
- オートデスクのFBX SDK
脚注
関連項目
ソフトウェア開発キット
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/07/18 08:34 UTC 版)
「Network Security Services」の記事における「ソフトウェア開発キット」の解説
ライブラリやAPIに加えて、NSSはデバッグ、診断、証明書や鍵の管理、モジュール管理などのためのツールを提供している。さらに、APIレファレンス、manページ、サンプルコードなどのドキュメント類も同梱されている。 開発者は、NSSをソースとしても動的ライブラリとしても利用することができる。NSSは後方互換性が確保されており、再コンパイルや再リンクを行うことなくNSSのアップグレードが可能である。
※この「ソフトウェア開発キット」の解説は、「Network Security Services」の解説の一部です。
「ソフトウェア開発キット」を含む「Network Security Services」の記事については、「Network Security Services」の概要を参照ください。
- ソフトウェア開発キットのページへのリンク