新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 在 Zynq MPSoC 上運行 DOOM 游戲

        在 Zynq MPSoC 上運行 DOOM 游戲

        作者: 時間:2016-08-03 來源:電子產品世界 收藏

          步驟 3:開始演示

        本文引用地址:http://www.104case.com/article/201608/294978.htm

          現在,我們可以打開虛擬網絡計算 (VNC) 查看器,并在運行 QEMU 的機器上連接 localhost:5900 以觀看 Doom 游戲。(注意:以上命令行只能重定向 5900 端口,因此當開始演示時只能連接到第一個 Doom 實例。如果想連接多個實例,需要為 QEMU 添加更多 hostfwd 變量,并連接到下個可用的端口[5901 用于下個實例,5902 用于第三個實例,以此類推],然后將這些實例連接。)

          一旦 Doom 啟動,你就可以使用鍵盤和鼠標控制游戲。應記住,可能需要點擊 ESC 鍵來開始游戲。還應記住,你已經很長時間沒玩 Doom 游戲了,因此你可能走不了多遠。 別氣餒。使用自己構建的系統絕對“可行”。

          XEN 深入探討

          正如“ 獲得 Xen 管理程序支持”(賽靈思中國通訊,第 93 期)中所介紹, Type 1 管理程序在本機硬件上運行,Type 2 管理程序不是軟件的最底層,而是托管在 OS 上。Xen 屬于 Type 1 管理程序(圖 4)。

          

         

          圖 4:作為 Type 1 管理程序,Xen 在本機硬件上運行,虛擬機在 Xen 之上運行 (來源:“帶虛擬化擴展的 Xen ARM” 白皮書)。

          以前,我們提到了虛擬處理器(也稱虛擬機)。在 Xen 中,這些被稱為域。特權最高的域被稱為 Dom0;無特權的客戶域是 DomU 域。

          Dom0 是 Xen 管理程序在引導時創建的初始域。它是特權域,并驅動平臺上的設備。Xen 將 CPU、存儲器、中斷和定時器虛擬化,為虛擬機提供一個或多個虛擬 CPU、系統存儲器的一部分、一個虛擬中斷控制器和一個虛擬定時器。除非配置為其他方式,否則 Dom0 可直接訪問所有設備并驅動它們。Dom0 還運行一組名為半虛擬化 (PV) 后端的驅動,為無特權虛擬機提供對磁盤、網絡等設備的訪問權。Xen 提供用于發現和初始通信設置的所有工具。作為 DomU 的 OS 通過運行相應的 PV 前端驅動程序來獲得對一組通用虛擬設備的訪問權。根據 DomU 的數量,單個后端可服務多個前端。有一對適用于所有最常見設備類型(磁盤、網絡、控制臺、幀緩沖器、鼠標、鍵盤等)的 PV 驅動程序。PV 驅動程序通常位于 OS 內核(即 Linux)中。幾個 PV 后端也可以在用戶空間中運行,通常在 QEMU 中。前端在存儲器的共享頁上使用簡單的環協議連接后端。從 Dom0 與管理程序交互要求程序使用定義的管理程序調用(類似于系統調用)。Xen 提供一個名為 Xen Tools (也可寫成 xen-tools)的、帶有庫的參考工具箱。xen-tools 包含一個名為 xl 的程序,該程序可與其他程序一起檢查狀態和創建客戶機。

          利用設備半虛擬化,可在管理程序與客戶機之間就如何進行通信達成協議。常見的通信協議為 Xen Bus 和 VirtIO。

          xl 中的“create”命令要用到描述客戶機的配置文件,如果配置文件規定客戶機需要一個由 VNC 會話支持的虛擬幀緩沖器 (VFB),那么 xl 會在 Dom0 用戶空間中自動啟動虛擬化代碼(本演示中,為每個客戶機啟動一個)。

          doom VM 的配置文件如下所示:

          # 客戶機名稱

          name = "guest1"

          # 要引導的內核鏡像

          kernel = "/boot/Image"

          # 內核命令行選項

          extra = "console=hvc0 rdinit=/doom.sh"

          # 最初存儲器分配 (MB)

          memory = 56

          # VCPUS 數量

          vcpus = 1

          vfb = ['type=vnc, vnclisten=0.0.0.0']

          XEN 中的設備

          為客戶機提供設備有三種常用方法:仿真、半虛擬化和直通 (圖 5)。對于設備仿真,當客戶機向仿真設備的存儲器寫入時,寫入操作會觸發陷阱。陷阱通常就是頁面錯誤。陷阱使處理器能夠切換到管理程序,以仿真設備。仿真是靈活的,但速度慢,因為要處理所有陷阱,而且要有人為所有需要仿真的設備編寫模型。而且,很難找到方法來加速仿真,因為幾乎沒有硬件加速;完全是軟件方法。

          

         

          圖 5:方案、半虛擬化和直通方案的對比

          利用設備半虛擬化,可在管理程序與客戶機之間就如何進行通信達成協議。通常有一個共享的存儲器區域(以及協議),這看起來像一個設備,而且管理程序在該區域處理請求。例如,為了在 Linux 上支持半虛擬化幀緩沖器,Linux 前端驅動會把從用戶空間獲得的幀緩沖器寫入共享存儲器區域;然后使用管理程序調用向管理程序發信號,以通過后端驅動來輸出幀。客戶機只能通過半虛擬化驅動程序與主機 (Dom0)和其他客戶機 (DomU) 對話。這種方案的優勢是:用戶可以在很多客戶機之間共享設備;運行快速;客戶機可以運行大部分都沒修改的內核。要求的變動在標準接口下面,因此對于應用程序以及內核其余部分來說,前端驅動程序看起來就像正常的網絡接口、磁盤或其他設備。支持客戶機通信的兩個常用協議是 Xen Bus 和 VirtIO。

          在直通模式下,主機將設備“交給”一個客戶機。這意味著每次只有一個客戶機可以使用該設備。



        關鍵詞: Zynq MPSoC

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 正宁县| 榕江县| 南皮县| 承德县| 耿马| 顺平县| 黎城县| 怀柔区| 通渭县| 同仁县| 鹤壁市| 方正县| 大竹县| 漠河县| 玉树县| 柘荣县| 抚宁县| 梁山县| 原平市| 景德镇市| 离岛区| 辽中县| 韶山市| 马公市| 阿拉善左旗| 新津县| 通渭县| 哈巴河县| 二连浩特市| 内黄县| 新余市| 获嘉县| 若尔盖县| 公主岭市| 扶余县| 麦盖提县| 涪陵区| 大洼县| 昌江| 邛崃市| 宝山区|