Kernel
我可以使用虛擬機進行 Linux 核心驅動程序開發嗎?
我目前正在閱讀這本書
Linux Device Drivers, Third Edition
,這裡有一個連結,但我相信大多數有經驗的人已經熟悉它:我剛到
Chapter 2
。一般來說,它是關於建立基本的核心程式環境。出於教育目的,這本書幾乎一直(除了最後的一個範例)僅依賴於built-in
硬體,如磁碟等。因此我的問題是:我可以為此使用虛擬機(我目前正在使用Ubuntu 18.04
withVirtualBox
)5.3 Kernel
嗎書?我知道虛擬機有自己的核心。那麼我可以使用VirtualBox
代替真機來閱讀這本書,編寫字元驅動程序等嗎?它安全嗎?因為我想這樣做的主要原因是避免破壞我的女孩系統。不幸的是,目前我沒有任何額外的硬體可以執行另一個系統來測試。一個 Ubuntu 虛擬機是否足以滿足這本書的要求?注意:我看過類似的文章,但我想再寫一篇,因為在這裡我指定了我將要如何處理它,即按照本書的範例進行操作。因此,至少對於那些範例來說,問一個 VM 就足夠了。
是的,你可以在虛擬機上做所有這些,是的,它是安全的,因為它可以防止你損壞你的系統。您可以在虛擬化硬體上完成所有範例。但是請注意,自那本書出版以來,核心已經發展了很多,因此在使用目前核心時可能需要調整一些位。
您可以使用 VM 進行驅動程序開發。
如果您不使用半虛擬化硬體 (virtio),則 VM 的虛擬硬體會像真實硬體一樣向核心模組執行。
我不知道那本書,但是如果這些範例可以與虛擬機管理程序模擬的真實硬體一起使用,那麼相應的虛擬硬體應該可以用於此目的。
使用 PCI 直通,甚至可以為連接到主機系統的真實硬體開發硬體。