【技术实现步骤摘要】
【国外来华专利技术】
本申请总体涉及一种创建二进制文件的系统和方法,尤其涉及。
技术介绍
传统上,软件开发的过程具有非常严谨的生命周期。该过程的步骤,即固定顺序为编写代码、编译、调试并解决问题以及发布和部署。软件二进制或二进制文件一经使用,如不重新启动,则向运行中的二进制文件添加或从其中移除特征变得极其困难。即使重新启动,如果软件状态不得不恢复至初始状态,那么开销将非常庞大。 已经有一些方案可解决这一局限,但是每个方案均有各自的缺陷。例如,开发的软件可能具有模块,这些模块存储了日志级别信息、调试信息等,旨在基于如何编译或配置提供不同的功能。通过一些标志或配置值,可以在运行时间控制这些模块/文件的运行状态,但是必须使用整个二进制文件来创建软件代码。共享库或动态加载库也可用于管理此类特征,但是与库连接并管理库的代码应在最初编写的代码中。 现有技术提供了各种方案,可以在编写期间使用预处理宏配置调试和日志级别管理;或者在运行时间配置调试和日志级别管理只要预处理宏属于初始设计和代码的一部分。所述模块也可当做可动态加载的库,但是同样地,设计和编码这些模块必须在一开始完成,同时加载以及与正确库连接的附加代码必须在初始二进制文件中。另外,传统意义上这些应用设计具有各种日志级别、踪迹打印以及维护日志选项。上述选项应属于应用代码的一部分,因此编译的目标代码应属于二进制文件或库的一部分。可以使用实时补丁应用添加附加代码,但是这些补丁需分别管理初始代码和新增代码,在理想情况下作为补丁或不同文件。进一步地,该补丁技术仅对缺陷修正或小升级适用。 管理这些模块或特征的另一方案 ...
【技术保护点】
一种计算机系统202,其特征在于,具有非临时性计算机可读介质,该计算机可读介质上包括已编码的计算机程序逻辑,当在所述系统202上执行时提供一种创建并管理一个或多个可执行微分二进制文件220的机制,使所述系统202执行以下操作:解析至少一个计算机程序源代码,其中所述计算机程序源代码具有至少一个动态特征管理器DFM标签;基于所述DFM标签创建多个代码集合,其中,所述代码集合包括:具有基础代码的第一代码集合,所述基础代码为无任何DFM标签的所述至少一个计算机程序源代码,以及具有所述基础代码和特征的至少一个第二代码集合,所述特征为码集;生成一个或多个特征变化表216,所述特征变化表216存储相对于所述代码集合中的特征发生变化的特征的信息;清除计算机程序源代码中的所述DFM标签,以生成所述基础代码,所述DFM标签用于表示所述特征与所述至少一个计算机程序源代码隔离;编译所述代码集合,以生成多个二进制文件;通过所述特征变化表216,确定所述多个二进制文件中任意两个二进制文件之间的差异;基于所述确定的差异,创建一个或多个微分二进制文件220,所述一个或多个可执行微分二进制文件220包括所述创建的一个或 ...
【技术特征摘要】
【国外来华专利技术】2014.05.21 IN 2531/CHE/20141.一种计算机系统202,其特征在于,具有非临时性计算机可读介质,该计算机可读介质上包括已编码的计算机程序逻辑,当在所述系统202上执行时提供一种创建并管理一个或多个可执行微分二进制文件220的机制,使所述系统202执行以下操作: 解析至少一个计算机程序源代码,其中所述计算机程序源代码具有至少一个动态特征管理器DFM标签; 基于所述DFM标签创建多个代码集合,其中,所述代码集合包括:具有基础代码的第一代码集合,所述基础代码为无任何DFM标签的所述至少一个计算机程序源代码,以及具有所述基础代码和特征的至少一个第二代码集合,所述特征为码集; 生成一个或多个特征变化表216,所述特征变化表216存储相对于所述代码集合中的特征发生变化的特征的信息; 清除计算机程序源代码中的所述DFM标签,以生成所述基础代码,所述DFM标签用于表示所述特征与所述至少一个计算机程序源代码隔离; 编译所述代码集合,以生成多个二进制文件; 通过所述特征变化表216,确定所述多个二进制文件中任意两个二进制文件之间的差巳升; 基于所述确定的差异,创建一个或多个微分二进制文件220,所述一个或多个可执行微分二进制文件220包括所述创建的一个或多个微分二进制文件220。2.根据权利要求1所述的计算机系统202,其特征在于,所述DFM标签遵循DFM_〈thefeature name>_start 和 DFM_〈the feature name>_end 语法来隔离所述特征。3.根据权利要求1或2所述的计算机系统202,其特征在于,在编写所述计算机程序源代码时添加所述DFM标签。4.根据权利要求1至3任一项所述的计算机系统202,其特征在于,在向所述计算机程序源代码添加新代码或更新代码时增加所述DFM标签。5.根据权利要求1或2所述的计算机系统202,其特征在于,所述特征是从一个包括函数、全局变量和结构、常见宏、内嵌函数、静态变量、以及上述的组合的群组中选出。6.根据权利要求1至4任一项所述的计算机系统202,其特征在于,在所述解析至少一个具有至少一个动态特征管理器(DFM)标签的计算机程序源代码时,所述计算机系统202还用于执行以下操作: 解析至少一个具有至少一个动态特征管理器(DFM)标签的计算机程序源代码,以检查所述DFM标签的嵌套,并创建所述计算机程序源代码的层级树,其中,所述层级树包括设置在最高层级的DFM无关标签,以及作为所述层级树中的下层节点的子标签和/或兄弟标签。7.根据权利要求1所述的计算机系统202,其特征在于,所述变化的特征是从一个包括函数、全局变量和结构、常见宏、内嵌函数、静态变量、和/或上述的组合的群组中选出,所述变化的特征是相对于所述代码集合中的特征发生变化或新引入或更新的特征。8.根据权利要求1至4任一项所述的计算机系统202,其特征在于,所述DFM标签遵循规则,其中每个特征相应的‘end’ DFM标签与‘start’ DFM标签相匹配。9.根据权利要求1所述的计算机系统202,其特征在于,所述系统202还用于执行以下操作:将所述一个或多个微分二进制文件220加载到存储器中,并将所述一个或多个微分二进制文件220映射到执行中的二进制文件。10.一种创建并管理至少一个可执行微分二进制文件220的方法,其特征在于,所述方法包括: 解析至少一个具有至少一个动态特征管理器(DFM)标签的计算机程序源代码; 基于所述DFM标签创建多个代码集合,其中,所述代码集合包括:具有基础代码的第一代码集合,所述基础代码为无任何DFM标签的所述至少一个计算机程序源代码,以及具有所述基础代码和特征的至少一个第二代码集合,所述特征为码集; 生成一个或多个特征变化表216,所述特征变化表216存储相对于所述代码集合中的特征发生变化的特征的信息; 清除所述计算机程序源代码中的所述DFM标签,以生成基础代码,其中所述DFM标签用于表示所述特征与所述至少一个计算机程序源代码隔离; 编译所述代码集合,以生成多个二进制文件; 通过所述特征变化表216,确定所述多个二进制文件中任意两个二进制文件之间的差巳升; 基于所述确定的差异,创建一个或多个微分二进制文件220,所述一个或多个可执行微分二进制文件220包括所述创建的一个或多个微分二进制文件220。11.根据权利要求10所述的方法,其特征在于,所述DFM标签采遵循DFM_〈thefeaturename>_start 和 DFM_〈the feature name>_end 语法来隔离所述特征。12.根据权利要求10和11所述的方法,其特征在于,在编写所述计算机程序源代码时添加所述DFM标签。13.根据权利要求10至12任一项所述的方法,其特征在于,在向所述计算机程序源代码添加新代码或更新代码时增加所述DFM标签。14.根据权利要求10或11所述的方法,其特征在于,所述特征是...
【专利技术属性】
技术研发人员:伊凡·阿尔·瑞赫曼,奈尔·撒尼尔·库马尔·迪瓦卡然,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。