Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -1395,7 +1395,7 @@ linux 和 windows 两种操作系统有各自的可执行文件格式(前者

我们说的第一类解决方式,是在 linux 中部署一套为 windows API 转换层,我们让应用程序在转换层中运行,应用程序继续调用 windows 提供的 API,转换层接收到 API 请求后将具体执行操作传递给 linux 系统,linux 执行完后返回的转换层,转换层将请求执行结果反馈给 windows 应用程序,完成一次 API 请求,这样重复往返多次不同 API 调用,最终模拟完成整个应用程序执行过程。这种方式虽然可行,但也不完美:a)操作系统本身就是由大量 API 组合而成,如果实现了所有 windows API 那差不多实现了 windows 系统,从工作量和复杂度上来说,这不是哪个开源社区能够负担得起的,所以,目前做得最好的转换层(wine)也仅实现了部分 API,这意味着,不是所有 windows 程序都可以在转换层中运行,这是一个问题;b)既然是模拟 API,那么从执行效率(实时性)、执行结果(正确性)上看,肯定与直接在 windows 中执行存在明显差距,时常会出现程序异常退出、运行缓慢等等问题,这对实时性要求较高的应用(在线游戏)来说,是用户无法接受的。正因为此,不推荐该方式。

第二类解决方式是安装虚拟机,在虚拟机中安装一个 windows 操作系统,这就像和你直接安装的 windows 一样,这样就有了一整套完整的 windows API,所有应用程序均可正常运行。如果在 linux 中出现 windows 应用让你胃口不佳、疲软乏力、夜不能寐,你得自我开导,你可以把它想成 java 应用要运行在 JVM 中,所以 windows 应用运行在 windows 虚拟机中,windows 就是你 linux 中的一个运行环境,与 OpenOffice、thunderbird、firefox 等等软件一样,这下是不是轻松许多 :D
第二类解决方式是安装虚拟机,在虚拟机中安装一个 windows 操作系统,这就像和你直接安装的 windows 一样,这样就有了一整套完整的 windows API,所有应用程序均可正常运行。如果在 linux 中出现 windows 应用让你胃口不佳、疲软乏力、夜不能寐,你得自我开导,你可以把它想成 java 应用要运行在 JVM 中,所以 windows 应用运行在 windows 虚拟机中,windows 就是你 linux 中的一个运行环境,与 OpenOffice、thunderbird、firefox 等等软件一样,这下是不是轻松了许多

virtualbox,著名的开源虚拟机(别管它的东家:)。VB 将客系统(虚拟机内的操作系统,我们这里就是 winTPC,一种 win7 官方精简版本)的所有硬件请求直接透传至底层硬件平台,而非通过主系统(运行虚拟机的操作系统,我们这里是 openSUSE)中转,这样,在 VB 中你就有一套完整的 win 环境了。但是,虚拟机毕竟不是物理机,性能肯定有损耗,所以,你应该从以下几方面弥补:
* 客系统应采用固定大小硬盘空间分配方式。虚拟机有多种存储空间使用模式,固定大小和动态调整两种最常用。比如,划拨 32G 空间给客系统,客系统内客系统数据量有 2G,那么,如果是固定大小模式,这 32G 的空间主系统已无法再使用,即便客系统只用了 2G;而动态调整模式,主系统仍然可以用余下的 30G 空间。显然,在存储资源利用率上,后者更优。但是,另一方面,动态调整模式需要客系统每次写数据时有些附加计算,所以,从运行效率上来看,你应优选前者,当出现存储资源不够时再在 VB 管理界面中手工设置
Expand Down
3 changes: 3 additions & 0 deletions test
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
测试git在Fork后对应仓库是否有该文件
是否独立存在可修改
是否可以创建新文件