做虚拟做到了4颗星,因为个人我很喜欢欢复古...

第三方登录:第三方登录:  因为本身就是半个电商人,加之自己的工作,总结出来几个客户比较纠结的问题给大家分享一下我们的看法~图片  首先很多人都在想,开网店是做虚拟还是做实物?都知道虚拟的信誉比较好刷。上升的快软件开店也简单省事,都是想先做虚拟的之后转做实物比较好做,难道你们能想到,淘宝是傻B吗?如果你的网店前期做虚拟,之后你再转做实物的产品。那么你的店铺排名将永远在同类行业的最后,甚至连新店的排名都不如。在这我告诉大家,虚拟的信誉和实物的信誉是分开的,如果你只是玩玩那么你就选择虚拟就可以了,但是你想赚钱还是选择实物比较好,虽然前期不太好做,不过有专业的老师指导还是没问题的。凡事都是需要自己付出努力的。看到那些上钻的店铺,上皇冠的店铺。是不是羡慕嫉妒呢,你就知道羡慕,你想过人家前期付出了多少吗?或许是时间,精力,钱,但是付出的一定比你多的不止一两倍。  现在给大家分析一下现在的淘宝市场行情和近况!  ①现在那么多人开网店,是不是太晚了?  今天,仍然有许多人还认为网店开得早的好做,现在开太晚了!   淘宝2003年开始运营的,如果2003年的时候我告诉你开淘宝以后能赚大钱,你信吗?如果我2003年我告诉你我是在淘宝开了网店卖手机,你敢买吗?网店开得早,竞争对手是少,那是因为卖家少,但是买家呢?买家也少!  ②那为什么那么多人开淘宝失败了?淘宝太难了!  大部分人淘宝创业失败,不是因为他笨,也不是因为他什么都不懂,而是他根本没用心去做!不懂的可以学!举个例子,支付宝支付密码连续输入错误3次就会被锁定,旁边就有提示“支付密码连续错误次数超过3次,请3小时后再试。自助找回支付密码之后,即可以马上进行相关操作,点此找回支付密码”很多人根本就不看这个提示,然后到处问别人怎么办怎么办!答案就在自己眼前!就包括现在这篇文章,80%并不会一个字一个字看完它的。做不好,没什么奇怪的了。   至于你听说的淘宝太难了,我不用多说,您还记得小学课本里有篇文章《小马过河》吗?这个道理都想不明白的话以后怎么教导孩子呢?  竞争很大吗?是的,真的很大!但我也好想知道有哪个行业竞争不大的吗?如果有就请您大方一点告诉我吧! 现在各行各业,竞争都很大,如果只是为了竞争力大,我们就放弃了,那岂不是我们什么也做不了呢?  现在淘宝每天都有上千新店开张,每个店铺都需要信誉,这就催生了刷钻行业的发展。借用鲁迅先生的话:世界上本没有钻,刷的人多了也便有了钻。试问现在有几个人不知道淘宝的信誉是可以刷的?你还要自欺欺人吗?   淘宝创业,这不是一个“好”项目,只有勤奋的人才能赚到钱,如果100%的人都认为它好,我将是第一个改行!  经常会有人问:刚刚开店,没有信誉,会不会有人来买我的东西啊?我能做得好吗?我能赚钱吗?现在做的人那么多,还会有市场吗?  每天几千人新开网店,网店永远不会饱和。所谓饱和,只是无能懒惰者给自己找的借口!《二八定律》说过:20%的人忙着为成功找方法,80%的人忙着为失败找借口!上班丶上课丶带小孩丶没时间……都是给自己找的借口!   淘宝创业,永远不会太晚;网购市场,永远不会饱满;月入上万,永远不要认为只有皇冠以上才能做到!信用低?新手?这些都不是问题,心态最重要,谁开始做的时候不是新手?   图片  附上我的信息,想开淘宝网店的朋友可以联系我
  借用马云的一句话:晚上想想千条路,早上起来走原路。
你是这样吗?不要眼高手低的去想了。该行动了!
楼主发言:56次 发图:
  。。。
  如果大家有什么问题,想开网店,但是对网店一窍不通,都可以来问我,谁都是从新手过来的,希望我可以帮到你,真心实意为你解决所有问题。   大家可以加我的  交流QQ:
  @edisonzuh
  @edisonzuh
15:11:23  f  -----------------------------
  想开淘宝网店的朋友可以联系我 QQ   借用马云的一句话:晚上想想千条路,早上起来走原路。 你是这样吗?不要眼高手低的去想了。该行动了!
  @edisonzuh
