2016-12-16 49 views
1

我正在学习数据库,我想知道ODBC驱动程序是否真的在内核空间中运行。仅仅使用套接字进行客户端连接不是更容易吗?我能想到的唯一合理的解释是,这将是套接字的性能问题。或者还有其他原因?ODBC驱动程序在内核空间或用户空间中运行?为什么?

+0

为什么您认为ODBC驱动程序在内核空间中运行? –

+0

@a_horse_with_no_name因为它被称为“驱动程序”。我只知道设备驱动程序。 –

回答

1
  1. ODBC不是协议!这是一个API。 ODBC不是关于如何与DBMS交谈。这是关于如何与知道如何与DBMS交谈的事情进行交谈。那件事是一个C库。它被称为“DBMS专用库”或“ODBC驱动程序”。 ODBC指定库必须具有哪些C函数(以及此函数的名称),以便可以用作ODBC驱动程序。 ODBC驱动程序实现特定于DBMS的协议。它可以使用任何想要与DBMS交谈的东西:插座,管道,共享内存,鸽子等等

另外还有一个叫做“ODBC-ODBC bridge”的有趣事情。它允许您远程连接到DBMS,而无需在本地安装DBMS特定的库。与协议类似,不是吗?

  1. 用户空间驱动程序是很常见的事情。因此,ODBC库被称为“驱动程序”并不奇怪。在用户空间中实现所有逻辑并仅使用内核空间将数据发送到设备非常方便。
相关问题