将OS_2应用程序移植到Linux操作系统(1)

文章作者 100test 发表时间 2007:03:14 16:32:48
来源 100Test.Com百考试题网


当从 OS/2 移植到 Linux 时,关键的编程问题是什么?

在转换到 Linux 之前注意一下,提早发现陷阱。LANDP 小组带领您了解 OS/2 和 Linux 之间的差别,以便您的移植工程才能更顺利地进行。

本文是 LAN Distributed Platform(LANDP)for Linux 小组把 LANDP 从 OS/2 移植到 Linux 时所遇到的问题的概述。本文对其他正在把 OS/2 应用程序移植到 Linux 的小组应该是有帮助的。当决定了要把 OS/2 版本的 LANDP 移植到 Linux 时,小组已经有了从 OS/2 移植到 NT 的经验。NT 移植包含两个主要的途径: 映射层;抽象层。

抽象层比映射层稍简单一点儿。抽象层是薄薄的一层软件抽象,它抽象了函数名、参数以及它们的返回码,而映射层则试图模仿 OS/2 的行为。

对于 Linux 移植,我们从开发抽象层开始。抽象层将需要许多附加功能,这是早就显而易见的。抽象层发展成了映射层。映射层是一个共享对象,有一个恰似 OS/2 接口的接口并且试图模仿 OS/2 的精确行为。然而,LANDP 需要的仅是 OS/2 功能的一个子集,因此,映射层不是一个完全实现。

下面几节概述了两个操作系统在功能上大部分不同之处,并且提供了一些处理这些差别的建议。

明显的差别

系统调用是 OS/2 和 Linux 之间最明显的差别。一些调用容易被映射(例如,DosOpen),而其它的调用不容易被映射(例如,DosCreateQueue)。除了系统调用之外,返回值和返回值的含义也不同。同样,一些返回值能被精确匹配,像 File not found,但是其它的返回值需要近似匹配。

类型是另一个产生差别的地方。因为 OS/2 重新命名了 C 的类型且使用函数参数的结构,所以就产生了差别。例如,在 OS/2 上类型 UINT 被定义为无符号整数。我们必须为 Linux 环境重定义这些类型中的大多数。

操作上的差别

最主要的区别在于概念的行为,这甚至比移植系统调用和重定义类型更为重要。大多数操作系统具有相同的概念、内存、文件、进程间通信(IPC)等等。OS/2 和 NT 有非常相似的概念且它们的差别不是大范围的(除了共享内存外)。然而,Linux 和 OS/2 显示了许多概念上的差别。下面这些子节概述了这些差别,并且为处理这些差别提供了一些解决方案。


相关文章


如何使用GUI来配置Linux系统防火墙(1)
将OS_2应用程序移植到Linux操作系统(2)
将OS_2应用程序移植到Linux操作系统(1)
省时省力—在Linux系统上进行自动备份(5)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