我知道操作系统内核由驱动程序组成,但驱动程序如何成为操作系统的一部分?内核是否自行反编译,然后添加驱动程序并重新编译自身?或者是驱动程序插件对于内核?,有人告诉我,对于大多数操作系统来说,驱动程序实际上已成为内核的一部分,但每当我编译ac程序时,它就会变成普通的可执行文件
答案 0 :(得分:4)
驱动程序体系结构完全取决于您的操作系统。对于在计算机上运行的大多数操作系统(而不是嵌入式设备),将驱动程序视为内核的“插件”非常准确。也就是说,有许多较旧的,较小的,不太复杂的操作系统需要您在内核中构建驱动程序 - 不需要动态加载。目前,一些操作系统支持“用户模式”驱动程序,这些驱动程序根本就不在内核内存空间中运行。
答案 1 :(得分:2)
取决于o / s。
经典地,内核是一个包含所有驱动程序的单片可执行文件 - 并且在需要添加新驱动程序时重建,包括新驱动程序的代码以及所有旧驱动程序。
在现代Linux中,也可能是其他的o / s,驱动程序在需要时由内核动态加载。驱动程序以允许内核执行加载的形式创建;通常,这意味着在共享对象或动态链接库格式中。
答案 2 :(得分:1)
在像Linux这样的操作系统中,驱动程序实际上可以编译到内核映像中。虽然即使是静态链接,但它们可能会展示一种插件式架构,允许人们轻松地只包含所需的驱动程序。
或者,它们在启动时或在某些系统级软件需要时按需动态链接和加载。