[发明专利]用于处理系统调用的方法、装置和计算机存储介质有效
申请号: | 201480020417.2 | 申请日: | 2014-03-11 |
公开(公告)号: | CN105103159B | 公开(公告)日: | 2018-06-26 |
发明(设计)人: | R·O·耶雷尔;U·泽加尔;G·迪亚曼特 | 申请(专利权)人: | 国际商业机器公司 |
主分类号: | G06F21/60 | 分类号: | G06F21/60;G06F17/30 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 王茂华;李峥宇 |
地址: | 美国纽*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 系统调用 截获 调用 计算机存储介质 数据库访问控制 缓存 编辑数据 处理数据 处理系统 更新数据 检查数据 逻辑边界 实际系统 物理边界 多对一 完成时 一对多 映射 导出 时移 | ||
本文中的技术提供被截获系统调用的“时移”,以便能够实现被截获系统调用到实际系统调用的一对多(1:n)或多对一(n:1)映射。需要在系统调用截获时出现的数据的逻辑边界(而不是物理边界)上实行的任何行动,导入(缓存)采取行动之前的数据,然后在完成时导出结果。该行动可能是相当不同的,例如检查数据、编辑数据、更改数据、限制数据、处理数据以及更新数据,等等。该技术可在数据库访问控制系统中实现。
技术领域
优选实施例总体涉及保护诸如事务处理环境的分布式计算环境中的资源。
背景技术
在计算环境中,“系统调用”是程序或进程通过其请求来自操作系统内核的服务的机制。在典型的操作系统(OS)中,如Linux(Linux是林纳斯·托瓦兹(Linus Torvalds)在美国和/或其他国家的注册商标)中,操作系统将虚拟存储器分隔为内核空间和用户空间,前者被保留用于运行操作系统内核、内核扩展、和设备驱动程序,后者是在所有用户模式的应用程序工作的地方。系统调用提供在用户空间中执行的程序或进程与在内核空间中执行的操作系统内核之间的接口。
出于安全的原因,分析和修改被程序读或写的数据可能是有益的。如果需要进行过滤或编辑(或者更一般来说,某种其它变换),则需要截获流经系统的数据并对其采取行动。当截获系统调用时,可以将这个数据发送出去用于分析,甚至可以根据预先设定的规则被修改。当需要编辑时,最简单的方法是在被截获系统调用到实际系统调用的一对一(1:1)映射内实行编辑。有几款现有的商业产品执行此功能。
然而,常常可能跨多个系统调用拆分单一事务的数据。例如,当为了对通过操作系统发送和接收的数据实行变换而截获系统调用时,不能保证被截获的数据的量包含整个逻辑包(packet)。例如,考察一个正在接收TCP包的MySQL数据库。该包分两部分被接收,首先被接收的是包头(header),然后是包体(body)。通常,包头首先被接收,并指示后续包中的字节数。现在,假设要编辑对一个数据库的查询,以将结果限制到特定的列(例如,诸如‘where EMPLOYEE=20’的SQL语句)。要做到这一点,就要将该数据库查询修改得适合附加子句(clause)。然而,在被截获系统调用到实际系统调用的1:1的映射中,已经将包头传递到数据库,因此要改变包的大小已为时太晚。更一般来说,可能跨多个系统调用拆分单一的(例如,从数据库读的)查询。无论所需的查询或功能的性质如何,一旦将系统调用中被读或写的数据返回到用户进程(user process),要修改数据就为时太晚了。这种限制使现有的解决方案不能改写或编辑跨越多个系统调用的被截获数据。
发明内容
优选实施例提供一种在具有存储器的计算系统中的处理系统调用的方法,该系统调用具有关联的源和目的地,该方法包含:截获该系统调用时,应用在硬件单元中执行的功能来导入与两个或更多的实际系统调用相关联的数据,直到导入了与该系统调用相关联的完整数据集合;响应于收到对该完整数据集合实行变换的结果,通过将该结果导出至目的地而释放该系统调用。
优选地,源是该系统调用,目的地是存储器的用户空间。更优选地,源是存储器的用户空间,目的地是该系统调用。更优选地,该方法进一步包含对该完整数据集合实行变换的步骤。更优选地,该变换是以下之一:检查、分析、编辑、阻止、处理和更新。
优选地,该两个或更多的实际系统调用导致数据被读取,且在返回到请求读取的应用之前对该完整数据集合实行该变换。优选地,该两个或更多的实际系统调用导致从应用写数据,且在发起第一系统调用写之前实行该变换。
本文中的技术提供被截获系统调用的“时移”(time-shifting),以便能够实现被截获系统调用到实际系统调用的一对多(1:n)或多对一(n:1)映射。需要在系统调用截获时出现的数据的逻辑边界(而不是物理边界)上实行的任何行动,导入(spool)(缓存)采取行动之前的数据,然后在完成时导出(unspool)结果。该行动可能是相当不同的,例如检查数据、编辑数据、更改数据、限制数据、处理数据以及更新数据,等等。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480020417.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:血管内图像中的多模态分割
- 下一篇:剖析代码执行