CN111797390A - 程序运行方法、装置、电子设备及计算机可读存储介质 - Google Patents
程序运行方法、装置、电子设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111797390A CN111797390A CN202010675571.0A CN202010675571A CN111797390A CN 111797390 A CN111797390 A CN 111797390A CN 202010675571 A CN202010675571 A CN 202010675571A CN 111797390 A CN111797390 A CN 111797390A
- Authority
- CN
- China
- Prior art keywords
- program
- data
- address
- address interval
- resource
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 125
- 239000000126 substance Substances 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004883 computer application Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 5
- 238000002955 isolation Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种程序运行方法、装置、电子设备及计算机可读存储介质,涉及计算机应用技术领域。该方法包括:调用第一程序,第一程序涉及的数据被划分为至少两个类型数据;在以进程方式运行第一程序之前,关于至少两个类型数据中的每一类型数据,为该类型数据在预设地址空间内配置专属资源,专属资源包括该数据类型的数据地址、数据大小和访问规则;在以进程方式运行第一程序的过程中,通过访问预设地址空间内的专属资源,来运行第一程序。本申请实施例解决了现有技术中无法隔离进程,保证进程安全性的问题。
Description
技术领域
本申请涉及计算机应用技术领域,具体而言,本申请涉及一种程序运行方法、装置、电子设备及计算机可读存储介质。
背景技术
随着万物互联、5G等相关技术的发展,未来联网的智能设备的数量预计将达到万亿。对于物联网(Internet Of Things,IOT)设备,已有一些小型IOT操作系统用于满足相对简单、快捷的功能需求。例如,嵌入式实时操作系统(Real Time Operating Systems,RTOS)在改造后可成为IOT设备的操作系统。
类似于RTOS的多数嵌入式操作系统通常使用低功耗、中性能的微控制器(Microcontroller Unit,MCU)运行相应的程序。通常将RTOS和设备所需的一些基础程序一同进行编译、链接等操作,最终使得RTOS和这些基础程序被编译到一起,并以单一镜像的方式存储在MCU中。MCU的内存等硬件资源有限,同时没有内存管理单元(Memory ManageUnit,MMU)的支持,程序运行时无法保证资源的隔离。
在RTOS中程序以进程的方式运行,为了保证运行的实时性,各个进程之间可进行相互访问,而该访问方式没有任何条件限制,即,各个进程之间的访问是随意的。因此,本发明人发现,在类似于RTOS这类小型嵌入式操作系统中,无法对一些重要的进程进行隔离保护,即无法判断某一进程是否可以被其他进程访问,即,无法做到进程之间的隔离保护。
发明内容
本申请提供了一种程序运行方法、装置、电子设备及计算机可读存储介质,可以解决现有技术中无法隔离进程,保证进程安全性的问题。所述技术方案如下:
第一方面,提供了一种程序运行方法,该方法包括:
调用第一程序,第一程序涉及的数据被划分为至少两个类型数据;
在以进程方式运行第一程序之前,关于至少两个类型数据中的每一类型数据,为该类型数据在预设地址空间内配置专属资源,专属资源包括该数据类型的数据地址、数据大小和访问规则;
在以进程方式运行第一程序的过程中,通过访问预设地址空间内的专属资源,来运行第一程序。
具体的,至少两个类型数据包括:第一类型数据和第二类型数据;
第一类型数据为第一程序涉及的只读数据;
第二类型数据为第一程序涉及的可读写数据。
具体的,为第一程序涉及的至少两个类型数据在预设地址空间内配置对应的专属资源,包括:
预设地址空间中划分出的第一地址区间、第二地址区间;其中,
第一地址区间配置了第一程序涉及的只读数据的专属资源;
第二地址区间配置了第一程序涉及的可读写数据的专属资源。
具体的,对第一程序涉及的至少两个类型数据在预设地址空间内配置对应的专属资源,还包括:
预设地址空间中划分出的第三地址区间;其中,
第三地址区间配置了第一程序的可读写堆栈数据的专属资源。
具体的,预设地址空间划分出的第四地址区间和第五地址区间;其中,
第四地址区间配置了第一程序与其它程序的只读数据的公用资源;
第五地址区间配置了第一程序与其它程序的可读写数据的公用资源。
具体的,只读数据包括可执行代码和只读数据段;可读写数据包括初始化的数据段和未初始化的数据段。
具体的,该方法还包括:
在以进程方式运行第一程序的过程中,若访问了预设地址空间的专属资源以外的地址区间,则生成第一提示,其中,第一提示用于提示访问错误。
具体的,调用第一程序之前,还包括:
当需要由第二程序切换执行第一程序时,清除预设地址空间内为第二程序配置的专属资源。
第二方面,提供了一种程序运行装置,该装置包括:
第三方面,提供了一种电子设备,该电子设备调用单元,用于调用第一程序,第一程序涉及的数据被划分为至少两个类型数据;
配置单元,用于在以进程方式运行第一程序之前,关于至少两个类型数据中的每一类型数据,为该类型数据在预设地址空间内配置专属资源,专属资源包括该数据类型的数据地址、数据大小和访问规则;
运行单元,用于在以进程方式运行第一程序的过程中,通过访问预设地址空间内的专属资源,来运行第一程序。
具体的,至少两个类型数据包括:第一类型数据和第二类型数据;
第一类型数据为第一程序涉及的只读数据;
第二类型数据为第一程序涉及的可读写数据。
具体的,配置单元具体用于:
预设地址空间中划分出的第一地址区间、第二地址区间内设置的资源信息;其中,
第一地址区间配置了第一程序涉及的只读数据的专属资源;
第二地址区间配置了第一程序涉及的可读写数据的专属资源。
具体的,配置单元还用于:
预设地址空间中划分出的第三地址区间;其中,
第三地址区间设置配置了第一程序的可读写堆栈数据的专属资源。
具体的,配置单元还用于:
预设地址空间划分出的第四地址区间和第五地址区间;其中,
第四地址区间设置配置了第一程序与其它程序的只读数据的公用资源;
第五地址区间设置配置了第一程序与其它程序的可读写数据的公用资源。
具体的,只读数据包括可执行代码和只读数据段;可读写数据包括初始化的数据段和未初始化的数据段。
具体的,该装置还包括:
提示单元,用于在以进程方式运行第一程序的过程中,若访问了预设地址空间的专属资源以外的地址区间,则生成第一提示,其中,第一提示用于提示访问错误。
具体的,调用第一程序之前,装置还包括:
清除单元,用于当需要由第二程序切换执行第一程序时,清除预设地址空间内为第二程序配置的专属资源。
包括:
一个或多个处理器;
存储器;
一个或多个程序,其中一个或多个程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序配置用于:执行上述第一方面的程序运行方法。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面的程序运行方法。
本申请提供的技术方案带来的有益效果是:
本申请提供的技术方案,将调用的第一程序划分为至少两个类型数据,且在以进程方式运行该第一程序之前,为每一个类型数据在预设的地址空间中配置专属的资源,该专属资源包括该数据类型的数据地址、数据大小和访问规则,然后通过访问预设地址空间中的专属资源来运行第一程序。可见,该方法是通过进程访问预设地址空间中的专属资源来运行第一程序的,因此,可通过设置预设地址空间及专属资源的方式保护该进程,即,无法访问地址空间内的专属资源的其他进程就无法访问该进程,可见,本申请实施例提供的方案能够通过在预设地址空间内配置专属资源的方式将进程之间彼此隔离开,保证了进程的安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种程序运行方法的流程示意图;
图2为本申请实施例提供的一种进程切换及程序运行方法的流程示意图;
图3为本申请实施例提供的一种划分预设地址空间方法的结构示意图;
图4为本申请实施例提供的一种划分第一程序类型数据的结构示意图;
图5为本申请实施例提供的一种地址区域重叠的结构示意图;
图6为本申请实施例提供的一种程序运行装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
本申请实施例中提供了一种程序运行的方法,如图1所示,该方法包括:
步骤S11,调用第一程序,第一程序涉及的数据被划分为至少两个类型数据。
本步骤中,至少两个类型数据包括:第一类型数据和第二类型数据;其中:
第一类型数据为第一程序涉及的只读数据;
第二类型数据为第一程序涉及的可读写数据。
步骤S12,在以进程方式运行第一程序之前,关于至少两个类型数据中的每一类型数据,为该类型数据在预设地址空间内配置专属资源,专属资源包括该数据类型的数据地址、数据大小和访问规则。
在步骤S12中“为第一程序涉及的至少两个类型数据在预设地址空间内配置对应的专属资源”,的具体方式如下:
在预设地址空间中划分出第一地址区间、第二地址区间、第三地址区间;其中,
第一地址区间配置了第一程序涉及的只读数据的专属资源;
第二地址区间配置了第一程序涉及的可读写数据的专属资源;
第三地址区间配置了第一程序的可读写堆栈数据的专属资源;
除了上述在预设地址空间中划分出第一地址区间、第二地址区间以及第三地址区间之外,还需划分出第四地址区间和第五地址区间;其中,
第四地址区间配置了第一程序与其它程序的只读数据的公用资源;
第五地址区间配置了第一程序与其它程序的可读写数据的公用资源。
可见,步骤12是根据程序划分出的类型数据,对预设地址空间中的每一个地址区间进行的相应配置,每一个地址区间的配置根据其对应的类型数据的数据地址、数据大小以及访问方式不同而不同,因此,每一个类型数据的地址区间所对应的内容都是该类型数据的专属资源。
步骤S13,在以进程方式运行第一程序的过程中,通过访问预设地址空间内的专属资源,来运行第一程序。
在步骤S11至步骤S13中,只读数据包括可执行代码和只读数据段;可读写数据包括初始化的数据段和未初始化的数据段。
本申请实施例中提供了一种可能的实现方式,该方法还包括:
在以进程方式运行第一程序的过程中,若访问了预设地址空间的专属资源以外的地址区间,则生成第一提示,其中,第一提示用于提示访问错误。
由于预设地址空间的专属资源中包括数据地址,当进程在运行过程中,若访问了地址空间的专属资源之外的其他地址区间,即,访问了错误的数据地址,则提示访问错误,因此,该方法通过对数据地址的设置,保证了进程访问时的准确性,不会因为访问了错误的数据地址所对应的数据而导致进程运行失败。
本申请实施例中提供了一种可能的实现方式,如图2所示,该方法还包括:
步骤S21,当需要由第二程序切换执行第一程序时,清除预设地址空间内为第二程序配置的专属资源。
即在完成一个程序的进程运行之后,将预设地址空间中所配置的专属资源进行清除,以便后续为新的程序进行相应的配置,节约了存储空间。
可见,本申请实施例提供的方法,首先对程序划分出至少两个类型数据,为每一个类型数据在预设地址空间中分配一个地址区域,然后根据不同类型数据的数据地址、数据大小以及访问规则对该类型数据所对应的地址区域进行配置,配置出属于该类型数据的专属资源。在以进程运行该程序的过程中,需要通过访问预设地址空间中的专属资源完成进程的运行,因此只有具有访问该预设空间的进程才有资格完成相应的操作,可见,并不是所有进程都可以访问该预设地址空间,因此,通过配置地址空间中的专属资源实现了进程之间的隔离,起到了对进程的保护作用,提高了安全性。
本申请实施例中提供了一种具体的实现方式,该方法使用内存保护单元(MemoryProtect Unit,MPU)中的region作为预设地址空间,region的结构如图3所示,第一地址区间31对应region0,第四地址区间32对应region1、第二地址区间33对应region2、第五地址区间34对应region3、第三地址区间35对应region4,具体过程如下:
步骤A,在编译链接阶段,将程序划分为至少两个类型数据,例如,划分为两个section,如图4所示,section1和section2,section141对应第一类型数据,section242对应第二类型数据;
第一类型数据为第一程序涉及到的只读数据,其中包括可执行代码段和只读数据;
第二类型数据为第一程序涉及到的可读写数据,其中包括程序初始化数据段和未初始化数据段;
在完成上述步骤A后,为第一程序涉及的至少两个类型数据在预设地址空间内配置对应的专属资源,即根据程序划分出的两个section对region进行专属资源的配置,例如根据section中数据的起始地址、数据大小以及方法规则进行专属资源的配置,过程如下:
步骤B,给第一地址区间配置第一程序涉及的只读数据的专属资源;
即,根据程序中的只读数据的数据地址、数据大小以及访问规则对MPU中的region0进行配置;region0的访问规则通常是只读,允许执行;
步骤C,给第二地址区间配置第一程序涉及的可读写数据的专属资源;
即,根据程序中的可读写数据的数据地址、数据大小以及访问规则对MPU中的region2进行配置;region2的访问规则通常是可读写,不允许执行;
步骤D,给第三地址区间配置第一程序的可读写堆栈数据的专属资源;
即,根据程序的堆栈的数据地址、数据大小以及访问规则对MPU中的region4进行配置;region4可以视为进程自身的栈空间,访问规则通常是可读写,不允许执行;
在步骤B至步骤D中的专属资源仅用于该第一程序以及该第一程序运行时所需的进程;
步骤E,给第四地址区间配置第一程序与其它程序的只读数据的公用资源;
即,根据第一程序的公用资源的数据地址、数据大小以及访问规则对MPU中的region1进行配置;该公用资源可以被第一程序及其他程序共同访问;region1的访问规则通常是只读,允许执行;
步骤F,给第五地址区间配置了第一程序与其它程序的可读写数据的公用资源;
即,根据第一程序的公用资源的数据地址、数据大小以及访问规则对MPU中的region3进行配置;该公用资源可以被第一程序及其他程序共同访问;region3的访问规则通常是可读写,不允许执行;
上述步骤B到步骤F的先后顺序可根据实际情况进行调整。
可见,上述步骤A到步骤F根据程序的数据类型对MPU中的各个region进行了配置,且region0到region4都对应一个地址区间,在以进程方式运行第一程序的过程中,若访问了预设地址空间的专属资源以外的地址区间,则生成第一提示,其中,第一提示用于提示访问错误。通过预设地址空间,可将访问专属资源以外的地址区间的其他进程隔离开,即不允许其他进程访问该第一程序,因此通过该方法实现了进程之间的隔离作用。
在执行步骤A之前,如果在调用第一程序之前还存在一个第二程序,且预设地址空间已根据该第二程序的数据进行了相应的配置,则将预设地址空间中的配置信息全部删除,即清除region0至region4中的信息,以便根据下一个即将执行的程序进行配置。
在本申请实施例提供的方法中,第一地址区间到第五地址区间所包含的地址有可能重叠,而该重叠地址分别对应的数据的访问规则不一致,此时,访问规则按照region序号大的规则制定。例如,如图5所示,region2和region3对应的地址重叠,因此使用region3的访问规则覆盖region2的访问规则。
具体的,上述步骤A至步骤F中只读数据包括可执行代码和只读数据段;可读写数据包括初始化的数据段和未初始化的数据段。
该方法将调用的第一程序划分为至少两个类型数据,且在以进程方式运行该第一程序之前,为每一个类型数据在预设的地址空间中配置专属的资源,该专属资源包括该数据类型的数据地址、数据大小和访问规则,然后通过访问预设地址空间中的专属资源来运行第一程序。可见,该方法是通过进程访问预设地址空间中的专属资源来运行第一程序的,因此,可通过设置预设地址空间及专属资源的方式保护该进程,即,无法访问地址空间内的专属资源的其他进程就无法访问该进程,可见,本申请实施例提供的方案能够通过在预设地址空间内配置专属资源的方式将进程之间彼此隔离开,保证了进程的安全性。
本申请实施例提供了一种程序运行装置,如图6所示,该装置包括:
调用单元61,用于调用第一程序,第一程序涉及的数据被划分为至少两个类型数据;
配置单元62,用于在以进程方式运行第一程序之前,关于至少两个类型数据中的每一类型数据,为该类型数据在预设地址空间内配置专属资源,专属资源包括该数据类型的数据地址、数据大小和访问规则;
运行单元63,用于在以进程方式运行第一程序的过程中,通过访问预设地址空间内的专属资源,来运行第一程序。
具体的,至少两个类型数据包括:第一类型数据和第二类型数据;
第一类型数据为第一程序涉及的只读数据;
第二类型数据为第一程序涉及的可读写数据。
具体的,配置单元62具体用于:
预设地址空间中划分出的第一地址区间、第二地址区间内设置的资源信息;其中,
第一地址区间配置了第一程序涉及的只读数据的专属资源;
第二地址区间配置了第一程序涉及的可读写数据的专属资源。
具体的,配置单元62还用于:
预设地址空间中划分出的第三地址区间;其中,
第三地址区间设置配置了第一程序的可读写堆栈数据的专属资源。
具体的,配置单元62还用于:
预设地址空间划分出的第四地址区间和第五地址区间;其中,
第四地址区间设置配置了第一程序与其它程序的只读数据的公用资源;
第五地址区间设置配置了第一程序与其它程序的可读写数据的公用资源。
具体的,只读数据包括可执行代码和只读数据段;可读写数据包括初始化的数据段和未初始化的数据段。
具体的,该装置还包括:
提示单元64,用于在以进程方式运行第一程序的过程中,若访问了预设地址空间的专属资源以外的地址区间,则生成第一提示,其中,第一提示用于提示访问错误。
具体的,该装置还包括:
清除单元65,用于当需要由第二程序切换执行第一程序时,清除预设地址空间内为第二程序配置的专属资源。
本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:将调用的第一程序划分为至少两个类型数据,且在以进程方式运行该第一程序之前,为每一个类型数据在预设的地址空间中配置专属的资源,该专属资源包括该数据类型的数据地址、数据大小和访问规则,然后通过访问预设地址空间中的专属资源来运行第一程序。可见,该方法是通过进程访问预设地址空间中的专属资源来运行第一程序的,因此,可通过设置预设地址空间及专属资源的方式保护该进程,即,无法访问地址空间内的专属资源的其他进程就无法访问该进程,可见,本申请实施例提供的方案能够通过在预设地址空间内配置专属资源的方式将进程之间彼此隔离开,保证了进程的安全性。
在一个可选实施例中提供了一种电子设备,如图7所示,图7所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:手机、电脑、笔记本、服务器等。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,将调用的第一程序划分为至少两个类型数据,且在以进程方式运行该第一程序之前,为每一个类型数据在预设的地址空间中配置专属的资源,该专属资源包括该数据类型的数据地址、数据大小和访问规则,然后通过访问预设地址空间中的专属资源来运行第一程序。可见,该方法是通过进程访问预设地址空间中的专属资源来运行第一程序的,因此,可通过设置预设地址空间及专属资源的方式保护该进程,即,无法访问地址空间内的专属资源的其他进程就无法访问该进程,可见,本申请实施例提供的方案能够通过在预设地址空间内配置专属资源的方式将进程之间彼此隔离开,保证了进程的安全性。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种程序运行方法,其特征在于,包括:
调用第一程序,所述第一程序涉及的数据被划分为至少两个类型数据;
在以进程方式运行所述第一程序之前,关于所述至少两个类型数据中的每一类型数据,为该类型数据在预设地址空间内配置专属资源,所述专属资源包括该数据类型的数据地址、数据大小和访问规则;
在以进程方式运行所述第一程序的过程中,通过访问所述预设地址空间内的专属资源,来运行所述第一程序。
2.根据权利要求1所述的方法,其特征在于,所述至少两个类型数据包括:第一类型数据和第二类型数据;
所述第一类型数据为所述第一程序涉及的只读数据;
所述第二类型数据为所述第一程序涉及的可读写数据。
3.根据权利要求2所述的方法,其特征在于,为所述第一程序涉及的所述至少两个类型数据在所述预设地址空间内配置对应的专属资源,包括:
所述预设地址空间中划分出的第一地址区间、第二地址区间、第三地址区间、第四地址区间和第五地址区间;其中,
所述第一地址区间配置了所述第一程序涉及的只读数据的专属资源;
所述第二地址区间配置了所述第一程序涉及的可读写数据的专属资源;
第三地址区间配置了所述第一程序的可读写堆栈数据的专属资源;
所述第四地址区间配置了所述第一程序与其它程序的只读数据的公用资源;
所述第五地址区间配置了所述第一程序与其它程序的可读写数据的公用资源。
4.根据权利要求2或3任一项所述的方法,其特征在于,
所述只读数据包括可执行代码和只读数据段;
所述可读写数据包括初始化的数据段和未初始化的数据段。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述调用第一程序之前,还包括:
当需要由第二程序切换执行所述第一程序时,清除所述预设地址空间内为所述第二程序配置的专属资源。
6.一种程序运行装置,其特征在于,所述装置包括:
调用单元,用于调用第一程序,所述第一程序涉及的数据被划分为至少两个类型数据;
配置单元,用于在以进程方式运行所述第一程序之前,关于所述至少两个类型数据中的每一类型数据,为该类型数据在预设地址空间内配置专属资源,所述专属资源包括该数据类型的数据地址、数据大小和访问规则;运行单元,用于在以进程方式运行所述第一程序的过程中,通过访问所述预设地址空间内的专属资源,来运行所述第一程序。
7.根据权利要求6所述的装置,其特征在于,所述配置单元具体用于:
所述预设地址空间中划分出的第一地址区间、第二地址区间、第三地址区间、第四地址区间和第五地址区间;其中,
所述第一地址区间配置了所述第一程序涉及的只读数据的专属资源;
所述第二地址区间配置了所述第一程序涉及的可读写数据的专属资源;
第三地址区间配置了所述第一程序的可读写堆栈数据的专属资源;
所述第四地址区间设置配置了所述第一程序与其它程序的只读数据的公用资源;
所述第五地址区间设置配置了所述第一程序与其它程序的可读写数据的公用资源。
8.根据权利要求6或7任一项所述的装置,其特征在于,所述装置还包括:
清除单元,用于当需要由第二程序切换执行所述第一程序时,清除所述预设地址空间内为所述第二程序配置的专属资源。
9.一种电子设备,其特征在于,其包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于:执行根据权利要求1-4任一项所述的程序运行方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-4任一项所述的程序运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010675571.0A CN111797390B (zh) | 2020-07-14 | 2020-07-14 | 程序运行方法、装置、电子设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010675571.0A CN111797390B (zh) | 2020-07-14 | 2020-07-14 | 程序运行方法、装置、电子设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111797390A true CN111797390A (zh) | 2020-10-20 |
CN111797390B CN111797390B (zh) | 2024-01-26 |
Family
ID=72806886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010675571.0A Active CN111797390B (zh) | 2020-07-14 | 2020-07-14 | 程序运行方法、装置、电子设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111797390B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112330229A (zh) * | 2020-12-02 | 2021-02-05 | 北京元心科技有限公司 | 资源调度方法、装置、电子设备及计算机可读存储介质 |
CN112463263A (zh) * | 2020-12-03 | 2021-03-09 | 北京元心科技有限公司 | 程序运行方法、装置、电子设备及计算机可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1955946A (zh) * | 2005-10-20 | 2007-05-02 | 国际商业机器公司 | 允许运行在逻辑分区上的程序访问资源的方法与系统 |
CN103164348A (zh) * | 2013-02-28 | 2013-06-19 | 浙江大学 | 一种多系统下对实时操作系统所占用内存的保护方法 |
CN105917308A (zh) * | 2014-01-22 | 2016-08-31 | 惠普发展公司,有限责任合伙企业 | 分区为包括元数据区域的多个区域的字节可寻址非易失性读写主存储器 |
CN107103234A (zh) * | 2017-03-01 | 2017-08-29 | 北京龙鼎源科技股份有限公司 | 多任务隔离方法和装置 |
CN107807974A (zh) * | 2017-10-23 | 2018-03-16 | 珠海市魅族科技有限公司 | 一种应用程序访问方法、装置、终端和可读存储介质 |
CN109725951A (zh) * | 2018-12-29 | 2019-05-07 | 上海掌门科技有限公司 | 控制方法、系统、电子设备和计算机可读介质 |
CN109840410A (zh) * | 2017-12-28 | 2019-06-04 | 中国科学院计算技术研究所 | 一种进程内数据隔离与保护的方法和系统 |
US20200195616A1 (en) * | 2018-12-14 | 2020-06-18 | Battelle Memorial Institute | Computing System Operational Methods and Apparatus |
CN111399970A (zh) * | 2019-01-02 | 2020-07-10 | 中国移动通信有限公司研究院 | 一种预留资源管理方法、装置和存储介质 |
-
2020
- 2020-07-14 CN CN202010675571.0A patent/CN111797390B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1955946A (zh) * | 2005-10-20 | 2007-05-02 | 国际商业机器公司 | 允许运行在逻辑分区上的程序访问资源的方法与系统 |
CN103164348A (zh) * | 2013-02-28 | 2013-06-19 | 浙江大学 | 一种多系统下对实时操作系统所占用内存的保护方法 |
CN105917308A (zh) * | 2014-01-22 | 2016-08-31 | 惠普发展公司,有限责任合伙企业 | 分区为包括元数据区域的多个区域的字节可寻址非易失性读写主存储器 |
CN107103234A (zh) * | 2017-03-01 | 2017-08-29 | 北京龙鼎源科技股份有限公司 | 多任务隔离方法和装置 |
CN107807974A (zh) * | 2017-10-23 | 2018-03-16 | 珠海市魅族科技有限公司 | 一种应用程序访问方法、装置、终端和可读存储介质 |
CN109840410A (zh) * | 2017-12-28 | 2019-06-04 | 中国科学院计算技术研究所 | 一种进程内数据隔离与保护的方法和系统 |
US20200195616A1 (en) * | 2018-12-14 | 2020-06-18 | Battelle Memorial Institute | Computing System Operational Methods and Apparatus |
CN109725951A (zh) * | 2018-12-29 | 2019-05-07 | 上海掌门科技有限公司 | 控制方法、系统、电子设备和计算机可读介质 |
CN111399970A (zh) * | 2019-01-02 | 2020-07-10 | 中国移动通信有限公司研究院 | 一种预留资源管理方法、装置和存储介质 |
Non-Patent Citations (3)
Title |
---|
HANUL SUNG: "OMBM: Optimized Memory Bandwidth Management for Ensuring QoS and High Server Utilization", 《2017 IEEE 2ND INTERNATIONAL WORKSHOPS ON FOUNDATIONS AND APPLICATIONS OF SELF* SYSTEMS (FAS*W)》, pages 269 - 276 * |
STRONGERHUANG: "嵌入式操作系统FreeRTOS内存管理和堆", Retrieved from the Internet <URL:https://blog.csdn.bet/ybhuangfugui/article/details/103515971> * |
晏密英等: "基于RTLinux的运动控制器MC400D驱动程序设计", 《兵工自动化》, no. 01, pages 84 - 85 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112330229A (zh) * | 2020-12-02 | 2021-02-05 | 北京元心科技有限公司 | 资源调度方法、装置、电子设备及计算机可读存储介质 |
CN112330229B (zh) * | 2020-12-02 | 2023-09-22 | 北京元心科技有限公司 | 资源调度方法、装置、电子设备及计算机可读存储介质 |
CN112463263A (zh) * | 2020-12-03 | 2021-03-09 | 北京元心科技有限公司 | 程序运行方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111797390B (zh) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107015845B (zh) | Gpu虚拟化 | |
CN107807839B (zh) | 一种修改虚拟机内存数据的方法、装置及电子设备 | |
WO2013016567A2 (en) | System and method for virtual partition monitoring | |
CN108021405B (zh) | 一种soc系统启动过程中存储介质的驱动方法和装置 | |
CN113064697A (zh) | 利用多硬件特性加速微内核进程间通信的方法 | |
CN111797390B (zh) | 程序运行方法、装置、电子设备及计算机可读存储介质 | |
CN110162344B (zh) | 一种隔离限流的方法、装置、计算机设备及可读存储介质 | |
KR20150130353A (ko) | 핫스왑가능 프로그램 메모리의 운영체제 커널 업데이트 동안의 전환 시간 최소화 | |
CN112882694A (zh) | 一种程序编译方法、装置、电子设备及可读存储介质 | |
CN110781016A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN111880916A (zh) | Gpu中多绘制任务处理方法、装置、终端、介质及主机 | |
CN116028455A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
CN114090171A (zh) | 虚拟机创建方法、迁移方法及计算机可读介质 | |
EP3022643B1 (en) | Techniques for dynamically redirecting device driver operations to user space | |
US11853412B2 (en) | Systems and methods for defeating stack-based cyber attacks by randomizing stack frame size | |
CN110489167B (zh) | 双内核码流下载方法、装置、计算机设备及存储介质 | |
CN111913753A (zh) | 一种windows系统云迁移中启动方式的变更方法及系统 | |
CN116578327A (zh) | 一种程序更新方法、装置及电子设备和存储介质 | |
JP7355876B2 (ja) | プログラム起動方法及び機器、記憶媒体 | |
CN115033873A (zh) | 一种动态注入方法及装置 | |
CN108804144B (zh) | 操作系统启动的控制方法/系统、存储介质及电子设备 | |
CN108804221B (zh) | 基于xip方式的嵌入式系统及其资源优化方法 | |
CN109558181B (zh) | 非ie浏览器兼容ocx控件的方法、计算机存储介质及设备 | |
CN111177068A (zh) | 一种高度可配硬件加速方法和装置 | |
CN115168911A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |