用于处理系统调用的方法、装置和计算机存储介质制造方法及图纸

技术编号:12388596 阅读:88 留言:0更新日期:2015-11-25 22:04
本文中的技术提供被截获系统调用的“时移”,以便能够实现被截获系统调用到实际系统调用的一对多(1:n)或多对一(n:1)映射。需要在系统调用截获时出现的数据的逻辑边界(而不是物理边界)上实行的任何行动,导入(缓存)采取行动之前的数据,然后在完成时导出结果。该行动可能是相当不同的,例如检查数据、编辑数据、更改数据、限制数据、处理数据以及更新数据,等等。该技术可在数据库访问控制系统中实现。

【技术实现步骤摘要】
【国外来华专利技术】
优选实施例总体涉及保护诸如事务处理环境的分布式计算环境中的资源。
技术介绍
在计算环境中,“系统调用”是程序或进程通过其请求来自操作系统内核的服务的机制。在典型的操作系统(OS)中,如Linux(Linux是林纳斯·托瓦兹(LinusTorvalds)在美国和/或其他国家的注册商标)中,操作系统将虚拟存储器分隔为内核空间和用户空间,前者被保留用于运行操作系统内核、内核扩展、和设备驱动程序,后者是在所有用户模式的应用程序工作的地方。系统调用提供在用户空间中执行的程序或进程与在内核空间中执行的操作系统内核之间的接口。出于安全的原因,分析和修改被程序读或写的数据可能是有益的。如果需要进行过滤或编辑(或者更一般来说,某种其它变换),则需要截获流经系统的数据并对其采取行动。当截获系统调用时,可以将这个数据发送出去用于分析,甚至可以根据预先设定的规则被修改。当需要编辑时,最简单的方法是在被截获系统调用到实际系统调用的一对一(1:1)映射内实行编辑。有几款现有的商业产品执行此功能。然而,常常可能跨多个系统调用拆分单一事务的数据。例如,当为了对通过操作系统发送和接收的数据实行变换而截获系统调用时,不能保证被截获的数据的量包含整个逻辑包(packet)。例如,考察一个正在接收TCP包的MySQL数据库。该包分两部分被接收,首先被接收的是包头(header),然后是包体(body)。通常,包头首先被接收,并指示后续包中的字节数。现在,假设要编辑对一个数据库的查询,以将结果限制到特定的列(例如,诸如‘whereEMPLOYEE=20’的SQL语句)。要做到这一点,就要将该数据库查询修改得适合附加子句(clause)。然而,在被截获系统调用到实际系统调用的1:1的映射中,已经将包头传递到数据库,因此要改变包的大小已为时太晚。更一般来说,可能跨多个系统调用拆分单一的(例如,从数据库读的)查询。无论所需的查询或功能的性质如何,一旦将系统调用中被读或写的数据返回到用户进程(userprocess),要修改数据就为时太晚了。这种限制使现有的解决方案不能改写或编辑跨越多个系统调用的被截获数据。
技术实现思路
优选实施例提供一种在具有存储器的计算系统中的处理系统调用的方法,该系统调用具有关联的源和目的地,该方法包含:截获该系统调用时,应用在硬件单元中执行的功能来导入与两个或更多的实际系统调用相关联的数据,直到导入了与该系统调用相关联的完整数据集合;响应于收到对该完整数据集合实行变换的结果,通过将该结果导出至目的地而释放该系统调用。优选地,源是该系统调用,目的地是存储器的用户空间。更优选地,源是存储器的用户空间,目的地是该系统调用。更优选地,该方法进一步包含对该完整数据集合实行变换的步骤。更优选地,该变换是以下之一:检查、分析、编辑、阻止、处理和更新。优选地,该两个或更多的实际系统调用导致数据被读取,且在返回到请求读取的应用之前对该完整数据集合实行该变换。优选地,该两个或更多的实际系统调用导致从应用写数据,且在发起第一系统调用写之前实行该变换。本文中的技术提供被截获系统调用的“时移”(time-shifting),以便能够实现被截获系统调用到实际系统调用的一对多(1:n)或多对一(n:1)映射。需要在系统调用截获时出现的数据的逻辑边界(而不是物理边界)上实行的任何行动,导入(spool)(缓存)采取行动之前的数据,然后在完成时导出(unspool)结果。该行动可能是相当不同的,例如检查数据、编辑数据、更改数据、限制数据、处理数据以及更新数据,等等。本文所描述的方法假定系统调用具有相关的源和目的地。在“读”的情况下,源是原始系统调用本身,而目的地是用户空间。在“写”的情况下,源是用户空间,而目的地是原始系统调用。根据本公开,实际上对与系统调用关联的数据实施“保持”(hold)。特别地,在读的情况下,该保持导入数据,在所有数据都被读取之前不返回到用户空间。在写的情况下,该保持导入数据,直到所有将要被写入的数据都被从用户空间读出。以这样的方式保持数据,使得能够对调用被截获系统调用的用户进程透明地实行变换。此外,使用这种方法使得能够远程地进行数据的处理和实行变换,以例如避免存储器限制,从而能将不同的数据集合互相关联。以上概述了所公开主题的一些更相关的特点。这些特点应该被解释为仅仅是说明性的。正如下面所述的那样,可以通过以不同方式应用所公开的主题或者通过修改该主题而得到许多其它有益的结果。附图说明为了更完整地理解本专利技术及其优点,现在结合附图作出以下描述,附图中:图1示出可以在其中可实现说明性实施例的分布式数据处理环境的示例性框图;图2是可以在其中可实现说明性实施例的数据处理系统的示例性框图;图3示出可在其中实践本公开的非限定性实施例中的技术的、已知的本地数据库访问控制系统(LDACS)的高级操作;图4例示一计算实体的存储器,其中可以实现本公开的导入(spooling)机制的功能;图5例示按照本专利技术的处理第一类(例如“读”)系统调用的处理流程;图6例示按照本专利技术的处理第二类(例如“写”)系统调用的处理流程。具体实施方式现在参照各附图、特别是参照图1-2,图中示出可以在其中实现本专利技术的示例性实施例的数据处理环境的示意图。应该明白,图1-2仅仅是示范性的,并非是要对本专利技术主题的各方面或实施例可以在其中实现的环境设置或暗示任何限制。在不脱离本专利技术的范围的情况下可以对所示出的环境作出许多修改。现在参看各附图。图1描述了一个典型的分布式数据处理系统的图形表示,其中可以实现说明性实施方案的各个方面。分布式数据处理系统100可以包括一个计算机网络,在该网络中,可以实现说明性实施例的各方面。分布式数据处理系统100包含至少一个网络102,这是用于提供在分布式数据处理系统100中连接在一起的各种设备和计算机之间的通信链路的介质。网络102可以包括连接,如有线、无线通信链路或光纤电缆在所示的例子中,服务器104和服务器106与存储单元102一起连接到网络108。此外,客户端110、112和114也连接到网络102。这些客户端110、112和114例如可以是个人电脑、网络计算机,等等。在所示的例子中,服务器104提供数据,例如引导文件、操作系本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/CN105103159.html" title="用于处理系统调用的方法、装置和计算机存储介质原文来自X技术">用于处理系统调用的方法、装置和计算机存储介质</a>

