Java知识

1) 进制转换
整数进制转换:
10进制转换成其他的都是除以要转换成的那个数,也就是说转换成二进制的就除以2,转换成八进制的就除以8,转换成十六进制的就除以16,然后倒取余数。具体例题如下
10—2:把20转换成二进制
20/2=10……….余数为0
10/2=5………..余数为0
5/2=2…………余数为1
2/2=1…………余数为0
1/2=0…………余数为1
则20换成二进制后是10100
10—8:把20转换成八进制
20/8=2………..余数为4
2/8=0…………余数为2
则20转换成八进制后是24
10—16:把20转换成十六进制
20/16=1……….余数为4
1/16=0………..余数为1
则20转换成十六进制后是14

2—10:把二进制数1101转换成十进制
1101=1*2的0次方+0*2的1次方+1*2的2次方+1*2的3次方=13
则1101变成十进制后是13
8—10:把八进制数1340转换成十进制
1340=0*8的0次方+4*8的1次方+3*8的2次方+1*8的3次方=736
则1340变成十进制后是736
16—10:把十六进制数3A4F转换成十进制
3A4F=15*16的0次方+4*16的1次方+10*16的2次方+3*16的3次方=14927
(十六进制中的A是10,F是15)
二进制与八进制的相互转换:
八进制数 0 1 2 3 4 5 6 7
二进制数 000 001 010 011 100 101 110 111
二进制与十六进制的相互转换:
十六进制 0 1 2 3 4 5 6 7 B
二进制数 0000 0001 0010 0011 0100 0101 0110 0111 1011
十进制小数进制转换:
用的通俗易懂的说法:用这个小数不断乘2,直到这个小数变为整数后,然后这个整数就转为二进制了,接着,刚才乘了几次2,你就把这个二进制的小数点像坐移几位即可
例:0.75
0.75X2=1.5
1.5X2=3
得到整数3,现在把3转为二进制,如下:
3(10)=》11(2)
得到二进制数:11
因为刚才乘了2次“2”,所以小数像左易懂2位,最终结果:0.11
有些小数乘2是永得不到整数的,那就看他要求的精度,假如要求保留3位小数,则乘3次“2”即可,后面的小数可以无视,直接拿直面的整数部分转为二进制,再向左移3位.
如此类推….
2) java基础数据类型
实数:double、float
整数:byte、short、int、long
字符:char
布尔值:boolean
int:int为整数类型,在存储的时候,用4个字节存储,范围为-2,147,483,648到2,147,483,647,在变量初始化的时候,int类型的默认值为0。
short:short也属于整数类型,在存储的时候,用2个字节存储,范围为-32,768到32,767,在变量初始化的时候,short类型的默认值为0,一般情况下,因为Java本身转型的原因,可以直接写为0。
long:long也属于整数类型,在存储的时候,用8个字节存储,范围为-9,223,372,036,854,775,808到9,223,372,036, 854,775,807,在变量初始化的时候,long类型的默认值为0L或0l,也可直接写为0。
byte:byte同样属于整数类型,在存储的时候,用1个字节来存储,范围为-128到127,在变量初始化的时候,byte类型的默认值也为0。
float:float属于实数类型,在存储的时候,用4个字节来存储,范围为32位IEEEE 754单精度范围,在变量初始化的时候,float的默认值为0.0f或0.0F,在初始化的时候可以写0.0。
double:double同样属于实数类型,在存储的时候,用8个字节来存储,范围为64位IEEE 754双精度范围,在变量初始化的时候,double的默认值为0.0。
char:char属于字符类型,在存储的时候用2个字节来存储,因为Java本身的字符集不是用ASCII码来进行存储,是使用的16位Unicode字符集,它的字符范围即是Unicode的字符范围,在变量初始化的时候,char类型的默认值为’u0000’。
boolean:boolean属于布尔类型,在存储的时候不使用字节,仅仅使用1位来存储,范围仅仅为0和1,其字面量为true和false,而boolean变量在初始化的时候变量的默认值为false。

java基础数据类型

java基础数据类型


