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://www.cygwin.com/
- https://en.wikipedia.org/wiki/Linux_distribution
相关文章:
Cygwin是什么?是Windows还是Linux?
原文作者:gentle_zhou 原文链接:https://bbs.huaweicloud.com/blogs/408674 最近在和客户交流的时候,一直以为客户的研发环境就是windows 7,直到和对面的研发团队交流的时候,得到的反馈是在windows 7系统上安装了Cygw…...
成集云 | 多维表格自动化管理jira Server项目 | 解决方案
源系统成集云目标系统 方案介绍 基于成集云集成平台,在多维表格中的需求任务信息自动创建、更新同步至 Jira Server 的指定项目中,实现多维表格中一表管理 Jira Server 中的项目进度。 维格表是一种新一代的团队数据协作和项目管理工具&…...
数据结构(Java实现)-排序
排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操稳定性:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序ÿ…...
C++------vector【STL】
文章目录 vector的介绍及使用vector的介绍vector的使用 vector的模拟实现 vector的介绍及使用 vector的介绍 1、vector是表示可变大小数组的序列容器。 2、就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问和数…...
Matlab(变量与文本读取)
目录 1.变量(数据)类型转换 1.1 字符 1.2 字符串 1.3 逻辑操作与赋值 2.Struct结构体数组 2.1函数的详细介绍: 2.1.1 cell2struct 2.1.1.1 垂直维度转换 2.1.1.2 水平维度转换 2.1.1.3 部分进行转换 2.1.2 rmfield 2.1.3 fieldnames(查…...
WebGPU学习(8)---使用RenderBundle
RenderBundle是什么 通常情况下,WebGPU每次绘制时都需要向RenderPassEncoder注册渲染命令。处理此绘图命令比 WebGL 内部执行的类似处理更快。但是,如果可以省略此命令注册过程,则可以能够更快地绘制。RenderBundle 就是实现这一点的。 Ren…...
【前端】常用功能合集
目录 js跳转到新标签打开PDF文件js每十个字符换行 es6用表达式或变量名作为对象的属性名 vuev-for插值、:style、:class父组件加载完后再加载子组件keep-alive缓存跨域请求第三方接口跨域请求之callback(不建议)读取本地文件浏览器播放提示音audio jquer…...
chatgpt谈论日本排放污水事件
W...Y的主页 😊 代码仓库分享 💕 近日,世界发生了让人义愤填膺的时间——日本排放核污水。这件事情是那么的突然且不计后果,海洋是我们全人类共同的财产,而日本却想用自己一己私欲将全人类的安全置之度外,…...
Linux 查看当前目录大小
分析&回答 1. 查看当前目录下所有目录及子目录大小 du -h - . “.”代表当前目录下。也可以换成一个明确的路径 复制代码 2.查看当前文件目录各个文件夹大小 du -h --max-depth1 复制代码 查看指定目录 du -h --max-depth1 /path 复制代码 -h表示用K、M、G的人性化形…...
操作系统备考学习 day1 (1.1.1-1.3.1)
操作系统备考学习 day1 计算机系统概述操作系统的基本概念操作系统的概念、功能和目标操作系统的四个特征并发共享虚拟异步 操作系统的发展和分类操作系统的运行环境操作系统的运行机制 年初做了一个c的webserver 的项目,在学习过程中已经解除部分操作系统的知识&am…...
HTTP:http上传文件的原理及java处理方法的介绍
为了说明原理,以下提供一个可以上传多个文件的例子,html页面代码如下: <!DOCTYPE html> <html> <head> <meta charset"UTF-8"> <title>http upload file</title> </head> <body>…...
[实习笔记] 字符串练习 (将大量的字符串用int值编码,然后通过int值二分快速查找某个字符串)
目录 介绍分析完整代码: 免责声明: 本文章是实习期间的C练习题目,可能会存在大量错误,文章仅作为个人笔记供作者自己方便观看. 介绍 在一个游戏里,可能会出现大量的NPC, 这些NPC有很多都是相同的名字. 存放NPC名字的…...
EMC VNX2代一键关机方法
由于不正确的EMC VNX存储系统的关机导致客户业务中断,数据丢失的案例数不胜数。不正确的关机顺序,很容易造成内存中的数据丢失,进而导致dirty cache,然后系统的LUN和POOL就无法online,业务中断。本文仅仅对EMC 2代产品…...
提升系统管理:监控和可观察性在DevOps中的作用
在不断发展的DevOps世界中,深入了解系统行为、诊断问题和提高整体性能的能力是首要任务之一。监控和可观察性是促进这一过程的两个关键概念,为系统的健康和性能提供了宝贵的可见性。虽然这些术语经常可以互换使用,但它们代表着理解和管理复杂…...
IIS搭建本地电脑服务器:通过内网穿透技术实现公网访问的步骤指南
1.前言 在网上各种教程和介绍中,搭建网页都会借助各种软件的帮助,比如网页运行的Apache和Nginx、数据库软件MySQL和MSSQL之类,为方便用户使用,还出现了XAMPP、PHPStudy、宝塔面板等等一系列集成服务,都是为了方便我们…...
Linux系统中驱动入门设备树DTS(经典)
设备树(DTS:device tree source),字面意思就是一块电路板上设备如上图中CPU、DDR、I2C、GPIO、SPI等,按照树形结构描绘成的一棵树。按照策略和功能分离的思路,就是驱动代码(功能)和设备树DTS配置…...
关系型数据库与非关系型数据库类比
关系型数据库和非关系型数据库都有多种不同类型,每种类型都针对不同的数据存储需求和使用场景。以下是一些常见的关系型数据库和非关系型数据库类型: 关系型数据库类型: MySQL: 一种开源的关系型数据库管理系统,用于处…...
Ubuntu入门03——Ubuntu用户操作
1.Ubuntu如何进入root用户 进入ROOT用户的指令: Linux用su命令来切换用户: su root执行命令后,会提示你输入密码,而Ubuntu是没有设置root初始密码的。 若su命令不能切换root,提示su: Authentication failure&#x…...
输出图元(四)8-1 图元、屏幕坐标、指定二维世界坐标系统
用于图形应用的通用软件包称为计算机图形应用编程接口(CCAPI)它提供可以在C等程序设计语言中用来创建图形的函数库。如第3 章所指出的,函数库可以分成几种类型。创建图形时最先要做的一件事就是要描述显示场景的组成部分。图形的组成部分可以是树木和地形家具和墙壁…...
机器学习---决策树的划分依据(熵、信息增益、信息增益率、基尼值和基尼指数)
1. 熵 物理学上,熵 Entropy 是“混乱”程度的量度。 系统越有序,熵值越低;系统越混乱或者分散,熵值越⾼。 1948年⾹农提出了信息熵(Entropy)的概念。 从信息的完整性上进⾏的描述:当系统的有序…...
高效获取B站视频到本地存储:BilibiliDown工具全攻略
高效获取B站视频到本地存储:BilibiliDown工具全攻略 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/…...
InSpec插件生态系统:扩展框架功能的完整教程
InSpec插件生态系统:扩展框架功能的完整教程 【免费下载链接】inspec InSpec: Auditing and Testing Framework 项目地址: https://gitcode.com/gh_mirrors/in/inspec InSpec作为一款强大的合规性测试框架,其真正的威力在于其可扩展的插件生态系统…...
智能抢购京东茅台:零基础上手的成功率提升指南
智能抢购京东茅台:零基础上手的成功率提升指南 【免费下载链接】jd_maotai 抢京东茅台脚本,定时自动触发,自动预约,自动停止 项目地址: https://gitcode.com/gh_mirrors/jd/jd_maotai 在电商抢购的激烈竞争中,这…...
如何用轻量级工具解决Windows运行Android应用难题?2024最新6种方案深度测评
如何用轻量级工具解决Windows运行Android应用难题?2024最新6种方案深度测评 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在数字化办公与娱乐深度融合的今…...
NVIDIA Profile Inspector实战指南:从参数调试到显卡性能极致释放
NVIDIA Profile Inspector实战指南:从参数调试到显卡性能极致释放 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 诊断性能瓶颈 显卡性能表现不佳往往是多种因素共同作用的结果,…...
开源项目常见安装故障的系统性排查与解决
开源项目常见安装故障的系统性排查与解决 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom nodes of ComfyUI. Fur…...
Windows环境下coturn服务器部署与配置实战
1. Windows下coturn服务器部署全攻略 最近在做一个WebRTC项目时,发现很多开发者卡在了TURN服务器搭建这个环节。特别是需要在Windows环境下部署coturn的场景,网上的资料要么太零散,要么直接照搬Linux的教程。今天我就把自己在Windows 10上通过…...
git clone git@github.com: Permission denied (publickey)权限拒绝问题
一、前言最近在部署detectron2(Facebook开源的目标检测框架)时,执行克隆命令:git clone gitgithub.com:facebookresearch/detectron2.git终端直接抛出如下错误:Cloning into detectron2... gitgithub.com: Permission …...
矩阵分解(1)-- 从高斯消元到对称正定:LU、LDLT与Cholesky分解的算法演进与应用场景
1. 矩阵分解:为什么我们需要它? 想象一下你面前有一堆积木,乱七八糟地堆在一起。如果你想快速找到其中某一块积木,可能需要翻找很久。但如果有人帮你把这些积木按照颜色、形状分类摆放整齐,找起来就会容易得多。矩阵分…...
2026年Java面试最常被问的1000道题目及参考答案
Java学到什么程度可以面试工作? 要达到能够面试Java开发工作的水平,需要掌握以下几个方面的知识和技能: 1. 基础扎实:熟悉Java语法、面向对象编程概念、异常处理、I/O流等基础知识。这是所有Java开发者必备的基础,也…...
