[发明专利]一种支持内核模块隔离的消息服务模块的设计方案在审
申请号: | 201710350406.6 | 申请日: | 2017-05-15 |
公开(公告)号: | CN108875381A | 公开(公告)日: | 2018-11-23 |
发明(设计)人: | 陈叶;黄皓;赵冠军 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 210046 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内核模块 隔离 消息服务模块 消息管理 消息通知机制 消息接收方 不可见性 函数调用 划分模块 交互提供 解耦模块 内存页表 同步机制 完成信息 系统调用 消息分发 消息服务 直接交互 交互点 解耦 内核 扩散 攻击 交换 进程 保证 服务 | ||
1.一种支持内核模块隔离的消息服务模块的设计方案,其包括以下几个步骤:
步骤1,提出对内核不同模块之间交互关系进行解耦,并提出借助消息服务模块完成解耦模块之间交互的方法;
步骤2,设计了进程之间消息交互的消息管理机制,以及保证消息存放的正确性和有效性方法;
步骤3,针对多个进程并发访问消息队列的情况,提出了不同于内核自旋锁的进程间同步方法,即Msglock方法;
步骤4,针对消息接收方设计了消息通知机制,提出了适合内核模块隔离的消息通知方式。
2.根据权利要求1所述的设计方案,其特征在于,步骤1包括如下子步骤:
步骤1-1,划分内核模块,将内核模块根据功能的不同划分为四个模块:文件系统模块、进程管理模块、内存管理模块、其它模块;
步骤1-2,选取一个被隔离的模块,其它模块统一作为一个大的模块,解耦被隔离模块和其它模块之间的交互过程,此时被隔离模块除了自身的数据对象和代码之外,不能直接访问其它模块的数据对象和代码;
步骤1-3,利用消息服务模块连接步骤1-2中被解耦的模块,使得被隔离模块只能通过消息服务模块与其它模块进行数据的交互。
3.根据权利要求2所述的方法,其特征在于,步骤1-3包括以下子步骤:
步骤1-3-1,独立一个处理器作为专门处理被隔离模块的任务,该处理器上面绑定了特定的执行进程,用来处理被隔离模块的任务;
步骤1-3-2,修改系统调用表,其它模块进程将被隔离模块的系统调用通过消息服务模块交给被隔离模块进程处理;
步骤1-3-3,当被隔离模块进程在执行到被隔离模块中的某块需要调用其它模块的代码时,需要通过消息服务模块将需要执行其他模块代码的信息通过消息服务模块传递给其它模块进程,当该进程处理完消息中所带的任务后,将结果再通过消息服务模块返回给被隔离模块进程;
步骤1-3-4,重复步骤1-3-3,直至被隔离模块进程执行到系统调用任务的最后一行代码为止;
步骤1-3-5,被隔离模块进程将整个系统调用任务的结果通过消息服务模块返回给1-3-2中的其它模块进程,被隔离模块进程继续等待下一个任务的到来,然后重复1-3-2到1-3-5的步骤。
4.根据权利要求1所述的方法,其特征在于,步骤2包括以下子步骤:
步骤2-1,采用环形消息队列和共享内存组合的消息存储方法,根据消息大小来确定是否需要将消息体放在单独的共享内存中;若消息比较小,则直接将消息放到消息队列中,否则将消息体单独存放在共享内存中;一个消息队列有两个全局变量,一个是消息的队头指针,一个是消息的队尾指针;其中队头指针指的位置是下一个要取出消息的起始地址,队尾指针指的下一个要放入消息的起始地址;根据队头指针和队尾指针的关系,决定此时队列是否为空或为满;
步骤2-2,设计了一种通用的消息格式存储方法,消息格式存放一个进程控制块指针,一个cpu号,4个泛型指针;进程控制块指针保存发送消息进程的进程控制块,cpu号为该进程当前所在的cpu,泛型指针分别指向回调函数、参数、小块内存、大块内存。其中回调函数是消息接收方接收到消息后所要完成的操作,参数根据实际情况选择不同参数列表,小块内存可以用来存放一些小数据,比如返回值。大块内存可以用来存放大块数据,比如读写的文件内容;
步骤2-3,设计了可变的参数列表,根据研究内核代码发现函数参数的个数的范围在0~8,因此,本文的消息参数列表一共有9个,根据参数个数不同选择不同的参数列表来传递消息;步骤2-2中的一个泛型指针即是指向参数列表的。
5.根据权利要求4所述的方法,其特征在于,步骤2-3包括以下子步骤:
步骤2-3-1,每个参数列表采用宏定义的方式,第一个参数为函数返回值类型,第二个参数及其之后都为参数类型;
步骤2-3-2,宏定义的真正实现是一个Func_container_x的结构体,其中包括封装了步骤2-3-1中的四个参数;根据实际函数的不同以及参数的不同选择不同的宏定义来解析以及存放参数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710350406.6/1.html,转载请声明来源钻瓜专利网。