2017-11-02 25 views
0

Difference between an API and a device driverlinuxのapiファイルとdeviceファイルの違いは何ですか?

上記のリンクから、私はそのAPIは何をすべきかを記述した仕様であり、ドライバーはそれを行う方法を記述した実装であると読んでいます。

私はディスプレイ、オーディオなどのためにlinuxでAPIを見つけることができませんでした。私は、linuxがデバイスドライバとやりとりするためのデバイスファイルをインターネットでも読んでいます。これらのファイルを書き込んだり読み込んだりすることでデバイスと通信することができますが、上記のAPIは何をすべきかを記述した仕様であり、APIレイヤーはここにありません。デバイスと対話するためには、 。これらのデバイスファイルの助けを借りて、ディスプレイ上にイメージをラスタライズする。

+0

APIとデバイス・ドライバーまたはデバイス・ファイルの違いについてあまり気にしないでください。これは、リンゴと住宅ローンを比較するようなものです。現実的な質問、画面上に画像を表示する方法:これは、使用したい技術によって異なります。 Linuxのオプションは、少なくともコンソールフレームバッファを使用しているか、またはXウィンドウシステムを使用しています。どちらの場合でも、ライブラリは仕事を完了させるために存在し、デバイスファイルと直接対話する必要はありません。 – Thomas

+0

ディスプレイは他のデバイスとやりとりするための例でしたが、デバイスごとにライブラリを見つける必要はありますか? –

答えて

0

デバイスファイルは、ユーザースペースとカーネル間で通信するための単なる実用的な方法です。いくつかのデバイスファイル(特にブロックデバイス)には、それらに対する統一されたAPIがありますが、それはちょっとしたことです。

ほとんどの標準的な操作では、デバイスファイルと直接対話するのではなく、文書化されたAPIを公開するライブラリを使用して、必要な処理を行います。したがって、サウンドファイルを再生する場合は、たとえばlibjack、またはより高い抽象レイヤー(gstreamerlibvlcなど)を使用します。

これらのライブラリは実際の出力にデバイスファイルを使用する可能性があります。あなたがしたい場合を除き、あなたはそれに対処する必要はありません。

場合によっては、デバイスファイルを開いて操作する必要があります。そのような場合は、関連するドキュメントを参照してその方法を確認する必要があります。デバイスファイルの中には、単にreadwriteの要求を受け付けるものもあります。 ttyデバイスなどの他のデバイスでは、動作方法を変更するコマンドがioctlです。関連するデバイスのマニュアルページは、あなたが知る必要があることを教えてくれます。

多くの場合、デバイスファイルをカーネルのAPIの拡張子として扱います。実際、多くの人はioctlコマンド「user defined syscalls」を呼び出します。すべてのケースで、ドキュメントを読んで、あなたが何をする必要があるかを見てください。

+0

これらの文書へのリンクを教えてください。 –

+0

あなたがしようとしていることを知らずに、いいえ。一般的には、お気に入りの検索エンジンに行き、インターフェースの名前を入力します。 –

+0

dev/dsp - デジタルシグナルプロセッサ。基本的には、サウンドを生成するソフトウェアとサウンドカードの間のインターフェイスを形成します。ここで私はそのドキュメントを見つけることができます。私はGoogleで見つけることができませんでした。 –

関連する問題