Cygwin视窗下的UNIX多面手
简单地说:Cygwin是GNU的开发人员为了能将UNIX系统下一些强大应用移植到Windows环境下而开发的一套中间移植工具。你也可以将它理解为Windows环境下一套强大的UNIX仿真工具。究竟是什么,主要看你拿Cygwin来干什么,如果你是开发人员,那么它就是开发工具;如果你想在Windows环境下学习、使用UNIX系统,它就是一个UNIX用户工具集。
Cygwin的功能
对开发人员来说,Cygwin为开发者提供了一个全32位应用的开发工具。首先,可以将Cygwin看作一组工具集,它是从目前被开发人员广泛使用的GNU开发工具移植而来的,可以在Windows 9x/NT上运行。利用Cygwin工具集,开发人员,可以直接使用UNIX的系统功能调用及程序所需的一些运行环境。
程序员可以直接在Windows环境下调用标准的Microsoft win32API,同时也可以使用Cygwin API来编写Win32的控制台应用、GUI应用。使用Cygwin可以容易地将一些重要的UNIX应用移植到Win32 环境下。这些应用的源码不需要大改动就可以在Windows环境下运行。
熟悉 Windows环境的用户,可以将Cygwin理解为Dynamic-Linked Library (DLL),它提供大量UNIX系统调用。目前最新的release 中包含了除setuid 和mkfifo外的所有POSIX.1/90的调用、全部ANSI C 标准调用,同时还包含了许多通用BSD 和SVR4服务,如:Berkeley sockets等。
对普通用户而言,Cygwin提供了一组UNIX工具,运行它,可以将你的Windows系统变成一部UNIX主机。这组工具中包括bash shell,你可以在一个模拟的UNIX环境下使用这些工具,或者不进入UNIX虚拟机环境,直接在Windows的DOS命令行环境下使用它们。
Cygwin包含了哪些软件包?
1.开发包:binutils、bison、byacc、dejagnu、diff、expect、flex、gas、gcc、gdb、itcl、ld、libstdc++、make、patch、tcl、tix、tk等;
2.UNIX 工具:ash、bash、bzip2、diff、fileutils、findutils、gawk、grep、gzip、less、m4、sed、shellutils、tar、textutils、time;
3.各软件包的源程序包。
以上所有的程序均可免费获得。
Cygwin是一个全功能的Win32应用,它是UNIX应用的一个Porting层,完全兼容于Win32(包括目前使用的Windows 95/98/NT)。该项目启动于1995年,主要目的是将GNU开发工具移植到Win32系统上来。
下载与安装
下载这个程序(http://sources.redhat.com/cygwin/setup.exe),之后运行它,它会自动安装最新版的Cygwin。
如果你的计算机已连接到了互联网,可以选择从Internet安装(图1),安装程序会自动查找放置cygwin软件包的站点,列出数十个站点,你可以从中选择一个最近的站点,确认后安装程序第
一步执行下载;下载完成后,自动开始安装,安装过程全自动进行,你只要按要求输入安装的目的路径即可。整个安装过程大约要用5分钟,具体同机器性能有关。安装完成后,会自动生成一个批处理文件,同时,在桌面上也生成一个图标,点击即可开始运行。
使用Cygwin
程序安装完成后,在相应的安装目录下,会生成一个批处理文件:cygwin.bat,可以直接运行它,也可以从桌面上运行。
程序运行之后,直接进入了一个虚拟的UNIX主机,它是一个完整
的微型UNIX机,目录结构完全相同于普通的UNIX系统,并包括了基本的UNIX命令,这些命令可以在这个虚拟的UNIX主机下运行。这并不足为奇,但是令人惊奇的是——这些命令也可以直接在Windows的命令行环境下运行的。
以下例示为在DOS界面下运行其中命令:
C:\〉mount c:\ /c (注:将硬盘C mount到虚拟UNIX系统的一个/c(名字可以为其他)目录下)
C:\〉mount d:\ /d (注:硬盘 D mount到虚拟UNIX机的一个目录/d下)
C:\〉mount e:\ /cdrom (注:将e盘mount到虚拟UNIX机的/cdrom目录下)
其作用等同于以下UNIX命令:
$ mount /dev/hdax /c ## x为某一个分区,值为1、2、3……
使用常规的UNIX命令(注意,这是在常规的Windows命令行环境下的直接使用):PS(进程查看),如图2所示。
编写一个小的C语言程序,使用gcc编译,运行结果如图3所示(Windows 命令行方式下)。
以上均为在Windows的环境下直接使用UNIX命令。当然更可以在虚拟UNIX机下使用这些命令。由此可见gcc编译器同UNIX下的编译器几乎没有差别。
Cygwin还提供对自身的编译。如果你要编译自己的Cygwin,可以在安装时,选择安装源码包。这样,如果要自行编译Cygwin,就可以进入cygwin-1.1.6-1目录,运行configure、make完成对Cygwin的编译(图4)。
关于Cygwin的使用,下面网址有详细的使用指南:http://cygwin.com/cygwin-ug-net/
cygwin-ug-net.html。
Xfree for Cygwin
X Window是UNIX环境下的GUI,几乎所有的UNIX版本都可以运行X应用,那么由Cygwin构成的这个微型UNIX可以运行X应用吗?
令人惊奇的是:Xfree应用可以在Cygwin下运行!
如果你有兴趣,可以到以下站点查找并下载Xfree for Cygwin。它是一个运行在Windows环境下的X Window系统,也是一个全免费的软件。从网站的介绍中你可以知道,它是一个由个人开发的
产品。目前使用的是FreeX86 4.0。有了它,那些要求在Windows环境下安装X Window的用户,就不必花钱购买Windows环境下的商业X Window服务器了。它一样可以运行得很好。窗口管理器是最简单的twm。
笔者下载了xfree for Cygwin软件包,在NT下成功地完成安装,运行效果还不错。只是在安装时要注意:最新xfree for Cygwin是4.0.1的,各位不要忘记下载时,同时下载一个叫Xwin-Update的软件包,并安装它,否则,可能无法运行X Window。
要下载安装的软件包有:
xfree86-4.0-DLLs.tar.bz2
xfree86-4.0-fonts.tar.bz2
xfree86-4.0-Prog.tar.bz2
xfree86-4.0-rgb.tar.bz2
xfree86-4.0-twm.tar.bz2
xfree86-4.0-Xterm.tar.bz2
xfree86-4.0-Xwin.tar.bz2
Tags:Cygwin,视窗,UNIX,多面手

