为方便数据变换而导入系统调用数据的制作方法

文档序号:9383094阅读:293来源:国知局
为方便数据变换而导入系统调用数据的制作方法
【技术领域】
[0001] 优选实施例总体涉及保护诸如事务处理环境的分布式计算环境中的资源。
【背景技术】
[0002] 在计算环境中,"系统调用"是程序或进程通过其请求来自操作系统内核的服务的 机制。在典型的操作系统(OS)中,如Linux (Linux是林纳斯·托瓦兹(Linus Torvalds)在 美国和/或其他国家的注册商标)中,操作系统将虚拟存储器分隔为内核空间和用户空间, 前者被保留用于运行操作系统内核、内核扩展、和设备驱动程序,后者是在所有用户模式的 应用程序工作的地方。系统调用提供在用户空间中执行的程序或进程与在内核空间中执行 的操作系统内核之间的接口。
[0003] 出于安全的原因,分析和修改被程序读或写的数据可能是有益的。如果需要进行 过滤或编辑(或者更一般来说,某种其它变换),则需要截获流经系统的数据并对其采取行 动。当截获系统调用时,可以将这个数据发送出去用于分析,甚至可以根据预先设定的规则 被修改。当需要编辑时,最简单的方法是在被截获系统调用到实际系统调用的一对一(1:1) 映射内实行编辑。有几款现有的商业产品执行此功能。
[0004] 然而,常常可能跨多个系统调用拆分单一事务的数据。例如,当为了对通过操作系 统发送和接收的数据实行变换而截获系统调用时,不能保证被截获的数据的量包含整个逻 辑包(packet)。例如,考察一个正在接收TCP包的MySQL数据库。该包分两部分被接收,首 先被接收的是包头(header),然后是包体(body)。通常,包头首先被接收,并指示后续包中 的字节数。现在,假设要编辑对一个数据库的查询,以将结果限制到特定的列(例如,诸如 'where EMPLOYEE = 20'的SQL语句)。要做到这一点,就要将该数据库查询修改得适合附 加子句(clause)。然而,在被截获系统调用到实际系统调用的1:1的映射中,已经将包头传 递到数据库,因此要改变包的大小已为时太晚。更一般来说,可能跨多个系统调用拆分单一 的(例如,从数据库读的)查询。无论所需的查询或功能的性质如何,一旦将系统调用中被 读或写的数据返回到用户进程(user process),要修改数据就为时太晚了。这种限制使现 有的解决方案不能改写或编辑跨越多个系统调用的被截获数据。

【发明内容】