3) 类、接口、抽象类(需要继续深入推敲和理解)
大家也许都知道做工艺器或是工厂里做生产某些产品的模具模具。如做一个金属的五角星,只要将钢水罐到五角星的模具模具里就可以很容易地制做五角星。
我们也可以将类比喻成做五角星的模具。 而生产出的一个个五角星就是一个个对象。 为了建立不同的对象(有的是金属的、有的塑料的,等等),可通过向模具里灌入不同的液态材料就可以制做。这也相当于向类的构造方法中传入不同的参数(相当于不同的液态材料)。
还有就是接口,如果说类是对象的抽象,那么接口就是类的抽象。
我们也可以将接口看成是制做这个五角星模具的规格列表(相当于接口中的抽象方法)。也就是说,只有这个模具(类)符合(实现)相应的规格(接口),才会成为制做五角星的模具模具。
哈哈,当然,这个使用模具生成五角星及其他产品的工厂可以看成是对象工厂。
也就是说,类和接口都不是实际的产品,都不能拿来用,类相当于模具(没人会拿模具模具在商店里卖吧,估计只有对象工厂会买),而接口只相当于制做模具的规格列表,如尺寸、角度等。而这些规格列表的内容需要在具体类中实现才可能成为具体的模具,如长度和宽度,如果在类中实现为长度等于宽度,那么这个类就成为一个成方形的模具,如果长度不等于宽度,就是一个长方形的模具。然后再实例化这个模具(类),就生成出一个个正方形或长方形对象。
在面向对象理论中还有一个抽象类,这个抽象类其实就相当于一个半成品的模具。如只实现在长度和宽度(相当于在抽象类中已实现的方法),并没有实现深度(这个深度相当于抽象类中的抽象方法,这个抽象方法需要在抽象类的子类中实现)。所以这个模具就是半成品了。因此,是无法直接拿半成品的模具(抽象类)去生产(实例化)产品(对象)的。

月上也有大数据 超级计算机未来或登月

月球上要搭建超级计算机?虽然这听起来有点很荒谬,但美国南加州大学的研究生们认为这很有必要,因为他们觉得这将有助于缓解未来深空网络堵塞,而这也正是NASA科学家所担心的。
Ouliang Chang在几周前召开的航空空间会议上提出了在月球上建超级计算机的想法。这个计划准备在月球的背面,也就是远离地球和电磁的那一面的陨石坑中埋藏一个巨型计算机,这样利用核动力的计算机就可以处理空间任务数据,同时也将远离地球的深空网络带入了一个以月球为中心的时代。
南加州大学工程学院Ouliang Chang的课程主管Madhu Thangavelu称,一旦物理基础主干网建设完成,它一定很像某个庞然大物的挖掘现场。
深空网络是由位于美国、澳大利亚和西班牙的13个巨大天线组成,它负责收集数据并与外太空的航天器通信。由于太空任务中大多数的数据都要传回地球进行处理,这个网络带宽早已超负荷运转。Ouliang Chang称,如果在月球上建立这么一个超级计算机,那么这一局面将随之发生改变。
在Ouliang Chang的计划中,超级计算机将运行于月球两极的寒冷地区,因为寒冷的温度不仅可以让超级计算机的冷却变得更容易,同时也便于使用超高效的超导材料来传输电力。虽然现在还不清楚月球两极有多少水,但Ouliang Chang已设想这将是一个水冷式超级计算机。
那么建造这个超级计算机需要多少钱呢?Ouliang Chang和Madhu Thangavelu称,如果不介意建设费用的话,按照一磅材料5万美元的价格运到月球,同时再算上挖掘成本、超级计算机、冷却系统和核能发动机,这个项目整体耗费将达到100亿到200亿美元,因此哪一天倘若真的建成,那么这个月球基地将会是有史以来建造的最昂贵的超级计算机。
建成后的月球电脑将可以和宇宙飞船、地球通信协作,能够将可操作方向的天线悬浮在月球陨石坑上,给离开地球的深太空网络第二个聚焦点。
为什么需要超级计算机在月球上
NASA的一些人早就意识到未来深空网络将会出现信息堵塞的情况,在2006年初,该机构的顶级网络专家曾警告称,未来三十年里航天器的数量至少增加一倍,对数据的需求也将会有数量级的增长。
因此太空科学家们担心现有的深空网络硬件届时会太过时,同时也胜任不了地球外数据传输日益增长的需求。科学家们称,美国太空总署不得不寻找一个计划。
事实上,Ouliang Chang并不是第一个提出将大数据处理设备放在月球上的人,早在2004年,航天系统的研究人员就提出月球数据缓存——外星备援系统,这个系统将使企业在发生类似911恐怖袭击之后能够保持通信能力,同时研究人员还想出了一些赚钱想法,比如月球车部署广告牌等。
尽管如此,Ouliang Chang的想法被《新科学家》报道后,引起航天界的兴趣,因为它解决了一个非常现实而又迫切的空间问题。南加州大学Madhu Thangavelu称,这个想法不仅激发了政策制定者的灵感,同时也给了月球未来一个非常清晰的定位和使命。
系统工程师、NASA格伦研究中心管理人员Kul Bhasin称,虽然月球部署超级计算机看起来非常遥远,但Ouliang Chang的想法激发了更多的灵感。从事于先进外太空网络技术研究的Kul Bhasin还称,其实还有另外一些不错的选择——基于激光的网络通信技术,它可突破深空网络的瓶颈。
此外,麻省理工学院的林肯实验室研究人员明年也将测试一个每秒622M的激光网络,这将使地球和月亮之间的通信能力提高五倍。
最后:值得一提的是,对于Ouliang Chang而言,在月球上部署超级计算机是自然而然产生的想法,因为他是一名超级计算的极客,据他称,他只是把两个流行的概念——太空探索和云计算联系在一起而已。

