[发明专利]一种VxWorks系统驱动层块设备数据访问控制方法有效
申请号: | 201410509089.4 | 申请日: | 2014-09-28 |
公开(公告)号: | CN104318152B | 公开(公告)日: | 2017-04-12 |
发明(设计)人: | 戴跃伟;薛朋骏;翟江涛 | 申请(专利权)人: | 江苏科技大学 |
主分类号: | G06F21/50 | 分类号: | G06F21/50;G06F21/30;G06F21/60 |
代理公司: | 南京经纬专利商标代理有限公司32200 | 代理人: | 楼高潮 |
地址: | 212003 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 vxworks 系统 驱动 设备 数据 访问 控制 方法 | ||
1.一种VxWorks系统驱动层块设备数据访问控制方法,其特征是包括如下步骤:
步骤(1)、设置VxWorks系统中任务对块设备的访问权限库,VxWorks系统启动时加载该权限库;
步骤(2)、对块设备接口做基本的封装来创建CBIO设备;
步骤(3)、在块设备读、写函数入口插入块设备层访问监控器函数,dosFs文件系统层的操作传递到块设备驱动层后,根据当前任务ID和块设备匹配权限库,当匹配成功确认有读、写权限,则继续执行块设备读、写操作,否则返回ERROR到dosFs文件系统驱动层,结束调用;
步骤(4)、在dosFs文件系统驱动层嵌入访问监控器,具体方法步骤是:
(I)获取dosFs文件系统驱动层的dosFsRead()函数信息
获取内存中dosFs文件系统驱动层的dosFsRead()函数的汇编指令代码、机器码和dosFsRead()函数入口的内存位置,提取其代码特征;
(II)设计dosFs文件系统驱动层访问监控器
dosFs文件系统驱动层访问监控器根据当前任务ID和块设备匹配权限库,当匹配成功,将处理器的寄存器数据恢复到进入dosFsRead()函数前数据,执行dosFsRead()函数入口第一条汇编指令,预留一条空指令以存放跳转指令;当匹配不成功,则将处理器的寄存器数据恢复到进入dosFsRead()函数前数据,执行dosFsRead()函数入口第一次寄存器入栈操作,预留一条空指令以存放跳转指令;
(III)在dosFs文件系统驱动层嵌入访问监控器
根据步骤(4)中(I)计算获得dosFsRead()函数入口的内存位置和返回ERROR汇编指令代码的内存位置,根据dosFs文件系统驱动层访问监控器函数入口的内存位置,计算合成一条从dosFsRead()函数入口跳转到dosFs文件系统驱动层访问监控器入口的跳转指令机器码,并将该跳转指令机器码覆盖到dosFsRead()函数入口的内存位置;
(IV)完善dosFs文件系统驱动层访问监控器
分别计算出该监控器匹配成功和匹配不成功预留空指令的内存位置,根据步骤(4)中(III)获得的dosFsRead()函数入口的内存位置,计算合成出匹配成功跳转到dosFsRead()函数入口第二条汇编指令代码处的跳转指令机器码,覆盖到步骤(4)中(II)匹配成功预留空指令处;根据步骤(4)中(III)获得的dosFsRead()函数返回ERROR汇编指令代码的内存位置,计算合成出匹配不成功跳转到dosFsRead()函数返回ERROR汇编指令代码处的指令机器码,覆盖到步骤(4)中(II)匹配不成功预留空指令处。
2.根据权利要求1所述的VxWorks系统驱动层块设备数据访问控制方法,其特征是,步骤(1)所述的设置VxWorks系统中任务对块设备的访问权限库的方法是,权限库在权限库管理员进行身份认证通过后,通过外部设备动态管理该权限库,启动VxWorks系统将该权限库从其加密存储器中载入到固定的受保护内存区,供访问控制系统使用;权限库在每次权限库管理员修改后立即生效,并同步保存到权限库存储器;VxWorks系统在第一次启动或者检测到权限库存储器无效时,启用默认权限库。
3.根据权利要求1所述的VxWorks系统驱动层块设备数据访问控制方法,其特征是,步骤(4)中(I)所述的获取dosFs文件系统驱动层的dosFsRead()函数信息的方法是,在VxWorks系统调试状态下,利用WindSh命令iosDevShow()、iosDrvShow()和l()获取dosFsRead()函数信息。
4.根据权利要求1所述的VxWorks系统驱动层块设备数据访问控制方法,其特征是,步骤(4)中(II)所述的将处理器的寄存器数据恢复到进入dosFsRead()函数前数据的方法是,对内存中dosFs文件系统驱动层访问监控器函数入口到匹配权限库操作之间的汇编指令代码进行改写,改写为一条保存除堆栈指针寄存器和程序计数器寄存器以外的所有寄存器到堆栈指令,其余为空制令;在恢复到进入dosFsRead()函数前数据时执行入栈操作保存的寄存器内容出栈到处理器寄存器操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏科技大学,未经江苏科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410509089.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种退火炉隔热板装置
- 下一篇:易调节的步进炉升降油缸斜轨装配