[0005] 优选实施例提供一种在具有存储器的计算系统中的处理系统调用的方法,该系统 调用具有关联的源和目的地,该方法包含:截获该系统调用时,应用在硬件单元中执行的功 能来导入与两个或更多的实际系统调用相关联的数据,直到导入了与该系统调用相关联的 完整数据集合;响应于收到对该完整数据集合实行变换的结果,通过将该结果导出至目的 地而释放该系统调用。
[0006] 优选地,源是该系统调用,目的地是存储器的用户空间。更优选地,源是存储器的 用户空间,目的地是该系统调用。更优选地,该方法进一步包含对该完整数据集合实行变换 的步骤。更优选地,该变换是以下之一:检查、分析、编辑、阻止、处理和更新。
[0007] 优选地,该两个或更多的实际系统调用导致数据被读取,且在返回到请求读取的 应用之前对该完整数据集合实行该变换。优选地,该两个或更多的实际系统调用导致从应 用写数据,且在发起第一系统调用写之前实行该变换。
[0008] 本文中的技术提供被截获系统调用的"时移"(time-shifting),以便能够实现被 截获系统调用到实际系统调用的一对多(l:n)或多对一(n:l)映射。需要在系统调用截获 时出现的数据的逻辑边界(而不是物理边界)上实行的任何行动,导入(spool)(缓存)采 取行动之前的数据,然后在完成时导出(unspool)结果。该行动可能是相当不同的,例如检 查数据、编辑数据、更改数据、限制数据、处理数据以及更新数据,等等。
[0009] 本文所描述的方法假定系统调用具有相关的源和目的地。在"读"的情况下,源是 原始系统调用本身,而目的地是用户空间。在"写"的情况下,源是用户空间,而目的地是原 始系统调用。根据本公开,实际上对与系统调用关联的数据实施"保持"(hold)。特别地, 在读的情况下,该保持导入数据,在所有数据都被读取之前不返回到用户空间。在写的情况 下,该保持导入数据,直到所有将要被写入的数据都被从用户空间读出。以这样的方式保持 数据,使得能够对调用被截获系统调用的用户进程透明地实行变换。此外,使用这种方法使 得能够远程地进行数据的处理和实行变换,以例如避免存储器限制,从而能将不同的数据 集合互相关联。
[0010] 以上概述了所公开主题的一些更相关的特点。这些特点应该被解释为仅仅是说明 性的。正如下面所述的那样,可以通过以不同方式应用所公开的主题或者通过修改该主题 而得到许多其它有益的结果。
【附图说明】
[0011] 为了更完整地理解本发明及其优点,现在结合附图作出以下描述,附图中:
[0012] 图1示出可以在其中可实现说明性实施例的分布式数据处理环境的示例性框图;
[0013] 图2是可以在其中可实现说明性实施例的数据处理系统的示例性框图;
[0014] 图3示出可在其中实践本公开的非限定性实施例中的技术的、已知的本地数据库 访问控制系统(LDACS)的高级操作;
[0015] 图4例示一计算实体的存储器,其中可以实现本公开的导入(spooling)机制的功 能;
[0016] 图5例示按照本发明的处理第一类(例如"读")系统调用的处理流程;
[0017] 图6例示按照本发明的处理第二类(例如"写")系统调用的处理流程。
【具体实施方式】
[0018] 现在参照各附图、特别是参照图1-2,图中示出可以在其中实现本发明的示例性实 施例的数据处理环境的示意图。应该明白,图1-2仅仅是示范性的,并非是要对本发明主题 的各方面或实施例可以在其中实现的环境设置或暗示任何限制。在不脱离本发明的范围的 情况下可以对所示出的环境作出许多修改。
[0019] 现在参看各附图。图1描述了一个典型的分布式数据处理系统的图形表示,其中 可以实现说明性实施方案的各个方面。分布式数据处理系统100可以包括一个计算机网 络,在该网络中,可以实现说明性实施例的各方面。分布式数据处理系统100包含至少一个 网络102,这是用于提供在分布式数据处理系统100中连接在一起的各种设备和计算机之 间的通信链路的介质。网络102可以包括连接,如有线、无线通信链路或光纤电缆
[0020] 在所示的例子中,服务器104和服务器106与存储单元102 -起连接到网络108。 此外,客户端110、112和114也连接到网络102。这些客户端110、112和114例如可以是个 人电脑、网络计算机,等等。在所示的例子中,服务器104提供数据,例如引导文件、操作系 统映像和应用程序给客户端110、112和114。在所示的例子中,客户端110、112和114是服 务器104的客户端。分布式数据处理系统100可以包括其他服务器、客户端和未予示出的 其它设备。
[0021] 在所示的例子中,分布式数据处理系统100是互联网,网络102代表世界范围的网 络连接和网关,它们利用传输控制协议/互联网协议(TCP/IP)的协议组彼此通信。在互联 网的核心,是由成千上万的商业、政府、教育和其他路由数据和消息的计算机系统组成的主 要节点或主机之间的高速数据通信线路的骨干。当然,分布式数据处理系统100也可以实 现包括一些不同类型的网络,例如内部网、局域网(LAN)、广域网(LAN)等等。如上所述,图 1旨在作为一个例子,绝非对所公开的主题的不同实施方式的结构性限制,因此,图1中所 示的特定元素,不应该视为是对本发明的说明性实施例可在其中实施的环境的限制。
[0022] 现在参看图2,所示的是可以在其中实现说明性实施例的各方面的示例性数据处 理系统的框图。数据处理系统200是计算机的一个例子,诸如图1中的客户端110,其中可 以安置实现本公开的说明性实施例的过程的计算机可用代码或指令。
[0023] 现在参看图2,所示的是可以在其中实现说明性实施例的各方面的示例性数据处 理系统的框图。数据处理系统200是计算机的一个例子,诸如图1中的服务器104和客户 端110,其中可以安置实现本公开的说明性实施例的过程的计算机可用代码或指令。在这个 说明性例子中,数据处理系统200包括通信组织202,它提供处理器单元204、存储器206、持 久性存储器208、通信单元210、输入/输出(I/O)单元212和显示器214之间的通信。
[002
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1