<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 403, comments - 310, trackbacks - 0, articles - 7
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Xen Notes [1]

    Posted on 2008-10-17 20:01 ZelluX 閱讀(1436) 評論(6)  編輯  收藏 所屬分類: SystemLaboratory
    09月 18, 2008
    第一個testkernel在Xen中的載入

    The Definitive Guide to Xen中第二章的例子,make成功后運行xen create domain_config,報錯
    Error: (2, ‘Invalid kernel’, ‘xc_dom_compat_check: guest type xen-3.0-x86_32 not supported by xen kernel, sorry\n’)

    google之后發現是虛擬機類型設置的問題,運行xm info可以看到
    xen_caps : xen-3.0-x86_32p
    末尾的p表示Xen內核開啟了PAE模式,所以載入的kernel也必須開啟PAE,在bootstrap.x86_32.S中加入PAE=yes選項即可。

    09月 25, 2008
    DomainU中調用do_console_io

    The Definitive Guide to Xen第二章的Exercise,通過調用hypercall page中的console_io項輸出Hello World。

    void?start_kernel(start_info_t?*?start_info)
    {
    ????HYPERVISOR_console_io(CONSOLEIO_write,
    12,"Hello?World\n");
    ????
    while(1);
    }


    但是默認選項編譯和啟動的Xen是不會保留DomainU中輸出的信息。參考drivers/char/console.c,可以看到主要有兩個選項控制了DomainU的do_console_io輸出:

    #ifndef?VERBOSE
    ????
    /*?Only?domain?0?may?access?the?emergency?console.?*/
    ????
    if?(?current-&gt;domain-&gt;domain_id?!=?0?)
    ????????
    return?-EPERM;
    #endif

    if?(?opt_console_to_ring?)
    {
    ????
    for?(?kptr?=?kbuf;?*kptr?!=?'\0';?kptr++?)
    ????????putchar_console_ring(
    *kptr);
    ????send_guest_global_virq(dom0,?VIRQ_CON_RING);
    }


    VERBOSE選項可以在編譯Xen的時候開啟debug選項,而opt_console_to_ring則是一個啟動選項,在grub的啟動選項中增加loglvl=all guest_loglvl=all console_to_ring即可。

    重啟Xen后就能通過xm dmesg看到Hello World了。

    09月 25, 2008
    Xen: Remove support for non-PAE 32-bit

    看來我還是用Xen 3.1吧 = =

    Subject: [Xen-devel] [PATCH] xen: remove support for non-PAE 32-bitLink to this message
    From: Jeremy Fitzhardinge (jer…@goop.org)
    Date: 05/09/2008 04:05:34 AM
    List: com.xensource.lists.xen-devel

    Non-PAE operation has been deprecated in Xen for a while, and is rarely tested or used. xen-unstable has now officially dropped non-PAE support. Since Xen/pvops’ non-PAE support has also been broken for a while, we may as well completely drop it altogether.

    10月 07, 2008
    IA-32 Memory Virtualization
    http://www.intel.com/technology/itj/2006/v10i3/3-xen/4-extending-with-intel-vt.htm
    o_figure_3.gif
    上圖為full virtulization的情況,即不修改Guest OS的行為時的解決方案。Xen為每個Guest OS維護了一張shadow page table,其中映射的地址為machine address。一種比較高效的方案是設置Guest OS的page table為只讀,當Guest OS試圖修改這個虛擬頁表時,發生page fault被Xen截獲,Xen修改shadow page table中相應的數據(把pseudo-physical address轉化成machine address)。另外一個優化是guest page table被修改時不修改shadow page table,只是把它放到一個待更新列表中,等Guest OS執行了刷新tlb的指令后再一次性更新。

    The Definitive Guide to Xen上還提到了另一種基于full paravirtulization和shadow page table之間的方案。Xen把Guest OS的page table置為只讀,當Guest OS試圖修改page table時,Xen捕獲到page fault,把page directory中對應的入口置為無效,再把page table改成可寫讓Guest OS修改。由于page directory中對應的入口被設成無效了,下次訪問該地址時還是會發生page fault,這時候Xen再修改page directory和page table的對應項就行了。

    這種方法意味著Guest OS中內核管理模塊直接和machine address打交道,而其他部分則仍然使用pseudo-physical address。另外這種情況下page directory不能被Guest OS修改。

    另外Xen還用到了段機制,用來為Xen保留地址空間開始的64M內存。

    評論

    # re: Xen Notes [1]  回復  更多評論   

    2008-11-05 21:24 by kevinlee
    good,
    正好也在對這本書 但是開始是 kernel not exist
    后來是 版本問題 要3.0
    最后是 就找你這來了

    # re: Xen Notes [1]  回復  更多評論   

    2008-11-19 13:33 by rubisva
    The Definitive Guide to Xen中第二章的例子,make成功后運行xen create domain_config,報錯
    Error: (2, ‘Invalid kernel’, ‘xc_dom_compat_check: guest type xen-3.0-x86_32 not supported by xen kernel, sorry\n’)

    google之后發現是虛擬機類型設置的問題,運行xm info可以看到
    xen_caps : xen-3.0-x86_32p
    末尾的p表示Xen內核開啟了PAE模式,所以載入的kernel也必須開啟PAE,在bootstrap.x86_32.S中加入PAE=yes選項即可。

    請問bootstrap.x86_32.S該怎么加?

    # re: Xen Notes [1]  回復  更多評論   

    2008-11-25 10:44 by ZelluX
    @rubisva
    就是加一行PAE=yes呀

    # re: Xen Notes [1]  回復  更多評論   

    2009-06-24 20:40 by 李振濤
    關于第二章的小例子。請問怎么開啟debug選項

    # re: Xen Notes [1]  回復  更多評論   

    2009-07-09 07:39 by 深不可測
    大家誰知道使用hypercall 怎么打印hello,world?

    http://m.tkk7.com/zellux/archive/2008/10/17/235056.html
    中提到xen編譯為debug版本,同時在grub中加入loglvl=all guest_loglvl=all console_to_ring引導選項,然后通過xm dmesg就可以看到hello world。
    我這樣做了,還是沒有看到hello,world啊
    start_kernel代碼:
    void start_kernel(start_info_t * start_info)
    {
    HYPERVISOR_console_io(CONSOLEIO_write,12,"Hello World\n");
    while(1);
    }


    QQ: 282134493
    email 282134493@qq.com

    # re: Xen Notes [1]  回復  更多評論   

    2011-02-22 10:40 by 126在線計算
    不會用哦 。。。?
    主站蜘蛛池模板: 国产美女精品视频免费观看 | 亚洲AV无码男人的天堂| 精品一区二区三区免费毛片爱| 亚洲色欲久久久综合网| 中文字幕手机在线免费看电影| 亚洲国产精品视频| 中文字幕a∨在线乱码免费看| 亚洲国产精品自在自线观看| 国产免费小视频在线观看| 中国一级全黄的免费观看| 99亚洲乱人伦aⅴ精品| 亚洲国产精品特色大片观看完整版| 最近免费中文字幕中文高清 | 国产精品午夜免费观看网站| 国产亚洲综合久久系列| 精品国产污污免费网站aⅴ| 亚洲一区欧洲一区| 在线永久免费观看黄网站| 国产特黄一级一片免费| 亚洲一卡2卡3卡4卡国产网站| 国产精品自在自线免费观看| 欧美日韩国产免费一区二区三区| 亚洲AV成人片无码网站| 亚洲欧美黑人猛交群| 国产亚洲成归v人片在线观看| 日韩精品内射视频免费观看| 亚洲人成自拍网站在线观看| 亚洲毛片无码专区亚洲乱| jizzjizz亚洲| 最刺激黄a大片免费网站| 久久久免费的精品| 亚洲AV无码成人网站在线观看| 亚洲午夜在线播放| 亚洲Av高清一区二区三区| 亚洲六月丁香六月婷婷蜜芽| 久久久久久亚洲精品不卡| 怡红院亚洲怡红院首页| 在线免费观看污网站| 国产成人免费ā片在线观看老同学| 亚洲精品456人成在线| 亚洲av无码无在线观看红杏|