ak__ka ak__ka
关注数: 0 粉丝数: 6 发帖数: 154 关注贴吧数: 14
为什么虚拟化要在BIOS里设置? [转自Windroye的论坛] 原始帖子link: http://tieba.baidu.com/mo/q/checkurl?url=http%3A%2F%2Fbbs.windroye.com%2Fthread-170-1-1.html&urlrefer=0f897a83b155a9e4e4b8181ba1b5759d 下面一段来自Intel的手册(Intel Software Manual, Volume 3c): VMXON is also controlled by the IA32_FEATURE_CONTROL MSR (MSR address 3AH). This MSR is cleared to zero when a logical processor is reset. The relevant bits of the MSR are: Bit 0 is the lock bit. If this bit is clear, VMXON causes a general-protection exception. If the lock bit is set, WRMSR to this MSR causes a general-protection exception; the MSR cannot be modified until a power-up reset condition. System BIOS can use this bit to provide a setup option for BIOS to disable support for VMX. To enable VMX support in a platform, BIOS must set bit 1, bit 2, or both(see below), as well as the lock bit. Bit 1 enables VMXON in SMX operation. If this bit is clear, execution of VMXON in SMX operation causes a general-protection exception. Attempts to set this bit on logical processors that do not support both VMX operation (see Section 23.6) and SMX operation (see Chapter 6, “ Extensions Reference,” in Intel® 64 and IA-32 Architectures Software Developer’s Manual, Volume 2B) cause general-protection exceptions. Bit 2 enables VMXON outside SMX operation. If this bit is clear, execution of VMXON outside SMX operation causes a general-protection exception. Attempts to set this bit on logical processors that do not support VMX operation (see Section 23.6) cause general-protection exceptions. IA32_FEATURE_CONTROL MSR的0号位(锁定位)比较关键,如果是0,则虚拟化指令VMXON会导致异常;如果是1,则不允许改写这个寄存器。 1号位和2号位分别是控制能否在SMX模式下执行VMXON指令,要开启虚拟化,这俩位都应该置1。 所以,要想打开虚拟化,IA32_FEATURE_CONTROL MSR的前三位必须为1。 关键是,这个寄存器每次启动都会清零,而且只能在power up reset的条件下才能修改,这个条件,BIOS能满足,所以,最佳设置地点是在BIOS。 那么,如果这个寄存器BIOS没有锁定(1号位),在OS里是否能修改呢?按说应该可以,不过,这个寄存器一般都会被固件锁定,否则会被视为不安全的bug。这样一来,BIOS就成为唯一能做这件事的地方了。
各种安卓模拟器的介绍 安卓在电脑上玩,注意这里默认说的是安装了Windows的电脑,一般是通过一个叫模拟器的东西。有了模拟器,安卓应用,安卓游戏,就可以在电脑上玩了。 模拟器有哪些呢?以下是一个比较完整的列表,好坏暂不做评价。不过,请读者牢记,评价一款模拟器的好坏需要综合各种因素,包括支持的特性,运行的性能,对应用的兼容性等等。凡是自己说自己牛逼的,一般都不是真牛逼。 Windroy:国人做的模拟器,这个模拟器实际上是一个安卓到Windows的直接移植,属于技术黑客流的作品。运行起来超级快,而且安装包很小。Windroy的问题是好久没更新了。 Bluestacks(蓝叠):印度人做的模拟器,后来得到融资到了硅谷。Bluestacks做得算是不错的,用了虚机技术,所以和Windroy不同,Bluestacks必须运行在有硬件虚拟化支持的机子上,否则就会慢死。Bluestacks的最大亮点是性能优化得不错,对于ARM模拟这块也有不错的支持,不过貌似是偷偷用了qemu的东西,要知道qemu是需要修改者开放源码的,可是Bluestacks没有遵守该遵守的GPL协议,估计是防着竞争对手呢。玩家倒是不关心具体怎么做的,只要东西好就行,Bluestacks用起来还是不错的。但是印度人做东西总是有点挠不到痒处,具体的以后再说,这里可以举个类比例子,水果的iTunes就是一帮印度哥们做的,觉得iTunes好用的请举手。还有,Bluestacks好像用的是安卓4.0.4版本,确实有点低了。 Genymotion:法国人做的,基于VBOX虚机,质量不错,主要面向开发人员,还是开源的。安卓应用开发人员可以选择各种手机版本下载,配合开发使用。Genymotion的目的实际上是替掉Google的qemu模拟器,因为后者实在是太慢了。其实开发人员需要的是像iOS那样的一个模拟器,水果的模拟器非常快,因为它是模拟API的模拟器,而不是全系统模拟器。说到这里,插一句,其实Windroy是个API层面的模拟器,希望Windroy在这方面有所动作,若有所成,那真是安卓开发者的福音了。 Windroye(文卓爷):这个也是Windroy团队的出品,也是基于VBOX虚机,发布比Windroy快多了。这个模拟器用起来感觉很简洁,直接给用户一个原生安卓界面,这一点是秉承了Windroy的风格。比Windroy多的特性是集成了应用中心,下载中心等,还集成了一个微信助手,估计是考虑到微信用户群实在太广了。Windroye的好处是该支持的功能都支持了,包括平板用户的多点触摸,重力感应,GPS,声音输入输出,前后摄像头等,以及Windows输入法的集成等等,这一点可以说是所有模拟器里做的最好的。Windroy团队似乎仍然是想在电脑上做一个完整的安卓系统。值得一提的是,Windroye还提供了一个手机伴侣,手机(当然是安卓手机)安装上这个APK后,就可以把手机当作遥控器,来远程控制Windroye,我拿它来玩赛艇,射击等游戏,确实有点游戏主机的感觉,这个值得表扬。 AndY:这个基本上是抄袭Genymotion的东西,不过网站上挺能吹的,我下载运行了下,感觉完全不是那么回事。除了在某些机器上安装会有问题,最大的问题是,运行超慢,看来抄Genymotion都没抄好。这个根本不能算是原创的作品。 天天模拟器:国人基于Genymotion做的一款模拟器,这个基本上就是Genymotion了,但是做了一些本地化的工作,如本地输入法的集成。 YouWave:老外做的,没用过,因为它收费,还19.99美元。这个时代,一个收费的模拟器,谁会用呢? 以上的讨论,基本上侧重于原创的模拟器,但为了完全性,把能独立运行的模拟器都包进来了。也不一定完整和正确,欢迎指正和补充。
1 下一页