福布斯:大数据或因提前成为行业标准而消亡

据美国《福布斯》网站刊登网络性能管理软件提供商SevOne首席执行官迈克·费伦(Mike Phelan)的文章称,“大数据”(Big Data)或将因为提前成为行业标准而迅速消亡。一旦“大数据”变成“普通数据”(Any Data),届时的市场赢家无疑都是较早关注数据收购、分析、存储、分享和具体化方法的公司。
以下是文章内容全文:
在科技产业,热门词汇出现和消失的频率非常高,堪比政治宣传活动媒体每周热词的更新频率。然而,与其他多数热门词不同的是,“大数据”(Big Data)的受追捧程度却一直保持了数年之久。如果不能成为科技产业今年的流行词的话,“大数据”至少已经成为第三季度的热词。从事或拥有“大数据”业务的公司都在击鼓相庆,而那些不从事或没有“大数据”业务的公司也都坚持认为,他们即将拥有“大数据”;或者由于业务重点不同,他们并不需要“大数据”。
然而,似乎没有人表示或意识到,“大数据”时代的末日即将临近,或许还剩几年甚至是几个月的时间。当然,我们也得为此做好准备。
何为“大数据”
如果你还对这个科技产业热词不太熟悉的话,我可以告诉你,“大数据”就是指一套大型且复杂的数据集合体。我们很难用常规数据库和工具来处理“大数据”。由于自身数量庞大,“大数据”难以被捕捉、存储、搜索、分享、分析和具体化。近几年“大数据”的出现和流行要在很大程度上得益于市场上陆续推出的大量数据发生和数据消费产品,包括移动设备、追踪系统、无线射频识别技术(RFID)、传感网络、社交网络、互联网搜索、自动记录系统、视频档案、电子商务等等;此外,还要算上分析所有这些信息所产生的额外信息,而这些信息又会创建出另外一套庞大的数据组。
追逐“大数据”业务的公司看重的则是“大数据”在确定商业趋势、改进研究质量、获得各个产业深入见解等方面所具有的相关性。
那为什么在信息科学领域如此有用的发展趋势却可能会很快消亡呢?
“大数据”的规模总是在变化,但往往都是每年递增。“大数据”在2012年的规模就已经从年初的数十TB(1TB=1,024GB)增长到现在的数PB(1PB=1,024TB)。那又为何增长如此之快呢?举一个简单的例子,据媒体报道,Facebook用户在该网站上张贴出来的照片已达400亿张。而我敢打赌,苹果迷们会疯狂地使用iPhone 5拍摄新的照片,然后使用Siri语音功能就可以将照片直接发到Facebook上。
尽管数据正在以史无前例的速度增长,但该是为“大数据”送上吊唁卡的时间了。
提前成为行业标准
在2012年7月,权威市场研究机构Gartner发布了第一份专为大数据撰写的调查报告《Hype Cycle for Big Data, 2012》。在这份专业报告中,Gartner认为,由于是被“炒作出来的概念”,“大数据”这个热词不会流行很长时间。Gartner指出:“在其他热词的炒作过程中,相关市场研究机构都会每年出版一份流行报告。但我们认为,在未来两到三年里,“大数据”的新来源和新类型都可能遇到困境,而新增数据也将成为‘未知数’。只有宣传才能促进炒作循环(Hype Cycle)。”
2012年9月,在谈到商业数据和消费者网络数据的流量、速度和种类问题时,美国著名投行摩根士丹利(Morgan Stanley)坚持认为,与“大数据”趋势背道而驰的是,“在数据管理方面,我们现在所经历的变化趋势更多是给予用户用于存储和分析任何数据组所需的技术,随时随地为任何类型的用户提供任何类型和大小的数据。”
另一权威市场研究机构IDC预计,在未来十年里,由企业管理的数据量将增长50%,而95%的新增数据都是多重结构数据,其年增速要远远超过结构数据的年增速。摩根士丹利也在报告中坚持认为,“大数据”很快就会变成“普通数据”(Any Data)。摩根士丹利指出:“基于IDC公布的IT市场规模,到2015年,全球数据市场相关支出将增长至1,150亿美元。”
我们对以上相关报告的解读是:“大数据”很快就会变成行业标准。这一发展趋势已经无可争议,在未来不到三年的时间里,大型数据组将非常普遍,只有那些远低于这一行业标准的数据公司才会使用“大数据”这一概念来标示他们的数据库资源。
市场赢家
“大数据”概念存在的最大问题就是对“大”的定义。各大公司都在为应对现有的大流量数据而投入巨资,IT产业的一些专业部门也正在为如何处理庞大的信息量而设计解决方案。摩根士丹利在报告中指出,与中小型企业相比,大型企业管理的平均数据量是前者的20多倍;50%的大型企业都有“大数据”管理项目,而拥有“大数据”管理项目的中小型企业比例仅为20%。换句话说,企业仍处于管理当今大流量数据的发展初级阶段。
一旦“大数据”变成“普通数据”,而且每家公司都找到了处理和使用现有大量数据的方法,我们就会很容易发现该市场的赢家。他们无疑都是较早关注数据收购、分析、存储、分享和具体化方法的公司。他们可能不会是那些为了应对“大数据”概念走俏而进行自我转型后的公司,而是那些从一开始就从事大规模数据处理和分析的公司。
警惕变成热词奴隶
以下是我们的一点忠告:接受“大数据”将很快成为行业标准的现实,并且谨记没有人能给行业标准贴上标签。你可以在午饭时与他人讨论时下的科技热词,但当你真正进入公司会议室后,你就该把注意力放在那些能够帮你处理任何规模数据的公司身上。
如果能够处理“普通数据”,将来你就有能力处理“大数据”。如果你能够尽早抛弃“大数据”的说法,将来你就不会变成那些在多年前就习惯这一称呼但在21世纪仍自诩很“时髦”的IT热词奴隶。

