谈 Unix 与 NT 的集成 『引子』我这个人很懒,写东西就更懒,而且写作环境又要求极苛刻,总是一定要等办公室 的人都走光了,茶灌足了,痰熨干净了,肠胃排空了,才慢慢爬上键盘的,稀稀拉拉地把文章打打打,打出来……
在大型,“历史悠久”的企业中,Unix 以其稳定性,可靠性,始终成为企业 IT 的主力,同时占据着高端市场。NT 靠 PC 起家,以其易用性,对 DOS,WINDOWS 98% 的兼容性,及善于完成简单任务等优点,逐渐被人们接受,成为 IT 行业的新贵,暴发户,并不断地蚕食着传统的 UNIX 市场。
在过去的几年中,计算机业有一批人,一直力图将 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 一级进行模拟的,有的是直接将程序移植过来的。
本文主要涉及两个方面的内容:Unix 与 NT 的混合工作模式以及 UNIX/NT 间的程序相互移植,将通过我所用过的一些工具的特点及个人的一点经验教训加以介绍。敬请各位网友,瞪圆双眼,明晓是非,偏听则暗,兼听则明,如有鼓噪及不实之词,皆可推出午门,以正视听。 · Unix 与 NT 的混合工作模式:
所谓混合工作模式即指 Unix 与 NT 的应用之间所具有的互操作性。 在这方面做的比较有特色的有 MKS Toolkit。
MKS Toolkit 具有良好的兼容性(与 Unix 上的命令与参数),MS 也正是因为其, 同时也是为了吸引更多的用户从 UNIX 转移到 NT 上来,不必一步将他们统统掐死,将 MKS 中的一些常用的命令 和工具,做成 Windows NT Services for UNIX Add-On Pack 程序包发布, (其实,MS 只不过又一次签了支票簿),这样许多 Unix 上的 Scripts 文件可不加修改地运行在 NT 平台上,这就大大加强了 NT 与 Unix 的互操作性。另外,在 Windows'98 中也有部分的集成。
还包括资源共享 - 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。
我刚开始在做 Unix 到 NT 的程序移植时,还在苦于如何将所有的 Unix Scripts 转成 MS Nmake 认识的 Makefile,没想到一见到 MKS, 对于我这个整天被老板逼着,如杨白老被黄世仁逼着卖喜儿一样,强迫让出 Solaris 的 20 寸大屏幕,改亲 Windows NT 14 寸的小窗口人来说,简直是“天上掉下个 儿林妹妹”。原有在 Unix 上的 Scripts 未加多少改动,就风风火火地在 NT 上跑了起来。这回喜儿不用卖了,顺便还拐跑了地主家的二奶奶! Unix 和 NT 两台机器兼而得之。
Nutcracker 免费提供了 UNIX 到 NT Port 的技术文档,非常的详细,对 其概念上的理解很有好处。
+ CYN-Win32
在谈到 UNIX 到 NT 的程序移植时,不能不提及 CYGNUS 的 CYN-Win32,很多人都用它做 Unix Port 的工作,有很好的用户支持, 而且它是个免费的 软件。无论何时何地,Free The Best,免费的永远是最好的!
有了好的工具,往往能达到事半功倍的效果。与我同组的人及我的老板,坚持要用 M$ 的 Visual C++,几个人一个多月都没有完成。而我选择了CYGNUS 的 CYN-Win32, 利用星期五、六、日及星期一四天 时间,借了人一台 Pentium Pro 的机器,搭环境,设置系统, 连源程序及其外部工具程序,包括 Tcl/TK、 itcl,外加 SYBASE 的 Open Connectivity 的工具就 Build 完成了。我的老板 知道后傻呆了。这就是 PC 科班出身与 Unix 人的世界观的不同之处吧。 · 从 NT 到 UNIX 的程序移植:
从 NT 到 UNIX 的程序移植工具不多,比较有名的要数 Bristol Tech 的 Wind/U,M$ 的 IE 就是用它移植到多个 UNIX 平台上的。 本人曾经有幸拜读有关 MS 从事这个 Project 的 Group 的报道, 令人发笑的是,在图文并茂的报道中,其组长,一位可爱的印度老哥,举着一张 Peace and Love between Unix & MS
的牌子在傻笑。Bill Gate$ 一日不放弃吞并 Unix 的狼子野心, 谁又能相信 Unix 与 MS 会以和平与爱的方式共存呢?!
有很多令人伤神落泪的往事。前几天,看到孙玉方教授在报刊上大谈 UNIX 和 NT 的互补优势,一时令我不知如何是好。遥想我上大学当年,每每总是跪在地上读其所著的 《UNIX 操作系统》一书的。 Linux联盟收集整理