从VMS迁移到Unix

Bri*_*bar 11 c unix vms vax

曾几何时,一队人坐下来用C编写了一个应用程序,在VAX上运行VMS.这是一项相当重要的工作,并在LargeCo开展了一项相当重要的后端业务.这整个shebang工作得很好,二十五年后,它仍在继续努力并做到这一点.

时间的流逝,人们退休,恰巧的是,最后男子站在已经上交的钥匙新一代谁-我们想象的-小于高兴地发现自己老得足以当自己的弟弟系统的看护人.然而,由于他们处理Ultra Legacy Systems的想法并不令人沮丧,他们无法证明更换古老应用程序的成本是合理的.

LMS发现我habla unix并将这个问题提交给我.因为我habla unix但是不说CI会总结并把它交给你.长话短说:

LMS希望将用VMS编写的LegacyApp移植到unix.资源?他能看的任何书吗?他可以跟人说话吗?

Bra*_*ker 12

  1. 我需要问的第一个问题是为什么,而且我将引导谈话的方向是"你真的需要将它移出VMS".关于VMS有很多值得一提的事情:

    - > HP仍在积极开发和维护VMS.他们上周刚刚发布V8.4进行现场测试(见http://h71000.www7.hp.com/openvmsft/).

    - > VMS可用于新硬件; 特别是HP的基于Itanium处理器的Integrity服务器.

    - > VMS也可通过Charon Emulation产品在虚拟平台上使用.

    - >流行的估计是,目前仍有大约300,000个VMS系统在使用.LMS可能是LargeCo的最后一名男子,但他远远不是世界上最后一名男子.

    - >那里有很多信息,比如openvms.org,可以看到很多关于VMS的最新信息,这些信息都来自当前用户.

  2. 好的 - 您仍然希望移除VMS.你怎么做呢?嗯,这取决于很多东西.

    - >正如其他人所说,代码的标准是多少?机会是,不是很好.VMS主义越多,工作就越困难.'努夫说.

    - >什么是数据库?如果是Oracle,可能不会太难以在其他平台上迁移到Oracle.如果它是基于RMS索引文件的某种自定义数据库,那么您还有更多的工作要做,您需要重新创建该伪数据库,或者理解它足以用一些关系数据库替换它.

    - >除了C,还有什么用于创建应用程序?前端有什么?DECforms?FMS?是否有交易引擎,例如ACMS?RTR?这些事情将对移植到UNIX所需的可行性和工作量产生巨大影响.

    - >涉及哪些其他产品?是否使用了第三方库?是否有正在使用的第三方产品对应用程序或功能至关重要?

    - >这个系统是集群的吗?如果是这样的话?您需要使用UNIX框来实现这些相同的目标.

    - >有些公司会帮助你做到这一点,并声称有工具使它更容易,但我的经验是,这些公司倾向于向你出售比服务更多的服务(即你需要雇用他们使用工具.它会很贵).

  3. UNIX for OpenVMS用户一书将为VMS新手提供一些帮助来理解VMS,但正如标题所说,这本书的目的实际上是出于相反的目的.


Mar*_*ett 6

在VMS上编写的所有内容都使用了大量特定于VMS的东西,这非常方便.

有一些公司出售兼容性库以使端口更容易 - 虽然它们不便宜,但VMS倾向于在可靠性比成本更重要的地方使用.

另一种选择是在某些现代硬件上运行openVMS,可能在VM中运行.


Car*_*icz 1

要学习 C,你不妨从马口中拖出来:它的发明者 Kernighan 和 Ritchie 的《C 编程语言》。

我可以再次推荐 Brian Kernighan 的《UNIX 编程环境》;这是您很难找到的更权威的资源,它同时教您 Unix/C 习惯用法和一些 C 编程知识。

为了了解有关 C 的更多深度和细节,我非常喜欢 Peter van der Linden 所著的一本书:“专家 C 编程 - 深度 C 秘密”。

您还需要通过 LMS 获取 VMS 特定 C 函数的库文档,(当然)特别强调应用程序中实际使用的函数。这就是您的移植工作的所在。

这项工作可能很简单,也可能很困难,具体取决于机器特定的聪明才智和位调整的程度,以及使用了多少特定于 VMS 的系统调用。如果字长相等那就太好了(换句话说,如果您的 VMS 机器的字长为 32 位,请不要在 64 位版本的 Unix 上运行代码!)