11:24:33  @edisonzuh  -----------------------------  想开淘宝网店的朋友可以联系我 QQ   借用马云的一句话:晚上想想千条路,早上起来走原路。 你是这样吗?不要眼高手低的去想了。该行动了!
  时下网上开店已成为一种潮流,很多人都不甘于现状希望能谋求更大机会,但很多人也仅仅止步于想想而已。网店是在互联网这个虚拟空间里开的虚拟商店,与实体店的传统商业模式相比,网上开店有着巨大的优势。
  一、网店比实体店节约成本  开网店与租一个地方开实体店的最大区别也是最大优势就是,相对于实体店,网店的店铺成本基本为零。实体店店铺租金、水电、员工薪酬等成本费用使得许多想要开店、有创业梦想的人望而却步,而看上去几乎是零成本的网上商店则给他们带来了许多创业的希望。网店的风靡再次激起了人们自己做老板的梦想,而且开一家网店并不难。所以,开网店逐渐成为了许多人,尤其是热爱新鲜事物的年轻人群生活中一件很流行的事情。  网上开店比实体店节约成本概括地说,主要体现在这几个方面:  1.省下了昂贵的店铺门面租金。网上经营店铺的主要方式之一,是从淘宝、易趣、拍拍等专业商务网站获得空间.  2,不需要租凭仓库,网上店铺是虚拟店铺,大多是小额进货或代理销售,往往不需要租凭仓库解决存货问题。  3,所需人手比较少,小网店只需店主一个就够,网上店铺大多属于小规模店铺,所需人手少。  4,网店比较灵活,风险小。随着流行的改变或者店主个人兴趣的转移,网上店铺可以快速地改变商品结构,转行经营,风险成本比较低。
  二、网上开店更自由,不受时间限制  传统的实体店店铺每天营业的时间为8~12小时,如果遇上恶劣天气或者老板员工有急事时,就有暂时停业。为了避免生意收到影响,不少店主吃住在店里,一步也不离开店铺,比朝九晚五的上班族还要受限制。  网上开店不受时间的限制,只要客观条件下允许可以一天24小时,一年365不停地运作,不管白天晚上,不管刮风下雨,消费者可以随时访问网店进行购物。网上开店,在无人值守的情况下也不会影响生意,店主完全可以在享受生活的同时,把网上店铺打理得井然有序。
  三、无须高额创业资金  现在是一个创业的年代,想自己创业的人越来越多,每个人身边都有许多这样的例子。但是一提前创业,大部分人闪过的第一个念头就是创业,钱从哪里来?我没有钱,可以做老板吗?在传统开店的模式下,开一个店铺要有不菲的资金支持,需要租凭经营办公场所、仓储场所,需要准备相当的库存,需要崔营业员、导购员、收银员等,并且还有不菲的水电费、物业费、管理费等各项支出,不少人因此望而却步。  但是,随着网络技术的发展,所有的一切都变得简单起来,网上开店给人们提供了一个梦想的契机。网上开店不需要那么多资金,只要有一台能够上网的电脑,具备基本电脑操作技能,就可以轻松开启自己的老板梦想;网上开店无须大量备货,只要把公司做好的图片上传到网店即可,等有顾客下单时直接联系公司发货;同时,网上开店上手比较容易,利润相对也较大。在当前这个时代,如果想创业的话,钱已经不是最主要的问题了,没有钱一样可以当老板,关键就看你自己是否能在这个创业的时代把握创业的机会。
  四、经营范围非常灵活  开实体店需要到工商部门办理营业执照,登记营业范围,同时还要考虑到经营场所的面积及商品摆放的美观有序,经营商品种类不宜太换宽泛。一般情况下,所经营商品都是专卖或是一些具有关联性的商品,如化妆品专卖店专营化妆品,服饰专卖店专营服装等。所以开实体店对店主的综合能力要求比较高,选择经营种类时一定要非常慎重,一旦选择失误就很容易失败。  网上开店一般只需要在网店注册即可,无须办理工商手续,经营商品种类可以根据自己的个人情况来确定,范围非常灵活。网店里也有足够的空间,只要你愿意,你可以在网店里摆放无限多的商品,也可以同时经营化妆品、服装、电子产品、工艺等。在如果发现了新的枪手商品,也可以马上引入店中,限制相对较少。
  想创业的你,有没有心动~赶紧行动吧,开网店实现自己的当老板梦想。相信付出终有收获的~每个皇冠卖家都是从零开始的。别灰心,只要相信,只要坚持~
  我们一起加油~
  技术决定成败,用心打理经营
  价格足够“低”——厂家直接供货!  品牌足够“多”——品牌多,货源足,新款不断”!  款式足够“全”——涵盖各类消费群体、各级消费能力,上万种品类随意挑!  更新足够“快”——紧跟时尚潮流,每月推出当季新品百余款,紧紧吸引眼球!  起步足够“低”——强大的淘宝技术支持,让亲们零经验开店!  服务足够“优”——24小时的客服电话和超一流的客服团队,足让你满意!  活动足够“频”——每年营销计划给您全程经营协助,让你经营无忧!  图片
  我们为你:  一、提供免费代发货业务,一件起代发,  二、提供实物拍摄的商品图片,你可以自行下载上传;  三、定期更新数据宝,让你的店铺的商品处于不断更新中以保持店铺活力;  四、提供淘宝数据包,可以批量导入商品,从而节省商品上架时间;  五、保证所销售的商品均为市场最优版,发货前进行质量检查,凡在质量范围内的商品,提供无条件换货服务图片
  适合人群:  1.大学生--有较强的上进心,但障于就业形式,竞争压力,并正在寻求创业之路者。  2.办公室白领--每月固定收益,薪水受限,但又不满足于现状,希望过上更幸福生活者。  3.网虫--花大量的时间聊天,灌水,玩游戏,不觉得太浪费了吗?你只要从中抽一小部分时间来做这项事业即可。  4.其他人士--下岗后想再就业者,或闲置无所事事者,不要错过商机。
  我们提供货源 不需要你进货 然后公司给你数据包 你上传到自己的网站 有客户下单了 你和客服联系 我们这边直接发货   公司产品与服务     深入了解实体商家需求、量身定制适合淘宝商家的营销方案、 提供使用效果评估、以持续改进、全面保证淘宝网店销售效果、   图片  1、网络销售的趋势和动向   2、淘宝开店全新赚钱的理念   3、淘宝开店的详细教程及实战操作技巧   4、淘宝网店的推广、装修技巧   5、快速成为网上赚钱高手的秘诀 淘宝学习速成班为你提供全面的开店、销售、服务的全程指导,面对面的理论加实际操作。   提供众多网店货源,免费提供数据包,一件代发,无需进货,零库存,零风险。解决你网上开店创业的一切后顾之忧。
  不疯狂不罢休!你是无厘头的疯丫头吗?
  对网店感兴趣的朋友可以加我QQ,提供专业的网店加盟指导。  引导语:有这么一种女生,她们认为:没有一点儿疯狂,生活就不值得过。性格大大咧咧,个性直率的比汉子还汉子,玩起来天昏地暗,毫无顾忌。女生有一点小“疯”会让人觉得很可爱,但如果“疯”过头了就会让人觉得有点无厘头了。你是这样一种女生吗?想知道自己“疯”到了的程度吗?一起来测试看看吧!
  1、你是一个有着名牌控的女生吗?  是——2  不是——4
  2、你是否十分喜欢神秘的占星学?  是——3  不是——5
  3、你是否觉得电影中邪不胜正是合理的结局?  是——6  不是——5
  3、你是否觉得电影中邪不胜正是合理的结局?  是——6  不是——5
  4、你是否觉得指甲油的颜色一定要和衣服颜色相搭配?  是——2  不是——5
  5、你有收藏着一大堆自己的大头贴吗?  是——7  不是——6
  6、你喜欢可爱的装扮胜过性感的装扮?  是——8  不是——7
  7、你会觉得自己永远是无敌的18岁少女吗?  是——9  不是——10
  8、你觉得自己将来不会要孩子,而做一个丁克一族?  是——7  不是——9
  9、你会把自己偶像的海报贴满自己的卧室吗?  是——11  不是——10
  10、你会为了减肥而疯狂节食吗?  是——12  不是——13
  11、你觉得自己有钱了一定会四处去旅游?  是——12  不是——10
  12、你是个害怕听鬼故事却偏偏喜欢听的人吗?  是——13  不是——14
  13、你相信自己手头边的某样东西会是自己的幸运物吗?  是——16  不是——15
  14、你曾经为了朋友而折过很多的千纸鹤或幸运星?  是——15  不是——13
  15、你会尝试使用不同牌子不同功效的洁面乳吗?  是——16  不是——17
      
  16、你在化妆品方面很舍得花钱吗?  是——18  不是——17
  17、你喜欢戴复古风格的黑框眼镜吗?  是——19  不是——20
  18、你会尝试不同的发型以给人新鲜感吗?  是——17  不是——19
  19、你是一个“人未到声先到”的女生吗?  是——20  不是——21
  20、曾经有过网恋的经验吗?  是——22  不是——21
  21、你对其他好身材的女生嫉妒多于羡慕?  是——23  不是——22
  22、是否会觉得自己到了30岁以后才会结婚?  是——24  不是——E
  23、喜欢红色胜过于喜欢蓝色?  是——D  不是——24
  24、看电视剧时会跟着剧情不自主地流泪吗?  是——A  不是——25
  25、看不惯别人的言行时会直接指出吗?  是——B  不是——C
  测试结果:  A、疯丫头指数:★  相对同龄人而言你有比较成熟的心理和思想,你的个性属于喜静的类型。很多时候,当一群丫头疯疯癫癫玩得天昏地暗时,你会在旁边安静看着,受到极大感染时你才会忍不住加入。但是理性的你为了不损个人形象,总是对自己进行严格自控,给他人沉稳、成熟的形象,那个最真实最热情的自我被你压抑着,所以大家都不会看到你玩疯了的一面。
  B、疯丫头指数:★★  直率、活泼是你的个性,你不会掩饰自己的情绪和想法,一旦玩起来就会很尽兴。在你的想法中,只要开心,其他的事情就别管那么多,何必庸人自扰呢?你是个绝对不会委屈自己的人,大家跟着你一起都会有永远年轻的感觉,而且感染力超强的你十分能带动他人的情绪和现场快乐气氛,使得其他人情不自禁地和你一起疯。
  C、疯丫头指数:★★★  你心思细腻,渴望变成一个完美的女生,处处留意自己形象,不会让别人看到你不好的一面。但如果你的情绪在理性无法控制的情况下,就会彻底地疯癫一通,这种情况会把大家吓一大跳,平常那个理性乖乖女的形象完全被颠覆掉。
  D、疯丫头指数:★★★★  活泼热情、阳光开朗、大大咧咧的个性,希望自己永远像个孩子,活在自己的童话世界,尽情依赖大家的呵护,这就是你。你有着年轻青春的心态,很少在乎结果,只要过程精彩就会觉得满足。你的青春岁月五彩缤纷,因为你是个十分懂得享受生活的人,能够带大家一起放松,是朋友里的流行教主和玩乐指标。