【技术保护点】
一种用于在有存储器的计算系统中处理系统调用的方法,该系统调用具有关联的源和目的地,该方法包含:截获该系统调用时,应用在硬件单元中执行的功能来导入与两个或更多的实际系统调用相关联的数据,直到导入了与该系统调用相关联的完整数据集合;响应于收到对该完整数据集合实行变换的结果,通过将该结果导出至目的地而释放该系统调用。

【技术特征摘要】
【国外来华专利技术】2013.04.10 US 13/860,0001.一种用于在有存储器的计算系统中处理系统调用的方法,该
系统调用具有关联的源和目的地,该方法包含:
截获该系统调用时,应用在硬件单元中执行的功能来导入与两个
或更多的实际系统调用相关联的数据,直到导入了与该系统调用相
关联的完整数据集合;
响应于收到对该完整数据集合实行变换的结果,通过将该结果导
出至目的地而释放该系统调用。
2.按照权利要求1的方法,其中,源是该系统调用,目的地是
存储器的用户空间。
3.按照权利要求1的方法,其中,源是存储器的用户空间,目
的地是该系统调用。
4.按照前述权利要求的任何之一的方法,进一步包含对该完整
数据集合实行变换。
5.按照权利要求4的方法,其中,该变换是以下之一:检查、
分析、编辑、阻止、处理和更新。
6.按照权利要求4的方法,其中,该两个或更多的实际系统调
用导致数据被读取,且在返回到请求读取的应用之前对该完整数据
集合实行该变换。
7.按照权利要求4的方法,其中,该两个或更多的实际系统调
用导致从应用写数据,且在发起第一系统调用写之前实行该变换。
8.一种用于处理系统调用的装置,该系统调用具有关联的源和
目的地,该装置包含:用于存储计算机程序指令的计算机存储器,
当计算机程序指令被处理器执行时执行:
截获该系统调用时,应用一个在硬件单元中执行的功能,以导入
与两个或更多的实际系统调用相关联的数据,直到导入了与该系统
调用相关联的完整数据集合;
响应于收到对该完整数据集合实行变换的结果,通过将该结果导

\t出至目的地而释放该系统调用。
9.按照权利要求8的装置,其中,源是该系统调用,目的地是
存储器的用户空间。
10.按照权利要求8的装置,其中,源是存储器的用户空间,目
的地是该系统调...

【专利技术属性】
技术研发人员:R·O·耶雷尔U·泽加尔G·迪亚曼特
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1