[转帖]谈 Unix 与 NT 的集成
谈 Unix 与 NT 的集成 <br>『引子』我这个人很懒,写东西就更懒,而且写作环境又要求极苛刻,总是一定要等办公室 的人都走光了,茶灌足了,痰熨干净了,肠胃排空了,才慢慢爬上键盘的,稀稀拉拉地把文章打打打,打出来…… <br>
<br>
<br>
在大型,“历史悠久”的企业中,Unix 以其稳定性,可靠性,始终成为企业 IT 的主力,同时占据着高端市场。NT 靠 PC 起家,以其易用性,对 DOS,WINDOWS 98% 的兼容性,及善于完成简单任务等优点,逐渐被人们接受,成为 IT 行业的新贵,暴发户,并不断地蚕食着传统的 UNIX 市场。 <br>
<br>
在过去的几年中,计算机业有一*人,一直力图将 UNIX 与 NT 两个从内核到设计思想不尽相同的两个平台“粘合”到一起。 因此就有了数家公司开发多种相应的产品,如 Microsoft Windows X Servers,(『缪』 按:从来没有听说有谁用过也从来没有听说有谁见过,估计是十足地见不得人)。SUN 的 Wabi,能在 SPARC CPU 上跑 Windows 3.1 的一部分程序,以及后来的可跑 Windows 95 应用的 Insignia SoftWindows。MKS 公司的 MKS ToolKit 等等。它们有的可让 Unix 的程序跑在 X86 Box 上,有的允许 Windows 应用 Run 在 Unix Box 上。方式有在 CPU 一级进行模拟的,有的是直接将程序移植过来的。 <br>
<br>
本文主要涉及两个方面的内容:Unix 与 NT 的混合工作模式以及 UNIX/NT 间的程序相互移植,将通过我所用过的一些工具的特点及个人的一点经验教训加以介绍。敬请各位网友,瞪圆双眼,明晓是非,偏听则暗,兼听则明,如有鼓噪及不实之词,皆可推出午门,以正视听。 <br>
· Unix 与 NT 的混合工作模式: <br>
<br>
所谓混合工作模式即指 Unix 与 NT 的应用之间所具有的互操作性。 在这方面做的比较有特色的有 MKS Toolkit。 <br>
<br>
+ MKS ToolKit <br>
<br>
MKS ToolKit 是让一些常用的UNIX 的命令可运行在 Windows'95/NT 平台上,如:ls,cat,awk,sed,ksh 等有 200 多个。这样在 Windows'95/NT 平台上不仅可以运行 Unix 的命令,更主要的是它大大简化了一些 Unix 的应用程序向 NT 移植的工作。 <br>
<br>
MKS Toolkit 具有良好的兼容性(与 Unix 上的命令与参数),MS 也正是因为其, 同时也是为了吸引更多的用户从 UNIX 转移到 NT 上来,不必一步将他们统统掐死,将 MKS 中的一些常用的命令 和工具,做成 Windows NT Services for UNIX Add-On Pack 程序包发布, (其实,MS 只不过又一次签了支票簿),这样许多 Unix 上的 Scripts 文件可不加修改地运行在 NT 平台上,这就大大加强了 NT 与 Unix 的互操作性。另外,在 Windows'98 中也有部分的集成。 <br>
<br>
还包括资源共享 - Windows NT Workstation 4.0 的用户将能访问 Unix 系统上的文件,而 Unix 工作站用户将能访问 Windows NT 上的 资源, 远程管理 - 通过 Telnet 给远程用户提供了远程登录基于 Windows NT 或 Unix 的系统并在其上执行命令的能力, 密码同步 - 允许用户在他们基于 Windows NT 和 Unix 的机器之间 保持一个公共密码。在 Windows NT Workstation/Server 上进行的密码 修改将自动地在 Unix 系统上同步。它还将提供一个无缝的导航环境,因此, 用户无需多次键入他们的口令就能够使用基于 Windows NT 的服务器和 Unix 系统上的的数据。这大大简化了在一家公司内,要有两套分别运行于 Unix 和 NT 的资源环境。 跨平台的通用 Script - Windows NT 上可运行 Unix 上的 Script。 <br>
<br>
我刚开始在做 Unix 到 NT 的程序移植时,还在苦于如何将所有的 Unix Scripts 转成 MS Nmake 认识的 Makefile,没想到一见到 MKS, 对于我这个整天被老板逼着,如杨白老被黄世仁逼着卖喜儿一样,强迫让出 Solaris 的 20 寸大屏幕,改亲 Windows NT 14 寸的小窗口人来说,简直是“天上掉下个 儿林妹妹”。原有在 Unix 上的 Scripts 未加多少改动,就风风火火地在 NT 上跑了起来。这回喜儿不用卖了,顺便还拐跑了地主家的二奶奶! Unix 和 NT 两台机器兼而得之。 <br>
<br>
顺便讲了一下,虽然我在家里的机器上装了瘟 95(没办法,我母亲大人每天 要在上面翻扑克来进行身体锻炼),但仍把 MKS 做为标准配置。 MS Prompt 固然好用,但 Unix 的命令则更强大。 一句话,简单,方便,清晰,实用,这是每一个 Unix Lover 的共同心声。 <br>
<br>
如果非要从美女的脸上识出几个美人痣话,令人遗憾的是 MKS ToolKit 没有提 供最常用的,扩展的 Shell - CSH,但这是残缺,遗憾的美。 <br>
<br>
+ Hamilton C Shell <br>
<br>
Hamilton C Shell 弥补把 MKS 的缺憾,它也提供了 常用的 UNIX 命令,当然最有特点的还是它的 CSH。 <br>
<br>
Hamilton C Shell 是我所知道的最好的 C Shell 了,其兼容性,适用的广泛性都 无与伦比。可惜的是它不是免费的。一个 Free Demo 版只能让您连续运行十条命令, 长于十行的只能做罢。 <br>
<br>
+ Hummingbird Exceed & NFS Maestro <br>
<br>
Hummingbird - “蜂鸟”公司,并不想其名字那样小的不让人知晓。这是一家 赫赫有名,让我佩服地甘心愿为其舔地板的公司。它不仅有一帮通晓 Unix 的 专家,而且还有一群能给 MS 把脉诊病的能人。他们开出 Unix 的处方,来拯救 NT 这个病人。 <br>
<br>
Hummingbird Exceed & NFS Maestro 就是一无人能出其左右的产品。 <br>
<br>
Exceed 提供了大部分 UNIX 上的工具,如 Telnet,FTP,但 是其支持 X11R6.3 的 X Server。将绝大多数的 X Windows 客户端程序 毫无保留地运行在 Windows 95/NT 平台上了。 <br>
<br>
Maestro 将 Unix 以 NFS 分享出的硬盘,连入 NT 的文件系统当中。两个不 同的文件系统可自由地交换数据,分享数据。 另外还有一些 Mini 公司,提供象 CronD, TelnetD 等这样非常重要但 NT 又不具备的 Daemon 工具。 <br>
<br>
说到底,NT 只是一个单用户,多任务的操作系统。 它不提供一个用户以两个或两个以上的身份在终端前登录。有了这些实用的工具 补充,NT 看上去有点象个多用户,多任务的操作 系统了,并且多多少少有点 Unix 的影子了。 <br>
<br>
+ WinFrame <br>
<br>
Citrix 的 WinFrame 是一个不错的产品。 <br>
<br>
首先,它是一个支持多用户的 Windows 程序,允许 15 个人同时登录运行程序 在一个服务器上。 <br>
<br>
支持 Microsoft RAS,NetWare Connect,LANRover and Cubix WorldDesk Commuter 及 Comlink 等远程。登录支持远程用户以 dial-up phone,ISDN,X.25 或 Frame Relay 以及 Internet 等多种联接方式。瘦客户端设计,可在 386 上运行32位的应用程序。因此,用 WinFrame 做一个多用户的客户端应用程序是相当不错的选择。 <br>
<br>
另外,Citrix 还有一个 NTrigue 产品用于从 UNIX 到 NT 的程序移植。 <br>
<br>
<br>
其实还有一个非常实用且重要的功能,即是否对 NIS 的支持。 <br>
<br>
NIS 是一个简单的“平板”数据库, NIS 的概念首先由 SUN 提出并在 SUN OS 上 率先实现。其它的 Unix 版本也陆续增加了对 NIS 的支持。 后来的目录树服务,NT 中的 Domain 的 概念,无不是其引伸和扩展。 但差别在于 NIS 做为 Open Standard 服务于大众, 而 Bill Gates 则是将其烙上 MS 的“纪念戳”用来赚你的钱。 NIS 与 Domain 并不兼容,它们的信息不能完全地互相交换。因此,在 Unix 与 NT 的混合网络中,有些系统资源信息,如用户,组,权限,安全审计等等 常常是 Unix 上一份, NT 上又一份,操作时做互相转来换去, 这造成了效率的低下和资源的浪费。 现在,已有些公司致力于开发 NIS 与 Domain 的集成与互操作的产品了。 <br>
<br>
· 从 UNIX 到 NT 的程序移植: <br>
<br>
+ OpenNT <br>
<br>
由于 NT 本身支持多个操作系统环境,如 POSIX 子系统,提供 POSIX 1003.1 和 POSIX.1 的 Windows API. 兼容 POSIX 1003.1 并不意味着一个健全的 Unix 系统,但在 NT 内部 Build 一个 Unix 内核已经足够了。OpenNT 扩展了 NT 的 POSIX 子系统, 包括全部的 POSIX 1003.1 系统功能调用,和与 POSIX 1003.2 兼容的命令和工具, 并增加了 ANSI C 接口,BSD sockets ( 对映于 NT 的 Winsock ),IPC, X11R6.3 服务器,Telnet 服务器,标准的 TCP/IP 客户端程序,完整的 Unix 开发环境 ( 如 GNU C/C++ 的编译器,也可以选择 MS VC ), 包括 OSF/Motif 开发环境,还有支持全部 Shell 功能 Korn 和 C Shell,awk,sed 和 Perl 脚本语言等等等等。这么多的东东都跑在你的 同一个 NT 本台上! <br>
<br>
不是我对 OpenNT 青睐有佳,我只是觉得照着其有的功能,选系统的了。 更重要的是它将一个“傻子” NT,提升到一“专家”系统。 Softway Systems 的 OpenNT,我刚刚咨询过后没有几天,人家就寄来了测试光 盘和资料介绍。 我没有给过其一分钱,不太好意,对不住其热情,就在这买买力气为其吆喝吆喝。 <br>
<br>
+ Nutcracker <br>
<br>
Nutcracker 免费提供了 UNIX 到 NT Port 的技术文档,非常的详细,对 其概念上的理解很有好处。 <br>
<br>
+ CYN-Win32 <br>
<br>
在谈到 UNIX 到 NT 的程序移植时,不能不提及 CYGNUS 的 CYN-Win32,很多人都用它做 Unix Port 的工作,有很好的用户支持, 而且它是个免费的 软件。无论何时何地,Free The Best,免费的永远是最好的! <br>
<br>
有了好的工具,往往能达到事半功倍的效果。与我同组的人及我的老板,坚持要用 M$ 的 Visual C++,几个人一个多月都没有完成。而我选择了CYGNUS 的 CYN-Win32, 利用星期五、六、日及星期一四天 时间,借了人一台 Pentium Pro 的机器,搭环境,设置系统, 连源程序及其外部工具程序,包括 Tcl/TK、 itcl,外加 SYBASE 的 Open Connectivity 的工具就 Build 完成了。我的老板 知道后傻呆了。这就是 PC 科班出身与 Unix 人的世界观的不同之处吧。 <br>
· 从 NT 到 UNIX 的程序移植: <br>
<br>
从 NT 到 UNIX 的程序移植工具不多,比较有名的要数 Bristol Tech 的 Wind/U,M$ 的 IE 就是用它移植到多个 UNIX 平台上的。 本人曾经有幸拜读有关 MS 从事这个 Project 的 Group 的报道, 令人发笑的是,在图文并茂的报道中,其组长,一位可爱的印度老哥,举着一张 <br>
Peace and Love between Unix & MS <br>
<br>
的牌子在傻笑。Bill Gate$ 一日不放弃吞并 Unix 的狼子野心, 谁又能相信 Unix 与 MS 会以和平与爱的方式共存呢?! <br>
<br>
有很多令人伤神落泪的往事。前几天,看到孙玉方教授在报刊上大谈 UNIX 和 NT 的互补优势,一时令我不知如何是好。遥想我上大学当年,每每总是跪在地上读其所著的 《UNIX 操作系统》一书的。<br>
页:
[1]