



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Cygwin使用指南cygwin是一个在windows平台上运行的unix模拟环境,是cygnussolutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。本文将对其作一介绍。根据cygwin user guide翻译整理,希望对大家有所帮助。有错误清指出。1 引言cygwin是一个在windows平台上运行的unix模拟环境,是cygnussolutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。本文将对其作一介绍。2 机理cygnus当初首先把gcc,gdb,gas等开发工具进行了改进,使他们能够生成并解释win32的目标文件。然后,他们要把这些工具移植到windows平台上去。一种方案是基于win32api对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,他们采取了一种不同的方法他们写了一个共享库(就是cygwindll),把win32api中没有的unix风格的调用(如fork,spawn,signals,select,sockets等)封装在里面,也就是说,他们基于win32api写了一个unix系统库的模拟层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用unix主机上的交叉编译器来生成可以在windows平台上运行的工具集。以这些移植到windows平台上的开发工具为基础,cygnus又逐步把其他的工具(几乎不需要对源代码进行修改,只需要修改他们的配置脚本)软件移植到windows上来。这样,在windows平台上运行bash和开发工具、用户工具,感觉好像在unix上工作。关于cygwin实现的更详细描述,请参考/cygwin-u.(在电信ADSL似乎被屏蔽了,不知道原因。)3 安装设置cygwin3.1 安装要安装网络版的cygwin,可以到,点击Install Cygwin Now!。这样会先下载一个叫做setup.exe的GUI安装程序,用它能下载一个完整的cygwin。按照每一屏的指示可以方便的进行安装。3.2 环境变量开始运行bash之前,应该设置一些环境变量。cygwin提供了一个.bat文件,里面已经设置好了最重要的环境变量。通过它来启动bash是最安全的办法。这个.bat文件安装在cygwin所在的根目录下。 可以随意编辑该文件。CYGWIN变量用来针对cygwin运行时系统进行多种全局设置。开始时,可以不设置CYGWIN或者在执行bash前用类似下面的格式在dos框下把它设为ttyC: set CYGWIN=tty notitle globPATH变量被cygwin应用程序作为搜索可知性文件的路径列表。当一个cygwin进程启动时,该变量被从windows格式(e.g.C:WinNTsystem32;C:WinNT)转换成unix格式(e.g.,/WinNT/system32:/WinNT)。如果想在不运行bash的时候也能够使用cygwin工具集,PATH起码应该包含x:cygwinbin,其中x:cygwin 是你的系统中的cygwin目录。HOME变量用来指定主目录,推荐在执行bash前定义该变量。当cygwin进程启动时,该变量也被从windows格式转换成unix格式,例如,作者的机器上HOME的值为C:(dos命令setHOME就可以看到他的值,set HOME=XXX可以进行设置),在bash中用echo $HOME看,其值为/cygdrive/c.TERM变量指定终端型态。如果美对它进行设置,它将自动设为cygwin。LD_LIBRARY_PATH被cygwin函数dlopen()作为搜索.dll文件的路径列表,该变量也被从windows格式转换成unix格式。多数Cygwin应用程序不使用dlopen,因而不需要该变量。3.3 改变cygwin的最大存储容量Cygwin程序缺省可以分配的内存不超过384MB(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 1024regtool -v list /HKLM/Software/Cygnus Solutions/Cygwin4 使用cygwin这一段讲一下cygwin和传统unix系统的不同之处。4.1 映射路径名4.1.1 引言cygwin同时支持win32和posix风格的路径,路径分隔符可以是正斜杠也可以是反斜杠。还支持UNC路径名。(在网络中,UNC是一种确定文件位置的方法,使用这种方法用户可以不关心存储设备的物理位置,方便了用户使用。在Windows操作系统,NovellNetware和其它操作系统中,都已经使用了这种规范以取代本地命名系统。在UNC中,我们不用关心文件在什么盘(或卷)上,不用关心这个盘(或卷)所在服务器在什么地方。我们只要以下面格式就可以访问文件:服务器名共享名路径文件名共享名有时也被称为文件所在卷或存储设备的逻辑标识,但使用它的目的是让用户不必关心这些卷或存储设备所在的物理位置。)符合posix标准的操作系统(如linux)没有盘符的概念。所有的绝对路径都以一个斜杠开始,而不是盘符(如c:)。所有的文件系统都是其中的子目录。例如,两个硬盘,其中之一为根,另一个可能是在/disk2路径下。因为许多unix系统上的程序假定存在单一的posix文件系统结构,所以cygwin专门维护了一个针对win32文件系统的内部posix视图,使这些程序可以在windows下正确运行。在某些必要的情况下,cygwin会使用这种映射来进行win32和posix路径之间的转换。4.1.2 cygwin mount表cygwin中的mount程序用来把win32盘符和网络共享路径映射到cygwin的内部posix目录树。这是与典型unixmount程序相似的概念。对于那些对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: mountf:cygwinbin on /usr/bin type system (binmode)f:cygwinlib 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
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 千图网特邀设计师
- 家务任务:成长必修课
- Ivacaftor-13C6-VX-770-sup-13-sup-C-sub-6-sub-生命科学试剂-MCE
- 福安经济开发区锂电新能源配套产业小微园区项目可行性研究报告
- 2025年航空发动机维修技术革新与维修政策法规解读报告
- 2025年环境监测物联网在环境监测领域的物联网技术应用与产业发展报告
- 2025年医疗器械国产化替代的关键技术与产业布局报告
- 多式联运信息平台功能优化与协同发展在物流园区运营中的应用探索报告
- 教育信息化基础设施建设在智能教育评价系统中的应用报告
- 2025年纺织服装行业智能化生产智能化生产设备技术升级项目实施报告
- 2024年国家知识产权局知识产权发展研究中心招聘考试真题
- 四川绵阳公开招聘社区工作者考试高频题库带答案2025年
- 《水利工程造价与招投标》课件-模块六 招投标程序
- 关于水表考试题及答案
- 2025年安全管理员安全培训考试试题(典型题)
- 短文选词填空12篇(新疆中考真题+中考模拟)(解析版)
- 2025年中国黄石市写字楼行业发展前景预测及投资方向研究报告
- 初中历史论述题必需的24个答题模版
- 新能源发展与环境保护试题及答案
- 液晶弹性体在人工肌肉领域的新进展
- 中国海洋生态环境监测市场调查研究及行业投资潜力预测报告
评论
0/150
提交评论