OpenStack光鲜外表之下的阴暗

OpenStack Summit召开的几周前,一份新的报告发布。严肃的告诫了用户不要买进这个(或者任何)被吹的天花乱转的开源云平台。
Gartner Reaearch 副总裁Lydia Leong建议持观望态度的用户要睁大眼睛看清:OpenSDtack在促进供应商结束封闭迈向开源的同时却把自己的一套封闭方案送了出去。她推荐使用可以运用在多种云平台上的第三方云管理工具或者API库。
OpenStack:现实 vs 广告
Leong在报告(不要让OpenStack的炒作扭曲了你对云管理平台的选择)中写到,人们之所以被错误的引导是因为OpenStack是开源的,并且被“公开和广泛的作为标准”。但事实上却存在着很大的差距。下面是一段原文:
“OpenStack已经被商业利益套牢,作为供应商的一种经营策略;而不是一个由无利益贡献者组成的社区。许多OpenStack的参与者(尤其是Rackspace和其他一些云供应商),他们惧怕AWS成长并支配IaaS市场,但是个人又没能力组织起一个与AWS在规模上相抗衡的组织,因此他们不得不持续缴纳加盟费(比如VMware的vCloud)。”
当然,更多的会涉及到OpenStack的忠诚,Leong补充道:“不要抱有OpenStack会把你的数据中心当作核心问题对待的幻想。”
来自Garner 9月14日的报告:另一方面,OpenStack适宜于公司的早期的采用,用来做初始编码的早期布局和处理。
OpenStack:Linux还是Unix?
即使面对巨头Amazon带来如山压力,OpenStack内部的竞争仍旧愈演愈烈!随着IBM、HP、Cisco、Dell、SUSE及VMware的加入联盟(开始只有Rackspace和NASA),问题就出现了:OpenStack未来的本质究竟是Linxu云,还是Unix云?
OpenStack Foundation的结构已基本完整,并通过了努力逐渐的削弱了Rackspace的影响力。而新版本的“Folsom”发布也说明了这一点。
来自Leong的一些其他常识建议:要像你检验任何供应商的商品一样去评测 OpenStack、CloudStack(Citrix创建,曾OpenStack的一大拥护者)、Eucalyptus、OpenNebula及一些其他的云开源基础设施。

