驱动程序是操作系统的一部分吗?


14

我很难理解操作系统中包含的内容和不包含的内容。设备驱动程序(例如打印机驱动程序或图形驱动程序)是否是OS的一部分?考虑到操作系统的定义,我认为驱动程序是操作系统的一部分。


6
是的,没有。它们是操作系统的一部分,因为它们在较低级别上运行并可以访问内部接口。许多对于操作系统的运行至关重要。但是它们通常是独立的“可插拔”部件,通常由与操作系统不同的公司制造。取决于您对“ OS”的定义,并且没有一家公司。
Daniel R Hicks,2012年

请定义“包含”。保证可以在Windows DVD上安装到新驱动器上吗?还是从概念上讲是操作系统的一部分?
锯末

Answers:


12

是的,驱动程序是操作系统的一部分。它们以与OS内核相同的特权级别运行,并且要编写驱动程序,您必须充分了解OS内部。驱动程序的作用是提供硬件的抽象,以便应用程序可以通过OS API(应用程序编程接口)使用它,而不必了解其具体细节。在许多情况下,它还允许在许多应用程序之间同时共享同一硬件。

导致用户误以为驱动程序可能不属于操作系统的一部分的误解是,许多供应商提供了与操作系统分开制造的硬件驱动程序。实际上,许多驱动程序都以可加载模块的形式出现,可以加载然后动态地参与OS。一旦不再使用它们,便可以将它们与操作系统“断开连接”,并且它将继续正常运行。

无论是否可加载,驱动程序始终特定于应向系统提供的设备,因此尽管它们有时是操作系统的“可选”部分,但在运行时确实会参与其中。


1
我不同意(但会推迟投票),只是因为您的表述方式,并不总是包含或使用驱动程序。操作系统是内核。期。尽管Windows资源管理器附带了 Windows资源管理器,但它不是操作系统的一部分。内核是实际的处理部分,因此我认为是OS。其他包含的内容不属于操作系统的组成部分
加拿大卢克

此外,您可以在用户级别运行驱动程序,因此尽管大多数都可以在内核级别运行它们。
马特

我可以看到你的观点卢克。有一些并不需要对系统进行操作,所以我可以同意他们的司机不是操作系统的一部分,许多可选设备这个意义上说。就像@Matt所说的那样,某些驱动程序甚至可以是用户模式驱动程序(很多打印机驱动程序都是),但我的意思是大多数驱动程序,特别是结构性驱动程序(视频,磁盘控制器等)是内核模式驱动程序,因此加载后成为运行内核的真正组成部分。由于内核不能单独做任何有用的事情,因此我认为说驱动程序是(或成为)操作系统的一部分已经足够了。
克劳迪奥

1
这确实是一个是/否问题。虽然从技术上讲,驱动程序不包含在操作系统中,但您需要它们才能与其他设备通信。例如视频。您将向内核发出请求,然后内核会将请求转发给显示驱动程序,然后将信息返回,以便您可以实际看到内容。
马特2012年

3
@Luke-显然,您确实承认内核是操作系统的一部分,即使不是整个操作系统也是如此。您是否看过操作系统或内核的源代码?除非您为MS工作或签署NDA,否则我们永远不会看到Windows内核代码。但是Linux内核是开源的,所有(非专有)Linux驱动程序都是内核源代码的一部分。Linux内核源代码没有分为内核部分和驱动程序部分。源树包含核心模块和驱动程序模块。我希望MS以类似的方式处理Windows的源代码。
木屑

5

术语“ OS”可能意味着很多事情。

尽管在大多数操作系统下,内核是管理和“运行”所有程序的代码段,并且仲裁对硬件的访问,但通常它自己无法做任何有趣的事情-它的工作是为应用程序运行提供一个框架。在顶部”。许多人对OS的定义包括实用程序,Shell和构成熟悉的标准化环境的程序。

驱动程序取决于内核,最正确的说法就是像插件一样说它们“扩展”了内核。Linux支持“可加载内核模块”的概念-所有设备驱动程序都可以是可加载内核模块。也可以构建一个内核,其中一个或多个模块是“内置的”而不与内核分开。因此,您确实可以在Linux下构建“无模块”内核,并且该内核将无法支持除内置模块之外的任何硬件。

我对Windows的胆识不太熟悉,但是我相信,除了极少数“微型端口”驱动程序外,所有驱动程序都是在引导时加载的外部文件。如果您深入研究在Windows上创建服务,似乎驱动程序实际上只是Windows下的特殊服务形式。有些程序安装了驱动程序以访问底层硬件,但不一定驱动设备,这些驱动程序通常是设备管理器下的“即插即用”驱动程序。因此,驱动程序在概念上似乎与Linux下的可加载内核模块具有相同的功能。

为了简单起见,我想说它们是OS的一部分,因为如果没有OS,它们实际上是无法使用的,并且除非引导OS,否则它们是没有用的,但是在任何情况下,绘制的线条都是相当随意的。


1

没有驱动程序不是操作系统的一部分。您可以说驱动程序可以帮助OS与设备或硬件进行通信。操作系统默认不包含所有驱动程序,例如Windows XP和Vista,但在Windows 7中包含大多数必需的驱动程序,因此您不要混淆它们不是操作系统的一部分。


您说驱动程序不属于操作系统的事实证明您不知道自己在做什么。Windows XP包含许多与Windows Vista和Windows 7相同的驱动程序。微软花费了大量的精力为这些版本的设备添加更多的通用驱动程序。
Ramhound 2012年

是。没有驱动程序,我们将无法使用任何设备。因此,我们可以说驱动程序可以帮助OS与设备进行通信,关于这个问题,我会说一些是OS的一部分,而有些不是。这是OS附带的许多驱动程序。
德布

从技术上讲,即使驱动程序不是操作系统附带的,在安装和使用它时,它也是操作系统一部分。证明是,写得不好的驱动程序可以锁定整个系统,因为它不是可以被操作系统杀死的常规应用程序,而是其一部分。
Claudio
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.