TWI540511B - 用以存取虛擬機器之電腦系統及方法 - Google Patents

用以存取虛擬機器之電腦系統及方法 Download PDF

Info

Publication number
TWI540511B
TWI540511B TW104113837A TW104113837A TWI540511B TW I540511 B TWI540511 B TW I540511B TW 104113837 A TW104113837 A TW 104113837A TW 104113837 A TW104113837 A TW 104113837A TW I540511 B TWI540511 B TW I540511B
Authority
TW
Taiwan
Prior art keywords
access
host
client
virtual machine
driver
Prior art date
Application number
TW104113837A
Other languages
English (en)
Other versions
TW201638777A (zh
Inventor
蔡攀龍
邱瀚輝
Original Assignee
捷鼎國際股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 捷鼎國際股份有限公司 filed Critical 捷鼎國際股份有限公司
Priority to TW104113837A priority Critical patent/TWI540511B/zh
Priority to US14/851,130 priority patent/US9804992B2/en
Application granted granted Critical
Publication of TWI540511B publication Critical patent/TWI540511B/zh
Publication of TW201638777A publication Critical patent/TW201638777A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

用以存取虛擬機器之電腦系統及方法
本發明有關於一種用以存取虛擬機器之電腦系統及方法,尤指一種可以將虛擬機器視為系統裝置或周邊裝置進行資料存取之電腦系統及方法。
虛擬機器可以為一種用以模擬系統裝置、周邊裝置或應用程式之操作行為的特殊軟體。以往虛擬機器的環境中,主機端之作業系統係透過網路服務(例如:網頁伺服器(HTTP)、檔案傳輸伺服器(FTP)或網路磁碟機(NFS、CIFS))來存取虛擬機器的客戶端資料。
虛擬機器係由一虛擬機器程式管理程式與一虛擬機器客戶端作業系統來進行組合,其本質上也能視為一主機端的應用程式。因此,主機端可以透過共享記憶體(SHared Memory,SHM)之機制來進行虛擬機器與其他應用程式之間的資料交換。
目前虛擬機器之客戶端作業系統及應用程式都利用一作業系統層虛擬化(OS-level Virtualization)或稱為容器(Container)之技術來進行包裝。然而,利用作業系統層虛擬化技術進行虛擬機器之客戶端作業系統及應用程式之包裝,主機端應用程式與虛擬機器之容器實體(Container Instance)之間的資料存取將透過一程序間通訊(Inter-Process Communication,IPC)技術來進行,而不是類似於存取系統裝置或周邊裝置之方式。
於是,本發明將提出一種創新的虛擬機器存取技術,其技術將虛擬機器當作系統裝置或周邊裝置來進行資料存取,將會是本發明欲達到的技術目的。
本發明提出一種用以存取虛擬機器之電腦系統及方法,其電腦系統可以將虛擬機器視為系統裝置或周邊裝置來進行資料存取。
本發明提出一種用以存取虛擬機器之電腦系統及方法,其電腦系統包括一主機端作業系統,主機端作業系統配置有一主機端驅動程式及一虛擬機器裝置,主機端作業系統或主機端應用程式將利用主機端驅動程式來存取虛擬機器裝置。
本發明提出一種用以存取虛擬機器之電腦系統及方法,其虛擬機器裝置接收到主機端驅動程式所發送的一存取指令時,將利用一硬體驅動程式來存取一真實硬體裝置或一虛擬硬體裝置。
本發明提出一種用以存取虛擬機器之電腦系統,其電腦系統之主機端作業系統藉由虛擬機器裝置存取真實硬體裝置,若真實硬體裝置產生故障,只會影響到虛擬機器裝置之運作,不會造成主機端作業系統的崩潰。
為達成上述目的,本發明提供一種用以存取虛擬機器之電腦系統,包括:一主機端驅動程式,配置於一主機端作業系統中;及一虛擬機器裝置,配置於主機端作業系統中,其中主機端作業系統或一主機端應用程式發佈至少一存取指令,並透過主機端驅動程式發送存取指令至虛擬機器裝置,虛擬機器裝置包括:一虛擬機器管理程式,包括一擴充模組,擴充模組接收存取指令且將存取指令之指令格式轉換為虛擬機器裝置可辨識之指令格式;及一客戶端作業系統,包括:一客戶端驅動程式;一客戶端服務程式,其中客戶端驅動程式從擴充模組接收存取指令並將存取指令發送至客戶端服務程式,客戶端服務程式辨識存取指令為讀取、寫入或控制之指令;及一客戶端應用程式,其中客戶端服務程式根據存取指令的要求以存取客戶端應用程式而取得一第一存取結果,並將第一存取結果回傳至主機端作業系統或主機端應用程式。
本發明一實施例中,其中客戶端服務程式存取客戶端應用程式所取得第一存取結果經由客戶端驅動程式、擴充模組及主機端驅動程式以回傳至主機端作業系統或主機端應用程式。
本發明一實施例中,其中虛擬機器裝置之客戶端應用程式為一可在主機端作業系統中執行之程式。
本發明一實施例中,其中客戶端作業系統尚包括一第一硬體驅動程式,第一硬體驅動程式經由一硬體直通單元連接一真實硬體裝置,客戶端服務程式透過第一硬體驅動程式及硬體直通單元發送存取指令至真實硬體裝置以存取真實硬體裝置而取得一第二存取結果,並將第二存取結果回傳至主機端作業系統或主機端應用程式。
本發明一實施例中,其中客戶端服務程式存取真實硬體裝置所取得第二存取結果經由客戶端驅動程式、擴充模組及主機端驅動程式以回傳至主機端作業系統或主機端應用程式。
本發明一實施例中,其中虛擬機器管理程式尚包括一虛擬硬體裝置,客戶端作業系統尚包括一第二硬體驅動程式,客戶端服務程式透過第二硬體驅動程式發送存取指令至虛擬硬體裝置以存取虛擬硬體裝置而取得一第三存取結果,並將第三存取結果回傳至主機端作業系統或主機端應用程式。
本發明一實施例中,其中虛擬機器裝置被主機端作業系統模擬成一具有PCI、PCI Express、SATA或USB規格介面之系統裝置或周邊裝置。
本發明又提供一種用以存取虛擬機器之電腦系統,包括:一主機端驅動程式,配置於一主機端作業系統中;及一虛擬機器裝置,配置於主機端作業系統中,其中主機端作業系統或一主機端應用程式發佈至少一存取指令,並透過主機端驅動程式發送存取指令至虛擬機器裝置,虛擬機器裝置包括:一虛擬機器管理程式,包括一擴充模組,擴充模組接收存取指令且將存取指令之指令格式轉換為虛擬機器裝置可辨識的指令格式;一客戶端作業系統,包括:一客戶端驅動程式;一客戶端服務程式,其中客戶端驅動程式從擴充模組接收存取指令並將存取指令發送至客戶端服務程式,客戶端服務程式辨識存取指令為讀取、寫入或控制之指令;及一第一硬體驅動程式;及一真實硬體裝置,其中第一硬體驅動程式經由一硬體 直通單元連接真實硬體裝置,客戶端服務程式透過第一硬體驅動程式及硬體直通單元發送存取指令至真實硬體裝置以存取真實硬體裝置而取得一第二存取結果,並將第二存取結果回傳至主機端作業系統或主機端應用程式。
本發明又提供一種用以存取虛擬機器之方法,其方法適用在一將虛擬機器視為系統裝置、周邊裝置或應用程式之電腦系統中,電腦系統包括一主機端作業系統,主機端作業系統配置有一主機端驅動程式及一虛擬機器裝置,虛擬機器裝置包括一虛擬機器管理程式及一客戶端作業系統,虛擬機器管理程式包括一擴充模組,客戶端作業系統包括一客戶端驅動程式、一客戶端服務程式及一客戶端應用程式,方法步驟包括:從主機端作業系統或一主機端應用程式發佈一存取指令;經由主機端驅動程式發送存取指令至虛擬機器裝置;令虛擬機器裝置經由虛擬機器管理程式之擴充模組接收存取指令並利用虛擬機器管理程式之擴充模組將存取指令之指令格式轉換為虛擬機器裝置可辨識的指令格式;令虛擬機器管理程式之擴充模組經由客戶端驅動程式發送存取指令至客戶端服務程式;及令客戶端服務程式根據存取指令存取客戶端應用程式以取得一第一存取結果並將第一存取結果回傳至主機端作業系統或主機端應用程式。
本發明一實施例中,其中客戶端作業系統尚包括一第一硬體驅動程式,第一硬體驅動程式經由一硬體直通單元連接一真實硬體裝置,方法尚包括一步驟:令客戶端服務程式透過第一硬體驅動程式及硬體直通單元發送存取指令至真實硬體裝置以存取真實硬體裝置而取得一第二存取結果並將第二存取結果回傳至主機端作業系統或主機端應用程式。
本發明一實施例中,其中虛擬機器管理程式尚包括一虛擬硬體裝置,客戶端作業系統尚包括一第二硬體驅動程式,方法尚包括一步驟:令客戶端服務程式透過第二硬體驅動程式發送存取指令至虛擬硬體裝置以存取虛擬硬體裝置而取得一第三存取結果並將第三存取結果回傳至主機端作業系統或主機端應用程式。
本發明一實施例中,尚包括下列步驟:令客戶端服務程式辨識存取指令之存取對象為客戶端應用程式、真實硬體裝置或虛擬硬體裝 置;及令客戶端服務程式根據於存取指令之存取對象存取客戶端應用程式、真實硬體裝置或虛擬硬體裝置。
本發明又提供一種用以存取虛擬機器之方法,其方法適用在一將虛擬機器視為系統裝置、周邊裝置或應用程式之電腦系統中,電腦系統包括一主機端作業系統,主機端作業系統配置有一主機端驅動程式及一虛擬機器裝置,虛擬機器裝置包括一虛擬機器管理程式及一客戶端作業系統,虛擬機器管理程式包括一擴充模組,客戶端作業系統包括一客戶端驅動程式、一客戶端服務程式及一第一硬體驅動程式,第一硬體驅動程式經由一硬體直通單元連接一真實硬體裝置,方法步驟包括:從主機端作業系統或一主機端應用程式發佈一存取指令;經由主機端驅動程式發送存取指令至虛擬機器裝置;令虛擬機器裝置經由虛擬機器管理程式之擴充模組接收存取指令並利用虛擬機器管理程式之擴充模組將存取指令之指令格式轉換為虛擬機器裝置可辨識的指令格式;令虛擬機器管理程式之擴充模組經由客戶端驅動程式發送存取指令至客戶端服務程式;及令客戶端服務程式透過第一硬體驅動程式及硬體直通單元發送存取指令至真實硬體裝置以存取真實硬體裝置而取得一第二存取結果並第二存取結果回傳至主機端作業系統或主機端應用程式。
100‧‧‧電腦系統
101‧‧‧電腦系統
102‧‧‧電腦系統
11‧‧‧主機端作業系統
110‧‧‧存取指令
111‧‧‧主機端驅動程式
12‧‧‧虛擬機器裝置
13‧‧‧虛擬機器管理程式
131‧‧‧擴充模組
133‧‧‧虛擬硬體裝置
1331‧‧‧第三存取結果
15‧‧‧客戶端作業系統
150‧‧‧硬體直通單元
151‧‧‧客戶端驅動程式
153‧‧‧客戶端服務程式
155‧‧‧客戶端應用程式
1551‧‧‧第一存取結果
157‧‧‧第一硬體驅動程式
159‧‧‧第二硬體驅動程式
20‧‧‧真實硬體裝置
2001‧‧‧第二存取結果
第1圖:本發明用以存取虛擬機器之電腦系統一實施例之結構示意圖。
第2圖:本發明用以存取虛擬機器之電腦系統又一實施例之結構示意圖。
第3圖:本發明用以存取虛擬機器之電腦系統又一實施例之結構示意圖。
第4圖:本發明用以存取虛擬機器之客戶端應用程式之方法流程圖。
第5圖:本發明用以存取虛擬機器之真實硬體裝置或虛擬硬體裝置之方法流程圖。
第6圖:本發明用以存取虛擬機器之客戶端應用程式、真實硬體裝置或虛擬硬體裝置之方法流程圖。
請參閱第1圖,為本發明用以存取虛擬機器之電腦系統一實施例之結構示意圖。如第1圖所示,電腦系統100包括一主機端作業系統11。一主機端驅動程式111及一虛擬機器裝置12將配置於主機端作業系統11之中。
其中,虛擬機器裝置12包括一虛擬機器管理程式13及一客戶端作業系統15。虛擬機器管理程式(Hyper-visor)13包括一擴充模組131,而客戶端作業系統15包括一客戶端驅動程式151、一客戶端服務程式153及一客戶端應用程式155。在本實施例中,客戶端應用程式155為一可以在主機端作業系統11中執行之程式。
當主機端作業系統11或一主機端應用程式欲對於虛擬機器裝置12之客戶端應用程式155進行資料存取時,將透過主機端驅動程式111發佈至少一存取指令110至虛擬機器裝置12。並且,主機端驅動程式111對擴充模組131發出一軟體中斷以將存取指令110發送至擴充模組131。擴充模組131接收存取指令110後,將存取指令110之指令格式轉換為虛擬機器裝置12可辨識之指令格式。擴充模組131對客戶端驅動程式151發出一虛擬硬體中斷,並將格式轉換後的存取指令110發送至客戶端驅動程式151。客戶端驅動程式151在接收到存取指令110後,對於客戶端服務程式153發出一軟體中斷,並將存取指令110發送至客戶端服務程式153。客戶端服務程式153辨識存取指令110為讀取、寫入或控制之指令,發送存取指令110至客戶端應用程式155,以根據存取指令110之要求存取客戶端應用程式155而取得一第一存取結果1551。客戶端服務程式153將第一存取結果1551經由客戶端驅動程式151、擴充模組131及主機端驅動程式111回傳至發佈存取指令110的主機端作業系統11或主機端應用程式。如此,主機端作業系統11或主機端應用程式即可以對於虛擬機器裝置12之客戶端應用程式155完成資料存取的動作。
請參閱第2圖,為本發明用以存取虛擬機器之電腦系統又一 實施例之結構示意圖。如第2圖所示,本實施例電腦系統101之結構相似於上述實施例電腦系統100之結構,其差異性在於虛擬機器裝置12之客戶端作業系統15中的配置元件。
本實施例之客戶端作業系統15包括客戶端驅動程式151、客戶端服務程式153及一第一硬體驅動程式157,未包括有客戶端應用程式155。第一硬體驅動程式157經由一硬體直通(hardware pass-through)單元150連接一真實硬體裝置20。此硬體直通單元150為一可以在虛擬機器裝置12與真實硬體裝置20之間建構通訊連接之軟體介面。
當主機端作業系統11或主機端應用程式欲對於虛擬機器裝置12所連接的真實硬體裝置20進行資料存取時,將透過主機端驅動程式111發佈至少一存取指令110至虛擬機器裝置12。並且,主機端驅動程式111對擴充模組131發出一軟體中斷,以將存取指令110發送至擴充模組131。擴充模組131接收存取指令110後,將存取指令110之指令格式轉換為虛擬機器裝置12可辨識之指令格式。擴充模組131對客戶端驅動程式151發出一虛擬硬體中斷,並將格式轉換後的存取指令110發送至客戶端驅動程式151。客戶端驅動程式151在接收到存取指令110後,對於客戶端服務程式153發出一軟體中斷,並將存取指令110發送至客戶端服務程式153。客戶端服務程式153辨識存取指令110為讀取、寫入或控制之指令,並透過第一硬體驅動程式157及硬體直通單元150發送存取指令110至真實硬體裝置20,根據存取指令110的要求以存取真實硬體裝置20而取得一第二存取結果2001。客戶端服務程式153將第二存取結果2001經由客戶端驅動程式151、擴充模組131及主機端驅動程式111回傳至發佈存取指令110的主機端作業系統11或主機端應用程式。如此,主機端作業系統11或主機端應用程式即可透過虛擬機器裝置12對於外部的真實硬體裝置20完成資料存取的動作。
或者,本發明又一實施例中,客戶端作業系統15尚包括一第二硬體驅動程式159,而虛擬機器管理程式13尚包括一虛擬硬體裝置133。
同樣地,當主機端作業系統11或主機端應用程式欲對於虛擬機器裝置12之虛擬硬體裝置133進行資料存取時,將透過主機端驅動程式 111發佈至少一存取指令110至虛擬機器裝置12。此存取指令110透過主機端驅動程式111、擴充模組131及客戶端驅動程式151的轉傳以發送至客戶端服務程式153。客戶端服務程式153辨識存取指令110為讀取、寫入或控制之指令,透過第二硬體驅動程式159發送存取指令110至虛擬硬體裝置133,以根據存取指令110的要求存取虛擬硬體裝置133而取得一第三存取結果1331。客戶端服務程式153將第三存取結果1331經由客戶端驅動程式151、擴充模組131及主機端驅動程式111回傳至發佈存取指令110的主機端作業系統11或主機端應用程式。如此,主機端作業系統11或主機端應用程式即可以對於虛擬機器裝置12之虛擬硬體裝置133完成資料存取的動作。
如上方式據以實施,於本發明中,虛擬機器裝置12可以被主機端作業系統11模擬成一系統裝置或周邊裝置,例如:具有PCI、PCI Express、SATA、USB或其他連接器規格介面之系統裝置或周邊裝置。換言之,本發明虛擬機器裝置12可以被主機端作業系統11視為真實的系統裝置或周邊裝置,則,主機端作業系統11即可透過驅動程式111、151、157及/或159以利用存取系統裝置或周邊裝置之方式來存取虛擬機器裝置12。
此外,本發明主機端作業系統11藉由虛擬機器裝置12存取真實硬體裝置20。若真實硬體裝置20產生故障,只會影響到虛擬機器裝置20之運作,不會造成主機端作業系統11的崩潰,以確保主機端作業系統11存取真實硬體裝置20時的穩定性。並且,受到真實硬體裝置20故障影響的虛擬機器裝置20只要重新啟動即可恢復正常的運作。
請參閱第3圖,為本發明用以存取虛擬機器之電腦系統又一實施例之結構示意圖。如第3圖所示,本實施例電腦系統102之虛擬機器裝置12同時配置有客戶端應用程式155、虛擬硬體裝置133以及外部連接真實硬體裝置20。
當主機端作業系統11或主機端應用程式欲對於客戶端應用程式155、真實硬體裝置20或虛擬硬體裝置133進行資料存取時,將產生一標示有存取對象之存取指令110。之後,客戶端服務程式153收到此存取指令110時,將會辨識存取指令110之存取對象為客戶端應用程式155、真實硬 體裝置20或虛擬硬體裝置133,以根據於存取指令110所標示的存取對象存取客戶端應用程式155、真實硬體裝置20或虛擬硬體裝置133。
請參閱第4圖,為本發明用以存取虛擬機器之客戶端應用程式之方法流程圖,同時配合參閱第1圖。當主機端作業系統11或主機端應用程式欲對於虛擬機器裝置12之客戶端應用程式155進行資料存取時,首先,執行步驟S301,主機端作業系統11或主機端應用程式將發佈至少一存取指令110。步驟S303,主機端作業系統11或主機端應用程式藉由主機端驅動程式111發送存取指令110至虛擬機器裝置12。
步驟S305,虛擬機器裝置12經由虛擬機器管理程式13之擴充模組131接收存取指令110,並利用擴充模組131將存取指令110之指令格式轉換為虛擬機器裝置12可辨識的指令格式。步驟S307,擴充模組131經由客戶端驅動程式151發送存取指令110至客戶端服務程式153。
接著,步驟S311,客戶端服務程式153接收到存取指令110後,辨識存取指令110為讀取、寫入或控制之指令,並發送存取指令110至客戶端應用程式155。步驟S313,客戶端服務程式153根據存取指令110之要求存取客戶端應用程式155而取得一第一存取結果1551,並將第一存取結果1551回傳至發佈存取指令110的主機端作業系統11或主機端應用程式。藉此,主機端作業系統11或主機端應用程式即可以對於虛擬機器裝置12之客戶端應用程式155完成資料存取的流程。
請參閱第5圖,為本發明用以存取虛擬機器之真實硬體裝置或虛擬硬體裝置之方法流程圖,同時配合參閱第2圖。當主機端作業系統11或主機端應用程式欲對於虛擬機器裝置12之真實硬體裝置20或虛擬硬體裝置133進行資料存取時,如同上述步驟S301至S307,主機端作業系統11或主機端應用程式藉由主機端驅動程式111發佈至少一存取指令110至虛擬機器裝置12,而虛擬機器裝置12之擴充模組131在接收到存取指令110後轉換存取指令110之指令格式及經由客戶端驅動程式151發送存取指令110至客戶端服務程式153。
接著,步驟S321,客戶端服務程式153接收到存取指令110 後,辨識存取指令110為讀取、寫入或控制之指令,並透過硬體驅動程式157、159及/或硬體直通單元150發送存取指令110至真實硬體裝置20或虛擬硬體裝置133。步驟S323,客戶端服務程式153根據存取指令110之要求以存取真實硬體裝置20或虛擬硬體裝置133而取得一第二存取結果2001或一第三存取結果1331,並將第二存取結果2001或第三存取結果1331回傳至發佈存取指令110的主機端作業系統11或主機端應用程式。藉此,主機端作業系統11或主機端應用程式即可以對於虛擬機器裝置12之真實硬體裝置20或虛擬硬體裝置133完成資料存取的流程。
請參閱第6圖,為本發明用以存取虛擬機器之客戶端應用程式、真實硬體裝置或虛擬硬體裝置之方法流程圖,同時配合參閱第3圖。當主機端作業系統11或主機端應用程式欲對於虛擬機器裝置12之客戶端應用程式155、真實硬體裝置20或虛擬硬體裝置133進行資料存取時,如同上述步驟S301至S307,主機端作業系統11或主機端應用程式將藉由主機端驅動程式111發佈至少一存取指令110至虛擬機器裝置12,而虛擬機器裝置12之擴充模組131在接收到存取指令110後轉換存取指令110之指令格式及經由客戶端驅動程式151發送存取指令110至客戶端服務程式153。
接著,步驟S308,客戶端服務程式153辨識存取指令110之存取對象是否為客戶端應用程式155。若是,存取指令110之存取對象為客戶端應用程式155,繼續執行步驟S311,客戶端服務程式153發送存取指令110至客戶端應用程式155;以及執行步驟S313,客戶端服務程式153根據存取指令110之要求存取客戶端應用程式155而取得第一存取結果1551,並將第一存取結果1551回傳至發佈存取指令110的主機端作業系統11或主機端應用程式。
若否,存取指令110之存取對象為真實硬體裝置20或虛擬硬體裝置133,繼續執行步驟S321,客戶端服務程式153透過硬體驅動程式157、159及/或硬體直通單元150發送存取指令110至真實硬體裝置20或虛擬硬體裝置133;以及執行步驟S323,客戶端服務程式153根據存取指令110之要求以存取真實硬體裝置20或虛擬硬體裝置133而取得第二存取結果2001 或第三存取結果1331,並將第二存取結果2001或第三存取結果1331回傳至發佈存取指令110的主機端作業系統11或主機端應用程式。
以上所述者,僅為本發明之一較佳實施例而已,並非用來限定本發明實施之範圍,即凡依本發明申請專利範圍所述之形狀、構造、特徵及精神所為之均等變化與修飾,均應包括於本發明之申請專利範圍內。
102‧‧‧電腦系統
11‧‧‧主機端作業系統
110‧‧‧存取指令
111‧‧‧主機端驅動程式
12‧‧‧虛擬機器裝置
13‧‧‧虛擬機器管理程式
131‧‧‧擴充模組
133‧‧‧虛擬硬體裝置
1331‧‧‧第三存取結果
15‧‧‧客戶端作業系統
150‧‧‧硬體直通單元
151‧‧‧客戶端驅動程式
153‧‧‧客戶端服務程式
155‧‧‧客戶端應用程式
1551‧‧‧第一存取結果
157‧‧‧第一硬體驅動程式
159‧‧‧第二硬體驅動程式
20‧‧‧真實硬體裝置
2001‧‧‧第二存取結果

Claims (17)

  1. 一種用以存取虛擬機器之電腦系統,包括:一主機端驅動程式,配置於一主機端作業系統中;及一虛擬機器裝置,配置於該主機端作業系統中,其中該主機端作業系統或一主機端應用程式發佈至少一存取指令,並透過該主機端驅動程式發送該存取指令至該虛擬機器裝置,該虛擬機器裝置包括:一虛擬機器管理程式,包括一用以轉換指令格式之擴充模組,該擴充模組接收該存取指令且將該存取指令之指令格式轉換為該虛擬機器裝置可辨識之指令格式;及一客戶端作業系統,包括:一客戶端驅動程式;一客戶端服務程式,其中該客戶端驅動程式從該擴充模組接收該存取指令並將該存取指令發送至該客戶端服務程式,該客戶端服務程式;及一客戶端應用程式,其中該客戶端服務程式辨識該存取指令為讀取、寫入或控制之指令,以根據該存取指令的要求存取該客戶端應用程式而取得一第一存取結果,並將該第一存取結果回傳至該主機端作業系統或該主機端應用程式。
  2. 如申請專利範圍第1項所述之電腦系統,其中該客戶端服務程式存取該客戶端應用程式所取得該第一存取結果經由該客戶端驅動程式、該擴充模組及該主機端驅動程式以回傳至該主機端作業系統或該主機端應用程式。
  3. 如申請專利範圍第1項所述之電腦系統,其中該虛擬機器裝置之該客戶端應用程式為一可在該主機端作業系統中執行之程式。
  4. 如申請專利範圍第1項所述之電腦系統,其中該客戶端作業系統尚包括一第一硬體驅動程式,該第一硬體驅動程式經由一硬體直通單元連接一真實硬體裝置,該客戶端服務程式透過該第一硬體驅動程式及該硬體直通單元發送該存取指令至該真實硬體裝置以存取該真實硬體裝 置而取得一第二存取結果,並將該第二存取結果回傳至該主機端作業系統或該主機端應用程式。
  5. 如申請專利範圍第4項所述之電腦系統,其中該客戶端服務程式存取該真實硬體裝置所取得該第二存取結果經由該客戶端驅動程式、該擴充模組及該主機端驅動程式以回傳至該主機端作業系統或該主機端應用程式。
  6. 如申請專利範圍第1項所述之電腦系統,其中該虛擬機器管理程式尚包括一虛擬硬體裝置,該客戶端作業系統尚包括一第二硬體驅動程式,該客戶端服務程式透過該第二硬體驅動程式發送該存取指令至該虛擬硬體裝置以存取該虛擬硬體裝置而取得一第三存取結果,並將該第三存取結果回傳至該主機端作業系統或該主機端應用程式。
  7. 如申請專利範圍第1項所述之電腦系統,其中該虛擬機器裝置被該主機端作業系統模擬成一具有PCI、PCI Express、SATA或USB規格介面之系統裝置或周邊裝置。
  8. 一種用以存取虛擬機器之電腦系統,包括:一主機端驅動程式,配置於一主機端作業系統中;一虛擬機器裝置,配置於該主機端作業系統中,其中該主機端作業系統或一主機端應用程式發佈至少一存取指令,並透過該主機端驅動程式發送該存取指令至該虛擬機器裝置,該虛擬機器裝置包括:一虛擬機器管理程式,包括一用以轉換指令格式之擴充模組,該擴充模組接收該存取指令且將該存取指令之指令格式轉換為該虛擬機器裝置可辨識的指令格式;一客戶端作業系統,包括:一客戶端驅動程式;一客戶端服務程式,其中該客戶端驅動程式從該擴充模組接收該存取指令並將該存取指令發送至該客戶端服務程式;及一第一硬體驅動程式;及一真實硬體裝置,經由一硬體直通單元連接該虛擬機器裝置之該第一 硬體驅動程式,其中該客戶端服務程式辨識該存取指令為讀取、寫入或控制之指令,並透過該第一硬體驅動程式及該硬體直通單元發送該存取指令至該真實硬體裝置以根據該存取指令的要求存取該真實硬體裝置而取得一第二存取結果,並將該第二存取結果回傳至該主機端作業系統或該主機端應用程式。
  9. 如申請專利範圍第8項所述之電腦系統,其中該客戶端服務程式存取該真實硬體裝置所取得該第二存取結果經由該客戶端驅動程式、該擴充模組及該主機端驅動程式以回傳至該主機端作業系統或該主機端應用程式。
  10. 如申請專利範圍第8項所述之電腦系統,其中該虛擬機器管理程式尚包括一虛擬硬體裝置,該客戶端作業系統尚包括一第二硬體驅動程式,該客戶端服務程式透過該第二硬體驅動程式發送該存取指令至該虛擬硬體裝置以存取該虛擬硬體裝置而取得一第三存取結果,並將該第三存取結果回傳至該主機端作業系統或該主機端應用程式。
  11. 如申請專利範圍第8項所述之電腦系統,其中該虛擬機器裝置被該主機端作業系統模擬成一具有PCI、PCI Express、SATA或USB規格介面之系統裝置或周邊裝置。
  12. 一種用以存取虛擬機器之方法,其方法適用在一將虛擬機器視為系統裝置、周邊裝置或應用程式之電腦系統中,該電腦系統包括一主機端作業系統,該主機端作業系統配置有一主機端驅動程式及一虛擬機器裝置,該虛擬機器裝置包括一虛擬機器管理程式及一客戶端作業系統,該虛擬機器管理程式包括一用以轉換指令格式之擴充模組,該客戶端作業系統包括一客戶端驅動程式、一客戶端服務程式及一客戶端應用程式,該方法步驟包括:從該主機端作業系統或一主機端應用程式發佈一存取指令;經由該主機端驅動程式發送該存取指令至該虛擬機器裝置;令該虛擬機器裝置經由該虛擬機器管理程式之該擴充模組接收該存取指令並利用該虛擬機器管理程式之該擴充模組將該存取指令之指令 格式轉換為該虛擬機器裝置可辨識的指令格式;令該虛擬機器管理程式之該擴充模組經由該客戶端驅動程式發送該存取指令至該客戶端服務程式;及令該客戶端服務程式辨識該存取指令為讀取、寫入或控制之指令,以根據該存取指令的要求存取該客戶端應用程式以取得一第一存取結果並將該第一存取結果回傳至該主機端作業系統或該主機端應用程式。
  13. 如申請專利範圍第12項所述之方法,其中該客戶端作業系統尚包括一第一硬體驅動程式,該第一硬體驅動程式經由一硬體直通單元連接一真實硬體裝置,該方法尚包括一步驟:令該客戶端服務程式透過該第一硬體驅動程式及該硬體直通單元發送該存取指令至該真實硬體裝置以存取該真實硬體裝置而取得一第二存取結果並將該第二存取結果回傳至該主機端作業系統或該主機端應用程式。
  14. 如申請專利範圍第13項所述之方法,其中該虛擬機器管理程式尚包括一虛擬硬體裝置,該客戶端作業系統尚包括一第二硬體驅動程式,該方法尚包括一步驟:令該客戶端服務程式透過該第二硬體驅動程式發送該存取指令至該虛擬硬體裝置以存取該虛擬硬體裝置而取得一第三存取結果並將該第三存取結果回傳至該主機端作業系統或該主機端應用程式。
  15. 如申請專利範圍第14項所述之方法,尚包括下列步驟:令該客戶端服務程式辨識該存取指令之存取對象為該客戶端應用程式、該真實硬體裝置或該虛擬硬體裝置;及令該客戶端服務程式根據於該存取指令之存取對象存取該客戶端應用程式、該真實硬體裝置或該虛擬硬體裝置。
  16. 一種用以存取虛擬機器之方法,其方法適用在一將虛擬機器視為系統裝置、周邊裝置或應用程式之電腦系統中,該電腦系統包括一主機端作業系統,該主機端作業系統配置有一主機端驅動程式及一虛擬機器裝置,該虛擬機器裝置包括一虛擬機器管理程式及一客戶端作業系 統,該虛擬機器管理程式包括一用以轉換指令格式之擴充模組,該客戶端作業系統包括一客戶端驅動程式、一客戶端服務程式及一第一硬體驅動程式,該第一硬體驅動程式經由一硬體直通單元連接一真實硬體裝置,該方法步驟包括:從該主機端作業系統或一主機端應用程式發佈一存取指令;經由該主機端驅動程式發送該存取指令至該虛擬機器裝置;令該虛擬機器裝置經由該虛擬機器管理程式之該擴充模組接收該存取指令並利用該虛擬機器管理程式之該擴充模組將該存取指令之指令格式轉換為該虛擬機器裝置可辨識的指令格式;令該虛擬機器管理程式之該擴充模組經由該客戶端驅動程式發送該存取指令至該客戶端服務程式;及令該客戶端服務程式辨識該存取指令為讀取、寫入或控制之指令,並透過該第一硬體驅動程式及該硬體直通單元發送該存取指令至該真實硬體裝置以根據該存取指令的要求存取該真實硬體裝置而取得一第二存取結果並將該第二存取結果回傳至該主機端作業系統或該主機端應用程式。
  17. 如申請專利範圍第16項所述之方法,其中該虛擬機器管理程式尚包括一虛擬硬體裝置,該客戶端作業系統尚包括一第二硬體驅動程式,該方法尚包括一步驟:令該客戶端服務程式透過該第二硬體驅動程式發送該存取指令至該虛擬硬體裝置以存取該虛擬硬體裝置而取得一第三存取結果並將該第三存取結果回傳至該主機端作業系統或該主機端應用程式。
TW104113837A 2015-04-30 2015-04-30 用以存取虛擬機器之電腦系統及方法 TWI540511B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW104113837A TWI540511B (zh) 2015-04-30 2015-04-30 用以存取虛擬機器之電腦系統及方法
US14/851,130 US9804992B2 (en) 2015-04-30 2015-09-11 Computer system and method for accessing virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104113837A TWI540511B (zh) 2015-04-30 2015-04-30 用以存取虛擬機器之電腦系統及方法

Publications (2)

Publication Number Publication Date
TWI540511B true TWI540511B (zh) 2016-07-01
TW201638777A TW201638777A (zh) 2016-11-01

Family

ID=56997021

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104113837A TWI540511B (zh) 2015-04-30 2015-04-30 用以存取虛擬機器之電腦系統及方法

Country Status (2)

Country Link
US (1) US9804992B2 (zh)
TW (1) TWI540511B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11080082B2 (en) 2019-08-02 2021-08-03 Red Hat, Inc. Cross-hypervisor virtual machine conversion
TWI779321B (zh) * 2020-07-22 2022-10-01 宏碁股份有限公司 資源整合系統及資源整合方法
CN112764981B (zh) * 2021-01-22 2023-03-14 山东云海国创云计算装备产业创新中心有限公司 一种协同测试系统及方法
CN113947169A (zh) * 2021-10-29 2022-01-18 中国建设银行股份有限公司 硬件设备操作方法、装置、设备、存储介质和程序产品

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040249947A1 (en) * 2003-05-22 2004-12-09 Hewlett-Packard Development Company, L.P. Concurrent cluster environment
US7330942B2 (en) * 2004-07-31 2008-02-12 Hewlett-Packard Development Company, L.P. Method for efficient virtualization of physical memory in a virtual-machine monitor
US9329887B2 (en) * 2011-10-19 2016-05-03 Hob Gmbh & Co. Kg System and method for controlling multiple computer peripheral devices using a generic driver
KR20130050156A (ko) * 2011-11-07 2013-05-15 한국전자통신연구원 가상 주소 공간 전환 장치
JP5862408B2 (ja) * 2012-03-27 2016-02-16 富士通株式会社 エミュレーション装置、及びエミュレーションプログラム
US9606818B2 (en) * 2013-03-14 2017-03-28 Qualcomm Incorporated Systems and methods of executing multiple hypervisors using multiple sets of processors

Also Published As

Publication number Publication date
US20160321092A1 (en) 2016-11-03
US9804992B2 (en) 2017-10-31
TW201638777A (zh) 2016-11-01

Similar Documents

Publication Publication Date Title
TWI696919B (zh) 以輔助處理器記憶體進行儲存裝置的直接輸入輸出操作的計算系統操作方法、計算系統、車輛及電腦可讀媒體
TWI637613B (zh) 用於支援經由nvme將網路上的可擴展存放裝置作為本機存放區進行訪問的系統和方法
JP7220163B2 (ja) ハードウェア仮想化のための方法及び装置
US9696942B2 (en) Accessing remote storage devices using a local bus protocol
US20180121228A1 (en) Virtual machine monitor to i/o stack conduit in virtual real memory
TWI540511B (zh) 用以存取虛擬機器之電腦系統及方法
US20150261434A1 (en) Storage system and server
US20150012607A1 (en) Techniques to Replicate Data between Storage Servers
WO2013152593A1 (zh) 数据处理方法及装置
JP6040101B2 (ja) ストレージ装置の制御方法、ストレージ装置及び情報処理装置
US9336032B2 (en) Zoning data to a virtual machine
KR20210119529A (ko) 스토리지 장치 컨텐츠를 스트리밍하는 시스템들 및 방법들
US20140214997A1 (en) Method and device for data transmissions using rdma
US9418181B2 (en) Simulated input/output devices
JP2012242961A (ja) データ転送装置、データ送信システムおよびデータ送信方法
CN102096597A (zh) 使用管理引擎的虚拟总线设备
WO2013088283A2 (en) Memory sharing by processors
US8898444B1 (en) Techniques for providing a first computer system access to storage devices indirectly through a second computer system
CN103227825A (zh) 桌面一体机架构
US7930445B2 (en) Computer system using remote I/O and I/O data transfer method
JP6035715B2 (ja) コンピュータシステム、情報処理システム、仮想メディア方法、および、プログラム
US20220335109A1 (en) On-demand paging support for confidential computing
US20130007768A1 (en) Atomic operations on multi-socket platforms
WO2015090195A1 (zh) 操作系统实例创建方法及装置
JP6539874B2 (ja) デバイスサーバシステム