Answers:
是的,驱动程序是操作系统的一部分。它们以与OS内核相同的特权级别运行,并且要编写驱动程序,您必须充分了解OS内部。驱动程序的作用是提供硬件的抽象,以便应用程序可以通过OS API(应用程序编程接口)使用它,而不必了解其具体细节。在许多情况下,它还允许在许多应用程序之间同时共享同一硬件。
导致用户误以为驱动程序可能不属于操作系统的一部分的误解是,许多供应商提供了与操作系统分开制造的硬件驱动程序。实际上,许多驱动程序都以可加载模块的形式出现,可以加载然后动态地参与OS。一旦不再使用它们,便可以将它们与操作系统“断开连接”,并且它将继续正常运行。
无论是否可加载,驱动程序始终特定于应向系统提供的设备,因此尽管它们有时是操作系统的“可选”部分,但在运行时确实会参与其中。
术语“ OS”可能意味着很多事情。
尽管在大多数操作系统下,内核是管理和“运行”所有程序的代码段,并且仲裁对硬件的访问,但通常它自己无法做任何有趣的事情-它的工作是为应用程序运行提供一个框架。在顶部”。许多人对OS的定义包括实用程序,Shell和构成熟悉的标准化环境的程序。
驱动程序取决于内核,最正确的说法就是像插件一样说它们“扩展”了内核。Linux支持“可加载内核模块”的概念-所有设备驱动程序都可以是可加载内核模块。也可以构建一个内核,其中一个或多个模块是“内置的”而不与内核分开。因此,您确实可以在Linux下构建“无模块”内核,并且该内核将无法支持除内置模块之外的任何硬件。
我对Windows的胆识不太熟悉,但是我相信,除了极少数“微型端口”驱动程序外,所有驱动程序都是在引导时加载的外部文件。如果您深入研究在Windows上创建服务,似乎驱动程序实际上只是Windows下的特殊服务形式。有些程序安装了驱动程序以访问底层硬件,但不一定驱动设备,这些驱动程序通常是设备管理器下的“即插即用”驱动程序。因此,驱动程序在概念上似乎与Linux下的可加载内核模块具有相同的功能。
为了简单起见,我想说它们是OS的一部分,因为如果没有OS,它们实际上是无法使用的,并且除非引导OS,否则它们是没有用的,但是在任何情况下,绘制的线条都是相当随意的。
没有驱动程序不是操作系统的一部分。您可以说驱动程序可以帮助OS与设备或硬件进行通信。操作系统默认不包含所有驱动程序,例如Windows XP和Vista,但在Windows 7中包含大多数必需的驱动程序,因此您不要混淆它们不是操作系统的一部分。