我可以使用虚拟机进行Linux内核驱动程序开发吗?

我可以使用虚拟机进行Linux内核驱动程序开发吗?

我目前正在阅读名为 的书Linux Device Drivers, Third Edition,这里有一个链接,但我相信大多数有经验的人已经熟悉它了:

https://lwn.net/Kernel/LDD3/

我刚刚必须Chapter 2。一般来说,就是建立基本的内核编程环境。出于教育目的,本书几乎所有时间(除了最后的一个示例)仅依赖于built-in硬件,例如光盘等。因此我的问题是:我可以使用虚拟机(我目前正在使用Ubuntu 18.04on VirtualBoxwith 5.3 Kernel)来实现此目的吗?书?我知道虚拟机有自己的内核。那么我可以使用VirtualBox而不是真实的机器来阅读这本书,编写字符驱动程序等吗?安全吗?因为我想这样做的主要原因是为了避免破坏我的女孩系统。不幸的是,目前我没有任何额外的硬件可以运行另一个系统来测试。 Ubuntu VM 足以完成这本书吗?

注意:我看过类似的帖子,但我想再写一篇,因为在这里我指定了我将用它做什么,即遵循本书的示例。因此,至少对于那些示例来说,询问 VM 就足够了。

答案1

是的,您可以在虚拟机上完成所有这些操作,而且它是安全的,因为它可以防止您损坏系统。您可以在虚拟化硬件上完成所有示例。但请注意,自该书出版以来,内核已经发生了很大的变化,因此在使用当前内核时,您可能需要进行一些调整。

答案2

您可以使用虚拟机进行驱动程序开发。

如果您不使用半虚拟化硬件 (virtio),则 VM 的虚拟硬件将像真实硬件一样对内核模块进行操作。

我不知道那本书,但如果这些示例可以与虚拟机管理程序模拟的真实硬件一起使用,那么相应的虚拟硬件应该可以满足该目的。

通过 PCI 直通,甚至可以为连接到主机系统的真实硬件开发硬件。

相关内容