易截截图软件、单文件、免安装、纯绿色、仅160KB

Virtio:针对 Linux 的 I/O 虚拟化框架

概而言之,virtio
是半虚拟化 hypervisor 中位于设备之上的抽象层。virtio
由 Rusty Russell 开发,他当时的目的是支持自己的虚拟化解决方案 lguest
。本文在开篇时介绍半虚拟化和模拟设备,然后探索 virtio
的细节。本文的重点是来自 2.6.30 内核发行版的 virtio
框架。
Linux 是 hypervisor 展台。如我的 剖析 Linux hypervisor
所述,Linux 提供各种 hypervisor 解决方案,这些解决方案都有自己的特点和优点。这些解决方案包括 Kernel-based Virtual Machine (KVM)、lguest
和 User-mode Linux 等。在 Linux 上配备这些不同的 hypervisor 解决方案会给操作系统带来负担,负担的大小取决于各个解决方案的需求。其中的一项开销为设备的虚拟化。virtio
并没有提供多种设备模拟机制(针对网络、块和其他驱动程序),而是为这些设备模拟提供一个通用的前端,从而标准化接口和增加代码的跨平台重用。
完全虚拟化和半虚拟化
加入 My developerWorks 上的绿色小组
在 My developerWorks 上的 GReen IT Report 空间
和 绿色计算小组
上讨论关于能源、效率和环境的主题并共享资源。
让我们快速讨论一下两种类型完全不同的虚拟化模式:完全虚拟化和半虚拟化。在完全虚拟化
中,来宾操作系统运行在位于物理机器上的 hypervisor 之上。来宾操作系统并不知道它已被虚拟化,并且不需要任何更改就可以在该配置下工作。相反,在半虚拟化
中,来宾操作系统不仅知道它运行在 hypervisor 之上,还包含让来宾操作系统更高效地过渡到 hypervisor 的代码(见 图 1
)。

完全虚拟化模式中,hypervisor
必须模拟设备硬件,它是在会话的最低级别进行模拟的(例如,网络驱动程序)。尽管在该抽象中模拟很干净,但它同时也是最低效、最复杂的。在半虚拟化模式
中,来宾操作系统和 hypervisor 能够共同合作,让模拟更加高效。半虚拟化方法的缺点是操作系统知道它被虚拟化,并且需要修改才能工作。


图 1. 在完全虚拟化和半虚拟化环境下的设备模拟

硬件随着虚拟化技术而不断改变。新的处理器通过纳入高级指令来让来宾操作系统到 hypervisor 的过渡更加高效。此外,硬件也随着输入/输出(I/O)虚拟化而不断改变(参见 参考资料
了解 Peripheral Controller Interconnect [PCI] passthrough 和 single- and
multi-root I/O 虚拟化)。
virtio 的替换者
virtio
并不是该领域中的唯一霸主。Xen 提供半


相关文档:

Linux多线程编程

一:Linux多线程编程:
        线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许 ......

Java调用Linux命令

Java可以直接调用Linux命令,形式如下:
 Runtime.getRuntime().exec(command)
 举例:运行ls,top命令可以这样:
 Runtime.getRuntime().exec("ls");
 但是这样执行时没有任何输出,原因: 
 调用Runtime.exec方法将产生一个本地的进程,并返回一个Process子类的实例,
(注意:Runtim ......

vmware下windows和linux文件共享的设置


 
 
来源: ChinaUnix博客  日期: 2007.10.08 13:29 (共有0条评论) 我要评论
 
一、必须先装vmware tools
1、以ROOT身份进入LINUX
2、按下 CTRL+ALT组合键,进入主操作系统,点击VMWARE状态栏安装提示,或者点击 SETTING菜单下的ENABLE VMWARE TOOLS子菜单。
3、确认安装VMWARE TOOLS。
&nbs ......

mysql 将表中数据导出 (linux)

今天遇到要导出数据库中表的数据。下面这个就可以搞定。。
#导出指定的表 #导出命令 -u用户名 -p密码 -h主机IP地址 数据库名 表名1 表名2 > 导出文件.sql
mysqldump -uroot -proot -h192.168.0.88 ok_db oktable1 oktable2 > ok_db.sql
另外在更改mysql密码时候,网上有些命令不对:
我用如下:set password=pas ......

linux 驱动mmap操作


三、VMA和PAGE结构 和mmap函数
 
1.page  主要成员
   atomic_t count; 
//这个页的引用数. 当这个 count 掉到 0, 这页被返回给空闲列表.
void *virtual; 
//如果页被映射,则表示这页的内核虚拟地址; 否则, NULL.
unsigned long flags; 
//描述页状态的一套位标志. 这些包括 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号