CN110663082B - 数据处理系统和方法 - Google Patents

数据处理系统和方法 Download PDF

Info

Publication number
CN110663082B
CN110663082B CN201880034435.4A CN201880034435A CN110663082B CN 110663082 B CN110663082 B CN 110663082B CN 201880034435 A CN201880034435 A CN 201880034435A CN 110663082 B CN110663082 B CN 110663082B
Authority
CN
China
Prior art keywords
file
data processing
interception
virtual
library
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880034435.4A
Other languages
English (en)
Other versions
CN110663082A (zh
Inventor
丹尼尔·格林菲尔德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Petagi Ltd
Original Assignee
Petagi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Petagi Ltd filed Critical Petagi Ltd
Publication of CN110663082A publication Critical patent/CN110663082A/zh
Application granted granted Critical
Publication of CN110663082B publication Critical patent/CN110663082B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • G16B50/50Compression of genetic data
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B50/00ICT programming tools or database systems specially adapted for bioinformatics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biotechnology (AREA)
  • Evolutionary Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Genetics & Genomics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据处理系统,包括数据处理装置,其中,所述数据处理装置包括用于执行一个或多个软件产品的计算硬件,其中,所述一个或多个软件产品的执行配置所述数据处理装置,以从文件系统装置访问数据。所述数据处理装置能够被操作来加载动态链接器,所述动态链接器能够被操作来包括拦截库,拦截库拦截可执行软件产品的文件访问操作,其中:(1)所述文件系统装置中不存在的虚拟文件能够被所述可执行软件产品访问;(2)所述虚拟文件是以下任一情况的结果:(a)所述文件系统装置中一个或多个真实文件的即时转换,其中,所述即时转换是由一种文件格式到另一种文件格式,或者(b)将访问操作转换为对位于云对象存储上的真实对象的等效云对象存储的所述访问操作,或者(c)所述即时转换(a)和对象访问转换(b)的组合。可选地,至少其中之一:(3)所述虚拟文件是与所述真实文件/对象不同的文件格式,其中,压缩文件格式和所述虚拟文件是互不相同的文件格式;以及(4)所述文件格式是基因组文件格式。

Description

数据处理系统和方法
技术领域
本公开涉及数据处理系统。此外,本公开涉及使用上述数据处理系统处理数据的方法,例如处理基因组数据的方法。另外,本申请涉及包括非暂时性计算机可读存储介质的计算机程序产品,该非暂时性计算机可读存储介质储存有计算机可读指令,该计算机可读指令能够由包括处理硬件的计算设备执行,进而执行上述方法。
背景技术
目前的数据处理系统在执行数据处理功能时,经常需要访问一个或多个库中存储的数据;数据库可例如包括基因组数据。该数据处理系统能够通过运行一个或多个软件产品而在软件控制下执行以实现功能。
在生成软件产品时,在目前实践中,采用链接器来编译多项软件以产生可执行的软件代码。该可执行的软件代码被称为软件产品。此外,多种类型的链接器都是已知的,例如,可在Wikipedia(维基百科)中搜索到,其中,在执行或链接特定程序时,动态链接器能够受到影响以修改其行为,并且动态链接器的示例可以在多种Unix类型的系统中的运行时间链接器的手册页中找到记载,其中,是一种商标。在LD_LIBRARY_PATH和LD_PRELOAD环境变量中提到了这种动态链接器的行为的典型的修改,其中,动态链接器通过在不同定位处搜索共享库,并且强制加载和链接原本不可能被分别加载和连接的库,以修改运行时的链接程序。一种经由动态链接器修改可执行行为的示例是Zlibc,Zlibc也称为“uncompress.so”,在通过LD_PRELOAD hack使用时,该Zlibc动态链接器具有透明解压缩(transparent decompression)的功能,因此,可以在BSD和/>系统中读取预压缩(gzipped)的文件数据,就像未压缩文件一样,实际上即使出现一些警告也允许特定用户在基本文件系统上添加透明解压缩。为了实现这种功能,采用了一种灵活的机制,在向请求数据的特定用户进程提供数据之前,允许对相同的特定代码进行微调,以在读取特定文件时可以对数据进行附加或替换处理。
然而,目前已知的动态链接器在以动态方式修改存储库中的多种多样的数据的方面还不够完善。
发明内容
本公开寻求提供一种改进的数据处理系统,该系统能够以更灵活和动态的方式转换对例如压缩的基因组数据或云对象存储的文件访问。
在第一方面,提供了一种数据处理系统,其包括数据处理装置,其中该数据处理装置包括用于执行一个或多个软件产品的计算硬件,其中一个或多个软件产品的执行配置数据处理装置,以访问来自文件系统装置的数据,
其特征在于,该数据处理装置可被操作来加载动态链接器,该动态链接器可被操作来包括拦截可执行软件产品的文件访问操作的拦截库,其中:
(1)文件系统装置中不存在的虚拟文件能够被可执行软件产品访问;
(2)虚拟文件是以下任一情况的结果:(a)文件系统装置中一个或多个真实文件的即时转换,其中,即时转换是由一种文件格式到另一种文件格式,或者(b)将访问操作转换为对位于云对象存储上的真实对象的等效云对象存储的访问操作,或者(c)即时转换(a)和对象访问转换(b)的组合。
可选地,在数据处理系统中,至少其中之一:
(3)虚拟文件是与真实文件/对象不同的文件格式,其中,压缩文件格式和虚拟文件是互不相同的文件格式;以及
(4)文件格式是基因组文件格式。
本发明的优点在于,通过使用拦截库,动态链接器可被操作来使数据处理系统在执行计算(例如对从传感器装置获取的数据的计算,例如与基因组读数相关)时在对动态变化的数据文件和数据文件格式的利用方面更加多样化。
第二方面,提供了一种使用数据处理系统的方法,数据处理系统包括数据处理装置,其中,数据处理装置包括用于执行一个或多个软件产品的计算硬件,其中,一个或多个软件产品的执行配置数据处理装置,以访问来自文件系统装置的数据,
其特征在于,该方法包括操作数据处理装置以加载动态连接器,该动态链接器可被操作来包括拦截可执行软件产品的文件访问操作的拦截库,其中:
(1)文件系统装置中不存在的虚拟文件能够被可执行文件的软件产品访问;
(2)虚拟文件是以下任一情况的结果:(a)文件系统装置的一个或多个真实文件的即时转换,其中,该即时转换从一种文件格式转换到另一种文件格式,或者(b)将访问操作转换为对位于云对象存储上的真实对象的等效云对象存储访问操作,或者(c)即时转换(a)和对象访问转换(b)的结合。
可选地,在这种方法中,至少其中之一:
(3)虚拟文件是与真实文件/对象不同的文件格式,其中,压缩文件格式和虚拟文件是互不相同的文件格式;以及
(4)文件格式是基因组文件格式。
可选地,在数据处理系统中,至少其中之一:
(3)虚拟文件是与真实文件/对象不同的文件格式,其中,压缩文件格式和虚拟文件是互不相同的文件格式;以及
(4)文件格式是基因组文件格式。
第三方面,本公开的实施方式提供了一种计算机程序产品,其包括存储有计算机可读指令的非暂时性计算机可读存储介质,该计算机可读指令能够由包括处理硬件的计算设备执行,以执行根据前述第二方面的方法。
基于以下附图和对说明性实施方式的具体描述,并结合所附权利要求书的解释,本公开的其它方面、优点、特征和目的将变得清楚。
应当理解,本公开的特征易与多种组合进行结合,而不脱离所附权利要求所限定的本公开的范围。
附图说明
当结合附图阅读时,将能更好地理解以上发明内容和以下对说明性实施方式的详细描述。为了说明本公开,在附图中示出了本公开的示例性构造。然而,本公开不限于本文公开的特定方法和装置。此外,本领域技术人员将理解该附图未按比例绘制。尽可能地,相同的元件都用相同的数字表示。
现在将参考以下附图仅通过示例的方式描述本公开的实施方式,其中:
图1是根据本公开的数据处理系统的示意图;以及
图2是操作图1的数据处理系统的方法的流程图的图示。
在附图中,带下划线的数字用来表示该带下划线的数字所在的项目或与该带下划线的数字相邻的项目。
具体实施方式
以下详细描述说明了本公开的实施方式以及其能够被实施的方法。尽管实现本公开的一些方式已经被公开,但是本领域技术人员将认识到,用于实现或实践本公开的其他实施方式也是可行的。
虚拟文件是一种在计算机系统的文件系统里实际不存在的文件(或目录)。然而,虚拟文件系统可包括虚拟文件的整个文件系统树,虽然虚拟文件实际不存在于真实文件系统中,但是虚拟文件可能另外看起来像位于现有真实文件系统内的路径上。
文件系统(包括虚拟文件系统)需要通过兼容POSIX的操作系统安装在路径上,这通常由具有权限的用户执行。相反,中的FUSE系统允许不具有权限的用户在FUSE内核模型的帮助下将文件系统(包括虚拟文件系统)安装在路径上。然而,如果未明确放宽这些限制,则在容器环境(例如/>)的更严格的安全权限下可能无法使用该方法。也不希望出现这种情况:一个用户安装了该文件系统,所有其他用户通常也可以看到它的存在。
在某些情况中,在以下任意条件下能够使用虚拟文件系统是有帮助的:(a)无需系统安装点即可工作,(b)在现有已安装的文件系统中工作;和/或(c)如在等受限环境中在受限的权限下工作。
使用已安装的虚拟文件系统的另一种方法是使用动态链接来拦截和修改能够执行的对文件系统的访问。这种机制包括基于Linux的系统中的LD_PRELOAD和基于BSD的系统(包括Mac OS)的DLYD_INSERT_LIBRARIES。这里,在加载该可执行文件上,将符号解析为动态库(如大多数Linux中用于可执行文件访问文件系统的glibc.so)可以通过提供匹配符号名称来利用备用供应库进行拦截。备用库可以拦截可执行文件对匹配符号的调用,从而更改那些符号的功能,从而改变可执行文件的整体行为。例如,可执行文件假定‘open64’符号允许打开文件进行后续访问,并返回文件句柄。该备用库可以拦截对此符号的调用以提供备用行为,例如打开与最初指定的文件不同的文件。这种用于文件系统访问的拦截机制具有不需要任何特定权限的优点,并能够使虚拟文件看起来可以保存在已安装的文件系统中。然而,这种用于文件系统访问的拦截机制具有许多不足之处,尚未使其实用化。
不足之处有:
1.尽管通过插入如打开、读取和写入的操作可以轻易拦截文件系统访问,但是内存映射文件的读取/写入操作由操作系统处理,该操作系统通过内核直接将数据从文件系统读取或者写入文件系统,因此不会被库拦截。
2.静态编译的二进制文件,或者不使用如glibc.so的库访问文件系统而是直接使用操作系统调用的二进制文件,就不会被动态链接机制拦截。
总的来说,参考图1,图中提供了数据处理系统10、数据处理装置20,其中该数据处理装置20包括用于执行一个或多个软件产品40的计算硬件30,其中,一个或多个软件产品40的执行配置数据处理装置,以从文件系统装置访问数据,其特征在于,数据处理装置10可被操作来加载动态链接库50,该动态链接库50可被操作来包括拦截库50,该拦截库50拦截可执行软件产品的文件访问操作,其中:
(1)文件系统装置中不存在的虚拟文件能够被可执行软件产品访问;
(2)虚拟文件是以下任一情况的结果:(a)文件系统装置中一个或多个真实文件的即时转换,其中,即时转换是由一种文件格式到另一种文件格式,或者(b)将访问操作转换为对位于云对象存储上的真实对象的等效云对象存储的访问操作,或者(c)即时转换(a)和对象访问转换(b)的组合。
可选地,在数据处理系统中,至少其中之一:
(3)虚拟文件是与真实文件/对象不同的文件格式,其中,压缩文件格式和虚拟文件是互不相同的文件格式;以及
(4)文件格式是基因组文件格式。
可选地,压缩文件格式是压缩基因组文件格式,另一种文件格式是另一种基因组文件格式。
利用基于ZLIB/GZIP的压缩技术,大量的基因组数据已经以BAM或FASTQ.gz文件的标准格式压缩了。由于单个文件的大小可以是许多GB(千兆字节),以及有时是TB(兆兆字节),组织机构存储和传输这些文件也是一种挑战。更好的压缩将有利于减少存储成本和数据传输时间。然而,压缩为新的或更新的文件格式必然会破坏不支持这种新文件格式的现有生物信息学工具和工序的兼容性。虽然可以将其解压缩回原来的文件格式(如BAM或FASTQ.gz)并随后将其输入到工具和工序中,但是这需要作为工序的一部分被明确指出,或者即使实际上只有一小部分用于分析,也要首先在处理之前花时间对整个文件进行解压缩。因此,希望能够从新的被更好地压缩的文件格式透明地转换到压缩量小、兼容性好的文件格式。
处理基因组数据的另一个问题是工序由可执行文件组成,这些可执行文件可以通过POSIX文件的访问来读取/写入存储,而不是为读取或写入通常由REST访问操作的云存储而构建的。如果这些工具/工序可以像常规文件一样访问云存储,那么将是有益的。
可选地,在数据处理系统中,动态链接库包括以强制方式的拦截库。
可选地,在数据处理系统中,可执行软件产品可以通过使用ptrace调用用于访问基因组数据,其中,ptrace调用允许操纵文件描述符、数据存储库和数据寄存库。另外可选地,在数据处理系统中,ptrace调用可被操作来拦截由子进程的数据处理系统进行的强制调用,拦截文件系统可通过内核提供的可执行跟踪功能调用该子进程,其中:
(1)数据处理系统可以访问文件系统装置中不存在的虚拟文件;
(2)虚拟文件是文件系统装置中的一个或多个文件从一种文件格式到另一种文件格式的即时转换;
(3)真实文件是压缩的基因组文件格式,而虚拟文件是另一种基因组文件格式;以及
(4)(*)在操作中,拦截用于打开虚拟文件的系统调用,并通过确保已经安装的虚拟文件系统可以使用并且随后将系统调用重新引导到虚拟文件系统上的文件来首先处理。
可选地,数据处理系统可被操作来拦截子进程的文件系统访问,以便向子进程提供对虚拟文件的访问,其中,数据处理系统可被操作来:
(1)使用动态链接拦截机制(如LD_PRELOAD)拦截库;
(2)在该库中拦截用于创建新的子进程的调用(例如,通过拦截Linux中的诸如execve的exec变量以及fork/vfork);
(3)检查新的子进程的可执行文件,以确定其是否依赖于适当的拦截库(例如,通过检查其是否对glibc.so具有动态依赖关系);
以及,其中:
(4)如果子进程依赖于拦截库,则允许创建子进程,但是要确保动态链接拦截机制能够使用(例如,通过确保LD_PRELOAD环境变量包括必需的拦截库),其中,必需的拦截库拦截文件系统访问,以提供虚拟文件;或者
(5)如果子可执行文件没有依赖于拦截库,则需要检查看备用拦截机制是否是可使用的(即,母进程是否有充分的权限来应用备用的拦截方式),其中,如果备用拦截机制是可使用的,则在子进程中应用备用拦截机制。
可选地,如果多个这样的备用拦截机制均可使用,则数据处理系统可被操作来选择一个这样的可使用的备用拦截机制。
可选地,该备用拦截机制允许子进程继续运行,但是设置了该子进程的拦截系统调用(例如,通过使用Linux中的ptrace机制)。另外可选地,出于对性能的考虑,系统调用的拦截仅限于目标事项(例如,通过在Linux上使用seccomp过滤库)。以这种方式,所有文件系统的操作均可以被拦截,从而可以转换虚拟文件上的任何操作。
可选地,该备用拦截机制是利用在子进程上运行的即时再编译库(如Intel的PIN工具或HP-MIT的DynamoRIO),其中,即时再编译库被配置用于通过子进程检测和拦截系统调用。以这种方式,访问文件系统的系统调用可以被重新引导到提供虚拟文件的备用代码。
可选地,该数据处理系统可被操作来将任何基于文件名(或基于路径名)的访问重新引导到虚拟文件和虚拟文件系统安装点(如,对于Linux,将FUSE安装到临时受限访问目录)内的等效条目上,其中,如果当前不存在这样的安装点,在使用已修改的系统调用之前,会即时创建新的安装。在这种方案中,对如“打开文件”之类操作的系统调用将返回一个有效的文件句柄,其中,对该文件句柄的读取/写入操作将不需要进一步的系统调用拦截,从而提高了性能,但会通过基于安装的虚拟文件系统的方法被拦截。
另外可选地,在数据处理系统中,在(4)(*)中,已安装的虚拟文件系统被实现为临时目录,其中,如果尚未存在安装点,则数据处理系统可被操作来为虚拟文件系统自动创建安装点以使其存在。
可选地,在数据处理系统中,动态链接器可被操作来在运行二进制代码之前,通过对二进制代码的部分进行即时的再编译以拦截可执行的子进程的系统调用,其中,
(1)可以访问文件系统装置中不存在的虚拟文件;
(2)虚拟文件是文件系统装置上的一个或多个真实文件的即时转换,其中,即时转换从一种文件格式转换到另一种文件格式;
(3)真实文件是压缩的基因组文件格式,而虚拟文件是另一种基因组文件格式;以及
(4)拦截用于打开所述虚拟文件的系统调用,并通过首先确保已安装的虚拟文件系统是可以使用的,并随后将系统调用重新引导到虚拟文件系统上的文件来进行处理。
另外可选地,在数据处理系统中,已安装的虚拟文件系统实现为临时目录,其中,为虚拟文件系统自动创建了安装点以使其存在。
可选地,在数据处理系统中,基因组数据的透明访问的即时转换可被操作来组合来自多个基因组文件的内容,并将其显示为一个基因组文件,适用于以下任何一种或组合:
(1)其中合并的内容是质量得分数据;
(2)其中合并的内容是读取名称信息;
(3)其中合并的内容是映射的基因组读取内容的辅助标签;
(4)其中合并的内容包括不同的基因组区域;
(5)其中合并的内容包括多个基因组样本/标本;以及
(6)其中单独的基因组文件代表给定基因组的不同区域、样品或其他可分开的部分。
可选地,在数据处理系统中,动态链接器被强制加载并在操作中使用拦截库,该拦截库拦截可执行软件产品的文件访问操作,其中:
(1)新的子进程的创建将拦截库保留在关联的拦截环境变量中。
可选地,在数据处理系统中,动态链接器可被操作来采用拦截库,该拦截库拦截可执行软件产品的文件访问操作,其中:
(1)拦截库检测是否程序正在被提交到工作提交系统,如果是,则:
(2)创建一个临时shell脚本,该shell脚本在调用原始程序之前保留拦截环境变量;以及
(3)将新的临时脚本提交到工作提交系统中来代替原始程序,
另外可选地,在数据处理系统中,在实施(3)前,该数据处理系统可被操作来:
(4)检测原始程序是否是包含工作提交系统特定元数据的脚本,如果是,则将该元数据信息复制到新的临时shell脚本中。
可选地,数据处理系统可被操作来提供对基因组数据的透明访问,通过将操作转换成等效的、被转换的请求来将虚拟路径(例如,/pgs3/)下的访问重新引导到云存储装置,这些请求经由互联网发送到云存储装置的提供商。
这也有一些复杂的问题,其中访问云存储上的基因组数据不仅给工具和工序从云存储直接流访问(stream access)的能力带来了挑战,而且由于基因组数据的庞大性而承受了相当大的延迟和成本。
如果云存储中的对象使用更好的压缩文件格式,并且即时地转换为标准文件格式,那将是有利的。在这种方案中,对标准文件格式的文件系统访问被转换为对更好的压缩文件格式的等效云访问。由于更好的压缩,将需要从云对象存储中传输更少的数据,从而加快了访问速度,但是将更好的压缩数据转换为标准文件格式的形式需要花费一定的计算开销。
另外可选地,在数据处理系统中:
(1)数据处理系统可访问云存储装置中不存在的相应的虚拟文件;
(2)虚拟文件是云存储装置上的一个或多个相应的真实对象从一种文件格式到另一种文件格式的即时转换;
(3)其中,真实对象是压缩的基因组文件格式,而虚拟文件是另一种基因组文件格式。
可选地,数据处理系统可被操作来提供对基因组数据的透明访问,这样,动态链接器可被操作来通过以下方式为可执行文件对虚拟文件的内存映射文件访问操作提供拦截库:
(1)对页面错误中断处理器进行注册;
(2)创建虚拟区域,但是要保护所述虚拟区域以防止读取和写入,所述虚拟区域具有内存映射文件映射操作要求的大小;
(3)在对一个或多个特定的受保护页面进行读取访问时,用来自真实文件的对应的转换内容替换一个或多个页面,并允许一个或多个特定的受保护页面可被访问以被读取和/或写入;以及
(4)维持已转换内容的一个或多个页面的列表,并在达到内存消耗限制时释放已转换内容占用的内存,选择已转换内容的一个或多个页面,释放一个或多个页面的内存并再次保护这些页面区域以防止进一步的读取和写入;以及
(5)其中,通过使用LRU(Least Recently Used,近期最少利用)、LFU(LeastFrequently Used,最不频繁利用)或其他替换的启发方式做出释放哪个页面的选择。
可选地,数据处理系统可被操作来提供对基因组数据的透明访问,这样,它拦截了动态链接器,并且可被操作来提供拦截库,以允许可执行文件对虚拟文件的内存映射文件访问操作,其中:
(1)其中,拦截对虚拟文件进行内存映射的系统调用,并通过首先确保已安装的虚拟文件系统是可以使用的(也许在临时目录中,此处的“确保”表示如果安装点尚不存在,则为虚拟文件系统自动创建所述安装点,以使其存在),并随后将内存映射操作重新引导到虚拟文件系统上的文件来进行处理。
根据另一方面,提供了一种使用数据处理系统10的方法,数据处理系统10包括数据处理装置20,其中,数据处理装置20包括用于执行一个或多个软件产品40的计算硬件30,其中,一个或多个软件产品40的执行配置数据处理装置20,以访问来自文件系统装置的数据,
其特征在于,该方法包括操作数据处理装置以加载动态连接器,该动态链接器可被操作来包括拦截可执行软件产品的文件访问操作的拦截库,其中:
(1)文件系统装置中不存在的虚拟文件能够被可执行软件产品访问;
(2)虚拟文件是以下任一情况的结果:(a)文件系统装置的一个或多个真实文件即时转换,其中,该即时转换从一种文件格式转换到另一种文件格式,或者(b)将访问操作转换为位于云对象存储上的真实对象的等效云对象存储访问操作,或者(c)即时转换(a)和对象访问转换(b)的结合。
可选地,在这种方法中,至少其中之一:
(3)虚拟文件是与真实文件/对象不同的文件格式,其中,压缩文件格式和虚拟文件是互不相同的文件格式;以及
(4)文件格式是基因组文件格式。
可选地,(3)和(4)均适用于本公开给出的方法。
可选地,压缩文件格式是压缩基因组文件格式,而另一种文件格式是另一种基因组文件格式。
参考图2,示出了使用图1的数据处理系统10实施的方法的步骤的流程图。
该方法包括第一步骤200,提供包括数据处理装置的数据处理系统,其中,数据处理装置包括用于执行一个或多个软件产品的计算硬件,其中,一个或多个软件产品的执行配置数据处理装置从文件系统装置中访问数据。
该方法还包括第二步骤210,执行数据处理装置10以加载动态链接器,该动态链接器包括拦截库以拦截可执行软件产品的文件访问操作,其中:
(1)文件系统装置中不存在的虚拟文件能够被可执行软件产品访问;
(2)虚拟文件是以下任一情况的结果:(a)文件系统装置中一个或多个真实文件的即时转换,其中,即时转换是由一种文件格式到另一种文件格式,(b)将访问操作转换为对位于云对象存储上的真实对象的等效云对象存储的访问操作,(c)即时转换(a)和对象访问转换(b)的组合。
可选地,在图2的方法中,至少包括:
(3)虚拟文件是与真实文件/对象不同的文件格式,其中,压缩文件格式和虚拟文件格式是互不相同的文件格式;以及
(4)文件格式是基因组文件格式。
可选地,(3)和(4)均属于图2中的方法。
根据另一方面,提供了一种计算机程序产品,其包括存储有计算机可读指令的非暂时性计算机可读存储介质,该计算机可读指令能够由包括处理硬件的计算设备执行,以执行上述方法。
在不脱离由所附权利要求限定的本公开的范围的情况下,可以对上文中描述的本公开的实施方式进行修改。例如“包括”、“包括有”、“包含”、“由...组成”、“具有”、“是”等用于描述和对本发明主张权利的表述旨在以非排他性的方式解释,即也允许存在未明确描述的项目、组件或元件。提及到的单数也应解释为涉及复数。所附权利要求的括号内包括的数字旨在帮助理解权利要求,而不应以任何方式解释为限制这些权利要求所要求保护的主题。
短语“在实施方式中”,“根据实施方式”等通常表示该短语之后的特定特征、结构或特性被包括在本公开的至少一个实施方式中,并且可以被包括在本公开的一个以上的实施方式中。重要的是,这样的短语不一定指相同的实施方式。
附录(发明人说明)
透明访问层
来自维基百科中对动态链接器(Dynamic Linker)的解释:
“动态链接器可以在程序执行或程序链接期间受到影响,以修改其行为,并且可以在多种Unix类系统的运行链接器手册页中看到它的示例。对此行为的典型修改是使用:
LD_LIBRARY_PATH and LD_PRELOAD environment variables(LD_LIBRARY_PATH和LD_PRELOAD环境变量),
通过在不同定位处搜索共享库,并且强制加载和链接原本不可能被分别加载和链接的库,以修改运行时的链接进程。一个示例是也称为“uncompress.so”,在通过LD_PRELOAD hack使用时,其有助于透明解压缩(transparent decompression);因此,可以在BSD和/>系统中读取预压缩(gzipped)的文件数据,就像未压缩文件一样,实际上即使出现一些警告也允许用户在基本文件系统上添加透明解压缩。该机制是灵活的,在向请求它的用户进程提供所述数据之前,允许对相同的代码进行微调,以在读取文件时可以对数据进行附加或替换处理。”
基因组数据的透明访问(主要方法)
方法:
通过动态链接器强制加载拦截库,该拦截库拦截可执行文件的文件访问操作,使得:
(1)文件系统中不存在的虚拟文件能够被访问;
(2)其中,虚拟文件是文件系统中真实文件从一种文件到另一种文件格式的即时转换;以及
(3)其中,真实文件是压缩的基因组文件格式,而虚拟文件是另一种基因组文件格式。
透明访问基因组数据的备用方法1:
使用系统调用拦截,例如通过ptrace。
来自维基百科中对ptrace的解释:
“ptrace由调试器(如gdbdbx)、straceItrace等跟踪工具以及code coverage工具使用。专用程序也使用ptrace修补运行中的程序,以避免未修复的错误或解决安全特性。它可以进一步用作sandbox和运行环境模拟器(像模拟非根软件的根访问)。
通过使用ptrace调用附加到另一进程,工具对其目标的操作具有广泛的控制。这包括对其文件描述符(file descriptors)、内存和寄存器(registers)的操纵。它可以single-step目标的代码,可以观察和拦截系统调用及其结果,还可以操纵目标的信号(signal)处理进程,并为其接收和发送信号。写入目标的内存的能力不仅允许更改其数据存储,而且还允许更改应用程序自己的代码段(code segment),从而允许控制器安装断点(breakpoints)并修补目标的运行代码。”
以下是关于这种访问方法的现有技术,但是不涉及转换或虚拟文件系统:
http://www.alfonsobeato.net/c/modifying-system-call-arguments-with- ptrace/
http://www.alfonsobeato.net/c/filter-and-modify-system-calls-with- seccomp-and-ptrace/
方法:
通过内核提供的可执行文件跟踪功能拦截文件系统调用,强制拦截(子进程)可执行文件的系统调用,使得:
(1)文件系统中不存在的虚拟文件能够被访问;
(2)其中,虚拟文件是文件系统中真实文件从一种文件格式到另一种文件格式的即时转换;
(3)其中,真实文件是压缩的基因组文件格式,而虚拟文件是另一种基因组文件格式;以及
(4)其中,拦截用于打开所述虚拟文件的系统调用,并通过首先确保已安装的虚拟文件系统是可以使用的(也许在临时目录中,此处“确保”表示如果安装点尚不存在,则为虚拟文件系统自动创建所述安装点,以使其存在),并随后将系统调用重新引导到所述虚拟文件系统上的文件来进行处理。
透明访问基因组数据的替代方法2:
这基于如英特尔的PIN的插桩(Instrumentation)。
来自维基百科中对PIN的解释:
“在将程序加载到内存后,Pin通过对程序的控制来执行插桩。然后,在运行前使用Pin即时再编译(just-in-time recompiles,JIT)二进制代码的一小部分。将新的执行分析的指令添加到再编译的代码上。这些新的指令来自Pintool。使用了大量的优化技术来获得尽可能低的运行时间和内存使用开销。截至2010年6月,Pin的平均基本开销为30%(不运行pintool)”。
方法:
在即将运行前,通过即时再编译二进制代码的部分,强制拦截(子进程)可执行文件的系统调用,使得:
(1)文件系统中不存在的虚拟文件能够被访问;
(2)其中,虚拟文件是文件系统中真实文件从一种文件格式到另一种文件格式的即时转换;
(3)其中,真实文件是压缩的基因组文件格式,而虚拟文件是另一种基因组文件格式;以及
(4)其中,拦截用于打开所述虚拟文件的系统调用,并通过首先确保已安装的虚拟文件系统是可以使用的(也许在临时目录中,此处“确保”表示如果安装点尚不存在,则为虚拟文件系统自动创建所述安装点,以使其存在),并随后将系统调用重新引导到所述虚拟文件系统上的文件来进行处理。
注意和主要的拦截方法一样,备用方法也可以通过拦截对虚拟文件的真实文件读取(写入)和搜索操作,而不仅仅是打开文件的操作来工作。然而(4)中还允许使用更高效的拦截方法,以便将打开文件的操作重新引导到已安装的虚拟文件系统(例如Linux下的FUSE)的路径上,并且使得在已安装的虚拟文件系统层拦截真实文件的读取和搜索操作,而不是拦截相应的系统调用。
两种访问基因组数据的方法之间的决定:
方法:
其中,检查被拦截的可执行文件,以查看其是否对可拦截库(如glibc)具有动态库依赖性,如果没有,则使用备用访问方法代替主要方法。根据备用方法1是否可被可执行文件使用(例如,是否有足够的用户安全权限)以及是否不使用备用方法2,来选择备用方法本身。
透明访问分层/分离的基因组数据
方法:
其中,基因组数据(及其替代物)的透明访问的即时转换可以合并来自多个基因组文件的内容,并将其显示为一个基因组文件,适用于以下任何一种或组合:
(1)其中合并的内容是质量得分数据;
(2)其中合并的内容是读取名称信息;
(3)其中合并的内容是映射的基因组读取内容的辅助标签;
(4)其中合并的内容包括不同的基因组区域;
(5)其中合并的内容包括多个基因组样本/标本;
其中,基因组数据(及其替代物)的透明访问的即时转换可以获取一个基因组文件,并将其显示为多个基因组文件:
(1)其中不同的基因组文件代表基因组的不同区域、样品或其他可分开的部分。
通过子进程保护拦截能力
在Linux中,可以将LD_PRELOAD环境变量配置为加载拦截库,然而这意味着,如果进程修改了该环境变量或者如果子进程在没有该环境变量时被调用了,则拦截功能就会丧失。基于MacOS和BSD的执行系统中存在类似的环境变量。我们称其为拦截环境变量。
方法:
通过动态链接器强制加载拦截可执行文件的文件访问操作的拦截库,使得:
(1)对新的(子)进程的创建将拦截库保留在拦截环境变量中。
通过工作提交系统保护拦截能力
由于工作提交被认为存在安全风险,工作提交系统(如HPC系统)可能不会保留工作提交的拦截环境变量。
方法:
通过动态链接器强制加载拦截可执行文件的文件访问操作的拦截库,使得:
(1)其检测程序是否正在被提交到工作提交系统,如果是,则:
(2)创建一个临时shell脚本,该shell脚本在调用原始程序之前保留拦截环境变量;
(3)可选地,检测程序是否是包含工作提交系统特定元数据的脚本,如果是,则将该元数据信息复制到新的临时shell脚本中;以及
(4)将新的临时脚本提交到工作提交系统以代替原始程序。
云存储的扩展
这样就可以作为虚拟文件访问云存储(例如AWS S3)或从中进行访问。与现有技术不同,这是通过上述拦截方法,并使用与基本对象文件格式不同的文件格式的虚拟文件。
方法:
根据对基因组数据(及其替代物)的透明访问,通过将操作转换成等效的、被转换的请求来将虚拟路径(例如,/pgs3/)下的访问重新引导到云存储装置,这些请求经由互联网发送到云存储装置的提供商,并且使得:
(1)云存储中不存在的相应的虚拟文件能够被访问;
(2)其中,虚拟文件是云存储上的相应的真实对象从一种文件格式到另一种文件格式的即时转换;以及
(3)其中,真实对象是压缩的基因组文件格式,而虚拟文件是另一种基因组文件格式。
例如,对/pgs3/mybucket/myfile.bam的访问将重新引导到存在于云对象位置s3://mybucket/myfile.cram的对象(具有不同文件格式),并且在s3://mybucket/myfile.bam中不存在相应的对象。
处理内存映射文件
不幸的是,在通过动态链接器强制加载拦截可执行文件的文件访问操作的拦截库时,对内存映射文件的访问更难处理。这是因为这样的文件访问意味着仅通过访问内存映射文件区域内的存储位置发生,而不是作为对可拦截库功能的调用。
方法:
根据对基因组数据(及其替代物)的透明访问,使得通过以下方式拦截可执行文件对虚拟文件的内存映射文件访问操作:
(1)对页面错误中断处理器进行注册;
(2)创建虚拟区域,但是要保护所述虚拟区域以防止读取和写入,所述虚拟区域具有内存映射文件映射操作要求的大小;
(3)在对所述受保护页面进行读取访问时,用来自真实文件的对应的转换内容替换该页面(以及可选地,周围页面,或可选地,预取后续页面),并允许所述页面能够被访问以被读取(和/或写入);
(4)维持已转换内容的所述页面的列表,并在达到内存消耗限制时释放已转换内容占用的内存,选择所述已转换内容的一个或多个页面,释放所述页面的内存并再次保护这些页面区域以防止被再次读取和写入;以及
(5)其中,通过使用LRU(近期最少利用)、LFU(最不频繁利用)或其他替换启发方式做出释放哪个页面的选择。
处理内存映射文件的备用方法
根据对基因组数据(及其替代物)的透明访问,使得它拦截可执行文件对虚拟文件的内存映射文件访问操作:
(1)其中,拦截对所述虚拟文件进行内存映射的系统调用,并通过首先确保已安装的虚拟文件系统是可以使用的(也许在临时目录中,此处的“确保”表示如果安装点尚不存在,则为虚拟文件系统自动创建所述安装点,以使其存在),并随后将内存映射操作重新引导到虚拟文件系统上的文件来进行处理。

Claims (19)

1.一种数据处理系统,包括:数据处理装置,所述数据处理装置包括计算硬件,所述数据处理装置被配置成从文件系统装置访问具有文件格式的一个或多个虚拟文件,
其中,所述数据处理装置使用动态链接器,所述动态链接器使用拦截库来拦截可执行软件产品的文件访问操作,
其中,所述拦截库采用多种拦截机制,包括第一拦截机制以拦截动态二进制数据和不同于所述第一拦截机制的第二拦截机制;
其中,所述拦截库采用所述第一拦截机制来拦截与可执行二进制数据相关联的新子进程的母进程的启动;以及
存储计算机可读指令的计算机可读存储介质,所述计算机可读指令在由所述计算硬件执行时使所述数据处理装置执行以下操作:
使用所述拦截库来拦截由所述母进程启动的新子进程;
确定所述可执行二进制数据是否具有对操作系统库的依赖;以及
当确定所述可执行二进制数据不依赖于所述操作系统库时,使用所述第二拦截机制来拦截由所述新子进程所进行的文件系统调用,以访问所述文件系统装置上不存在的虚拟文件,
其中,所述虚拟文件是数据的一个或多个真实文件从压缩文件格式到所述文件格式的即时翻译,
其中,所述文件格式不同于所述压缩文件格式。
2.根据权利要求1所述的数据处理系统,其中,所述第二拦截机制是基于所述母进程可用的安全或性能权限来选择的。
3.根据权利要求1所述的数据处理系统,其特征在于,在操作时,所述拦截库拦截静态子二进制进程或动态子二进制进程,从而为基于云的对象存储提供虚拟文件系统。
4.根据权利要求1所述的数据处理系统,其特征在于,所述拦截库被布置为通过使用LD_PRELOAD来执行所述第一拦截机制。
5.根据权利要求1所述的数据处理系统,其特征在于,所述拦截库被布置为通过使用以下至少一项来执行所述第二拦截机制从而提供所述虚拟文件系统:PTRACE和FUSE;动态二进制插桩;仅PTRACE。
6.根据权利要求1所述的数据处理系统,其特征在于,所述第二拦截机制是是根据所述母进程能够利用的安全/性能权限做出的。
7.根据权利要求1所述的数据处理系统,其特征在于,所述可执行软件产品当被执行时,通过使用拦截方法来访问数据。
8.根据权利要求7所述的数据处理系统,其特征在于,所述第二拦截机制能够被操作以通过利用内核提供的可执行追踪功能拦截文件系统调用来拦截由所述新子进程做出的调用,其中:
(1)所述文件系统装置中不存在的虚拟文件能够通过在不同路径中的另一虚拟文件系统被所述数据处理系统访问;
(2)所述虚拟文件是所述文件系统装置中的一个或多个真实文件从一种文件格式到另一种文件格式的即时转换;
(3)所述一个或多个真实文件是压缩的文件格式,并且所述虚拟文件是不同于所述压缩的文件格式的文件格式;以及
(4)在操作中,拦截用于打开所述虚拟文件的系统调用,并且通过确保已经安装的虚拟文件系统是能够使用的,并将所述系统调用重新引导到所述另一虚拟文件系统上的文件来首先处理。
9.根据权利要求8所述的数据处理系统,其特征在于,在(4)中,已安装的所述虚拟文件系统被实施为临时目录,其中,如果尚未存在关联的安装点,则所述数据处理系统能够自动地操作为所述虚拟文件系统创建所述安装点以使所述安装点存在。
10.根据权利要求1所述的数据处理系统,其特征在于,通过在运行二进制代码段之前对所述二进制代码段进行即时的再编译,所述拦截库拦截所述新子进程可执行文件的系统调用。
11.根据权利要求9所述的数据处理系统,其特征在于,已安装的所述虚拟文件系统被实施为临时目录,其中,为所述虚拟文件系统自动创建安装点,以使所述安装点存在。
12.根据权利要求8所述的数据处理系统,其特征在于,对于以下任何一者或其组合而言,基因组数据的透明访问的即时转换组合来自多个基因组文件的内容并生成一个合成的基因组文件:
(1)其中合并的内容是质量得分数据;
(2)其中合并的内容是读取名称信息;
(3)其中合并的内容是映射的基因组读取内容的辅助标签;
(4)其中合并的内容包括不同的基因组区域;
(5)其中合并的内容包括多个基因组样本/标本;以及
(6)其中不同的基因组文件代表特定基因组的不同区域、样品或其他可分开的部分。
13.根据权利要求1所述的数据处理系统,其特征在于,所述动态链接器在操作中使用拦截库,所述拦截库拦截可执行软件产品的文件访问操作,其中对所述新子进程的创建将拦截库保留在关联的拦截环境变量中。
14.根据权利要求1所述的数据处理系统,其特征在于,所述数据处理系统能够被操作来提供对数据的透明访问,使得通过将操作转换成等效的、被转换的请求来将虚拟路径下的访问重新引导到云存储装置,这些请求经由互联网发送到云存储装置的提供商。
15.根据权利要求14所述的数据处理系统,其特征在于:
(1)云存储装置中不存在的相应的虚拟文件能够被所述数据处理系统访问;
(2)所述相应的虚拟文件是所述云存储装置上的一个或多个相应的真实对象从一种文件格式到另一种文件格式的即时转换;以及
(3)所述一个或多个相应的真实对象是压缩的文件格式,以及所述相应的虚拟文件是另一种文件格式。
16.根据权利要求1所述的数据处理系统,其特征在于,所述数据处理系统能够被操作来提供对数据的透明访问,使得动态链接器使用拦截库通过以下方式拦截可执行文件对虚拟文件的内存映射文件访问操作:
(1)对页面错误中断处理器进行注册;
(2)创建虚拟区域,但是要保护所述虚拟区域以防止读取和写入,所述虚拟区域具有内存映射文件映射操作要求的大小;
(3)在对特定受保护的一个或多个页面进行读取访问时,用来自所述真实文件的对应的转换内容替换所述一个或多个页面,并允许所述特定受保护的一个或多个页面能够被访问,从而被读取和/或写入;以及
(4)维持已转换内容的所述一个或多个页面的列表,并在达到内存消耗限制时释放被已转换内容占用的内存,选择已转换内容的一个或多个页面,释放所述一个或多个页面的内存并再次保护这些页面区域以防止进一步的读取和写入;以及
(5)其中,通过使用LRU(近期最少利用)、LFU(最不频繁利用)或其他替换启发方式做出释放哪个页面的选择。
17.根据权利要求2所述的数据处理系统,其特征在于,所述数据处理系统能够被操作来提供对数据的透明访问,使得数据处理系统使用拦截库,以启用可执行文件对虚拟文件的内存映射文件访问操作,其中:拦截对所述虚拟文件进行内存映射的系统调用,并通过首先确保另外安装的另一虚拟文件系统是能够使用的,并将内存映射操作重新引导到所述另一虚拟文件系统上的文件来进行处理。
18.一种操作数据处理系统的方法,所述数据处理系统包括计算硬件,其中数据处理装置在操作时被配置成从文件系统装置访问具有文件格式的一个或多个虚拟文件,
其特征在于,所述方法包括:
(1)使用动态链接器,所述动态链接器使用拦截库拦截可执行软件产品的文件访问操作,其中,所述动态链接器能够访问虚拟文件;
(2)布置所述拦截库采用多种拦截机制,包括第一拦截机制以拦截动态二进制数据和不同于所述第一拦截机制的第二拦截机制;
(3)布置所述拦截库采用所述第一拦截机制来拦截与可执行二进制数据相关联的新子进程的母进程的启动;
(4)使用所述拦截库来拦截由所述母进程启动的新子进程;
(5)确定所述可执行二进制数据是否具有对操作系统库的依赖;以及
(6)当所述可执行二进制数据不依赖于所述操作系统库时,针对所述拦截库,设置使用所述第二拦截机制来拦截由所述新子进程所进行的文件系统调用,以访问所述文件系统装置上不存在的虚拟文件,
其中,所述虚拟文件是数据的一个或多个真实文件从压缩文件格式到所述文件格式的即时翻译,其中,所述文件格式不同于所述压缩文件格式。
19.一种计算机程序产品,包括存储有计算机可读指令的非暂时性计算机可读存储介质,所述计算机可读指令能够由计算机化设备执行,所述计算机化设备包括处理硬件以执行用于操作数据处理系统的方法,所述数据处理系统包括数据处理装置,所述数据处理装置包括计算硬件,其中所述数据处理装置在操作时被配置成从文件系统装置访问具有文件格式的一个或多个虚拟文件,其中所述方法包括:
使用动态链接器,所述动态链接器使用拦截库拦截可执行软件产品的文件访问操作,其中,所述动态链接器能够访问虚拟文件;
布置所述拦截库采用多种拦截机制,包括第一拦截机制以拦截动态二进制数据和不同于所述第一拦截机制的第二拦截机制;
布置所述拦截库采用所述第一拦截机制来拦截与可执行二进制数据相关联的新子进程的母进程的启动;
使用所述拦截库来拦截由所述母进程启动的新子进程;
确定所述可执行二进制数据是否具有对操作系统库的依赖;以及
当所述可执行二进制数据不依赖于所述操作系统库时,针对所述拦截库,设置使用所述第二拦截机制来拦截由所述新子进程所进行的文件系统调用,以访问所述文件系统装置上不存在的虚拟文件,
其中,所述虚拟文件是数据的一个或多个真实文件从压缩文件格式到所述文件格式的即时翻译,其中,所述文件格式不同于所述压缩文件格式。
CN201880034435.4A 2017-05-24 2018-05-24 数据处理系统和方法 Active CN110663082B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GBGB1708340.3A GB201708340D0 (en) 2017-05-24 2017-05-24 Data processing system and method
GB1708340.3 2017-05-24
PCT/EP2018/063741 WO2018215634A1 (en) 2017-05-24 2018-05-24 Data processing system and method

Publications (2)

Publication Number Publication Date
CN110663082A CN110663082A (zh) 2020-01-07
CN110663082B true CN110663082B (zh) 2024-02-13

Family

ID=59220551

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880034435.4A Active CN110663082B (zh) 2017-05-24 2018-05-24 数据处理系统和方法

Country Status (5)

Country Link
US (2) US11443833B2 (zh)
EP (1) EP3631658A1 (zh)
CN (1) CN110663082B (zh)
GB (1) GB201708340D0 (zh)
WO (1) WO2018215634A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201708340D0 (en) * 2017-05-24 2017-07-05 Petagene Ltd Data processing system and method
US11892939B2 (en) * 2020-03-21 2024-02-06 Dynatrace Llc Automatic injection of agents into processes executing statically linked binaries
US20220108001A1 (en) * 2020-10-07 2022-04-07 WhiteBeam Security, Incorporated System for detecting and preventing unauthorized software activity
US11340914B2 (en) * 2020-10-21 2022-05-24 Red Hat, Inc. Run-time identification of dependencies during dynamic linking

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002044850A2 (en) * 2000-11-29 2002-06-06 Entropia, Inc. System and method for securing an application for execution on a computer
GB0413851D0 (en) * 2003-06-19 2004-07-21 Mayer Yaron System and method for comprehensive general protection for computers against malicious programs that may steal information and/or cause damages
US7356679B1 (en) * 2003-04-11 2008-04-08 Vmware, Inc. Computer image capture, customization and deployment
US8612971B1 (en) * 2006-10-17 2013-12-17 Manageiq, Inc. Automatic optimization for virtual systems
GB201617277D0 (en) * 2016-10-11 2016-11-23 Petagene Ltd System and method for storing and accessing data
WO2016185459A1 (en) * 2015-05-21 2016-11-24 Geneformics Data Systems Ltd. Storage, transfer and compression of next generation sequencing data

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356863B1 (en) 1998-09-08 2002-03-12 Metaphorics Llc Virtual network file server
GB0011020D0 (en) * 2000-05-09 2000-06-28 Ibm Intercepting system API calls
CN100504792C (zh) * 2006-10-06 2009-06-24 国际商业机器公司 在用户空间中进行系统调用截取的方法和系统
US9038062B2 (en) * 2006-10-17 2015-05-19 Manageiq, Inc. Registering and accessing virtual systems for use in a managed system
US10120767B2 (en) * 2009-07-15 2018-11-06 Idera, Inc. System, method, and computer program product for creating a virtual database
US8763009B2 (en) * 2010-04-17 2014-06-24 Code Systems Corporation Method of hosting a first application in a second application
US8782106B2 (en) * 2010-07-02 2014-07-15 Code Systems Corporation Method and system for managing execution of virtual applications
US9210213B2 (en) * 2011-03-03 2015-12-08 Citrix Systems, Inc. Reverse seamless integration between local and remote computing environments
US8866701B2 (en) * 2011-03-03 2014-10-21 Citrix Systems, Inc. Transparent user interface integration between local and remote computing environments
US8893222B2 (en) * 2012-11-13 2014-11-18 Auckland Uniservices Ltd. Security system and method for the android operating system
WO2015120170A1 (en) * 2014-02-05 2015-08-13 Bigdatabio, Llc Methods and systems for biological sequence compression transfer and encryption
US10230390B2 (en) * 2014-08-29 2019-03-12 Bonnie Berger Leighton Compressively-accelerated read mapping framework for next-generation sequencing
US9477490B2 (en) * 2015-01-05 2016-10-25 Dell Software Inc. Milestone based dynamic multiple watchdog timeouts and early failure detection
US10560552B2 (en) * 2015-05-21 2020-02-11 Noblis, Inc. Compression and transmission of genomic information
GB2543068A (en) * 2015-10-06 2017-04-12 Fonleap Ltd System for generating genomics data, and device, method and software product for use therein
US20170177597A1 (en) * 2015-12-22 2017-06-22 DNANEXUS, Inc. Biological data systems
US10417065B2 (en) * 2016-06-13 2019-09-17 Dynatrace Llc Method and system for automated agent injection in container environments
US10635643B2 (en) * 2016-09-29 2020-04-28 Hewlett Packard Enterprise Development Lp Tiering data blocks to cloud storage systems
RU2665911C2 (ru) * 2017-02-08 2018-09-04 Акционерное общество "Лаборатория Касперского" Система и способ анализа файла на вредоносность в виртуальной машине
GB201708340D0 (en) * 2017-05-24 2017-07-05 Petagene Ltd Data processing system and method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002044850A2 (en) * 2000-11-29 2002-06-06 Entropia, Inc. System and method for securing an application for execution on a computer
US7356679B1 (en) * 2003-04-11 2008-04-08 Vmware, Inc. Computer image capture, customization and deployment
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
GB0413851D0 (en) * 2003-06-19 2004-07-21 Mayer Yaron System and method for comprehensive general protection for computers against malicious programs that may steal information and/or cause damages
US8612971B1 (en) * 2006-10-17 2013-12-17 Manageiq, Inc. Automatic optimization for virtual systems
WO2016185459A1 (en) * 2015-05-21 2016-11-24 Geneformics Data Systems Ltd. Storage, transfer and compression of next generation sequencing data
GB201617277D0 (en) * 2016-10-11 2016-11-23 Petagene Ltd System and method for storing and accessing data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Delphi应用程序动态创建与访问数据库;胡建红;《南昌航空工业学院学报(自然科学版)》;第69-73页 *

Also Published As

Publication number Publication date
US20200117483A1 (en) 2020-04-16
GB201708340D0 (en) 2017-07-05
US11443833B2 (en) 2022-09-13
EP3631658A1 (en) 2020-04-08
CN110663082A (zh) 2020-01-07
US20220383988A1 (en) 2022-12-01
WO2018215634A1 (en) 2018-11-29

Similar Documents

Publication Publication Date Title
Olivier et al. A binary-compatible unikernel
Thalheim et al. CNTR: lightweight {OS} containers
CN110663082B (zh) 数据处理系统和方法
US7587612B2 (en) Generating and communicating information on locations of program sections in memory
Hookway et al. Digital FX! 32: Combining emulation and binary translation
US20100095281A1 (en) Internal Function Debugger
CN108139921B (zh) 仿真器的性能优化方法及系统
US20050108562A1 (en) Technique for detecting executable malicious code using a combination of static and dynamic analyses
US6637025B1 (en) Dynamic selection/definition of which class/methods should or should not be jit'ed using information stored in a jar file
US7620941B1 (en) Mechanism for lossless user-level tracing on an architecture supporting PC-relative addressing
Stüttgen et al. Robust Linux memory acquisition with minimal target impact
US7574698B2 (en) Method and apparatus for protecting HTTP session data from data crossover using aspect-oriented programming
US10599558B1 (en) System and method for identifying inputs to trigger software bugs
US20060277371A1 (en) System and method to instrument references to shared memory
EP3549020B1 (en) Self-debugging
US11693760B2 (en) System and methods for live debugging of transformed binaries
US10311233B2 (en) Generic unpacking of program binaries
US20230267067A1 (en) Software protection from attacks using self-debugging techniques
Olivier et al. A syscall-level binary-compatible unikernel
JP5129904B2 (ja) 実行時における関数の実行性能を増大させるための方法、計算機システム、実行時における関数の実行性能を増大させるための、コンピュータプログラムを格納するコンピュータ読み取り可能媒体
US11720474B2 (en) System and methods for post mortem debugging of transformed binaries
US8793663B2 (en) Smart cache for a server test environment in an application development tool
CN114443418A (zh) 一种基于硬件虚拟化的riscv内存溢出漏洞检测方法及装置
Hookway DIGITAL FX! 32 running 32-Bit x86 applications on Alpha NT
Saeed et al. Tag-protector: an effective and dynamic detection of out-of-bound memory accesses

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant