Kernel

我可以使用虛擬機進行 Linux 核心驅動程序開發嗎?

  • June 7, 2020

我目前正在閱讀這本書Linux Device Drivers, Third Edition,這裡有一個連結,但我相信大多數有經驗的人已經熟悉它:

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

我剛到Chapter 2。一般來說,它是關於建立基本的核心程式環境。出於教育目的,這本書幾乎一直(除了最後的一個範例)僅依賴於built-in硬體,如磁碟等。因此我的問題是:我可以為此使用虛擬機(我目前正在使用Ubuntu 18.04with VirtualBox5.3 Kernel嗎書?我知道虛擬機有自己的核心。那麼我可以使用VirtualBox代替真機來閱讀這本書,編寫字元驅動程序等嗎?它安全嗎?因為我想這樣做的主要原因是避免破壞我的女孩系統。不幸的是,目前我沒有任何額外的硬體可以執行另一個系統來測試。一個 Ubuntu 虛擬機是否足以滿足這本書的要求?

注意:我看過類似的文章,但我想再寫一篇,因為在這裡我指定了我將要如何處理它,即按照本書的範例進行操作。因此,至少對於那些範例來說,問一個 VM 就足夠了。

是的,你可以在虛擬機上做所有這些,是的,它是安全的,因為它可以防止你損壞你的系統。您可以在虛擬化硬體上完成所有範例。但是請注意,自那本書出版以來,核心已經發展了很多,因此在使用目前核心時可能需要調整一些位。

您可以使用 VM 進行驅動程序開發。

如果您不使用半虛擬化硬體 (virtio),則 VM 的虛擬硬體會像真實硬體一樣向核心模組執行。

我不知道那本書,但是如果這些範例可以與虛擬機管理程序模擬的真實硬體一起使用,那麼相應的虛擬硬體應該可以用於此目的。

使用 PCI 直通,甚至可以為連接到主機系統的真實硬體開發硬體。

引用自:https://unix.stackexchange.com/questions/591323