我是Xen的新手。我想知道Xen如何工作。 面对代码时这真的是一个难题,我不知道从哪里开始。 对我来说有一些简单的文章吗?从哪里入手Xen?
回答
这里有几个链接将引导你与ZEN启动up.Hope他们将是有益的。
既然你提到看代码,我假设你想了解的Xen的技术细节,而不是只知道一味如何启动虚拟机。
与所有问题一样,从简单的事情开始,然后按照自己的方式工作。一些指针:
一定要在你的腰带上有先决条件的经验。特别是强大的C和Linux亲和力,还有x86分页和虚拟内存工作。
确保您对一般Xen架构有完善的掌握。举例来说,准虚拟化与硬件支持的虚拟化,管理域(Dom0中)的特殊作用相比,无特权域(DomU中)等
调查Dom0中运行Xen的组件:
Xen控件库(libxc)它实现了与hypercalls有关的许多逻辑,并在这些附近添加了糖(请参阅
tools/libxc
)。瑞士军刀用于管理Xen的,即Xen的光库(libxl)。该库用
xl
工具替代已弃用的工具,并负责维护所有维护任务,如启动/停止VM,列出所有正在运行的VM等。对于所有这些操作,它都与上述libxc协同工作。 (Libxl生活在tools/libxl
中。)Xenstore是一个树形数据结构,所有运行的域可以从中检索和存储数据。这是必要的,因为所有I/O都通过Dom0(不是管理程序!),并且域需要与Dom0进行通信,他们将如何传递I/O。 (查看
tools/xenstore
。)您可以使用xenstore-ls
等工具检查Xenstore。其越过共享信道给VM的数据
blkback
/netback
内核驱动程序。 (您可以在最近的Linux内核(例如> = v3.0)中找到这些驱动程序,它具有所谓的PVOPS支持)。看看控制台守护进程(
tools/console
)。请注意,Qemu控制台有时实际使用。如果您为虚拟机选择文件支持的虚拟存储,Qemu也会作为默认后端出现在图片中。
尝试使用虚拟机间通信的“Xen的方式”:授权表,事件通道和Xenstore的。借助这些基础知识,您可以在虚拟机之间创建自己的共享通道。例如,您可以编写一个在两个域中使用的内核模块,让他们相互交流。
我也可以给源一些指针,你可以看看:
xen/xen/include/public/xen.h
会给你所有的超级调用与评论他们做什么的清单。xen/xen/include/xen/mm.h
为您介绍Xen使用的不同存储器术语(即实际与虚拟化地址和页码)。如果你没有掌握这些差异,那么阅读管理程序代码肯定会令人沮丧。xen/xen/include/asm-x86/config.h
概述了Xen的内存布局。xen/tools/libxc/xenctrl.h
导出一个有趣的域控制操作的大量列表,它给出了Dom0和管理程序之间的任务划分的抽象视图。
最后但并非最不重要的,这本书“权威指南Xen管理程序”由大卫Chisnall的高度推荐。它以全面的技术方式涵盖了所有这些主题,并提供了大量代码示例。
Xen wiki和开发者邮件列表也是理解Xen的一个很好的资源。
如果您有更具体的问题,那么我可以给你一个更具体的答案。
对于我来说,这是例子,一步步开始的最佳和更具体的教程。我开始使用它。
然后,您可以在Xen文档本身或某些书上阅读更多内容,但作为一个起点,您可以轻松安装和测试Xen,我从Debian Wiki中选择该教程。
如果你只是想要一个概述,你可以阅读:http://wiki.xenproject.org/wiki/Xen_Project_Beginners_Guide。
这将向您介绍Xen hypervisor,建议配置以设置虚拟机,提供有关网络的信息,并最终获得有关管理虚拟机的工具的详细信息。
本文档是专门让Xen的Ubuntu上(最重要的是,它的作品!) https://help.ubuntu.com/community/Xen
===
但是,如果你想要去到一个新的水平,并了解工作的Xen; Xen架构,内存管理,设备管理,CPU调度等,我建议您阅读本书“Xen Hypervisor权威指南”。
除了链接之外,您能否提供摘要? – rapvelopment 2014-12-14 21:42:51
- 1. 我从哪里入手rJava?
- 2. 我想学习J2ME,从哪里入手?
- 3. 模块从哪里导入?
- 4. Linq加入哪里?
- 5. 从哪里打盹弹出进入ScheduledNotification?
- 6. RenderPartial()从哪里进入ASP.Net 5 MVC 6?
- 7. ReactDOM应该从哪里导入?
- 8. environment.production从哪里来?
- 9. Toast从哪里来?
- 10. 从PHP到哪里?
- 11. 'default'从哪里来?
- 12. 从哪里选择
- 13. NSKVOPendingNotificationCreate从哪里来?
- 14. 'color_puts'从哪里来?
- 15. $行从哪里来?
- 16. 从哪里开始?
- 17. semver从哪里来?
- 18. 2px从哪里来?
- 19. - 从哪里开始?
- 20. Z_int从哪里来?
- 21. 从argwhere到哪里?
- 22. $ {filename}从哪里来?
- 23. Backbone.js - 在哪里定义视图助手?
- 24. 哪里有Rails助手可用?
- 25. C++的手册页在哪里?
- 26. Django:在哪里放置助手函数?
- 27. Rails - 在哪里放置路径助手?
- 28. 新手asm:呼叫代码在哪里?
- 29. 我在哪里添加'帮手'方法?
- 30. tcp:在哪里实施3way握手
嗨雨果。我正在寻找Xen控制库(libxc)的文档,然后来到这里。我无法获得任何体面的文档,甚至没有任何网上libxc的参考。你可以请我指点一下关于libxc的资源。谢谢 – abhi 2014-06-08 09:44:06