2016-12-16 10 views
1

私は今データベースを勉強していますが、ODBCドライバが本当にカーネル空間で動作するかどうかを知りたいと思います。クライアント接続にソケットを使用するほうが簡単ではないでしょうか?私が考えることができる唯一の合理的な説明は、ソケットでパフォーマンスの問題になるということです。それとも別の理由がありますか?ODBCドライバはカーネル空間またはユーザ空間で動作しますか?どうして?

+0

なぜODBCドライバがカーネル空間で動作していると思いますか? –

+0

@a_horse_with_no_nameこれは「ドライバ」と呼ばれるためです。私はデバイスドライバについて知っているだけです。 –

答えて

1
  1. ODBCはプロトコルではありません!それはAPIです。 ODBCはDBMSとの対話方法ではありません。それは、DBMSと話す方法を知っていることと話す方法です。そのことはCライブラリです。 「DBMS固有のライブラリ」または「ODBCドライバ」と呼ばれています。 ODBCは、ODBCドライバとして使用できるようにライブラリに必要なC関数(およびこの関数の名前)を指定します。 ODBCドライバは、DBMS固有のプロトコルを実装します。

「ODBC-ODBCブリッジ」という面白いことがあります。DBMSと話したいものは何でも使えます。これにより、DBMS固有のライブラリをローカルにインストールすることなく、リモートでDBMSに接続することができます。プロトコルと同じように、そうではありませんか?

  1. ユーザスペースドライバはかなり一般的です。だから、ODBCライブラリは "ドライバ"と呼ばれて変わっているわけではありません。すべてのロジックをユーザー空間に実装し、デバイスにデータを送信するためにのみカーネル空間を使用するのが非常に便利です。
関連する問題