2014-10-27 74 views
0

我是qemu開發新手。我試圖修改qemu來模擬使用QEMU仿真器的x86機器上的SGX處理器的某些功能。這是我想要做的。QEMU爲qemu二進制文件添加新參數

我想將以下內容添加到qemu中。我想用一個新的參數EECREATE開始一個qemu進程。當給予qemu-i386二進制文件時,這應該會在內存中創建一個加密空間,並且內部沒有新的數據結構。例如像

QEMU系統-I386 -hda ubuntu.img -eecreate -m 2G

這個命令應該啓動一個ubuntu.img和創造的內存爲一個加密空間(不一定是大) (在這種情況下,在2G內創建一個加密空間,分配給ubuntu-img,基本上,加密空間應該在圖像的地址空間內)。需要遵循什麼才能使其工作?我需要修改哪些文件?簡要說明代碼流將如何? 我無法在網上獲得任何文檔,並被卡在哪裏以及如何開始。任何幫助都非常感謝。

感謝

+0

太寬泛。如果Qemu項目聲明沒有超出代碼本身的文檔 - 在這些投入中 - StackOverflow Q&A如何突然產生缺少的文檔?但是,由於Qemu代碼庫可以通過GitHub鏡像進行搜索,您是否考慮輸入「argv」或「argc」並查看出現了什麼?例如:[linux-user/main.c](https://github.com/qemu/qemu/blob/f368c33d5ab09dd5656924185cd975b11838cd25/linux-user/main.c#L3684)。從那裏開始。儘管如果你找不到main(),那麼在內存中加密qemu可能太過雄心勃勃。 – HostileFork 2014-10-27 22:08:40

+0

@HostileFork即使是OP的論點是「沒有文檔」是不正確的,因爲它的運作方式是人們在這裏回答對谷歌來說很難的東西,就像我在下面做的那樣。 – abligh 2014-10-30 19:45:07

回答

1

簡短的回答是「修改vl.cqemu-options.hx。後者在那裏,因爲所有的選項處理都集成到幫助提供等等中 - 即代碼是動態構建的。我通常的做法是選擇一個類似的選項,看看它是如何完成的。

較長的答案是,如果您希望代碼過度擴張,您應該在qemu-devel mailing list上討論您的提案。

#qemu IRC頻道on irc.oftc.net也有幫助。你無疑會得到一些反饋。不過,我建議你可以考慮把它作爲一個機器參數而不是命令行選項來實現,除非你要使它適用於所有虛擬機類型。

+0

+1爲了幫助的精神。但問題的評估不在於Google是否易於使用。 Google要做很多任務的起點並不容易,這不是話題規則。並且[qemu的入門](http://wiki.qemu.org/Documentation/GettingStartedDevelopers)說*「QEMU沒有高級設計描述文檔 - 只有源代碼講述完整的故事。」*(這是一個說「使用源,盧克」)。一個真正的答案需要解釋linux-user/main.c - 生成的,互補的?它會變長。大多數情況下你都重複了常見問題。 – HostileFork 2014-10-30 20:47:27

+0

我已將選項添加到qemu,並將它們帶到上游。真的,你確實想修改'vl.c'和'qemu-options.hx'來做他想做的事!我從來沒有碰過'linux-user/main.c'。爲了證明這一點,我發現了一個隨機補丁,就是這樣做的:http://lists.gnu.org/archive/html/qemu-devel/2012-01/msg02839.html – abligh 2014-10-30 21:00:35