Cygwin视窗下的UNIX多面手

来源:百度文库 编辑:神马文学网 时间:2024/04/29 01:26:36
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

  XWin-update-ex-only.tar.bz2 (就是这个文件)

  你可以将xc-4-binaries目录下的所有文件都下载过来,全部安装。

  安装方法:

  只要将这些bz2文件全部复制到你安装Cygwin的目录下,运行cygwin.bat,进入UNIX环境。

  第一步:解压缩:

  $ bunzip2 -d *.bz2

  第二步:

  $ tar -xvf xfree86-4.0.Xwin.tar

  $ tar -xvf xfree86-4.0.DLL.tar

  ...

  如此解开以上各软件包,tar自动将包中的文件放置到正确的位置中,不需要再运行安装程序。解压完成后,安装即告完成。

  如何运行X Window?

  $ cd /usr/X11R6/bin

  $ ./startxwin.bat

  即可启动X Window。

  更多相关信息,请参考以下网址:http://cygwin.com/xfree/。


  已移植的应用列表


  Apache 1.3.9 and php-4.0b2

  ARPC

  CAMP 1.2b1

  CD Recording Software

  Cygwin B20.1 Released!

  Data Plotting Library DISLIN 7.3

  DDD 3.1.4

  Differential X Protocol Compressor 3.8.0

  DirectX

  FreeCIV 1.8.0

  FXDR

  gcc 2.95.2

  Gimp for Win32

  IBM‘s OpenDX

  Icarus Verilog

  Insight debugger, pine, wget, info, other ports

  Kerberos V4 eBones Distribution

  LAPACK Libraries

  LessTif 0.89.9

  libstdc++-v3 2.90.7

  lynx-2.8.2r1

  mc-4.1.36, tcltk-8.3.1

  Octopod for C++

  Open PTC for Windows

  perl-5.6.0

  Perl, gdbm, cvs, and cygipc

  PGPlot 5.2

  Python headers for mingw

  repGL

  RPM 3.04, Lynx 2.8.3

  RXVT

  screen-3.9.8, xchat-1.6.0

  Screen Saver Library

  TCL/Tk 8.1

  UCD SNMP

  X11R6.4 Archive and Zyacc

  XChat-text 1.5.7
[楼 主] | Posted: 2004-06-15 09:30