请遵守言论规则,不得违反国家法律法规虚拟机是怎么实现的?
请解释下原理
按投票排序
问题有点大,笼统的试答一下。坑比较深,最好有基本的OS基础才好理解。假设这里的虚拟化是指在一个OS下虚拟化另外一个OS(ESX那种hypervisor直接跑在硬件上的做法,其实大同小异),另外假设这里的虚拟化是指full virtualization而不是Xen那种para-virtualization。最后假设虚拟化的是一个早期的x86机子(没有hardware supported virtualization的存在)。要回答这个问题,首先看为什么一个OS无法直接与另外的OS共存。答案很简单,OS作为硬件上第一层软件,认为自己拥有全部的硬件的访问和控制权,且自己是唯一的控制者。在这种情况下,如果两个OS共存,必然产生问题。OS主要负责管理的是CPU和内存,以及众多的IO设备。于是我们可以分别讨论。hypervisor是实现虚拟化的关键,它会以一个内核态的驱动存在。CPU的虚拟化:背景知识:x86 CPU有一项权限机制,把CPU的状态置于RING 0到RING 3分别使CPU具有最高的权限到最低的权限。以Linux为例,内核运行于RING 0上,而其余全部用户进程运行于RING 3上(Xen比较奇葩,Linux在Xen下面会运行于RING 1)。在用户权限下,所有的IO设备是不可操作的,另外,有些控制寄存寄是无法访问的,一些privilege的指令是不能运行的。因此一个用户进程要想读写文件,进行一些操作,就要依赖于内核。系统调用能够使CPU运行于RING 0,并执行内核代码(具体方法见一些操作系统教程)。背景说完。一个CPU的全部状态其实就是所有寄存器的值,只要保证任何操作之后寄存寄的值在OS看来是正确的,guest OS就可以正常执行。hypervisor会为每个虚拟的CPU创建一个数据结构,模拟CPU的全部寄存器的值,在适当的时候跟踪并修改这些值。那么考虑虚拟化一个CPU,在虚拟化的guest OS里面,CPU无论如何也不可能运行于RING 0,因为这样的话,host OS必然会crash掉。因此,当一个guest OS想要进入到RING 0执行内核代码时,hypervisor会向guest OS说谎,并告诉它,你已经在RING 0上了,而实际上,所有的指令还是在RING 3上。当guest OS访问到任何privilege的东西时,hypervisor会接到fault,此时hypervisor会判断这个指令是什么,并修改相应的虚拟寄存器的状态,然后返回。这样guest OS就可以正常的运行。需要指出的是,在大多数的指令下代码是直接跑在硬件上的,而不需要软件介入。只有在一些权限高的请求下,软件会介入,并维护虚拟的CPU状态。内存的虚拟化:背景知识:虚拟内存,页表结构等。OS的基础内容,不表。hypervisor虚拟化内存的方法是创建一个shadow page table。正常的情况下,一个page table可以用来实现从虚拟内存到物理内存的翻译。在虚拟化的情况下,由于所谓的物理内存仍然是虚拟的,因此shadow page table就要做到:虚拟内存-&虚拟的物理内存-&真正的物理内存。以下是细节,如果看着闹心,请忽略。hypervisor会维护一个从虚拟内存到物理内存的映射,当guest OS更换自己的page table,也就是改变CR3寄存器的值,hypervisor会因为用户态的权限不足而接到一个general exception,hypervisor会记录用户想要更换的新的页表,并放上一个空的shadow page table,然后返回。这个空的shadow page table会在接下来的执行中造成CPU无法进行地址翻译,而产生page fault。在fault发生后,hypervisor会得到一个虚拟地址,然后根据之前记录的用户的页表结构,翻译出一个虚拟机器地址,然后再把这个虚拟的机器地址,由hypervisor维护的映射翻译为实际的机器地址,然后装入shadow page table,并返回执行。如此,就实现了:虚拟内存-&虚拟的物理内存-&真正的物理内存。I/O虚拟化:背景知识:memory mapped I/O device。大多数的PCI设备都是直接将自己的某些控制寄存器映射到物理内存空间上,CPU访问这些控制寄存器的方法和访问内存相同。CPU通过修改和读取这些寄存器来操作I/O设备。虚拟化的方法很简单,没当hypervisor接到page fault,并发现实际上虚拟的物理内存地址对应的是一个I/O设备,hypervisor就用软件模拟这个设备的工作情况,并返回。比如当CPU想要写磁盘时,hypervisor就把相应的东西写到一个host OS的文件上,这个文件实际上就模拟了虚拟的磁盘。这里忽略了很多异常处理等等细节,但求简化,可是貌似还是写多了。以上。
1997年,斯坦福的Mendel Rosenblum带着Edouard Bugnion, Scott Devine在SOSP上发了篇论文,叫做Disco: running commodity operating systems on scalable multiprocessors ()。发了之后,我想他们应该是觉得这个主意太好了,就开了家公司,名叫VMWare。这篇论文起名叫Disco(迪士高)是因为虚拟机本身不是一个新的东西,大概在上世纪70年代就有了。作者们为了表示敬意,或者是显示这是一个复古的东西,就把这个项目取名为disco。这篇论文介绍了虚拟机关键技术,用来回答这个问题再合适不过了。(多年之后,OSDI上的另一篇论文(Memory Resource Management in VMware ESX Server)介绍了一些VMWare的改进。近年来论文越来越多。)当初他们为什么要做虚拟机?简单说就是,新硬件层出不穷,但是OS赶不上。当初,他们想在Stanford的ccNUMA机器上跑IRIX(一个操作系统)。可是IRIX跑不起来。他们觉得修改OS或者写一个新的OS太难了(因为一个操作系统从出生到成熟要很长的时间,无数BUG要FIX,无数的新功能要增加。。。那样人家博士要怎么毕业。。)。所以,他们决定用虚拟机。对于他们的项目,虚拟机大致有下面这些好处:只要对商业OS做简单地修改,就能让他们在多个VM(Virtual Machine)间共享内存。Flexible。除了论文里的IRIX,实际上其他的OS也能跑。扩展性好。系统可以以虚拟机为单位扩展。fault-containment。每一个VM都是一个几乎独立的个体,一个坏了,不影响另一个。新老软件可共存。比如,新的软件只能在Linux-3.15跑。你可以用两个VM,一个是Linux2.6,一个是Linux-3.15。我来回答下面这几个实现虚拟技术的关键问题:VMM(Virtual Machine Monitor, 或者叫hypervisor)是怎么管住Guest OS的?或者说,皇上(VMM)是怎么防止大臣(OS)夺权的?有那么多个操作系统一起运行,内存是怎么管理的?多个VM之间是怎么分享资源的?或者说,1GB内存怎么当2GB用?VMM(Virtual Machine Monitor, 或者叫hypervisor)是怎么管住Guest OS的?或者说,皇上(VMM)是怎么防止大臣(OS)夺权的?要理解VMM是怎么工作的,我们得先了解没有VMM的时候,系统是怎么工作的。在没有VMM的时候,计算机系统中的"应用”可分为用户进程(比如VIM)和操作系统。他们分别运行在不同的模式中(mode)。我们用一个类比来解释系统中的模式(mode)。模式这个机制是用来限制一段指令所在的环境的权限的,它是需要处理器的支持的。MIPS结构当时有三个模式:用户模式(user mode),长官模式(supervisor mode,原谅我的翻译...)和内核模式(kernel mode)。这三种模式分别对应于人类社会里的民宅、官衙和金銮殿。显而易见,在金銮殿里的人拥有的权限最高,民宅里的最低。我们可以说,在没有VMM时,用户进程住在民宅里,县衙空着,OS住在金銮殿里(如图)。用户可以直接做一些不用什么特权的事情(unprivileged instructions),比如计算1+1。做这些事情不经过OS。但是,有些要特权才能做的事情,一定要经过OS。比如保存正在编辑的文档到硬盘。访问硬盘是特权操作是因为硬盘是共享的资源,要有人管着,不能让人乱来。试想,要是人人都能读写档案馆的档案,那不就乱套了。VIM(用户进程)不能直接写磁盘上的文件。VIM必须请求在金銮殿里的操作系统来做。怎么请求呢?通过系统调用(system call)。系统调用的过程是这样的:比如要调用的是write(fd, buf, len, off),首先把fd, buf, len, off放到stack里,然后再把一个write()函数对应的号码(system call number)放到stack里,最后调用一个特殊的指令使CPU进入内核模式(图中的圈1)。在x86结构中,这个指令是int(中断)。在MIPS结构中,这个指令是trap。这个指令会引导CPU执行一段代码(trap handler),依照stack里的system call number 找到对应的函数(在这里是write()的实现),然后调用这个函数(函数的参数在刚才的stack里)。在这里函数里,操作系统调用文件所在的文件系统里的write()实现,文件系统使用磁盘的驱动来最终实现。所以文件的操作完成后,操作系统调用与trap功能相反的一个指令,回到VIM程序的指令里(图中的圈2)。操作系统维护自己的特权的过程大概就是这样。但是这个特权等级到底是怎么实现的呢?我们可以想像CPU里有一个特权状态(privileged state bit)。状态为开(On)的时候,CPU的特权等级高,你可以做任何事,包括转到低特权状态。关(Off)的时候,你所能做的事情就所限了。那怎么从off状态转到on状态呢?你必须到执行CPU的特殊指令,这个指令会把你带到一个特定的地方执行操作系统的指令,检查你是不是有进入高特权状态的权限。这就像是在机场,你可以很容易地从登机口到售票大厅,可是你要从售票大厅到登机口,你就得过安检。另外,为什么操作系统就能有高特权呢?Hmm...因为操作系统一开始就把那占了,之后运行的应用程序就只能听它使唤了。现在,终于要说VMM(virtual machine monitor, 或者叫hypervisor)是怎么实现的了。如下图:现在VMM进了金銮殿,有了最高的特权。操作系统被放到了官衙里(但是它自己并不知道)。用户进程还是在民宅里住着。比如,现在用户进程VIM调用write(),会发生什么?用户进程会trap到VMM(拥有kernel mode)里去。但是,VMM并不知道如何处理write()。所以,VMM接下来会调用OS的里对应的trap handler,这个handler会执行文件系统的write(),然后用驱动来写磁盘。这一切的操作都在VMM的监视下进行。怎么监视?操作系统实际上是在虚拟CPU(Virtual CPU)上运行的。VCPU有一套自己的(假的)寄存器。VMM盯着这些寄存器。在操作系统的trap handler完成之后,它会调用trap的反操作(想返回user mode)。但是,这个操作实际上回使CPU回到VMM,由VMM最后返回到用户进程。为什么VMM能够知道操作系统的trap handler在哪?系统中先有VMM。当你在VMM上安装操作系统的时候,操作系统会尝试调用特权指令安装trap handler。因为有最高特权的VMM实际上是监视着这一切的,所以它可以记录下trap handler的位置就行了。总的说来,虚拟机占据了CPU的最高特权,使得在更低特权等级的操作系统无法进行有害操作。有那么多个操作系统一起运行,内存是怎么管理的?在没有VMM的时候,系统中有两种内存地址:虚拟地址(virtual address)和物理地址(physical address)。从虚拟地址到物理地址的转换有两种方式。方式一:在TLB(translate lookside buffer,硬件实现)查找。方式二:在页表(page table)中查找,找到之后把结果放到TLB中去。系统会先尝试方式一,要是找不到(TLB miss),就用方式二。在有了VMM之后,系统中有三种内存地址:虚拟地址(virtual address),物理地址(physical address)和机器地址(machine address)。机器地址才是真正与内存条上的地址一一对应的。物理地址只是操作系统认为的物理地址。当操作系统试着要使用特权指令来完成一个虚拟地址到物理地址的转换时(TLB miss),VMM就介入了(VMM监视着所有对特权寄存器的操作)。VMM会先使用操作系统内的代码来先完成虚拟地址到物理地址的转化(因为VMM并不知道这个映射关系)。然后,操作系统认为自己已经完成了转化,尝试去更新TLB(特权操作)。这个时候,VMM会介入,用一个叫个pmap的映射表找到物理地址对应的机器地址,用机器地址替换掉物理地址,然后把TLB更新为虚拟地址到机器地址的映射。之后,所有对这个虚拟地址的访问都会被转换为对相应机器地址的访问。多个VM之间是怎么分享资源的?或者说,1GB内存怎么当2GB用?我们知道,每一个虚拟机都要占用大量的内存空间。在内存有限的情况下,怎么在一台机器运行更多的虚拟机?幸运的是,不用的虚拟机之间在内存中数据可能会完全一致(比如,系统文件在内存中的缓存)。如要我们可以只在内存中保留一份数据,我们就行节省很多空间。Disco使用虚拟IO设备和虚拟网络设备来节省内存空间。虚拟IO设备:当两个虚拟机从同一个磁盘上读同一个文件时,VMM会intercept DMA,然后就会发现这两个VM在使用同样的数据。这份数据只需要在机器内存里保存一份,然后修改pmap,使得两个VM的物理地址指向同一个机器地址就可以了。当任何一个VM更新这份数据,VMM会给它一份新的拷贝,原来的那份不做更改(copy on write机制)。 虚拟IO设备:当两个虚拟机从同一个磁盘上读同一个文件时,VMM会intercept DMA,然后就会发现这两个VM在使用同样的数据。这份数据只需要在机器内存里保存一份,然后修改pmap,使得两个VM的物理地址指向同一个机器地址就可以了。当任何一个VM更新这份数据,VMM会给它一份新的拷贝,原来的那份不做更改(copy on write机制)。 虚拟网络设备:当使用NFS从VM1向VM2复制文件时,文件并没有被真正地复制。虚拟网络设备会更新VM2上的pmap,使之指向在内存中的文件,使得VM2上的操作系统认为自己已经有了这个文件。后来,VMWare还有用hash来找相同的内存页然后再共享的技术。(完)
太多数据,理论,TERM。若题主是个对计算机毫无概念的白面书生,楼上的回答题主绝对看不懂,看了也头晕,题主垂死病中惊坐起,一记书生夺命剑,楼上全部死XX。行业里比较正式的称呼,应该称之为Virtualization(虚拟化)。虚拟机之只是虚拟化技术的一种。要理解虚拟机的原理,一点都不难,你不需要理解I/O,总线,内存分配机制。你所要记住的就是,现在你有一台实体计算机,实体计算机就是佩恩同学的本体,通过轮回眼的六道之术(虚拟化),黑色棒子操作替身作为分身(虚拟机),虚拟机是调用父集实体计算机资源的子集。具体这么实现:你在二环某黄金地皮上开发的钢筋水泥豪宅顺利封顶,门窗建好后(计算机硬件:CPU,内存,硬盘,主板,网卡,各种Input/Output接口等等),开放商给了你一个很大的空间。可是,这空间没有墙,我们本来可以把它做成一个Studio,一个人吃喝拉撒睡全在这一个空间里(传统硬件+操作系统+程序服务的单机结构),可是如果空间够大,这样一来出现的空余就太浪费。我们用虚拟化技术来给空间筑上墙壁,多建设几个隔间,做二房东出租出去,可是不装修不能愉快地住人。于是我们先是用虚拟化给毛胚房的水泥地板,铺上了一曾叫做Hypervisor(虚拟机监视器)的超级地毯,所有的水煤气管道啊,电线,网线啊 (驱动程序)全都涵盖在这地毯下;之后,你就可以根据自己的喜好,像Minecrafter一样把大空间用墙壁分割成一个又一个的独立房间(虚拟机),你可以把它们全部改成书房,或者全部是卧室,或者有厨房,卧室,运动室等等(虚拟OS)。建好后,你就可以招租了,二环啊!高!大!上!啊!!北上广的小伙子们带着心爱的妹子们(App程序和服务)通通入住。需要注意的是当你收快递的时候,不管你在哪个独立房间,都得统一到总大门来签收(数据流),一停水停电,所有人都一起倒霉。哪个租客毁了自己的房间,你的大豪宅表示无压力,把租户赶出去重新装修一下,又可以重新愉快地招租了。可要是你家后院起火,这帮小子们就全栽了。专业一点的图:常见的如,Hyper-V的Zhuangbility技术架构:若你眼花,看下面的VMware ESX(i)的x86架构的卖萌技术图解:请。喷。
我来讲讲类似vmware和xen的虚拟机的实现。JAVA虚拟机什么的不懂。尽管我的专业是图形学,但是由于遭遇了项目做到后期硬盘和备份硬盘损坏的天灾,我的毕设变成了研究虚拟机尤其是IO的虚拟化。本来老板是打算做显卡的虚拟化,后来发现这得自己实现一套d3d&opengl驱动,时间上来不及。只做了其他IO设备的虚拟化。虚拟机现在主要用于服务器领域,为了充分发挥硬件的计算效能。你可以在一台物理服务器上跑好几台虚拟服务器,这些服务器直接又可以安全的隔离。另一个好处是你很方便的迁移这些服务器到别的空闲物理服务器上。虚拟机模拟了一台硬件的计算机,可以让目标操作系统运行起来,而且目标操作系统还误以为自己是跑在真正的计算机上一样。想象《黑客帝国》中人类以为自己活在真实的世界里,其实是个虚拟机而已。CPU的虚拟化有Intel的VT技术等硬件实现。我主要说说IO部分。对于IO设备,为了使得操作系统相信它访问的是真实的设备,你需要给他返回一个合理的值。我们从计算机加电启动开始。如果你要用自己的假BIOS,那么你可以直接运行你的BIOS然后读取磁盘文件的引导分区(假磁盘,实际上是一个大文件而已),加载操作系统启动模块。如果运行其他厂商的BIOS,你需要加载人家的BIOS并且和骗操作系统一样骗BIOS.其实BIOS就是个小一点的操作系统。然后靠这个BIOS来引导目标操作系统。BIOS和操作系统和硬件互动的方式主要是通过中断或者mapped memory io。用VT的话你可以注册个假的中断表,当虚拟机上的操作系统发中断请求的时候会调用到你的假中断表里,然后你在给各合理的答复就好了。比如更新下内存,输出下信息或者返回某些值等。这里有很多种业界标准规定哪些设备怎么操作等等,参考PCI, PCIE, USB等等接口规范就知道了。所有的设备,键盘,鼠标,显示器,硬盘等都可以模拟出来。还有一个设备就是内存。操作系统访问内存主要通过cpu的一大堆页表和描述符什么的。对支持VT的处理器你都可以注册自己的假的页表和描述符,操作系统也不会发现。大体就是这样了,主要的细节就是针对各种类型的IO设备会有各种类型的交互方式,这里除了阅读业界标准,厂商说明书,最好的教程实际上就是linux kernal的驱动了,从驱动里就可以学到什么设备操作系统会怎么操作,那么你应该给他一个什么返回值等等。
这个问题不是一言两语能解释清楚的。虚拟机,按照虚拟的层次,就可以分为以下几类:某种代码的解释器,比如 JVM、.NET CLR。操作系统层的虚拟机,比如 Wine。硬件层的虚拟机,比如 VMware、Parallel Desktop。这几类是相关的,但在实现难度上,越往下层越难。如果你了解 OS 架构,那应该知道最下层是硬件,之上是驱动,或者理解为 HAL(硬件抽象层),再之上是 OS 内核,然后才是 OS Interface 和 Application。其实虚拟机就是截获了原应传给其下层的指令信息,从而自己处理。所以虚拟机更像一个容器。对于代码解释器,你不需要给我二进制代码,只需要中间代码,然后虚拟机处理后,再移交给 CPU 和存储结构。它模拟的是代码的执行。对于操作系统虚拟机,所有 OS API 调用都会被该容器截获,经过处理后,移植到适配当前平台的指令。对于硬件层虚拟机,其实是最复杂的工程,是虚拟化(Virtualization)技术的一大重点。是对硬件层以及 HAL 层的模拟。如果你对 VMware 感兴趣,不妨去它的网站上找一些白皮书手册。VMware 的技术确实不是盖的,不仅可以和真实 PC 互传文件,甚至可以把一个虚拟机内的 Window 窗口拖到外层真实计算机中。
这个问题,图片比文字会更有说服力,虚拟机怎样实现的,当然是打开电源就实现了好吧,卖萌了,回归正题,来看看Citrix虚拟机的架构观点一:虚拟机是硬件虚拟化之后的展现功能之一再来看看VMware虚拟机的架构观点二:虚拟机和物理机一样,需要逻辑调用硬件资源观点三:看看虚拟机的本质,是由文件组成}

我要回帖

更多关于 我很喜欢 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信