<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://www.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在線計算
    不會用哦 。。。?
    主站蜘蛛池模板: 日韩视频在线免费| 999国内精品永久免费观看| 国产免费观看黄AV片| 亚洲国产精品无码久久九九大片 | 亚洲中文字幕无码中文字在线| 相泽南亚洲一区二区在线播放| 免费观看毛片视频| 亚洲变态另类一区二区三区| 国产高清免费的视频| 国产成人 亚洲欧洲| 2022中文字字幕久亚洲| 黄色视频在线免费观看| 亚洲成AV人片在线观看无| 在线观看免费av网站| 亚洲精品第一国产综合野| 免费涩涩在线视频网| 猫咪免费人成网站在线观看入口| 亚洲人成电影网站国产精品| 国产午夜精品免费一区二区三区 | 国产亚洲情侣一区二区无码AV| 国产免费牲交视频免费播放| 亚洲国产AV无码专区亚洲AV| 8090在线观看免费观看| 亚洲欧美国产国产一区二区三区 | 国产不卡免费视频| 中文字幕无码免费久久9一区9 | 一级毛片a女人刺激视频免费 | 成人一a毛片免费视频| 精品国产亚洲一区二区三区在线观看 | 在线观看AV片永久免费| 色噜噜的亚洲男人的天堂| 国内精品99亚洲免费高清| 国产92成人精品视频免费| 国产精品久久久久久亚洲小说| 亚洲精品无码久久久影院相关影片| 久操视频在线免费观看| 亚洲色大成网站www尤物| 中文字幕在线亚洲精品| 国产在线a免费观看| 国产伦精品一区二区免费| 99人中文字幕亚洲区|