此處公開了用于通過創建對設備的描述來限制與設備進行交互的非特權虛擬機的行為的各個方面,該對設備的描述向特權機構指示(1)對設備的哪些操作可以具有系統范圍的影響,以及(2)哪些操作具有設備本地的影響。特權機構可在隨后允許或拒絕這些動作。特權機構也可以將這些動作轉換為具有良性結果的其他動作。
【技術實現步驟摘要】
【國外來華專利技術】
目前所公開的主題涉及計算領域,尤其涉及計算機虛擬化,雖然虛擬化只是示例性并且是非限制性領域。背景大多數輸入/輸出(I/O)設備都是在存在配置系統中的所有I/O設備的一塊可信軟件的假設下被設計的。通常還假設,那些I/O設備最終由設備驅動程序控制,設備驅動程序是抽象化單個設備差異的插件模塊。此外,還假設這些驅動程序都被包含在單個內核內。然而,在虛擬機的上下文中,上面的假設可能不再有效。每一虛擬機通常都包含其自己的操作系統內核,操作系統內核可以被或可以不被在所有其他虛擬機中運行的所有其他內核信任。配置和控制物理主機內的設備通常涉及具有實施關于來自一個虛擬機的動作可如何影響其他虛擬機的策略的能力的某一中央機構。在某些系統中,此中央機構位于主機操作系統中。在其他系統中,管理機構可以位于系統管理程序中,在其他系統中,機構可以與在系統管理程序的上方運行的虛擬機中的一個在一起。當構建虛擬化系統時,一種方法可以是維護對上文所描述的中央機構內所有I/O 設備的完全控制。因此,當虛擬機需要I/O服務時,虛擬機可以向控制I/O的中央機構傳遞請求(直接或間接地)。此方法起作用,但是遭受兩個問題。首先,與在物理硬件上運行的操作系統而并非虛擬機相比,I/O操作得比它應該的更慢。其次,向虛擬機表達的I/O設備的范圍可能受到虛擬化軟件的限制。需要將在物理計算機內的每一個設備指派到在其內運行的虛擬機中的一個或多個。以此方式,I/O將不會遭受與間接相關聯的性能損失,且可以被插入到計算機中的任何設備都可以被虛擬機使用,而不要求虛擬化層完全理解其內部功能。因此,需要其他技術來解決上文所描述的問題。概述此處公開了用于通過創建或接收對設備的描述來限制與設備進行交互的非特權虛擬機(不擁有設備的系統范圍的策略)的行為的各種方法和系統,該對設備的描述向特權機構(例如,虛擬化系統的系統管理程序或其他特權方面)指示(1)對設備的哪些操作可以具有系統范圍的影響,以及O)哪些操作具有設備本地的影響。特權機構可在隨后允許或拒絕這些動作。特權機構也可以將這些動作轉換為具有良性結果的其他動作。在一個實施例中,對于每一個設備,可以構建配置空間的圖,其中該配置內的每一比特都具有以下屬性中的一個或多個i.只讀。ii.讀取時始終為0。iii.讀取時始終為1。iv.讀寫。v.寫入1清除,寫入0保留。vi.寫入1設置,寫入0保留。vii.寫入0清除,寫入1保留。viii.寫入0設置,寫入1保留。ix.首次讀取之后清零。χ.首次讀取之后設為1。上面的行為是示例性的,可以包括附加行為來限制對存儲器位置允許的動作。也可以構建MMIO空間的圖,其中可以將每一頁映射到虛擬機。對于從虛擬機的圖中排除的頁,特權機構可以選擇利用看起來像設備的靜態圖像填充該頁。替換地,特權機構可以選擇接收截取,并使用帶有應用于這些特定頁的圖的配置空間來處理截取。在進一步的實施例中,公開了用于交換安全地包含設備的信息的方法。在某些實施例中,可以將圖的表示嵌入在驅動程序安裝文件中。可以由產生安裝文件的當事人對安裝文件進行數字簽名。因此,機器管理員可以允許特權機構來處理安裝文件,無需實際在特權機構安裝設備的驅動程序。可以在虛擬機中安裝驅動程序,且設備可以在虛擬機中運轉并受約束,以使得設備不影響其他虛擬機或特權機構。除前述的之外,在構成本專利技術的一部分的權利要求書、附圖,以及文本中描述了其他方面。那些本技術技術人員可以理解,本專利技術的一個或多個各個方面可包括,但不僅限于,用于實行本公開的此處引用的各方面的電路和/或編程;電路和/或編程可以幾乎是被配置成取決于系統設計人員的設計選擇而達成此處引用的各方面的硬件、軟件和/或固件的任何組合。應該注意,提供本概述是為了以簡化的形式介紹將在以下詳細描述中進一步描述的一些代表性的概念。本
技術實現思路
并不旨在標識出所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。附圖簡述當結合附圖閱讀時,可以更好地了解前面的摘要,以及下面的詳細描述。為了說明本專利技術,示出了本專利技術的各個方面。然而,本專利技術不限于所示出的特定方面。包括了下面的圖形圖Ia示出了帶有多個虛擬機的虛擬機環境,包括多個虛擬處理器以及對應的來賓操作系統;虛擬機是由虛擬化層維護的,該虛擬化層可以包括調度器及其他組件,其中虛擬化層為多個虛擬機虛擬化硬件;圖Ib示出了表示計算機系統中的虛擬化環境的硬件和軟件體系結構的邏輯層的示圖;圖Ic描繪了其中可以實現本公開的各方面的示例計算機系統;圖2示出了示例性虛擬化計算系統;圖3示出了替換的虛擬化計算系統;圖4描繪了示出了與PCI設備相關的IO空間和匪IO的示例性系統圖;圖5是示出了 RAM可以駐留在其中的地址空間的示例性示圖;圖6示出了用于管理非特權虛擬機和I/O設備之間的事務的全局和本地影響的操作過程的示例;圖7示出了用于管理非特權虛擬機和I/O設備之間的事務的全局和本地影響的操作過程的示例;圖8示出了用于管理與設備進行交互的非特權虛擬機的全局和本地影響的操作過程的示例;圖9描繪了用于限制與設備進行交互的非特權虛擬機的行為的示例性操作過程;附圖說明圖10示出了承載參考上面的圖1-9所討論的計算機可執行指令的計算機可讀介質。詳細描述虛擬機概述在下面的描述和圖形中闡述某些具體細節,以提供對本專利技術的各實施例的全面的理解。在下面的公開中沒有闡述常常與計算和軟件技術相關聯的某些公知的細節,以避免不必要地使本專利技術的各實施例模糊。進一步地,那些相關領域普通技術人員將理解,他們可以在沒有下面所描述的細節中的一個或多個的情況下實施本專利技術的其他實施例。最后,盡管在下面的公開中參考步驟和序列描述了各種方法,但是,如此的描述用于提供本專利技術的各實施例的清楚的實現,且步驟和步驟的序列不應該理解為實施本專利技術所必需的。應該理解,此處所描述的各種技術可以結合硬件或軟件或,在適當的情況下,結合兩者的組合來實現。因此,本專利技術的方法和裝置,或其某些方面或部分,也可以以在有形的介質(如軟盤、CD-ROM、硬盤驅動器,或任何其他機器可讀的存儲介質)中實現的程序代碼 (即,指令)的形式來實現,其中當程序代碼被加載到諸如計算機之類的機器中并由它們執行時,機器變為用于實施該專利技術的裝置。在程序代碼在可編程計算機上執行的情況下,計算設備一般包括處理器、可由處理器讀取的存儲介質(包括易失性和非易失性存儲器和/或存儲元件)、至少一個輸入設備,以及至少一個輸出設備。一個或多個程序可以實現或使用結合本專利技術所描述的過程,例如,通過使用API、可重用控件等等。這樣的程序優選地以高級別過程或面向對象編程語言來實現,以與計算機系統進行通信。然而,若有需要,程序也可以以以匯編或機器語言來實現。在任一情況下,語言都可以是編譯的或解釋的語言,并與硬件實現相結合。圖Ia示出了虛擬機環境100,帶有多個虛擬機120、121,這些虛擬機包括多個虛擬處理器110、112、114、116,以及對應的來賓操作系統130,132。虛擬機120,121由虛擬化層 140來維護,該虛擬化層140可以包括調度器142及其他組件(未示出),其中虛擬化層140 為多個虛擬機120,121虛擬化硬件150。多個虛擬處理器110、112、114、1本文檔來自技高網...
【技術保護點】
1.一種用于管理虛擬機(120)和I/O設備(430)之間的通信的方法,包括:為所述I/O設備構建(602)配置空間的表示,指示對于所述配置空間內的存儲器位置所述虛擬機可以在所述I/O設備上執行的動作;構建(603)存儲器映射的I/O空間的表示,其中所述存儲器映射的I/O空間的每一頁被映射到所述虛擬機或被從所述虛擬機中排除;以及根據所述配置空間的表示和所述存儲器映射的I/O空間的表示,控制對所述I/O設備的訪問(604)。
【技術特征摘要】
【國外來華專利技術】...
【專利技術屬性】
技術研發人員:J·奧辛斯,
申請(專利權)人:微軟公司,
類型:發明
國別省市:US
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。