开源云平台人才争夺

每一场开源运动中,技术人才的争夺都是必不可少的风景,这个定律同样也适用于商业应用世界。OpenStack在开源云平台的人才大战中取得了不可思议的成绩。在项目成立短短两年的时间内,OpenStack会员超过5600位,他们分别来自88个国家的超过850个不同组织,全球各地建立的OpenStack用户组达到38个。
虽然产品尚待完善,但OpenStack社区所拥有的超高人气已经成为支撑OpenStack发展的重要资产。从某种程度上看,更大的社区规模和产业生态圈弥补了OpenStack产品成熟度的短板,并切实推进其产品投入实际生产环境的速度。
思杰对CloudStack的全力扶植显然加剧了这场人才之战的烈度。自2012年4月投身Apache阵营以来,CloudStack.org开源社区的用户参与度已经增长了4倍,活跃社区成员超过3万名,CloudStack社区版下载量达到6万余次,每月下载量以平均5倍的速度增长。
而让中国用户最为欣喜的是,无论是OpenStack还是CloudStack,其开源社区的发展壮大都有中国力量的积极参与。作为中国对OpenStack社区贡献最大的机构,新浪将经过生产环境验证后的监控项目(Kanyun)和计费项目(Dough)开源并贡献给OpenStack社区,并且还贡献了大量的Bugfix,在Essex版中贡献量排名第九。另外,OpenStack中国社区已经达到3000人以上的规模。
CloudStack方面,天云趋势正在与思杰合作推进CloudStack社区的发展,成立了CloudStack中文社区。CloudStack中文社区在中国多个城市的技术沙龙活动正在巡回举办之中。另外,思杰还正在面向其中国的合作伙伴和客户展开名为“云构建日”的CloudStack社区培训计划,该计划通过两天的会议培训合作伙伴和客户云的具体创建过程。目前,该计划培训的对象已经达到数百个。
从开放云市场的发展整体分析,不同开源组织围绕社区的人才争夺战没有输家。在完整开放的前提下,开源云平台将呈现出多平台并存的市场格局。各平台社区的蓬勃发展将带旺整体市场,持续扩充开源云平台的应用版图,构建起打破传统、健康和谐的生态系统。

开源云平台市场使用现状

开源云计算市场从去年开始有着不断升温的势头,但云管理公司Zenoss一项最新的报告认为到目前为止,这些开源平台被采用的仍然不多。
在Zenoss的开源社区中有超过600个成员接受了调查,其中只有18%的人说他们已经部署了一个开源的云管理平台。开源平台缺乏支持和安全是最主要的原因。
OpenStack称得上是用户部署最多的平台,在这些调查用户中几乎有50%的市场份额。这个项目由Rackspace、惠普、戴尔、IBM、思科和其他科技巨头支持,最近受到Gartner的一些批评。该项目最近发布了其第六版的OpenStack的代码。
由Citrix支持,通过Apache软件基金会管理的CloudStack是第二个最受欢迎的开源平台,达到了19%的采用率。其次是Eucalyptus,它的份额低于10%。尽管采用率较低,但43%的受访者表示他们正在考虑在未来部署一个开源的云。
报告发现VMware在企业虚拟机监控程序中占主导地位,为四分之三的虚拟化环境提供动力。约有五分之一的受访者表示他们使用KVM、微软的Hyper-V和Xen这些虚拟机监控程序。只有16%的人称他们使用平台即服务(PaaS),尽管有30%的人并没有表示他们对此有兴趣。作为对比,最近另一项有超过750名受访者的调查发现,82%的用户使用的是软件即服务(SaaS)应用程序。Gartner发现SaaS目前为止已发展成一个140亿美元的产业,吸引了大部分投资,基础设施即服务(IaaS)市场为60亿美元的,PaaS市场为12亿美元。

Linux 3.6:更优秀的虚拟化平台

