乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      深入學(xué)習(xí)Xen新起點 全面介紹Xen虛擬機(jī)...

       accesine 2005-09-06
      您的位置:CSDN 首頁 -> 新聞頻道 -> 正文
      深入學(xué)習(xí)Xen新起點 全面介紹Xen虛擬機(jī)
           

          Xen VMMvirtual machine monitor)是由劍橋大學(xué)計算機(jī)實驗室開發(fā)的一個開源項目,它能夠讓我們創(chuàng)建更多的虛擬機(jī),每一個虛擬機(jī)都是運行在同一個操作系統(tǒng)上的實例。
         
      這些客戶OS可以是修補(bǔ)過的Linux內(nèi)核2.42.6,也可以是修補(bǔ)過的NetBSD/FreeBSD內(nèi)核。用戶應(yīng)用程序就運行在這些客戶OS上,并不需要修改任何代碼。

         
      我曾經(jīng)緊密跟蹤Xen項目一年多。對Xen產(chǎn)生興趣是在讀了2004年的OLSOttawa Linux Symposium)論文集之后。

         
      完全虛擬化已經(jīng)被一些硬件仿真程序?qū)崿F(xiàn)了。硬件仿真器的不利因素是它們的性能。

          Xen
      項目(半虛擬化)的思想已經(jīng)不是很新鮮了。性能度量和它達(dá)到的高效性,能夠被看作是一個突破,運行Xen的系統(tǒng)開銷確實非常小,大約占3%。

         
      就像剛才所說的那樣,現(xiàn)在的Xen要為內(nèi)核打補(bǔ)丁,但是,將來的處理器能支持虛擬化,內(nèi)核也就不需要打補(bǔ)丁了。比如說,IntelVTAMDPacifica處理器都將包括這種支持。

          XenSource
      公司20058月在Intel開發(fā)者論壇(IDF)上發(fā)表聲明說,它已經(jīng)利用IntelVT-Enabled平臺和Xen技術(shù)虛擬化了LinuxWindows XP SP 2。

         
      如果沒有其它虛擬化方法的話,IntelVTAMDPacifica將會在對Xen的支持上展開競爭。

         
      同時參與競爭的還有VMWare公司的ESX Server,它不是基于Xen的虛擬化解決方案。VMWare公司20058月初聲明,他將通過一個叫VMware Community Source的計劃允許他的合作伙伴使用VMware ESX Server的源代碼和接口。

          VMware
      的一個顯著優(yōu)勢就是它不需要在客戶OS上打補(bǔ)丁。VMware可能比Xen運行地慢一些,因為它使用影子頁表(shadow page tables),而Xen同時使用直接和影子頁表。

           Xen
      已經(jīng)在像Fedora Core 4、DebianSuSE Professional 9.3這些產(chǎn)品中捆綁發(fā)行了,它也將被包含在RHEL 5中。

         
      針對其它處理器的支持正在有條不紊地進(jìn)行著。Xen小組致力于x86_64 port,同時IBM著手于提供Power 5芯片的支持。

       保護(hù)環(huán)
         
      Xen中,一個系統(tǒng)管理程序運行在0環(huán),客戶OS運行在1環(huán),應(yīng)用程序運行在3環(huán)。這種關(guān)系對于x64/64有一點不同,就是客戶內(nèi)核和應(yīng)用程序都運行在3環(huán)上。
          Xen
      自身被稱為系統(tǒng)管理程序,是因為它比客戶OS的系統(tǒng)管理代碼運行所需的特權(quán)級還高。

      當(dāng)系統(tǒng)引導(dǎo)的時候,Xen被裝載到0環(huán)的內(nèi)存中。它在1環(huán)上啟動修補(bǔ)過的內(nèi)核,這被稱作是domain 0(譯者注:domain是指一個運行中的虛擬機(jī),在其上有一個guest OS在執(zhí)行)。從這個domain開始,你可以創(chuàng)建更多的domain,也可以銷毀它們,可以進(jìn)行domain的遷移、設(shè)置參數(shù)等等。你創(chuàng)建的那些domain也運行在1環(huán)它們的內(nèi)核中。用戶應(yīng)用程序運行在3環(huán)。

      目前,修補(bǔ)過的Linux內(nèi)核2.42.6可以作為domain 0。據(jù)Xen開發(fā)者所說,將來domain 0僅支持2.6的內(nèi)核補(bǔ)丁。構(gòu)造domain 0的大部分工作是在xen/arch/x86/domain_build.c中的construct_dom0()方法中實現(xiàn)的。
         
      物理設(shè)備驅(qū)動程序只能運行在特權(quán)級,也就是domain 0上。Xen依靠Linux或其它修補(bǔ)過的OS內(nèi)核對它所有的設(shè)備提供虛擬化支持。這樣的好處就是Xen的開發(fā)者不必再去開發(fā)設(shè)備驅(qū)動程序。

         
      在一個有標(biāo)簽TLB的處理器上使用Xen能夠大大提高性能。標(biāo)簽TLB能夠把ASIDaddress space identifier)放在TLB入口處。有了這個特性,當(dāng)處理器在系統(tǒng)管理程序和客戶OS之間切換時就不需要刷新TLB了,這大大減少了系統(tǒng)開銷。

      Xend Deamon
         
      首先,我們介紹一下Xend,它是Xen控制器daemon,意思是說它負(fù)責(zé)處理創(chuàng)建、銷毀、遷移以及其它許多domain管理的任務(wù)。它很大一部分動作是基于一個HTTP服務(wù)器的。大量對domain的控制請求都是通過發(fā)送HTTP請求來實現(xiàn)的。
         
      我們在引導(dǎo)進(jìn)入Xen后通過命令行命令xend start來啟動Xend daemon。它需要Python2.3的支持。

          Xend daemon
      的工作是建立在與XCS serverthe control Switch)的交互上。所以,當(dāng)我們啟動Xend daemon時,需要檢查一下XCS是否已經(jīng)啟動和運行了。如果沒有,我們將試著去啟動它。

          Srv Daemon
      Xend的主要程序,啟動Xend daemon就會創(chuàng)建一個Srv Daemon類的實例。

         
      接下來在createFactories()方法中創(chuàng)建一個Channel Factory。Channel Factory有一個隱含的notifier對象。Xend daemon的大量工作都是基于這個notifier接收的消息的。這個factory創(chuàng)建一個線程,在一個無限循環(huán)中讀取這個notifier
       
          
      創(chuàng)建domain

         
      創(chuàng)建一個domain是通過使用一個hypercallDOM0_CREATEDOMAIN)來完成的。HypercallLinux內(nèi)核中的一個系統(tǒng)調(diào)用,通過它,用戶空間可以調(diào)用內(nèi)核中的方法,它通過一個中斷(Int 0x80)來完成。在Xen中,類似的系統(tǒng)調(diào)用就是hypervisor,通過它,domain 0 調(diào)用hypervisor中的方法,它也是通過中斷(Int 0x82)來完成的。hypervisor通過它的虛擬CPU訪問每一個domain

          XendDomain
      類和XendDomainInfo類在創(chuàng)建和銷毀domain中扮演著非常重要的角色。我們通過調(diào)用XendDomain中的domain_create()方法創(chuàng)建一個新的domain

          XendDomainInfo
      類和它的方法主要用于一個domain的實際構(gòu)造。

          XCS Server
          XCS server
      有兩個TCP套接字,分別是控制連接和數(shù)據(jù)連接,它們不同的地方在于前者是同步的,后者是異步的。前面提到的notifier對象,就是XCS服務(wù)器的一個客戶端。

      創(chuàng)建虛擬設(shè)備
          XendDomainInfo
      中的create()方法啟動一個創(chuàng)建domain的動作鏈。首先被創(chuàng)建的是這個domain的虛擬設(shè)備。這個create()方法調(diào)用create_blkif()創(chuàng)建一個塊設(shè)備接口(blkif),即使VM不需要磁盤它也是必須被創(chuàng)建的。另一個虛擬設(shè)備通過create_configured_devices()創(chuàng)建。
         
      所有的設(shè)備類都從Dev繼承,Dev是一個聯(lián)系設(shè)備控制器的抽象類。它的attach()抽象方法在每一個Dev類的子類中實現(xiàn),這個方法把前端和后端聯(lián)系了起來。

          Domain 0運行后端驅(qū)動,同時最新創(chuàng)建domain運行前端驅(qū)動。許多消息在后端和前端驅(qū)動之間傳送。前端驅(qū)動感覺上是虛擬的,它不需要使用特定硬件的詳細(xì)信息。
         
      聯(lián)系虛擬設(shè)備的中斷是虛擬中斷。


         
      結(jié)論

          Xen
      項目是一個很有趣同時充滿了希望的項目。它的代碼很復(fù)雜,特別是虛擬內(nèi)存管理、活動域合并工具和授權(quán)表機(jī)制。本文僅僅是介紹性的,并不涉及這些話題。然而,我希望它能夠成為想要了解和深入研究代碼的一個出發(fā)點。

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多