2

我知道操作系统内核是由驱动组成的,但是驱动是如何成为操作系统的一部分的呢?内核是自己反编译,然后添加驱动,然后自己重​​新编译?还是内核的驱动插件? ?,有人告诉我,对于大多数操作系统,驱动程序实际上是内核的一部分,但是每当我编译ac程序时,它就会变成普通的可执行文件

4

3 回答 3

4

驱动程序架构完全取决于您的操作系统。对于在计算机上运行的大多数操作系统(与嵌入式设备相反),将驱动程序视为内核的“插件”非常准确。也就是说,有很多旧的、更小的和不太复杂的操作系统需要您将驱动程序作为内核的一部分构建 - 不可能动态加载。如今,一些操作系统支持“用户模式”驱动程序,这些驱动程序根本不在内核内存空间中运行。

于 2010-09-06T22:48:14.917 回答
3

这取决于操作系统。

传统上,内核是一个包含所有驱动程序的单片可执行文件 - 并且在需要添加新驱动程序时重新构建,包括新驱动程序的代码以及所有旧驱动程序的代码。

在现代 Linux 中,可能还有其他操作系统,驱动程序在需要时由内核动态加载。驱动程序以允许内核执行加载的形式创建;通常,这意味着以共享对象或动态链接库格式。

于 2010-09-06T22:48:54.813 回答
1

在 Linux 等操作系统中,驱动程序实际上可以编译到内核映像中。尽管即使是静态链接的,它们也可能表现出一种插件类型的架构,允许人们轻松地只包含自己需要的驱动程序。

或者,它们可以在启动时动态链接和加载,或者在某些系统级软件需要时按需加载。

于 2010-09-06T22:48:43.407 回答