How do drivers become a part of the kernel?
有人告诉我,对于大多数操作系统,驱动程序成为内核的一部分。这是怎么发生的?内核会自行反编译,添加驱动程序并自行重新编译吗?还是驱动程序插件用于内核?驱动程序甚至是他们自己的独立程序吗?
即使7年前被问到那些多年后偶然发现它的人,我也要回答这个问题。
内核模式设备驱动程序实质上是内核的"模块"。您在Windows上的用户模式下具有动态链接库(DLL),在OS X上的Dylib具有动态链接库...将内核模式设备驱动程序视为等同于内核模式的驱动程序,除了它不必扩展实际的内核,它可以用于必须在第三方应用程序的内核级别实现的功能。
此外,其背后的想法是,主内核能够提供对一组API的访问,以供第三方内核模式软件依赖。否则,第三方开发人员将必须自己实现所有内容,而这基本上就是" OS开发"。
Bullets点:
我希望这对将来使用这个极老线程的绊脚石有所帮助;这个问题真的很好。
驱动程序被编译到一个公开已知接口的库中。然后,内核在启动时扫描驱动程序,并将其加载到内核内存中。某些操作系统(例如linux)还支持可以在操作系统运行时加载/卸载的内核模块...