<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 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    Xen Notes [1]

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

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

    google之后發(fā)現(xiàn)是虛擬機(jī)類型設(shè)置的問(wèn)題,運(yùn)行xm info可以看到
    xen_caps : xen-3.0-x86_32p
    末尾的p表示Xen內(nèi)核開(kāi)啟了PAE模式,所以載入的kernel也必須開(kāi)啟PAE,在bootstrap.x86_32.S中加入PAE=yes選項(xiàng)即可。

    09月 25, 2008
    DomainU中調(diào)用do_console_io

    The Definitive Guide to Xen第二章的Exercise,通過(guò)調(diào)用hypercall page中的console_io項(xiàng)輸出Hello World。

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


    但是默認(rèn)選項(xiàng)編譯和啟動(dòng)的Xen是不會(huì)保留DomainU中輸出的信息。參考drivers/char/console.c,可以看到主要有兩個(gè)選項(xiàng)控制了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選項(xiàng)可以在編譯Xen的時(shí)候開(kāi)啟debug選項(xiàng),而opt_console_to_ring則是一個(gè)啟動(dòng)選項(xiàng),在grub的啟動(dòng)選項(xiàng)中增加loglvl=all guest_loglvl=all console_to_ring即可。

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

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

    看來(lái)我還是用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的行為時(shí)的解決方案。Xen為每個(gè)Guest OS維護(hù)了一張shadow page table,其中映射的地址為machine address。一種比較高效的方案是設(shè)置Guest OS的page table為只讀,當(dāng)Guest OS試圖修改這個(gè)虛擬頁(yè)表時(shí),發(fā)生page fault被Xen截獲,Xen修改shadow page table中相應(yīng)的數(shù)據(jù)(把pseudo-physical address轉(zhuǎn)化成machine address)。另外一個(gè)優(yōu)化是guest page table被修改時(shí)不修改shadow page table,只是把它放到一個(gè)待更新列表中,等Guest OS執(zhí)行了刷新tlb的指令后再一次性更新。

    The Definitive Guide to Xen上還提到了另一種基于full paravirtulization和shadow page table之間的方案。Xen把Guest OS的page table置為只讀,當(dāng)Guest OS試圖修改page table時(shí),Xen捕獲到page fault,把page directory中對(duì)應(yīng)的入口置為無(wú)效,再把page table改成可寫(xiě)讓Guest OS修改。由于page directory中對(duì)應(yīng)的入口被設(shè)成無(wú)效了,下次訪問(wèn)該地址時(shí)還是會(huì)發(fā)生page fault,這時(shí)候Xen再修改page directory和page table的對(duì)應(yīng)項(xiàng)就行了。

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

    另外Xen還用到了段機(jī)制,用來(lái)為Xen保留地址空間開(kāi)始的64M內(nèi)存。

    評(píng)論

    # re: Xen Notes [1]  回復(fù)  更多評(píng)論   

    2008-11-05 21:24 by kevinlee
    good,
    正好也在對(duì)這本書(shū) 但是開(kāi)始是 kernel not exist
    后來(lái)是 版本問(wèn)題 要3.0
    最后是 就找你這來(lái)了

    # re: Xen Notes [1]  回復(fù)  更多評(píng)論   

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

    google之后發(fā)現(xiàn)是虛擬機(jī)類型設(shè)置的問(wèn)題,運(yùn)行xm info可以看到
    xen_caps : xen-3.0-x86_32p
    末尾的p表示Xen內(nèi)核開(kāi)啟了PAE模式,所以載入的kernel也必須開(kāi)啟PAE,在bootstrap.x86_32.S中加入PAE=yes選項(xiàng)即可。

    請(qǐng)問(wèn)bootstrap.x86_32.S該怎么加?

    # re: Xen Notes [1]  回復(fù)  更多評(píng)論   

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

    # re: Xen Notes [1]  回復(fù)  更多評(píng)論   

    2009-06-24 20:40 by 李振濤
    關(guān)于第二章的小例子。請(qǐng)問(wèn)怎么開(kāi)啟debug選項(xiàng)

    # re: Xen Notes [1]  回復(fù)  更多評(píng)論   

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

    http://www.tkk7.com/zellux/archive/2008/10/17/235056.html
    中提到xen編譯為debug版本,同時(shí)在grub中加入loglvl=all guest_loglvl=all console_to_ring引導(dǎo)選項(xiàng),然后通過(guò)xm dmesg就可以看到hello world。
    我這樣做了,還是沒(méi)有看到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]  回復(fù)  更多評(píng)論   

    2011-02-22 10:40 by 126在線計(jì)算
    不會(huì)用哦 。。。?
    主站蜘蛛池模板: www.亚洲成在线| 毛片免费在线视频| 免费国产黄网站在线看| 久久水蜜桃亚洲av无码精品麻豆| 免费h黄肉动漫在线观看| 2021免费日韩视频网| 免费视频成人手机在线观看网址| 免费一级毛片在线播放视频免费观看永久 | AV大片在线无码永久免费| 国产在线观看xxxx免费| 美女被爆羞羞网站免费| 亚洲精品亚洲人成在线| 亚洲美女一区二区三区| 久久夜色精品国产亚洲AV动态图| 久久久久国产亚洲AV麻豆| va亚洲va日韩不卡在线观看| 日韩在线看片免费人成视频播放| 岛国av无码免费无禁网站| 亚洲免费在线视频播放| www视频免费看| 8x成人永久免费视频| 日韩精品人妻系列无码专区免费| 国产精品网站在线观看免费传媒| 国产99精品一区二区三区免费 | 国产免费69成人精品视频| 免费毛片网站在线观看| 女人18毛片免费观看| 四虎国产精品免费久久| 青青草a免费线观a| 成人免费AA片在线观看| 国产麻豆视频免费观看| 黄色网址免费观看| 噼里啪啦免费观看高清动漫4| 国产妇乱子伦视频免费| 在线视频精品免费| 久久久久久久久免费看无码| 99久久免费精品国产72精品九九 | 国产人成亚洲第一网站在线播放| 亚洲视频无码高清在线| 亚洲国产精品网站在线播放| 亚洲av最新在线观看网址|