私が理解しているように、BSP (Board Support Package) には、OS がハードウェア上で動作するのを助けるブートローダー、カーネル、およびデバイス ドライバーが含まれています。しかし、OSにもカーネルが含まれているため、混乱しています。では、OS のカーネルと BSP のカーネルの違いは何ですか?
5 に答える
BSP の構成要素はコンテキストによって異なります。一般に、特定のボード設計をサポートするのはコードまたはライブラリです。これは、ベアメタル システムで使用するため、または OS と統合するためにボード サプライヤから汎用コードとして提供される場合もあれば、特定の OS に固有のものである場合もあれば、OS を含む場合もあります。いずれにせよ、より高いレベルのソフトウェアに対してボード固有のサポートを提供します。
カーネルはボードに依存せず (多くの場合、プロセッサ アーキテクチャに固有ですが)、カーネルが実行されるプロセッサ アーキテクチャに固有でないハードウェアに直接アクセスすることはありません。通常、OS またはアプリケーションにはハードウェア アブストラクション レイヤー(HAL) が必要です。HAL は BSP を使用して構築される場合もあれば、BSP が実際に HAL である場合もあります。ベンダーは、HAL と OS をパッケージ化し、それを BSP と呼ぶ場合もあります。
この用語は、それを使用する人にとって何を意味するかを意味します。コンテキストがすべてです。たとえば、VxWorks では、WindRiver は BSP という用語を使用して、特定のハードウェア設計での VxWorks ベースのアプリケーションの実行をサポートするレイヤーを指します。一方、ボード ベンダーは、ボードに移植された完全な Linux ディストリビューションを提供し、それを BSP と呼ぶ場合があります。
ただし、特定のベンダーまたは開発者がボードをサポートすることを選択した範囲は、含まれている量または量に関係なく、ボード サポート パッケージです。
BSP の定義は広義です。特定のボード用のサポート ソフトウェア パッケージです。小さなマイクロコントローラーの BSP には、おそらくその周辺機器用の HW ドライバーが含まれているだけです。一方、組み込み CPU の場合、HW ドライバー、ブートローダー、OS カーネルなどが含まれる場合があります。
したがって、BSP (ボード サポート パッケージ) のカーネルは、ボードに移植された OS カーネルの特定のバージョンにすぎません。
ボード上で実行できる vxWorks カーネルには、vxWorks コア カーネルと、1 つの環境から変更される可能性のある「その他のコンポーネント」が含まれています。コア カーネルには、スケジューラ、メモリ マネージャー、ベーシック ファイル システム、セキュリティ機能などの重要なプログラムが含まれています。BSP の一部であるこれらの「その他のコンポーネント」は、オプションであるか、システムごとに異なる場合があり、コア カーネル機能を支援します。