我对 Linux 还很陌生。
我总是看到两个术语“硬件驱动程序”和“内核驱动程序”。
那么硬件驱动和内核驱动到底有什么区别呢?
答案1
您很可能已经想到了作为内核模块而非用户空间模块的硬件驱动器。这不是一种替代,而是一种正交分类。
因此你可以有(这些是示例):
Kernel | User space
Hardware | Most harddrive drivers | 3G Internet modem driver
Non-hardware | EXT3/4 driver | Some non-standard filesystem
如果您正在构建自己的内核,您实际上必须决定是否在内核空间中包含一些驱动程序。这可以使驱动程序运行得更快并减少延迟,但如果驱动程序有错误,它可能会导致整个系统崩溃,而且您无法在不重新编译内核的情况下卸载此驱动程序。
或者,当然,你可以谈论一些完全不同的事情。q;-)=
答案2
那么硬件驱动和内核驱动到底有什么区别呢?
没有。根据上下文,“驱动程序”在 Windows 环境中使用最多,在 Linux/Ubuntu 世界中,这些通常被称为“模块”。
但是,在内核模式下运行的驱动程序和在用户模式下运行的驱动程序之间存在区别。