CN110069261A - 一种嵌入式软件的可配置分区方法及系统 - Google Patents
一种嵌入式软件的可配置分区方法及系统 Download PDFInfo
- Publication number
- CN110069261A CN110069261A CN201910391226.1A CN201910391226A CN110069261A CN 110069261 A CN110069261 A CN 110069261A CN 201910391226 A CN201910391226 A CN 201910391226A CN 110069261 A CN110069261 A CN 110069261A
- Authority
- CN
- China
- Prior art keywords
- protected field
- boundary
- protected
- software
- code
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种嵌入式软件的可配置分区方法及系统,通过扫描软件包中的保护域边界并生成保护域边界列表,在各个独立编译的子部分中生成跨保护域胶水代码,并在软件包的启动代码中插入各个保护域设立代码,然后编译器和链接器将不同的保护域代码进行编译链接,可以使保护域的设立与配置具备极高的灵活性,大大降低保护域添加的成本,大大提升保护域的实用性,并且使得同样的代码在设立不同的保护域分区方案时可以复用,大大提升了保护域的灵活性。
Description
技术领域
本公开涉及物联网、嵌入式系统技术领域和信息安全技术领域,具体涉及一种嵌入式软件的可配置分区方法及系统。
背景技术
随着工业4.0和物联网的兴起,嵌入式软件的安全性变得越来越重要。安全性的一个重要方面是对分立的组件使用硬件保护域,这样一旦其中一个保护域遇到故障或者被攻破,其他保护域也不受影响。
现有的嵌入式软件由于其在设计时较少考虑信息安全和可靠性,对硬件保护域的利用要么被忽略,要么为编写程序时由人手动划分。前者无信息安全可言,后者则拥有固定不可变的保护域,比如某一部分软件被放在一个分区内,另外一部分软件被放在另外一个分区内。
后者的确能够提供一定程度的信息安全,尤其是当保护域划分非常细致时。理论上讲,保护域划分的越细致,其信息安全就越强。然而,保护域是有代价的;跨越保护域往往需要使用系统调用,而系统调用的开销往往非常大。在当前状况下,我们只能在编写软件时就决定好哪一部分组件处于哪个保护域内部。
对比文件US8307353B2,Cross-domain inlining in a system virtual machine提供了一种通过在系统执行时动态优化跨保护域代码以尽力消除该开销的办法。它动态地编译一种虚拟机语言的跨保护域调用代码到本地代码来加速执行,消除了语言虚拟机层面的开销。但是,这对于消除跨保护域本身的系统调用开销本身意义不大,而且保护域仍然是在编程时决定的。此外,在运行时动态进行保护域优化也会导致运行时成本开销。
对比文件US5666519A,Method and apparatus for detecting and executingcross-domain calls in a computer system提供了基本的高效跨架构函数调用自动识别,但这些自动识别仍然是在运行时动态决定的,在每一个潜在的跨架构点都增加了额外的运行时检查开销。此外,这个技术针对的是架构域(也即采用一种指令集的计算机调用另一种指令集的计算机的函数,即不同指令集的计算设备之间的函数的互访,互调),并不针对保护域本身。
对比文件US5210874A,Cross-domain call system in a capability baseddigital data processing system提供了跨保护域调用的高效安全实现,但是这些调用点仍然需要人手动决定位置,不能由自动化工具根据需求插入,其保护域在软件设计时一旦决定,那么就无法进行变更。此外,这些调用点的胶水代码生成还依赖于链接器的跨保护域链接特殊功能,如果链接器不具备这一特殊功能(比如很多嵌入式链接器),那么该方法无法使用。
现有的保护域配置技术存在几个致命缺陷使其无法适应物联网和工业4.0下的新环境:
(1)保护域是在编写代码时静态决定的。这导致了保护域的不可变性:如果我们更换了性能更好的处理器,需要设立更多的保护域以提高性能,那么需要重写整个软件;如果我们更换了性能更差的处理器,需要减小保护域的数量,那么也需要重写整个软件。这两种做法使得保护域完全不具备可配置性,无法适应物联网设备的多样性;
(2) 现有的保护域技术只能通过在语言虚拟机层面进行优化,而无法真正触及问题的核心——也即系统调用本身的开销。如果不能让软件栈的保护边界在配置时变为动态可变的,那么仅仅减少跨保护域调用开销是不够的;
(3) 当前的保护域技术均依赖于特定的编译器和链接器,或者特定的操作系统。一旦我们需要一直程序到其他架构或者操作系统,涉及保护域设立与保护域间通信的底层代码要完全重写,非常复杂;
(4) 当前所有的保护域设立技术都具备复杂的配置流程,缺少自动化工具的支持而需要人手动进行。仅有的几个方法均需要运行时进行动态识别,增加非常大的执行开销。
发明内容
为了解决上述问题,本公开提供一种嵌入式软件的可配置分区方法及系统,通过扫描软件包中的保护域边界并生成保护域边界列表,在各个独立编译的子部分中生成跨保护域胶水代码,并在软件包的启动代码中插入各个保护域设立代码,然后编译器和链接器将不同的保护域代码进行编译链接。
为了实现上述目的,根据本公开的一方面,提供一种嵌入式软件的可配置分区方法,所述方法包括以下步骤:
步骤1,在可配置分区系统启动时调用软件包保护域识别模块;
步骤2,软件包保护域识别模块扫描软件包中的保护域边界并生成保护域边界列表;
步骤3,保护域添加模块读取保护域边界列表;
步骤4,从保护域边界列表中选择保护域边界,并按照选择的各个保护域边界将软件包分割成多个独立编译的子部分;
步骤5,在各个独立编译的子部分中生成跨保护域的胶水代码,并在软件包的启动代码中插入各个保护域设立代码;
步骤6,编译器和链接器将不同的保护域代码进行编译链接。
进一步地,在步骤1中,所述可配置分区系统包括:软件包保护域识别模块和保护域添加模块;
其中,软件包保护域识别模块负责识别源软件包中可以添加保护域(访问权限)的位置,可以添加保护域的位置包括组成源软件包内部的各个子软件包的外部可调用接口、由其他方式识别出来的简单的函数调用接口集合、某一抽象层的边界等等。软件包保护域识别模块识别出这些保护域后,负责将保护域界面的信息提取出来,供保护域添加模块使用。这里所指的软件包包括但不限于分立的软件包和用于完成某种整体功能的分立软件包的有机组合。
其中,所述保护域添加模块负责读取软件包保护域识别模块生成的信息,并且根据用户的需求,生成适当的胶水代码(粘合代码)粘接各个保护域之间的函数调用。如果用户不要求两个潜在的保护域互相分离,则根本不生成任何东西而直接使用原始的函数调用;如果用户要求两个潜在的保护域互相分离,则生成高效的跨保护域调用胶水代码,使得编译链接后处于一个保护域内的函数调用另一保护域内部的函数时先执行调用代码跨越保护域,然后在另一个保护域内部继续执行函数,执行完成后返回原来的保护域(该胶水代码生成方法已被公开,见US5210874A)。软件包本身对于这些保护域是完全不知晓的,它仍然认为自己在进行一个普通的函数调用。与现有的保护域设立技术不同,本技术并不向链接器传递参数来实现保护域可变功能,也不需要软件本身在设计时决定其保护域的设置。保护域添加模块生成的代码被普通的编译器编译链接后即可达到该效果,无需链接器具备复杂符号处理和寄存器分配等特殊功能,因此适用于很大一部分嵌入式编译器;软件在设计时则只需要决定保护域的最小粒度(也即决定保护域的潜在边界),在编写时也无需针对保护域边界做任何特殊处理,仅需要在模块间使用普通的函数调用即可,降低了软件编写者的负担,简化了软件编写的难度。
进一步地,在步骤2中,所述软件包中的保护域边界包括用户指定的边界(保护边界),或者很明显的软件抽象层之间的边界;扫描软件包中的保护域边界的扫描方法为模式匹配法,例如有一个头文件包括某一个软件层次的多个接口,则边界为各接口之间的逻辑边界,所述生成保护域边界列表为将保护域边界按顺序形成的一个列表。
进一步地,在步骤4中,从保护域边界列表中选择保护域边界的方法为,根据用户需求设定的不同权限进行决定从保护域边界列表选择保护域边界,这些保护域边界构成了各个保护域,所述保护域为具有不同的访问权限的地址空间,即将保护域边界列表作为所有可能放置保护域边界的范围,所述用户需求为用户选择的不同的访问权限,即用户需要确实实现的真正的保护域边界。
进一步地,在步骤4中,软件包的分割方法可以根据用户指定的保护域边界或者保护域边界列表中的保护域边界,在各个保护域界面之间进行分割,即根据保护域边界分割成多个独立编译的多个子部分。
进一步地,在步骤5中,生成跨保护域胶水代码的生成方法包括但不限于:专利公开号为US5210874A中的胶水代码的生成方法是,但是其是由链接器插入的,而本公开并不是由链接器进行跨保护域链接,而是在编译之前就生成完毕,因此不需要链接器具备跨保护域链接功能,也不需要相应的命令行参数,不做限定,专利公开号为US5210874A仅用于帮助本领域技术人员进行理解。
进一步地,在步骤5中,所述保护域设立代码为根据各保护域的权限进行调用规则的代码,是在软件包加载的时候插入的代码,这些规则在加载应用程序时被设立,需要发送给底层的软件或操作系统(OS)所有的保护域之间相互调用的关系,即保护域的设立代码为跨保护域链接功能。如果软件包作为整体只有一个保护域,则只需启动保护域。如果软件包具备多个保护域,则首先需要设立这多个保护域的设立代码,然后授予给各个保护域相应的权限使其能够互相调用,使跨保护域函数调用表现得像一个本地函数调用。
进一步地,在步骤6中,编译器和链接器将不同的保护域代码进行编译,编译的过程中不会传入特殊的命令行参数,特殊的命令行参数是指跨保护域链接这种特殊功能需要的命令行参数,绝大多数链接器根本不具备这功能,无论添加或选择怎样的保护域及其组合,整个应用程序的行为应当和无保护域时一致。
本发明还提供了一种嵌入式软件的可配置分区系统,所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在可配置分区系统的软件包保护域识别模块和保护域添加模块的各自单元中:
其中,软件包保护域识别模块,包括以下单元:
边界扫描单元,用于扫描软件包中的保护域边界并生成保护域边界列表;
其中,保护域添加模块,包括以下单元:
边界列表接收单元,用于读取保护域边界列表;
软件包分割单元,用于从保护域边界列表中选择保护域边界,并按照选择的各个保护域边界将软件包分割成多个独立编译的子部分;
保护域设立单元,用于在各个独立编译的子部分中生成跨保护域的胶水代码,并在软件包的启动代码中插入各个保护域设立代码。
本公开的有益效果为:本发明提供一种嵌入式软件的可配置分区方法及系统,可以使保护域的设立与配置具备极高的灵活性,大大降低保护域添加的成本,大大提升保护域的实用性,并且使得同样的代码在设立不同的保护域分区方案时可以复用,大大提升了保护域的灵活性。
附图说明
通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:
图1所示为一种嵌入式软件的可配置分区方法的流程图;
图2所示为一种嵌入式软件的可配置分区系统图。
具体实施方式
以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
如图1所示为根据本公开的一种嵌入式软件的可配置分区方法的流程图,下面结合图1来阐述根据本公开的实施方式的一种嵌入式软件的可配置分区方法。
本公开提出一种嵌入式软件的可配置分区方法,具体包括以下步骤:
步骤1,在可配置分区系统启动时调用软件包保护域识别模块;
步骤2,软件包保护域识别模块扫描软件包中的保护域边界并生成保护域边界列表;
步骤3,保护域添加模块读取保护域边界列表;
步骤4,从保护域边界列表中选择保护域边界,并按照选择的各个保护域边界将软件包分割成多个独立编译的子部分;
步骤5,在各个独立编译的子部分中生成跨保护域的胶水代码,并在软件包的启动代码中插入各个保护域设立代码;
步骤6,编译器和链接器将不同的保护域代码进行编译链接。
进一步地,在步骤1中,所述可配置分区系统包括:软件包保护域识别模块和保护域添加模块;
其中,软件包保护域识别模块负责识别源软件包中可以添加保护域(访问权限)的位置,可以添加保护域的位置包括组成源软件包内部的各个子软件包的外部可调用接口、由其他方式识别出来的简单的函数调用接口集合、某一抽象层的边界等等。软件包保护域识别模块识别出这些保护域后,负责将保护域界面的信息提取出来,供保护域添加模块使用。这里所指的软件包包括但不限于分立的软件包和用于完成某种整体功能的分立软件包的有机组合。
其中,所述保护域添加模块负责读取软件包保护域识别模块生成的信息,并且根据用户的需求,生成适当的胶水代码(粘合代码)粘接各个保护域之间的函数调用。如果用户不要求两个潜在的保护域互相分离,则根本不生成任何东西而直接使用原始的函数调用;如果用户要求两个潜在的保护域互相分离,则生成高效的跨保护域调用胶水代码,使得编译链接后处于一个保护域内的函数调用另一保护域内部的函数时先执行调用代码跨越保护域,然后在另一个保护域内部继续执行函数,执行完成后返回原来的保护域(该胶水代码生成方法已被公开,见US5210874A)。软件包本身对于这些保护域是完全不知晓的,它仍然认为自己在进行一个普通的函数调用。与现有的保护域设立技术不同,本技术并不向链接器传递参数来实现保护域可变功能,也不需要软件本身在设计时决定其保护域的设置。保护域添加模块生成的代码被普通的编译器编译链接后即可达到该效果,无需链接器具备复杂符号处理和寄存器分配等特殊功能,因此适用于很大一部分嵌入式编译器;软件在设计时则只需要决定保护域的最小粒度(也即决定保护域的潜在边界),在编写时也无需针对保护域边界做任何特殊处理,仅需要在模块间使用普通的函数调用即可,降低了软件编写者的负担,简化了软件编写的难度。
进一步地,在步骤2中,所述软件包中的保护域边界包括用户指定的边界(保护边界),或者很明显的软件抽象层之间的边界;扫描软件包中的保护域边界的扫描方法为模式匹配法,例如有一个头文件包括某一个软件层次的多个接口,则边界为各接口之间的逻辑边界,所述生成保护域边界列表为将保护域边界按顺序形成的一个列表。
进一步地,在步骤4中,从保护域边界列表中选择保护域边界的方法为,根据用户需求设定的不同权限进行决定从保护域边界列表选择保护域边界,这些保护域边界构成了各个保护域,所述保护域为具有不同的访问权限的地址空间,即将保护域边界列表作为所有可能放置保护域边界的范围,所述用户需求为用户选择的不同的访问权限,即用户需要确实实现的真正的保护域边界。
进一步地,在步骤4中,软件包的分割方法可以根据用户指定的保护域边界或者保护域边界列表中的保护域边界,在各个保护域界面之间进行分割,即根据保护域边界分割成多个独立编译的多个子部分。
进一步地,在步骤5中,生成跨保护域胶水代码的生成方法包括但不限于:专利公开号为US5210874A中的胶水代码的生成方法是,但是其是由链接器插入的,而本公开并不是由链接器进行跨保护域链接,而是在编译之前就生成完毕,因此不需要链接器具备跨保护域链接功能,也不需要相应的命令行参数,不做限定,专利公开号为US5210874A仅用于帮助本领域技术人员进行理解。
进一步地,在步骤5中,所述保护域设立代码为根据各保护域的权限进行调用规则的代码,是在软件包加载的时候插入的代码,这些规则在加载应用程序时被设立,需要发送给底层的软件或操作系统(OS)所有的保护域之间相互调用的关系,即保护域的设立代码为跨保护域链接功能。如果软件包作为整体只有一个保护域,则只需启动保护域。如果软件包具备多个保护域,则首先需要设立这多个保护域的设立代码,然后授予给各个保护域相应的权限使其能够互相调用,使跨保护域函数调用表现得像一个本地函数调用。
进一步地,在步骤6中,编译器和链接器将不同的保护域代码进行编译,编译的过程中不会传入特殊的命令行参数,特殊的命令行参数是指跨保护域链接这种特殊功能需要的命令行参数,绝大多数链接器根本不具备这功能,无论添加或选择怎样的保护域及其组合,整个应用程序的行为应当和无保护域时一致。
本实施给出一个非常简要的具体实施例,阐述该方法如何根据用户需求决定保护域的配置。某软件包中包括五个组件,ABCDE,这五个组件之间的相互调用均为普通函数,在相互的界面上均可以插入保护域隔离。
在一个性能非常强的处理器上,将A\B\C\D\E五个组件之间相互隔离,可以将软件组件之间尽量隔离以降低整体风险。
在一个性能较差的处理器上,将ABC放置于一个保护域中,将DE放在一个保护域中,此时系统中有两个保护域,可以在一定程度的保护域间隔离。
在一个性能非常差或者不具备任何硬件内存保护功能的处理器上,牺牲所有的保护域,将ABCDE放在同一个地址空间中执行。
在上述三种方案中,整个软件系统的代码无需修改,胶水代码由本发明根据用户的需求在编译之前静态生成,并且参加编译。
本公开的实施例提供的一种嵌入式软件的可配置分区系统,如图2所示为本公开的一种嵌入式软件的可配置分区系统图,该实施例的一种嵌入式软件的可配置分区系统包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在可配置分区系统的软件包保护域识别模块和保护域添加模块的各自单元中:
其中,软件包保护域识别模块,包括以下单元:
边界扫描单元,用于扫描软件包中的保护域边界并生成保护域边界列表;
其中,保护域添加模块,包括以下单元:
边界列表接收单元,用于读取保护域边界列表;
软件包分割单元,用于从保护域边界列表中选择保护域边界,并按照选择的各个保护域边界将软件包分割成多个独立编译的子部分;
保护域设立单元,用于在各个独立编译的子部分中生成跨保护域的胶水代码,并在软件包的启动代码中插入各个保护域设立代码。
所述一种嵌入式软件的可配置分区系统可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种嵌入式软件的可配置分区系统,可运行的系统可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种嵌入式软件的可配置分区系统的示例,并不构成对一种嵌入式软件的可配置分区系统的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种嵌入式软件的可配置分区系统还可以包括输入输出设备、网络接入设备、总线等。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种嵌入式软件的可配置分区系统运行系统的控制中心,利用各种接口和线路连接整个一种嵌入式软件的可配置分区系统可运行系统的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种嵌入式软件的可配置分区系统的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(SecureDigital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。
Claims (7)
1.一种嵌入式软件的可配置分区方法,其特征在于,所述方法包括以下步骤:
步骤1,在可配置分区系统启动时调用软件包保护域识别模块;
步骤2,软件包保护域识别模块扫描软件包中的保护域边界并生成保护域边界列表;
步骤3,保护域添加模块读取保护域边界列表;
步骤4,从保护域边界列表中选择保护域边界,并按照选择的各个保护域边界将软件包分割成多个独立编译的子部分;
步骤5,在各个独立编译的子部分中生成跨保护域的胶水代码,并在软件包的启动代码中插入各个保护域设立代码;
步骤6,编译器和链接器将不同的保护域代码进行编译链接。
2.根据权利要求1所述的一种嵌入式软件的可配置分区方法,其特征在于,在步骤1中,所述可配置分区系统包括:软件包保护域识别模块和保护域添加模块。
3.根据权利要求1所述的一种嵌入式软件的可配置分区方法,其特征在于,在步骤2中,所述软件包中的保护域边界包括用户指定的边界,或者软件抽象层之间的边界;扫描软件包中的保护域边界的扫描方法为模式匹配法。
4.根据权利要求3所述的一种嵌入式软件的可配置分区方法,其特征在于,在步骤4中,从保护域边界列表中选择保护域边界的方法为,根据用户需求设定的不同权限进行决定从保护域边界列表选择保护域边界,这些保护域边界构成了各个保护域,所述保护域为具有不同的访问权限的地址空间,即将保护域边界列表作为所有可能放置保护域边界的范围。
5.根据权利要求4所述的一种嵌入式软件的可配置分区方法,其特征在于,在步骤5中,所述保护域设立代码为根据各保护域的权限进行调用规则的代码,是在软件包加载的时候插入的代码,这些规则在加载应用程序时被设立,需要发送给底层的软件或操作系统所有的保护域之间相互调用的关系,即保护域的设立代码为跨保护域链接功能。
6.根据权利要求5所述的一种嵌入式软件的可配置分区方法,其特征在于,在步骤6中,编译器和链接器将不同的保护域代码进行编译,编译的过程中不会传入特殊的命令行参数,特殊的命令行参数是指跨保护域链接这种特殊功能需要的命令行参数。
7.一种嵌入式软件的可配置分区系统,其特征在于,所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序运行在可配置分区系统的软件包保护域识别模块和保护域添加模块的各自单元中:
其中,软件包保护域识别模块,包括以下单元:
边界扫描单元,用于扫描软件包中的保护域边界并生成保护域边界列表;
其中,保护域添加模块,包括以下单元:
边界列表接收单元,用于读取保护域边界列表;
软件包分割单元,用于从保护域边界列表中选择保护域边界,并按照选择的各个保护域边界将软件包分割成多个独立编译的子部分;
保护域设立单元,用于在各个独立编译的子部分中生成跨保护域的胶水代码,并在软件包的启动代码中插入各个保护域设立代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910391226.1A CN110069261A (zh) | 2019-05-11 | 2019-05-11 | 一种嵌入式软件的可配置分区方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910391226.1A CN110069261A (zh) | 2019-05-11 | 2019-05-11 | 一种嵌入式软件的可配置分区方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110069261A true CN110069261A (zh) | 2019-07-30 |
Family
ID=67370513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910391226.1A Pending CN110069261A (zh) | 2019-05-11 | 2019-05-11 | 一种嵌入式软件的可配置分区方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110069261A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148364A (zh) * | 2019-10-18 | 2020-12-29 | 广东财经大学 | 一种嵌入式微内核操作系统分区链接方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150222620A1 (en) * | 2014-01-31 | 2015-08-06 | Oracle International Corporation | System and method for providing application security in a cloud computing environment |
US20160378688A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Processors, methods, systems, and instructions to support live migration of protected containers |
CN106778101A (zh) * | 2016-12-08 | 2017-05-31 | 合肥康捷信息科技有限公司 | 一种基于控制流和外形混淆的Python代码混淆方法 |
CN107451493A (zh) * | 2016-05-30 | 2017-12-08 | 珠海市微半导体有限公司 | Risc架构保密电路及其方法 |
CN107844695A (zh) * | 2017-10-16 | 2018-03-27 | 深圳市合信自动化技术有限公司 | 一种plc工程软件保护装置及其保护方法 |
-
2019
- 2019-05-11 CN CN201910391226.1A patent/CN110069261A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150222620A1 (en) * | 2014-01-31 | 2015-08-06 | Oracle International Corporation | System and method for providing application security in a cloud computing environment |
US20160378688A1 (en) * | 2015-06-26 | 2016-12-29 | Intel Corporation | Processors, methods, systems, and instructions to support live migration of protected containers |
CN107451493A (zh) * | 2016-05-30 | 2017-12-08 | 珠海市微半导体有限公司 | Risc架构保密电路及其方法 |
CN106778101A (zh) * | 2016-12-08 | 2017-05-31 | 合肥康捷信息科技有限公司 | 一种基于控制流和外形混淆的Python代码混淆方法 |
CN107844695A (zh) * | 2017-10-16 | 2018-03-27 | 深圳市合信自动化技术有限公司 | 一种plc工程软件保护装置及其保护方法 |
Non-Patent Citations (2)
Title |
---|
NIU B ET AL: "《Enforcing user-space privilege separation with declarative architectures》", 《ACM》 * |
张亚军: "《电信级Linux中驱动加固技术的研究与实现》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148364A (zh) * | 2019-10-18 | 2020-12-29 | 广东财经大学 | 一种嵌入式微内核操作系统分区链接方法及系统 |
CN112148364B (zh) * | 2019-10-18 | 2024-02-06 | 广东财经大学 | 一种嵌入式微内核操作系统分区链接方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7720939B1 (en) | Method for transforming and verifying downloaded program fragments with data type restrictions and corresponding system | |
CN109614165B (zh) | 一种com组件的多版本并行运行方法和装置 | |
CN107041158A (zh) | 用于模块化反射的限制性访问控制 | |
CN109933328B (zh) | 智能合约的扩展编译方法,区块链节点及系统,存储介质 | |
US8464230B2 (en) | Methods and systems to implement non-ABI conforming features across unseen interfaces | |
WO2018210096A1 (zh) | 一种基于规则引擎的规则配置方法、终端、设备以及存储介质 | |
US20040230801A1 (en) | Data processing device and method and program of same | |
CN107402792B (zh) | 应用软件安装包的集成方法、装置、设备及存储介质 | |
CN101714124A (zh) | 存储器保护方法及信息处理装置 | |
US8479177B2 (en) | Attribute based method redirection | |
CN110598405A (zh) | 一种运行时访问控制方法及计算装置 | |
US8959485B2 (en) | Security protection domain-based testing framework | |
CN107577925A (zh) | 基于双重ARM指令虚拟的Android应用程序保护方法 | |
CN108989288A (zh) | 一种基于区块链的移动数字版权保护方法及装置 | |
CN111262753A (zh) | 一种numa节点个数自动配置方法方法、系统、终端及存储介质 | |
CN108733990B (zh) | 一种基于区块链的文件保护方法及终端设备 | |
CN110069261A (zh) | 一种嵌入式软件的可配置分区方法及系统 | |
US20180129490A1 (en) | Object ordering preservation during lto link stage | |
US8844827B2 (en) | Chip card, and method for the software-based modification of a chip card | |
CN105550050A (zh) | 硬件通信的方法及装置 | |
CN114911541A (zh) | 配置信息的处理方法、装置、电子设备及存储介质 | |
CN114258012A (zh) | Esim号码的预制方法及esim虚拟系统、设备及存储介质 | |
CN110377367B (zh) | 组件配置方法、装置、电子终端及计算机可读存储介质 | |
CN110083469B (zh) | 一种异构硬件组织运行统一内核方法及系统 | |
CN110134438B (zh) | 指令排序方法、装置、移动终端及存储介质 |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190730 |