Linux 3.6的重大改进包括:
1. Btrfs:子卷配额、配额组、快照差别、跨子卷复制。
1.1. 子卷配额和配额组
每个子卷都可以设置相应的大小限制。一旦子卷大小达到限制配额将无法继续写入数据。该功能可用来代替配额,通过分配每个用户home一个子卷,并设置大小限制。
然而单独设置子卷配额是非常困难的,Btrfs支持配额组概念,可以通过创建一个配额组,并将多个子卷加入该组:该组中的所有子卷将会自动应用相同的配额限制。该功能命令是:
btrfs qgroup create/destroy assign/remove show/limit
1.2. 快照差别(或者说“send/receive”)
Btrfs可以计算两个快照间的区别,并在文件中存储其不同之处。该存储文件可以用在之后重建sent子卷/快照。send/receive的主要用处在于备份。
1.3. 跨子卷复制
Btrfs写时复制设计支持很多文件同时共享相同的底层数据,这使得不需要增倍使用空间就可以复制(使用 cp –reflink)文件或者路径。它有一个限制,尽管:不可以跨子卷进行复制,但这一限制现在已经没有了(但仍然不可以跨vfsmount复制文件,例如:文件系统上分开挂载的两个子卷)
2. 同时挂载到磁盘和内存
在便携式设备上,将休眠的镜像写入磁盘并挂起设备非常有用。如果电池用光了甚至丢失。计算机将会立刻关机,在重新启动后会从休眠镜像中恢复系统。否则会从内存中恢复,而休眠的镜像则会被忽略。
如果你希望将休眠镜像保存到swap并挂起到RAM,你可以使用“echo suspend > /sys/power/disk; echo disk > /sys/power/state”命令
3. 对SMBv2协议的支持
cifs网络文件系统增加了对SMB协议第二版的支持。SMB2协议是流行的CIFS和SMB网络文件共享协议的继承者,并且在2006年引入Vista后,一直是Windows操作系统的本体文件分享原理。SMB2的实现最终会给用户带来更好的性能、安全和更多的特性。
4. TCP Fast Open(客户端)
“Fast Open”是建立TCP链接的最优选择,相比于一般TCP会话能够减少一个RTT(round time trip),在访问流行网站时可以提速4%-41%。但这一版本仅加入了客户端的TFO支持。
5. Bufferbloat fight:TCP small queues
TCP small queues是另一个减少网络拥堵的机制,它的目标在于减少xmit queues (qdisc & device queues)中TCP包的数量,来减少RTT和cwnd bias,以此解决部分网络拥堵情况。我们可以在不降低名义带宽的情况下,减少每一个批量发送者的缓冲区:每Gbit< 1ms (相比于50ms with TSO)以及每100Mbit < 8ms (相比于132 ms) 6. 基于NFS/NBD的安全交换 Linux Terminal Server项目推荐使用Network Block Device(NBD)交换,在其手册上还有在某些地方。如何通过NBD设置交换的指南。即使如此,频繁使用NBD交换的机器还是会在几分钟内死锁。该版本允许使用NBD交换,但也增加了对通过NFS交换的支持。 7. ext4:更好的配额支持 ext4增加了对配额的支持,并视其为一类元素,这也就是说,不再是一单独的可见文在文件系统目录层,配额文件将会作为文件系统元数据存储在隐藏的索引节点中,将可以直接有e2fsprogs管理,配额哦将在文件系统被挂载的瞬间自动应用。而repquota程序则不会首先启动,除非实现了一个QUOTASCAN_OPEN接口。详细信息:https://ext4.wiki.kernel.org/index.php/Design_For_1st_Class_Quota_in_Ext4 8. PCIe D3cold电源状态支持 新版本增加了对PCI Express运行时D3cold电源状态的支持。D3cold是PCIe设备最底层省电模式。 9. VFIO:userspace driver裸机安全访问设备 VFIO驱动是一个IOMMU/设备不可知框架,在一个受IOMMU保护的安全的环境中向向userspace直接暴露设备访问。换句话说,它保证了安全的、无特权的userspace driver。为什么Linux需要它?虚拟机经常为了最高I/O性能使用直接设备访问(“设备分配”)。从设备和主机透视图来看,它只是简单地将虚拟机转变成一个用户驱动,因此能够显著降低延迟、更高的带宽、并可以直接使用裸机驱动。某些应用,特别是在高性能计算领域,也能从低开销、命名空间直接设备访问中收益,例如:网络适配器(通常基于非TCP/IP)和计算加速器。