cygwin
是
:
为windows提供一个感觉貌似linux的环境的工具集
这些DLL文件就是linuxAPI提供接口层,有着数量巨大的linuxAPI功能.
Cygwin
不是:
一种在windows运行的本地linux的方法.如果你想在windows运行linux的程序,你必须重新从源文件创建应用程序.
一种不可思议的让本地windows应用理解UNIX功能的方法,像信号,专利的方法.当然,你必须从源创建你的应用,如果你想使用cygwin功能的优势.
那么,这就是区别了,虚拟机提供的是真实模拟功能,也就是说不是单纯提供API,可能提供的是真实物理API,拿生活的例子解释吧,Cygwin就是小说,虚拟机就是电影,一个是通过文字途径传达信息,一个是通过对真实环境的剪辑传达信息.最根本的区别在一个在linux上提供的接口;一个是硬件上提供的接口模拟出的linux,就是真实意义上的linux.
1、Linux和windows平台上的可执行文件格式是不一样的,linux上的可执行文件格式为ELF,windows平台上的可执行文件格式为pe,所以只可以用visual studio编辑c/c++源代码,编译和链接需要在linux平台上进行。2、自己也可以通过vmware、virtual pc等软件,在windows上通过虚拟机安装一个linux系统,用于编译、链接生成linux程序。
大致上wsl是在内核实现的吧,cygwin是在用户态实现的。wsl的效率更高。比如说wsl里面创建一个进程就真的是个linux进程。而cygwin创建的则是Windows进程套个壳子,在运行configure脚本的时候,cygwin的性能是很差的。而wsl性能很好。
另外wsl对linux是二进制兼容的可以直接执行linux elf,而cygwin却需要重新编译的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)