CN113569231B - 多进程的mpu保护方法、装置及电子设备 - Google Patents
多进程的mpu保护方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113569231B CN113569231B CN202111138668.9A CN202111138668A CN113569231B CN 113569231 B CN113569231 B CN 113569231B CN 202111138668 A CN202111138668 A CN 202111138668A CN 113569231 B CN113569231 B CN 113569231B
- Authority
- CN
- China
- Prior art keywords
- protection
- mpu
- parameters
- thread
- application program
- 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
Links
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
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)
Abstract
本发明涉及安全技术领域,其实施例提供一种多进程的MPU保护方法、装置及电子设备。其中多进程的MPU保护方法基于MPU,该保护方法包括:当系统启动应用程序时,为所述应用程序创建对应的轻量级进程,并为所述轻量级进程分配存储空间;基于所述应用程序的执行参数确定MPU保护参数,并写入所述存储空间;当所述轻量级进程下的线程被所述系统调度时,通过所述轻量级进程从所述存储空间获取MPU保护参数,以启动对所述线程的MPU保护。同时还提供了一种对应的装置和电子设备。本发明提供的实施方式提升了实时操作系统中进程的安全性。
Description
技术领域
本发明涉及安全技术领域,具体地涉及一种多进程MPU保护方法、一种多进程MPU保护装置、一种电子设备以及对应的存储介质。
背景技术
Cortex-M处理器支持存储保护单元(memory protection unit),简称MPU。使用MPU可以设置不同存储区域的存储器访问特性(如只支持特权访问或全访问)和存储器属性(如可缓存、可共享),从而提高嵌入式系统的健壮性,使系统更加安全、可靠。MPU能够将memory map内存映射区分为多个具备访问规则的区域,经过规则设置后能够实现内存保护、外设保护和代码访问保护。运行实时操作系统的嵌入式系统,操作系统会为每个任务定义存储空间访问权限和内存空间配置来保证每个任务都不会破坏其他的任务或者操作系统内核的地址空间。
RTOS(Real-time operating system) 任务属于多线程,对于目前主流的RTOS,比如ucos,FreeRTOS,RT-thread等,都属于并发线程。对于MCU上的资源每个任务都是共享的,可以认为是单进程多线程模型。Cortext M系列MCU一般没有内存管理模块MMU,无法很好的实现进程安全,当某个任务程序跑飞时会导致整个程序无法运行。
在这类系统上使用MPU时通常需要考虑以下问题:
1)程序代码
多数情况下,将程序存储器为不同任务划分为不同的MPU区域是不现实的,因为任务共同许多函数,包含运行时库函数及设备驱动库函数。RTOS中将应用任务和OS一起编译时,每个应用任务和OS内核的地址边界可能不会那么明显,而这却是设置MPU区域所需要的。一般来说,程序存储器会被定义为一个区域,且可能会配置为只读访问权限。
2)数据寄存器
若某SRAM位置可由普通地址及位段别名地址访问,则MPU配置需要涵盖两个地址区域。应用任务和OS是在一起编译的,则应用任务使用的部分数据可能会同OS用的数据混在一起,这样就无法为各自数据单元定义相应的访问权限。可能会单独编译这些任务,然后利用链接脚本或其他手段将数据段放到RAM中。堆存储器空间可能需要共用,因为无法利用MPU保护。
现有的基于并发线程的RTOS中一般内核与应用没有做分离,对整个FLASH区设置了只读保护,针对每个任务(线程)设置自己的堆栈保护区。各个任务的text段(FLASH存储及执行区)没有做隔离保护,各任务的共享代码区和数据区无法进行MPU保护设置。
MPU(Memory Protection Unit):存储保护单元;
LWP(Light Weight Process):轻量级进程。
发明内容
本发明实施例的目的是提供一种多进程的MPU保护方法、装置及电子设备,以至少部分地解决以上问题。
为了实现上述目的,本发明第一方面提供一种多进程的MPU保护方法,所述保护方法基于MPU,所述保护方法包括:
当系统启动应用程序时,为所述应用程序创建对应的轻量级进程,并为所述轻量级进程分配存储空间;基于所述应用程序的执行参数确定MPU保护参数,并写入所述存储空间;当所述轻量级进程下的线程被所述系统调度时,通过所述轻量级进程从所述存储空间获取MPU保护参数,以启动对线程的MPU保护。
优选的,在系统启动应用程序之前,所述保护方法还包括所述应用程序在所述系统中的安装步骤:根据所述应用程序的源文件的长度在预设目录下创建同名目标文件;动态分配目标文件存储位置及大小,更新文件状态表;将所述源文件写入所述目标文件。
优选的,在创建同名目标文件之前,所述保护方法还包括:检查所述源文件的文件头,以及确认所述文件头中的魔数正确。
优选的,基于所述应用程序的执行参数确定MPU保护参数,包括:根据所述执行参数中的文本段的入口地址及长度确定所述MPU保护参数中的文本段保护参数;以及根据所述执行参数中数据段的起始存储地址及长度确定所述MPU保护参数中的数据段保护参数。
优选的,所述轻量级进程下的线程与所述应用程序的进程具有对应关系;同一轻量级进程下的线程通过所述轻量级进程被分配有对应的资源。
优选的,当所述轻量级进程下的线程被所述系统调度时,所述保护方法还包括:确定所述线程处于就绪状态;通过系统滴答定时器触发可悬起系统调用中断;通过内核切换函数将所述线程切换为执行状态。
优选的,所述启动对所述线程的MPU保护,包括:根据所述文本段保护参数和数据段保护参数对所述线程的文本段和数据段进行MPU保护;以及对所述线程的共享代码段和共享数据段进行MPU保护。
在本发明的第二方面,还提供了一种多进程的MPU保护装置,所述保护装置基于MPU,其特征在于,所述保护装置包括:存储分配模块,用于当系统启动应用程序时,为所述应用程序创建对应的轻量级进程,并为所述轻量级进程分配存储空间;参数确定模块,用于基于所述应用程序的执行参数确定MPU保护参数,并写入所述存储空间;以及MPU保护模块,用于当所述轻量级进程下的线程被所述系统调度时,通过所述轻量级进程从所述存储空间获取MPU保护参数,以启动对所述线程的MPU保护。
在本发明的第三方面,还提供了一种电子设备,包括:至少一个处理器;存储器,与所述至少一个处理器连接;其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现前述的多进程的MPU保护方法。
优选的,所述电子设备采用实时操作系统。
优选的,所述电子设备中的处理器采用Cortex-M内核。
在本发明的第四方面,还提供了一种计算机可读存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行前述的多进程的MPU保护方法。
本发明第五方面提供一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述的多进程的MPU保护方法。
通过上述技术方案,具有以下有益效果:
(1)实现了进程安全防护。在Cortex-M平台上实现每个应用(进程)有自己独立的存储运行空间,并且这些空间都配置了MPU保护策略。
(2)实现了应用内核分离。在Cortex-M平台上实现应用与内核分开编译,内核应用都有各自的数据访问权限,方便设置MPU保护策略。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1示意性示出了根据本发明实施方式的多进程的MPU保护方法的步骤流程示意图;
图2示意性示出了根据本发明实施方式的应用程序在系统中的安装步骤的实施示意图;
图3示意性示出了根据本发明实施方式的应用程序在系统中的启动步骤的实施示意图;
图4示意性示出了根据本发明实施方式的应用程序在系统中的切换步骤的实施示意图。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
图1示意性示出了根据本发明实施方式的实时操作系统中进程MPU保护方法的步骤流程示意图,如图1所示。一种实时操作系统中进程MPU保护方法,所述保护方法基于MPU,所述保护方法包括:
S01、当系统启动应用程序时,为所述应用程序创建对应的轻量级进程,并为所述轻量级进程分配存储空间;
轻量级进程作为用户级进程与内核级进程之间的中间层,能够实现将所占资源从其主体分离。本步骤中采用对应用程序创建一个对应的轻量级进程的方式,使实时操作系统能够基于应用程序实时维护应用程序的MPU保护参数,从而实现应用程序的MPU保护。
S02、基于所述应用程序的执行参数确定MPU保护参数,并写入所述存储空间;
在为应用程序创建对应的轻量级进程的同时,需要确定该应用程序的MPU保护参数。MPU保护参数即设置MPU功能时的运行参数。该存储空间包含数据结构,数据结构中包含该进程所对应的mpu_info,即对进程进行MPU保护时所要设置的参数、进程对应的text段入口地址及长度、data段入口地址及长度、进程对应的signal信息、进程id、进程当前运行的线程等。
S03、当所述轻量级进程下的线程被所述系统调度时,通过所述轻量级进程从所述存储空间获取MPU保护参数,以启动对线程的MPU保护。
本实施方式在任务切换后对当前任务启用MPU保护策略对每个应用实现MPU保护,原任务MPU保护策略自动失效。任务以线程为单位进行切换,每个线程有对应的轻量级进程,该轻量级进程具有对应的当前线程信息,设置用户栈和内核栈,同一个应用里的线程共享轻量级进程数据结构。启用的应用都会实施MPU保护策略。
通过以上实施方式,借助微内核思想,设计实现了系统与应用分离的实时操作系统,系统服务从内核中分离出来,内核运行在内核态,应用程序运行在用户态,任务通过系统服务(SVC)调用内核。内核与应用有各自的FLASH及RAM区域,各任务有各自的FLASH及RAM区域,通过给每个任务定义存储空间访问权限和内存空间配置等MPU保护策略,在任务上下文切换时切换MPU保护策略来保证每个任务都不会破坏其他的任务或者操作系统内核的地址空间。
图2示意性示出了根据本发明实施方式的应用程序在系统中的安装步骤的实施示意图,如图2所示,在本实施方式中,在系统启动应用程序之前,所述保护方法还包括所述应用程序在所述系统中的安装步骤:根据所述应用程序的源文件的长度在预设目录下创建同名目标文件;动态分配目标文件存储位置及大小,更新文件状态表;将所述源文件写入所述目标文件。
在前一实施方式的基础上,在创建同名目标文件之前,所述保护方法还包括:检查所述源文件的文件头,以及确认所述文件头中的魔数正确。具体实施方式包括以下步骤:
(1)当系统接收到app安装命令时,根据传递的参数(app存储路径)打开文件,获取文件长度信息;
(2)检查文件头,查看魔数是否正确,确保所打开源文件类型及数据正确;
(3)在bin目录下创建同名目标文件;
(4)动态分配目标文件存储位置及大小,更新文件状态表;
(5)将源文件写入目标文件,应用安装完成。
通过以上实施方式,在应用安装时系统对每个应用动态分配存储运行空间,并将text段、data段信息记录到应用文件中,能够实现在应用程序安装过程中的数据保护。
图3示意性示出了根据本发明实施方式的应用程序在系统中的启动步骤的实施示意图,如图3所示,在本实施方式中,基于所述应用程序的执行参数确定MPU保护参数,包括:根据所述执行参数中的文本段的入口地址及长度确定所述MPU保护参数中的文本段保护参数;以及根据所述执行参数中数据段的起始存储地址及长度确定所述MPU保护参数中的数据段保护参数。具体的步骤如下:
(1)当系统启动某个应用时,对该应用创建LWP(Light Weight Process)进程,同时分配该进程所包含数据结构的存储空间;注:数据结构中包含该进程所对应的mpu_info(对进程进行MPU保护时所要设置的参数)、进程对应的text段入口地址及长度、data段入口地址及长度、进程对应的signal信息、进程id、进程当前运行的线程等。每个应用对应一个LWP,每个LWP可能包含多个线程。本设计中对每个LWP中的多个线程共享进程管理块即LWP数据结构。
(2)根据启动任务时传入的文件信息,打开已安装文件;
(3)读取该文件的text段(文本段)和data段(数据段)信息;注:text段是程序存储及执行区域,data段是数据存储区;
(4)根据text段入口地址及长度设置text段保护参数,存入mpu_info,返回text段保护地址;
(5)判断text段保护地址是否为NULL,是则任务启动异常,直接返回;
(6)否则动态分配data段起始存储地址,根据地址及长度设置data段保护参数,写入mpu_info,返回data段保护地址;
(7)开启业务应用流程。
综上,任务启动过程主要是创建LWP,设置任务对应的text段保护参数,分配data段存储地址并设置任务对应的data段保护参数,保存当前线程句柄等。通过以上方式,本实施方式在每个应用启动时都创建一个对应的LWP,读取该应用的text段、data段参数,设置该LWP对应的text段保护参数,分配data段存储地址并设置任务对应的data段保护参数。
在本发明提供的一种实施方式中,所述轻量级进程与所述应用程序具有对应关系;同一轻量级进程下的线程通过所述轻量级进程被分配有对应的资源。在本实施方式中,每个应用对应一个轻量级进程,每个轻量级进程可能包含多个线程。本实施方式中对每个轻量级进程中的多个线程共享进程管理块,即共享轻量级进程数据结构。
图4示意性示出了根据本发明实施方式的应用程序在系统中的切换步骤的实施示意图,如图4所示,在本实施方式中,当所述轻量级进程下的线程被所述系统调度时,所述保护方法还包括:确定所述线程处于就绪状态;通过系统滴答定时器触发可悬起系统调用中断;通过内核切换函数将所述线程切换为执行状态。本实施方式通过zx_hw_context_switch、zx_hw_context_switch_interrupt触发PendSV_Handler。其中zx_hw_context_switch是指在线程环境下,从当前线程切换到目标线程;zx_hw_context_switch_interrupt是指在中断环境下,从当前线程切换到目标线程。当待切换线程(目标线程)处于就绪状态,且PendSV被触发后,执行后续的任务切换流程和MPU保护流程。
在本发明提供的一种实施方式中,所述启动对所述线程的MPU保护,包括:根据所述文本段保护参数和数据段保护参数对所述线程的文本段和数据段进行MPU保护;以及对所述线程的共享代码段和共享数据段进行MPU保护。其具体步骤包括:
(1)进入PendSV_Handler,准备上下文切换处理;
(2)保存被中断线程环境,即当前任务状态压栈;
(3)恢复目标线程环境,即待切换任务状态出栈;
(4)任务切换后,获取当前任务对应的LWP;
(5)对LWP对应的text段、data段进行启用MPU保护;
(6)设置共享代码段及共享数据段MPU保护。
综上,在任务切换后对当前任务启用MPU保护策略,原任务策略失效。任务以线程为单位进行切换,每个线程有对应的LWP(LWP有对应的当前线程信息,设置用户栈和内核栈),同一个应用里的线程共享LWP数据结构。通过以上实施方式,能够应用程序的进程在执行时的MPU保护。
在本发明提供的一种实施方式中,还提供了一种多进程的MPU保护装置,所述保护装置基于MPU,其特征在于,所述保护装置包括:存储分配模块,用于当系统启动应用程序时,为所述应用程序创建对应的轻量级进程,并为所述轻量级进程分配存储空间;参数确定模块,用于基于所述应用程序的执行参数确定MPU保护参数,并写入所述存储空间;以及MPU保护模块,用于当所述轻量级进程下的线程被所述系统调度时,通过所述轻量级进程从所述存储空间获取MPU保护参数,以启动对所述线程的MPU保护。
在一些可选实施方式中,在系统启动应用程序之前,所述保护装置还包括所述应用程序在所述系统中的安装步骤:根据所述应用程序的源文件的长度在预设目录下创建同名目标文件;动态分配目标文件存储位置及大小,更新文件状态表;将所述源文件写入所述目标文件。
在一些可选实施方式中,在创建同名目标文件之前,所述保护方法还包括:检查所述源文件的文件头,以及确认所述文件头中的魔数正确。
在一些可选实施方式中,基于所述应用程序的执行参数确定MPU保护参数,包括:根据所述执行参数中的文本段的入口地址及长度确定所述MPU保护参数中的文本段保护参数;以及根据所述执行参数中数据段的起始存储地址及长度确定所述MPU保护参数中的数据段保护参数。
在一些可选实施方式中,所述轻量级进程下的线程与所述应用程序的进程具有对应关系;同一轻量级进程下的线程通过所述轻量级进程被分配有对应的资源。
在一些可选实施方式中,当所述轻量级进程下的线程被所述系统调度时,包括:确定所述线程处于就绪状态;通过系统滴答定时器触发可悬起系统调用中断;通过内核切换函数将所述线程切换为执行状态。
在一些可选实施方式中,所述启动对所述线程的MPU保护,包括:根据所述文本段保护参数和数据段保护参数对所述线程的文本段和数据段进行MPU保护;以及对所述线程的共享代码段和共享数据段进行MPU保护。
上述的多进程的MPU保护装置中的各个功能模块的具体限定可以参见上文中对于多进程的MPU保护方法的限定,在此不再赘述。上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在本发明提供的一种实施方式中,还提供了一种电子设备,包括:至少一个处理器;存储器,与所述至少一个处理器连接;其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现前述的实时操作系统中进程MPU保护方法。此处的控制模块或处理器具有数值计算和逻辑运算的功能,其至少具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统等。处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现前述的方法。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
在本发明提供的一种实施方式中,所述电子设备中的处理器采用Cortex-M内核。Cortex-M是ARM公司多种系列产品中的其中一个,Cortex-M 处理器系列是一系列可向上兼容的高能效、易于使用的处理器。Cortex-M内核通常与MPU保护策略配合使用,以提高处理器的安全性。当本实施方式中采用Cortex-M内核时,能够利用其提供的MPU保护硬件和策略,减少对电子设备的改造。
在本发明提供的一种实施方式中,还提供了一种计算机可读存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行前述的实时操作系统中进程的MPU保护方法。
在本发明提供的一种实施方式中,提供了一种计算机程序产品,包括计算机程序,该计算机程序在被处理器执行时实现上述的实时操作系统中进程的MPU保护方法。
通过以上实施方式,能够实现进程的安全防护,在Cortex-M平台上实现每个应用(进程)有自己独立的存储运行空间,并且这些空间都配置了MPU保护策略。同时还能实现应用内核分离,在Cortex-M平台上实现应用与内核分开编译,内核应用都有各自的数据访问权限,方便设置MPU保护策略。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种多进程的MPU保护方法,所述保护方法基于MPU,其特征在于,应用于实时操作系统中,所述保护方法包括:
当系统启动应用程序时,为所述应用程序创建对应的轻量级进程,并为所述轻量级进程分配存储空间;
基于所述应用程序的执行参数确定MPU保护参数,并写入所述存储空间;
当所述轻量级进程下的线程被所述系统调度时,通过所述轻量级进程从所述存储空间获取MPU保护参数,以启动对所述线程的MPU保护;
其中,基于所述应用程序的执行参数确定MPU保护参数,包括:
根据所述执行参数中的文本段的入口地址及长度确定所述MPU保护参数中的文本段保护参数;以及
根据所述执行参数中数据段的起始存储地址及长度确定所述MPU保护参数中的数据段保护参数。
2.根据权利要求1所述的保护方法,其特征在于,所述实时操作系统基于Cortex-M处理器进行运行。
3.根据权利要求1所述的保护方法,其特征在于,在系统启动应用程序之前,所述保护方法还包括所述应用程序在所述系统中的安装步骤:
根据所述应用程序的源文件的长度在预设目录下创建同名目标文件;
动态分配目标文件存储位置及大小,更新文件状态表;
将所述源文件写入所述目标文件。
4.根据权利要求3所述的保护方法,其特征在于,在创建同名目标文件之前,所述保护方法还包括:
检查所述源文件的文件头,以及确认所述文件头中的魔数正确。
5.根据权利要求1所述的保护方法,其特征在于,所述轻量级进程下的线程与所述应用程序的进程具有对应关系;同一轻量级进程下的线程通过所述轻量级进程被分配有对应的资源。
6.根据权利要求1所述的保护方法,其特征在于,当所述轻量级进程下的线程被所述系统调度时,所述保护方法还包括:
确定所述线程处于就绪状态;
通过系统滴答定时器触发可悬起系统调用中断;
通过内核切换函数将所述线程切换为执行状态。
7.根据权利要求1所述的保护方法,其特征在于,启动对所述线程的MPU保护,包括:
根据所述文本段保护参数和数据段保护参数对所述线程的文本段和数据段进行MPU保护;以及
对所述线程的共享代码段和共享数据段进行MPU保护。
8.一种多进程的MPU保护装置,所述保护装置基于MPU,其特征在于,所述保护装置采用实时操作系统,包括:
存储分配模块,用于当系统启动应用程序时,为所述应用程序创建对应的轻量级进程,并为所述轻量级进程分配存储空间;
参数确定模块,用于基于所述应用程序的执行参数确定MPU保护参数,并写入所述存储空间;其中,基于所述应用程序的执行参数确定MPU保护参数,包括:根据所述执行参数中的文本段的入口地址及长度确定所述MPU保护参数中的文本段保护参数;以及根据所述执行参数中数据段的起始存储地址及长度确定所述MPU保护参数中的数据段保护参数;以及
MPU保护模块,用于当所述轻量级进程下的线程被所述系统调度时,通过所述轻量级进程从所述存储空间获取MPU保护参数,以启动对所述线程的MPU保护。
9.一种电子设备,其特征在于,包括:至少一个处理器;
存储器,与所述至少一个处理器连接;
其中,所述存储器存储有能被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现权利要求1至7中任一项权利要求所述的多进程的MPU保护方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行权利要求1至7中任一项权利要求所述的多进程的MPU保护方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111138668.9A CN113569231B (zh) | 2021-09-27 | 2021-09-27 | 多进程的mpu保护方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111138668.9A CN113569231B (zh) | 2021-09-27 | 2021-09-27 | 多进程的mpu保护方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113569231A CN113569231A (zh) | 2021-10-29 |
CN113569231B true CN113569231B (zh) | 2022-01-25 |
Family
ID=78174853
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111138668.9A Active CN113569231B (zh) | 2021-09-27 | 2021-09-27 | 多进程的mpu保护方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113569231B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787360A (zh) * | 2016-03-02 | 2016-07-20 | 杭州字节信息技术有限公司 | 一种嵌入式系统内存安全访问控制的技术实现方法 |
CN107180202A (zh) * | 2017-05-10 | 2017-09-19 | 华中科技大学 | 一种基于信息流标签的Web用户隐私保护系统和方法 |
CN109840411A (zh) * | 2018-02-27 | 2019-06-04 | 中国科学院计算技术研究所 | 一种应用的保护方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11741196B2 (en) * | 2018-11-15 | 2023-08-29 | The Research Foundation For The State University Of New York | Detecting and preventing exploits of software vulnerability using instruction tags |
-
2021
- 2021-09-27 CN CN202111138668.9A patent/CN113569231B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105787360A (zh) * | 2016-03-02 | 2016-07-20 | 杭州字节信息技术有限公司 | 一种嵌入式系统内存安全访问控制的技术实现方法 |
CN107180202A (zh) * | 2017-05-10 | 2017-09-19 | 华中科技大学 | 一种基于信息流标签的Web用户隐私保护系统和方法 |
CN109840411A (zh) * | 2018-02-27 | 2019-06-04 | 中国科学院计算技术研究所 | 一种应用的保护方法及系统 |
Non-Patent Citations (4)
Title |
---|
一种提高μC/OS-Ⅱ操作系统安全性与稳定性的方法;梅静静等;《单片机与嵌入式系统应用》;20110201(第02期);全文 * |
多线程技术的研究与应用;骆斌等;《计算机研究与发展》;20000415(第04期);全文 * |
对Solaris操作系统中多线程进程体系结构的研究;裘昱史等;《电脑知识与技术》;20040226(第02期);第70-72页 * |
微内核架构多线程机制的形式化设计研究;钱振江等;《计算机科学》;20130415(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113569231A (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7313797B2 (en) | Uniprocessor operating system design facilitating fast context switching | |
US8453015B2 (en) | Memory allocation for crash dump | |
US9547346B2 (en) | Context agent injection using virtual machine introspection | |
US11055440B2 (en) | Handling access attributes for data accesses | |
JP3546678B2 (ja) | マルチos構成方法 | |
JP5914145B2 (ja) | メモリ保護回路、処理装置、およびメモリ保護方法 | |
CN105190570A (zh) | 用于虚拟机器的完整性保护的存储器自省引擎 | |
US5825649A (en) | Kernel substitution method in multi-processor system and multi-processor system having kernel substitution function | |
US10311252B2 (en) | Technologies for protecting dynamically generated managed code with protection domains | |
WO2004109754A2 (en) | Method and apparatus for multi-mode operation in a semiconductor circuit | |
JP2009009232A (ja) | コンピュータとカーネル保護方法並びにコンピュータソフトウエア | |
US6895583B1 (en) | Task control block for a computing environment | |
CN113449292B (zh) | 一种可信应用的运行方法、装置及设备 | |
CN115510423A (zh) | 基于risc-v处理器的内存保护方法、控制装置及存储介质 | |
CN113569231B (zh) | 多进程的mpu保护方法、装置及电子设备 | |
US8010963B2 (en) | Method, apparatus and program storage device for providing light weight system calls to improve user mode performance | |
GB2537760A (en) | Computer, and resource scheduling method using hypervisor | |
CN106250328B (zh) | 存储器保护单元、存储器管理单元和微控制器 | |
US11789621B2 (en) | Method and system for controlling a switch in the execution mode of a processor | |
EP3502887B1 (en) | Interrupt handling for multiple virtual machines | |
CN114217882A (zh) | 在进程中运行应用的方法和装置 | |
US20080072009A1 (en) | Apparatus and method for handling interrupt disabled section and page pinning apparatus and method | |
US11385927B2 (en) | Interrupt servicing in userspace | |
US11150887B2 (en) | Secure code patching | |
US20230029331A1 (en) | Dynamically allocatable physically addressed metadata storage |
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 |