在上一节中,分析了与文件系统、内存管理、进程线程和同步有关的78 个Windows中常用API到Linux中系统调用的映射。如图16 所示,其中有30 个Windows API可以在Linux中找到可以直接替换的系统调用,这里称之为一对一(1:1)的直接映射关系;有17 个Windows API虽然也能在Linux中找到与之实现功能相类似的系统调用,但是需要根据具体情况增加部分代码实现,下文中称这种映射关系为一对一(1:1)的上下文相关映射关系;有11 个Windows API需要多个Linux系统调用按一定顺序执行才能实现相同功能,即存在一对多(1:n)的上下文相关映射关系;有10 个Windows API在不同情况下存在不同的映射关系,称为混合映射关系;还有10 个Windows API在Linux中没有找到相对应的实现,需要单独实现,也就是说无映射关系。接下来将分别对这5 种映射关系进行本体建模。
图16 系统调用间映射关系的分类统计
从前文的分析中可以看出,在Linux中,与Windows中API相映射的系统调用接口是一个序列,这个序列中的函数可能为0,意味着不存在与之相对应的系统调用接口;可能为1,意味着存在1 个与之相对应的接口;也可能为n,意味着存在n 个与之对应的接口。在一对一映射的情况下,又可根据具体实现程度分为直接映射和上下文相关映射;而在一对n 映射的情况下,就需要考虑与之相映射的函数序列中函数与函数之间的关系,可能是顺序关系,也可能是条件关系。
如下给出接口映射本体的形式化定义。
定义16 (接口映射本体APIMapping_Onto)APIMapping_Onto=(onto_Info,concepts,relations,condition,{Σ},axioms),其中:
(1)onto_Info表示的是接口映射本体的基本信息,包括名称、创建者、创建时间等元数据信息;(www.xing528.com)
(2)concepts表示的接口的集合;
(3)relations表示的是concepts中的接口与Σ的关系的集合,包括五种基本的映射关系;
(4)condition 为条件判断;
(5){Σ}是与concepts中的接口相映射的函数序列集合,集合的函数序列的个数至少为1,其中函数序列可以表示为Σ=(concepts,relations);
(6)axioms表示的是接口映射本体中存在的公理集合。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。