当前位置:Linux教程 - Linux - 如何在WINDOWS下运行UNIX程序和GNU程序

如何在WINDOWS下运行UNIX程序和GNU程序

1 引言

今天程序开发人员面临的最大问题就是如何使他们的应用程序支持各种不同的平台,如何使用户能够在不同的平台下不作任何修改地就能使用他们的应用程序。众所周知,Linux 操作系统和其它基于 UNIX 的操作系统一直是国际上使用广泛又非常重要的 OS。但在中国,微软的 Windows OS 却占领着巨大市场,如 Windows95/98、Windows2000、Windows me 等 OS。那么,基于 Windows OS 工作的程序开发人员在实际工作中,能否重新利用其它 OS 上的那些免费的代码资源呢?例如像 Linux 那样优秀而自由的丰富代码源。本文针对这个问题,提出了两种在 Windows OS 下如何运行 UNIX 程序和 GNU 程序的途径,以避免开发人员在工作中重复开发,以提高工作效率。

2 在 WINDOWS 下运行 UNIX 程序的工具——Cygwin
UNIX 自 20 世纪八十年代就已经成为学术界和研究机构所采用的主要操作系统,并开始扩展到商业界,当时就连大名鼎鼎的 IBM PC 都可跑 UNIX。

2.1 什么是 Cygwin?

Cygwin 是 Cygwin 公司(http://cygwin.com/)的产品,它提供了 Windows 操作系统下的一个 UNIX 环境,它可以帮助程序开发人员把应用程序从 UNIX/Linux 移植到 Windows 平台,是一个功能强大的工具集。

Cygwin 由两部分组成:

(1)cygwin1.dll:它作为 UNIX 的一个仿真层,提供 UNIX API 功能;

(2)一组工具:它的功能是负责创建一个 UNIX 或 Linux 的外观界面。Cygwin 动态链接库,即 cygwin1.dll 可以在 Windows CE 以外,Windows 95 以上的所有非 beta 版本的 Windows OS 下工作,如 Windows 98,Windows 2000 等。目前该软件的最新版本的 Cygwin 是 1.1.x 或 1.3.x.可以从 cygwin 公司的网站上直接下载(http://cygwin.com/setup.exe )

2.2 Cygwin 的功能

网络管理人员通过 Cygwin 可以很容易地远程登录到任何一台 PC 机,在 UNIX/Linux 外壳(shell)下解决问题。在任何一台 Windows OS 计算机上运行外壳(shell)脚本命令。高级外壳脚本命令可以用标准 shell、sed 和 awk 等创建。标准 Windows 命令行工具甚至可以与 UNIX/Linux 外壳脚本环境共同管理 Windows 操作系统。

2.3 安装 Cywin

我们以 Cygwin Net Release Setup.exe Version 2.125.2.10 为例(http://sources.redhat.com/cygwin)

1) 双击“setup.exe”图标;

2) “Next”进行下一步;

3) 选择安装途径: 由 Internet 安装;
从Internet上先下载;
由本地目录下安装;

4) 我们选择从 Internet 上直接安装;

5) 选择安装的根目录,默认目录为:C:/cygwin;当然,也可修改为C:Program FilesCygwin

6) 缺省的文本文件类型为 Unix,安装所有文件。

7) 按“Next”进行下一步,安装路径中一般不包括空格,安装文件位置:C:Documents and Settingslingli 桌面

8) Internet 连接方式,直接连接;使用 IE5 设置;使用 HTTP/FTP 代理。

9) 选择下载站点:ftp/http://cygwin.lirex.net

10) Downloading setup.ini connecting.

3 在 WINDOWS 下运行 GNU 程序的工具——MinGW

在介绍 MinGW 之前,有必要先介绍一下 GNU,拼读时 G 是不发音的。在字典中的含义是非洲大羚羊,我们可以常常看到非常个性化的羊头,想必很多人已经非常熟悉。象征 GNU 那种追求自由的精神,GNU 其实是 Gnu''sNotUnix 的缩写,它表示 GNU 系统与 Unix 不同,但是它是与 UNIX 兼容的一个软件系统。由 Richard Stallman 创建,于 1984 年开始逐渐累积系统构件,于 1996 年发布""完整 GNU 系统""的第一个测试版本。与 UNIX 不同的是,GNU 不需要购买,所有需要它的人都可以免费获得,这也是设计者的初衷,自由软件拷贝,自由软件共享。

3.1 什么是 MinGW?

MinGW,即 Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC(GNU Compiler C)产生 Windows32 程序。
在基本层,MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时间库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95 发行版以上的 Windows OS 有效,使用基本运行时间,你可以使用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行时间扩展。该功能是 Windows32 API 不具备的。下一个组成部分是 w32api 包,它是一组可以使用 Windows32 API 的包含文件和端口库。与基本运行时间相结合,就可以有充分的权利既使用 CRT(C Runtime)又使用 Windows32 API 功能。

4 结论

本文讨论了如何在 WINDOWS 下重复利用 UNIX 代码程序和 GNU 代码程序的问题,提出了两种在 Windows OS 下如何运行 UNIX 程序和 GNU 程序的途径。这意味着,基于 Windows OS 工作的程序开发人员在实际工作中,将能重复利用其它OS上的那些免费而丰富的代码源。避免开发人员在工作中重复开发,提高了工作效率。


发信人: yalefield(DNA)