完美者(wmzhe.com)网站以软件下载为基础,改版后的网站对功能性板块进行扩充,以期能够解决用户在软件使用过程中遇见的所有问题。网站新增了“软件百科”、“锦囊妙技”等频道,可以更好地对用户的软件使用全周期进行更加专业地服务。
Cygwin是一个用于在Windows上模拟Linux环境的软件,是cygnus solutions公司开发的自由软件。Cygwin可以作为那些虚拟机软件的一个部分替代品。Cygwin对于学习UNIX/Linux操作环境,或者从UNIX到Windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对Cygwin产生了兴趣。软件之所以强大,是因为她具有可以调用Unix函数的Cygwin库。软件一旦安装完成,就可以调用Microsoft Win32 API函数和Cygwin API函数来编写 32位控制台和或GUI应用程序,这样就可以和Unix程序有效地联系起来而无需作太多的更改。这一工具也可以用来开发很多GNU软件。即使这一工具对你没有太多的用处,但你一定对工具中很多标准的Unix软件包感兴趣。
"锦囊妙技"栏目是聚合全网软件使用的技巧或者软件使用过程中各种问题的解答类文章,栏目设立伊始,小编欢迎各路软件大神朋友们踊跃投稿,在完美者平台分享大家的独门技巧。
本站文章素材来源于网络,大部分文章作者名称佚失,为了更利于用户阅读和使用,根据需要进行了重新排版和部分改编,本站收录文章只是以帮助用户解决实际问题为目的,如有版权问题请联系小编修改或删除,谢谢合作。
软件大小:1.12 MB
cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件 cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件
在官网(自行搜索)上下载cygwin,双击打开,点击下一步,如下图所示: 软件会让你选择如何安装,有三种方式,我们选择第一种,也就是从网络上直接下载安装,如下图所示: 点击下一步,选择安装目录,默认的是C盘的根目录,你也可以选择到其他的文件夹,下面默认的是为所有用户安装,如下图所示: 点击下一步,选择下载文件夹,默认是下载到用户的下载文件夹中,如下图所示: 下一步选择网络连接类型,可以选择代理,也可以选择直接连接, 我选择的是直接连接,因为网易有相应的源,如下图所示: 点击下一步,就是选择源,为了下载稳定快速,我们可以选择网易的下载源,如下图所示: 点击下一步,就会读取相应的源,并会弹出一个安装警告,如果是第一次安装,可以忽视这个警告,如下图所示: 读取目录后,软件会让你选择要安装的文件,这里就以 要安装binutils,gcc,gdb为例,点击devel default,如下图所示: 在其下分别选择下图所示的文件,这里就以 要安装binutils,gcc,gdb为例。当然,你也可以根据自己的需要安装相应的文件。 选择完毕后,点击”下一步“,软件就会自动下载你选择的文件,下载完成后会自动安装,并会在你选择的下载目录内找到安装源文件,如下图所示: 安装完成后,会让你选择是否是否在桌面和开始菜单创建快捷方式,如下图所示。至此,cygwin就安装完毕了。
官网下载地址:http://cygwin.com/install.html 安装Cygwin 一、下载完成后,安装Cygwin_setup.exe,直接点击下一步出现安装模式,如下图所示: 三种安装模式: 1.Installfrom Internet,这种模式直接从Internet安装,适合网速较快的情况; 2.downloadWithout Installing,这种模式只从网上下载Cygwin的组件包,但不安装; 3.Installfrom Local Directory,这种模式与上面第二种模式对应,当你的Cygwin组件包已经下载到本地,则可以使用此模式从本地安装Cygwin。 二、从上述三种模式中选择适合的安装模式,这里我们选择第一种安装模式,Cygwin组件下载完毕后会直接保存到本地,以便能够再次安装。选中后,点击“下一步”,如图所示: 三、这一步选择Cygwin的安装目录,默认安装位置是c:cygwin,你自己也可以选择安装目录,然后点击“下一步”,如图所示: 四、安装过程中从网上下载的Cygwin组件包的保存位置,是你上一步操作选择的目录,点击“下一步”,如图所示: 1.Direct Connection指定 Internet 连接; 2.如果你有代理服务器,选择“Use Internet Explorer ProxySettings”; 3.通过浏览器选项获得服务器名,选择使用代理,输入代理服务器的主机名和端口号。 五、通过Direct Connection连接,选择“下一步”,如图所示: 1.Cygwin默认情况下提供了多个下载镜像站点,因为这些站点是义务的镜像,单独一个下载点可能有风险,在其中选择一个下载站点即可(通常情况下它们是可用的,但有时可能因各种原因不可用)。通常情况下,建议选择离你比较近的那个站点。 2.指定一个站点,例如输入http://www.cygwin.cn,在User URL中填写这个地址,然后点add,就能将这个地址加到上面的镜像列表中,然后可以选择这个镜像进行安装。 六、通过http://mirrors.163.com用户连接,点击“下一步”,如图所示: 1.在此页面,你将选择要安装的包。默认情况下,Cygwin 基本包将不会安装 GCC,因此,你必须修改默认设置 2.将鼠标移动Devel边的加号(+)上,然后点击它展开Devel类;后面紧跟三个参数分别为:Default(默认),Install(安装,全部),Uninstall(卸载,全部)。 3.Devel的分支下有很多组件,其中我们必须安装的组件包含:Binutils,gcc,gcc-mingw,gdb,如图所示: binutils组件 gcc组件 gcc-mingw组件 gdb组件 选择完成之后,点击“下一步”,进入安装过程,此时等待安装结束,出现如图所示,点击“完成”。 七、测试安装是否成功
1 引言 cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。本文将对其作一介绍。 2 机理 cygnus当初首先把gcc,gdb,gas等开发工具进行了改进,使他们能够生成并解释win32的目标文件。然后,他们要把这些工具移植到windows平台上去。一种方案是基于win32 api对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,他们采取了一种不同的方法——他们写了一个共享库(就是cygwin dll),把win32 api中没有的unix风格的调用(如fork,spawn,signals,select,sockets等)封装在里面,也就是说,他们基于win32 api写了一个unix系统库的模拟层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用unix主机上的交叉编译器来生成可以在windows平台上运行的工具集。以这些移植到windows平台上的开发工具为基础,cygnus又逐步把其他的工具(几乎不需要对源代码进行修改,只需要修改他们的配置脚本)软件移植到windows上来。这样,在windows平台上运行bash和开发工具、用户工具,感觉好像在unix上工作。 关于cygwin实现的更详细描述,请参考http://cygwin.com/cygwin-ug-net/highlights.html. 3 安装设置cygwin 3.1 安装 要安装网络版的cygwin,可以到http://cygwin.com,点击"Install Cygwin Now!"。这样会先下载一个叫做setup.exe的GUI安装程序,用它能下载一个完整的cygwin。按照每一屏的指示可以方便的进行安装。 3.2 环境变量 开始运行bash之前,应该设置一些环境变量。cygwin提供了一个.bat文件,里面已经设置好了最重要的环境变量。通过它来启动bash是最安全的办法。这个.bat文件安装在cygwin所在的根目录下。 可以随意编辑该文件。 CYGWIN变量用来针对cygwin运行时系统进行多种全局设置。开始时,可以不设置CYGWIN或者在执行bash前用类似下面的格式在dos框下把它设为tty C:\> set CYGWIN=tty notitle glob PATH变量被cygwin应用程序作为搜索可知性文件的路径列表。当一个cygwin进程启动时,该变量被从windows格式(e.g. C:\WinNT\system32;C:\WinNT)转换成unix格式(e.g., /WinNT/system32:/WinNT)。如果想在不运行bash的时候也能够使用cygwin工具集,PATH起码应该包含x:\cygwin\bin,其中x:\cygwin 是你的系统中的cygwin目录。 HOME变量用来指定主目录,推荐在执行bash前定义该变量。当cygwin进程启动时,该变量也被从windows格式转换成unix格式,例如,作者的机器上HOME的值为C:\(dos命令set HOME就可以看到他的值,set HOME=XXX可以进行设置),在bash中用echo $HOME看,其值为/cygdrive/c. TERM变量指定终端型态。如果美对它进行设置,它将自动设为cygwin。 LD_LIBRARY_PATH被cygwin函数dlopen()作为搜索.dll文件的路径列表,该变量也被从windows格式转换成unix格式。多数Cygwin应用程序不使用dlopen,因而不需要该变量。 3.3 改变cygwin的最大存储容量 Cygwin程序缺省可以分配的内存不超过384 MB(program+data)。多数情况下不需要修改这个限制。然而,如果需要更多实际或虚拟内存,应该修改注册表的HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER区段。田家一个DWORD键heap_chunk_in_mb并把它的值设为需要的内存限制,单位是十进制MB。也可以用cygwin中的regtool完成该设置。例子如下: regtool -i set /HKLM/Software/Cygnus\ Solutions/Cygwin/heap_chunk_in_mb 1024 regtool -v list /HKLM/Software/Cygnus\ Solutions/Cygwin 4 使用cygwin 这一段讲一下cygwin和传统unix系统的不同之处。 4.1 映射路径名 4.1.1 引言 cygwin同时支持win32和posix风格的路径,路径分隔符可以是正斜杠也可以是反斜杠。还支持UNC路径名。(在网络中,UNC是一种确定文件位置的方法,使用这种方法用户可以不关心存储设备的物理位置,方便了用户使用。在Windows操作系统,Novell Netware和其它操作系统中,都已经使用了这种规范以取代本地命名系统。在UNC中,我们不用关心文件在什么盘(或卷)上,不用关心这个盘(或卷)所在服务器在什么地方。我们只要以下面格式就可以访问文件: \\服务器名\共享名\路径\文件名 共享名有时也被称为文件所在卷或存储设备的逻辑标识,但使用它的目的是让用户不必关心这些卷或存储设备所在的物理位置。) 符合posix标准的操作系统(如linux)没有盘符的概念。所有的绝对路径都以一个斜杠开始,而不是盘符(如c:)。所有的文件系统都是其中的子目录。例如,两个硬盘,其中之一为根,另一个可能是在/disk2路径下。 因为许多unix系统上的程序假定存在单一的posix文件系统结构,所以cygwin专门维护了一个针对win32文件系统的内部posix视图,使这些程序可以在windows下正确运行。在某些必要的情况下,cygwin会使用这种映射来进行win32和posix路径之间的转换。 4.1.2 cygwin mount表 cygwin中的mount程序用来把win32盘符和网络共享路径映射到cygwin的内部posix目录树。这是与典型unix mount程序相似的概念。对于那些对unix不熟悉而具有windows背景的的人来说,mount程序和早期的dos命令join非常相似,就是把一个盘符作为其他路径的子目录。 路径映射信息存放在当前用户的cygwin mount表中,这个mount table 又在windows的注册表中。这样,当该用户下一次登录进来时,这些信息又从注册表中取出。mount 表分为两种,除了每个用户特定的表,还有系统范围的mount表,每个cygwin用户的安装表都继承自系统表。系统表只能由拥有合适权限的用户(windows nt的管理员)修改。 当前用户的mount表可以在注册表"HKEY_CURRENT_USER/Software/Red Hat, Inc./Cygwin/mounts v" 下看到。系统表 存在HKEY_LOCAL_MACHINE下。 posix根路径/缺省指向系统分区,但是可以使用mount命令重新指向到windows文件系统中的任何路径。cygwin从win32路径生成posix路径时,总是使用mount表中最长的前缀。例如如果c:被同时安装在/c和/,cygwin将把C:/foo/bar转换成/c/foo/bar. 如果不加任何参数地调用mount命令,会把Cygwin当前安装点集合全部列出。在下面的例子中,c盘是POSIX根,而d盘被映射到/d。本例中,根是一个系统范围的安装点,它对所有用户都是可见的,而/d仅对当前用户可见。 c:\> mount f:\cygwin\bin on /usr/bin type system (binmode) f:\cygwin\lib on /usr/lib type system (binmode) f:\cygwin on / type system (binmode) e:\src on /usr/src type system (binmode) c: on /cygdrive/c type user (binmode,noumount) e: on /cygdrive/e type user (binmode,noumount) 还可以使用mount命令增加新的安装点,用umount删除安装点。 当Cygwin不能根据已有的安装点把某个win32路径转化为posix路径时,cygwin会自动把它转化到一个处于缺省posix路径/cygdrive下的的一个安装点. 例如,如果Cygwin 访问Z:\foo,而Z盘当前不在安装表内,那么Z:\将被自动转化成/cygdrive/Z. 可以给每个安装点赋予特殊的属性。自动安装的分区显示为“auto”安装。安装点还可以选择是"textmode"还是 "binmode",这个属性决定了文本文件和二进制文件是否按同样的方式处理。 4.1.3 其他路径相关信息 cygpath工具提供了在shell脚本中进行win32-posix路径格式转换的能力。 HOME, PATH,和LD_LIBRARY_PATH环境变量会在cygwin进程启动时自动被从Win32格式转换成了POSIX格式(例如,如果存在从该win32路径到posix路径的安装,会把c:\cygwin\bin转为/bin)。