Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1820099
  • 博文数量: 473
  • 博客积分: 13997
  • 博客等级: 上将
  • 技术积分: 5953
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-22 11:52
文章分类

全部博文(473)

文章存档

2014年(8)

2013年(38)

2012年(95)

2011年(181)

2010年(151)

分类: LINUX

2011-05-30 02:05:48

如果考虑自定义/定制一个基于XEN的OS,可能可能需要了解一下下面的内容:

XEN3.4.2编译安装后,在/xen-3.4.2/extras/下有一个mini-os,而在/xen-3.4.2/stubdom中一样是一个OS,需要了解各自原理及作用:

Mini-OS是跟随Xen hypervisor发布的一款小内核操作系统,目前有一些基于Mini-OS的应用:

1.HP实验室在2007年发布了基于Mini-OS的Xen Library OS;

Xen Library OS 是一个类虚拟化的操作系统,它由四部分组成:

  • 一个基于GNU工具链的cross-development环境
  • Red Hat的newlib C库
  • Mini-OS内核
  • 域间通信机制IDC,基于Xen共享内存和时间通道实现
Library OS使用Red Hat的newlib C库支持C程序。但需要修改newlib库以适应Library OS,比如一些函数fork、exec等都不能在新的目标体系结构中使用。 Library OS选择Mini-OS为其kernel,主要原因是Mini-OS有完善的支持Xen类虚拟化接口,Xen社区对其提供维护。 由于程序、库、内核都运行在一个地址空间中,所以Library OS适合运行小的可信服务,而不是一般的用户程序

Xen 3.0的vTPM驱动体系结构如图所示。所有的vTPM操作都有Domain0完成。



如图所示,vTPM的守护进程置于Domain0中,而vTPM的实际模拟器放入Library OS中,它们之间通过IDC联系。并且使用修改过的GNU工具链编译安装vTPM emulator。DomainU通过vTPM前段驱动将请求发往Domaoin0的后端驱动,vTPM的守护进程转发请求到Domain0的IDC,实际由Library OS处理请求

修改Domain0的vTPM守护进程大概花费了200行代码,而修改vTPM emulator更少于500行代码。

该结构的缺点是显而易见的,由于每个DomU都配属相应的Trust Dom,使得一些操作变得非常繁琐,比如虚拟域在线迁移等

2.2008年剑桥大学进一步完善了HP的工作,完成了HVM stubdom并置于Xen源码树中;

轻量级Xen Domain 保留了Library OS的所有特性,包括cross-development环境、newlib库和IDC机制,并优化部分环境,更适合HPC(High Performance Computing)应用。

轻量级Xen Domain的设计思想是将Mini-OS内核、C库、IP堆栈、执行环境和单个应用程序有机的整合在一起。在技术方面看,需要安装一个plain ELF cross-compilation chain,即以plain ELF为目标建立可交叉编译的binutils和gcc。然后用交叉编译工具编译和安装各种C库,它们和Mini-OS有同样的内核C flag。

LwIP提供了一个轻量级的TCP/IP协议栈,它与Mini-OS中的Network frontend相连接。Newlib提供了一个标准C库,它比庞大的GNU libc更适用于轻量级环境。但需要修改部分newlib的系统调用:

?Mini-OS没有传统UNIX进程概念,getpid及其相似函数只输出某特定值,比如1
?Mini-OS没有使用信号,可以忽略各种sig函数
?适当修改的函数:
1.Sleep和gettimeofday必须小心的设计,使其符合虚拟化应用
2.Mmap只负责处理匿名内存(anonymous memory),而不用实现映射普通文件和为无关联的进程提供共享空间的功能。
该系统还实现了一个瘦虚拟文件层(thin virtual file layer),它对控制台、文件、块设备、网络设备以及TCP/IP协议函数提供统一的支持。实现思想是依靠文件描述符识别目标文件的类型,然后将操作重定向到Mini-OS的各个前端驱动或者内核模块的底层函数上。

轻量级Xen Domain的进程调度完全依靠Mini-OS实现。Mini-OS提供非抢占式的多线程,并且目前只支持单虚拟CPU。这些线程由一个运行队列维护,它们之间没有优先权的差异。Mini-OS的内核也不需要支持任何自旋锁机制。 在内存管理方面借鉴了HPC(High Performance Computer)常用的sparse data机制,提供内存读写效率。

为提高读写磁盘的效率,应用了类似“零拷贝”的技术,IO操作不再由缓冲区缓冲。这意味着应用程序可以直接控制各种磁盘操作,不经过Mini-OS缓冲.

(续上篇)关于stumdom:轻量级XEN Domain的应用

剑桥团队应用该轻量级Xen Domain将 qemu移到一个单独的驱动域中。由于Mini-OS调度非常简单并且只运行qemu一个程序,大大简化了hypervisor的调度和审计工作。在 stubdom 中,qemu可以直接调用系统服务,不需要经过用户、内核两态的转换,提高了效率。


3.伊利诺伊大学芝加哥分校(UIC)正致力于开发一款基于Mini-OS的小内核系统—Ethos。

Ethos 是UIC(University of Illinois at Chicago)正在开发的一款基于Xen和Mini-OS的轻量级操作系统。它开发的初衷是为了避免开发驱动程序、文件系统和网络设备。Ethos做为一个内核,只向外提供进程和系统调用接口。该项目的负责人Prof. Solworth称其为"Paired-OS"


引用原文地址:http://blog.csdn.net/tinnycloud/archive/2010/07/17/5742596.aspx

阅读(1048) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~