关于cygwin:Cygwin是什么是Windows还是Linux
原文作者:gentle_zhou 原文链接:https://bbs.huaweicloud.com/blogs/408674 最近在和客户交换的时候,始终认为客户的研发环境就是windows 7,直到和对面的研发团队交换的时候,失去的反馈是在windows 7零碎上装置了Cygwin,和仅仅是Windows零碎并不统一。 那么什么是Cygwin?Cygwin是一个反对在Windows平台上运行的Unix环境,它最早的版本于1995年10月公布,最新的一个稳固版本3.4.6则于2023年2月14日公布。其指标是让Windows用户能够应用GNU和开源工具,如bash, gcc, less等。然而,Cygwin并不是一个反对运行原生Linux利用或者让Windows利用感知Unix性能的工具;它实际上是一个大型的GNU和开源工具汇合,反对在windows上提供相似于Linux distribution 版本的性能(Linux_distribution的指标是让用户在不同的硬件平台上应用相似于Unix的性能和体验),容许用户在Windows零碎上运行许多本来只能在Unix或Linux零碎上运行的软件。 Cygwin由两局部组成: 一个C规范库模式的动态链接库(DLL,dynamic-link library),作为POSIX API的兼容层。一个提供相似unix外观和操作感觉的被宽泛应用的软件工具和应用程序汇合。Cygwin的形象层DLL (cygwin1.dll)用于将局部Posix(可移植操作系统接口(Portable Operating System Interface of UNIX)调用转换成Windows的API调用,让用户能够在Windows零碎上编译和运行一些基于Posix规范的源代码,而不须要批改或者从新编写。但须要留神,Cygwin不是一个完全符合Posix规范的环境,它只实现了局部Posix API,并且其中有一些是与Windows零碎自身的API有抵触和限度的。同时,因为该DLL须要额定加载,可能会影响Windows零碎的性能和稳定性,并且可能会与一些Windows程序产生兼容性问题。 Cygwin环境以后有两个版本;残缺的64位版本和精简的32位版本(后者正在缓缓被淘汰)。再深刻点说,Cygwin是由一个库和一个GNU开发工具链组成的;这个库实现了POSIX零碎调用API的性能,它能够把局部POSIX调用转换成Windows零碎调用,从而反对用户在Windows平台上能够运行大量与Unix零碎相似的应用程序;而这个GNU开发工具链(包含GCC和GDB)则反对让用户进行软件开发。 在Cygwin上操作与在Windows上操作有什么区别?Cygwin提供了一个易用的命令行界面,让用户能够应用Unix格调的命令和脚本来操作文件和程序。而在Windows上操作,通常须要应用图形界面或者PowerShell等工具。Cygwin容许用户在Windows零碎上运行许多本来只能在Unix或Linux零碎上运行的软件,如Perl, Ruby, R等。而在Windows上操作,通常须要装置特定的版本或者应用模拟器等形式能力反对。Cygwin提供了一个兼容性层DDL,让用户能够在Windows零碎上编译和运行一些基于Posix规范的源代码,而不须要批改或者从新编写。而在Windows上操作,通常须要应用特定的编译器或者批改源代码以适应Windows的API。在两个环境里的编译器也是不同的。在Cygwin中,会提供GNU开发工具链(包含GCC和GDB),用于编译和调试C和C++程序;这些编译器遵循GNU规范和扩大。而Windows提供了Visual Studio等开发工具,用于编译和调试C和C++程序,这些编译器遵循Microsoft规范和扩大。参考链接https://bbs.huaweicloud.com/community/myblog[https://www.cygwin.com/]()[https://en.wikipedia.org/wiki/Linux_distribution]()