文章目录

  • 内存隔离相关技术
  • 学术研究成果
  • 工业嵌入式操作系统方案
  • 参考文献

嵌入式系统的应用广泛,嵌入式操作系统对实时性和可靠性要求严苛,为了满足嵌入式操作系统对可靠性和实时性的要求,迫切需要一种能够适用于嵌入式操作系统的,具有隔离保护功能的、实时性好的内存管理模块。以下内容围绕内存隔离的相关技术、相关学术研究、目前成熟的工业界方案展开介绍[1]。

内存隔离相关技术

  1. 静态源代码分析技术

    在没有的MMU硬件的嵌入式平台上,利用静态源代码分析来检测内存访问冲突、指针越界和非法跳转进而实现任务间的隔离。T.M.Austin和S.E.Breach等人提出了Safe-C技术,此技术通过扩展的安全指针表达式来转换源代码,以此来消除指针和数组越界错误[2]。在J.Condit和M.Harren等人的文章提出了一种称为CCured的源代码转换程序[3],设计思想是确保类型安全,保证程序运行时不会访问非法区域。静态源代码分析技术虽然对于代码量较小的内核较为适用,但是对于程序运行期间访问非法内存地址的问题,该方法就显得力不从心了。

  2. 软件动态故障隔离技术

    基于软件技术的动态故障隔离技术[4]。R.Wahbe和S.Lucco等人对软件模块进行分区,将软件中不可信的模块加载到容错分区中,改进编译后的目标代码,将在容错分区中不安全的间接跳转或间接读写指令前填充判断代码,以此防止分区内指令访问其它分区内容。该种方法使得软件实现难度大,需要对机器代码二次编译,涉及到大量的汇编代码插入,不宜移植,对实时性会造成较大影响,即使Matthew Simpson和Bhuvan Middha等人在改进实时性方面提出了插入内存监测点和优化循环访问等技术来减小时空和能量的开销[5],但是为了隔离所带来的软件额外开销已经无法满足对实时性要求较高的嵌入式系统。

  3. 软件静态故障隔离技术

    段保护技术[5]。段保护针对代码段、数据段、堆栈段和全局段,对于缺少虚拟内存的嵌入式系统而言,该方法提高了系统的可靠性。主要做法是在目标代码的访问指令前插入经过优化的检测代码,对非法的段访问情况进行检测,对于安全关键的嵌入式系统是十分有用的。该技术主要针对目标代码进行修改,所以与编程语言无关。在优化较好的情况下,可以在较小的开销下实现空间域隔离,但是该方法与硬件体系架构息息相关,这就导致其很难具有可移植性。

    段匹配技术[6]。段匹配技术是另一种空间域隔离技术,目的是在段保护技术的基础上进一步提高访问效率。该技术将指令分为安全指令和不安全指令。对于安全指令不进行段检查,而对于不安全指令进行段检查。该技术需要使用四个寄存器作为专有寄存器,可以通过重定向编译器,选择使用系统所提供的寄存器组,这一方面能够提升隔离效率,另一方面由于专用的寄存器的使用依赖于具体的编译器,并且想要获得一个源码开放的编译器也绝非易事,故与具体编译器相关,也具有移植困难的问题。

    地址沙箱技术[4]。在段匹配技术的基础上,将每一个不安全指令的地址高位填充为特定字符,使之将可能的段错误问题限制在当前段空间内。该技术的缺点同段匹配技术一样,都会影响程序的执行时间,会恶化系统的实时性。即使使用最好的优化技术也会增加4%的CPU开销[5]。

  4. 基于MMU的页表技术

    MMU(Memory Management Unit,内存管理单元)一般应用在桌面型计算器或者服务器,MMU的作用有两个:1. 虚拟内存管理;2. 内存保护。通过虚拟存储器使得计算机可以使用比实际的物理内存更多的地址空间。MMU还对实际物理内存进行分割和保护,使得每个软件任务只能访问其分配到的内存空间,其有利于选择性地将页面映射或解映射到逻辑地址空间。内存中的每个页表项都可以设定对某内存区的访问权限,当访问不可访问权限的存储器时,会有一个存储器异常通知处理器,系统软件可以捕获这个异常来判断是否有非法的存储器访问,可以捕获和处理这种异常来实现空间域保护。
    利用MMU硬件机制,借助如下方法:位图法、分页法、分段法、多级分页法、段页法、短路段树法实现内存空间域隔离技术[7-9]。这些方法的基本思路是将物理内存进行划分,使用MMU中的特定寄存器、用比特位指定访问权限等方法进行物理页的访问管理。

    以上的方法虽然都能够实现内存保护和隔离,但是并不是都适合嵌入式操作系统,尤其是实时操作系统,因为嵌入式操作系统往往都有多任务和实时性要求。因此在进行嵌入式系统设计时还是需要根据系统规模的大小和实时性的要求来决定使用何种方法。若每个任务内存空间要求不高,则使用分页法能够满足嵌入式操作系统对多任务和实时性的需求。若每个任务内存空间要求较高,则建议使用分段法或者段页法。

学术研究成果

熊光泽等学者在其开发的S-CRTOS系统上借鉴ARINC653规范(主要阐述模块化综合航空电子设备使用的应用软件的基础操作环境,定义航空应用与下层操作环境之间的接口和数据交换的模式以及服务的行为)思想,实现了基于空间和时间隔离保护机制[10]。S-CRTOS主要采用MMU和Trap系统调用两种方式来实现应用与内核以及应用之间的隔离和保护,但对其实现方法和系统实时性未作深入说明。

龚育昌、唐玲等学者在分析现有操作系统安全机制的基础上,针对空间隔离技术的不足之处,提出了功能隔离的新思想[11],提供了更细致的隔离粒度,并可使不同类别的功能请求在相互隔离的执行域中执行,从而提高系统的可靠性与安全性。但该思想主要面向访问的安全性,对系统的实时性影响未做讨论。

学者欧庆于证明了在分区内核系统中,其隔离安全性通过系统层层结构中的分区隔离机制能够得到实现[12]。

工业嵌入式操作系统方案

  1. uCLinux方案
    uCLinux是基于Linux的嵌入式操作系统,能够满足低端的微控制器,无MMU,无Linux的虚拟内存机制,系统直接运行在实地址上,内核和应用程序运行在同一特权级上,相互没有隔离,这就导致任何应用程序的运行错误可能会对其它应用程序或内核造成影响。并不是高可靠的嵌入式操作系统。
  2. FreeRTOS方案
    FreeRTOS是一个实时操作系统内核,包括任务管理、时间管理、信号量等基本功能,可基本满足较小系统的要求,具有源码公开、可移植、可裁剪、调度策略灵活的特点。具有四种内存分配策略,但是其内存管理方式较为简单,没有复杂的分页机制,所以在内存隔离方面效果较差。
  3. RT-Thread方案
    RT-Thread是一款主要由中国开源社区主导开发的开源实时操作系统。它不仅是一个实时内核,还包含丰富的中间层组件。相较于Linux操作系统,RT-Thread体积小,成本低,功耗低、启动快速,除此以外RT-Thread还具有实时性高、占用资源小等特点。
  4. L4Linux方案
    L4Linux是Schonberg等学者的设计方案,该方案已经成为了一种微内核设计的标准。其上的实时任务和普通用户程序都运行在各自的虚拟地址空间中,互相之间采用虚拟内存技术隔离,每个应用程序的运行错误不会影响整个系统。
  5. 细粒度内存保护方案[13]
    Emmett Jethro Witchel提出的细粒度内存保护方法。该方法一方面能够解决传统内存保护粒度过粗问题(传统的内存保护都是以页为基础的),能精确到字一级的访问保护,具体做法是在内存中建立每个内存地址的访问权限表,每次内存访问都要通过此表的权限检查,若不通过则抛出异常,该方法另一方面能够加快权限的验证速度,对现有的MMU进行改造,加入权限表高速缓存,把常用的访问权限表放在缓存中,当访问某个内存地址时只需要访问权限表缓存即可迅速获得此地址的权限,不需要再次访问内存中的权限表了,减少访存次数。
  6. uc/OS-Ⅱ和uc/OS-Ⅲ方案
    uc/OS-Ⅱ内核是一种面向嵌入式系统的实时操作系统,具有实时性强、体积小、移植方便、代码清晰、可裁剪、易于扩展的特点,但其内存管理过于简单,任务间没有任何保护,且核心任务实现结构多采用全局变量来实现,无法保障各个任务间的安全性,使其很难应用在安全关键系统场合。但是uc/OS-Ⅲ加入了基于MMU的空间隔离模块uC/MMU,但由于其为商业软件,具体实现技术未公开。
  7. DeltaOS
    DeltaOS是电子科技大学嵌入式实时教研室和科银公司联合研制开发的全中文的嵌入式操作系统,可以嵌入到以32位微控制器为核心的各种智能设备中,作为应用程序的支撑环境。在国防和民用的智能设备中得到广泛的应用,特别是其已经被成功应用于航空/航天的高可靠性设备,并且加入了符合ARINC653规范的高可靠模块并使用MMU实现物理空间隔离。
  8. EOSnux
    EOSnux是北京中科院红旗软件公司推出的嵌入式Linux操作系统,以Linux操作为蓝本,并对其进行定制,它更适合于通用工业控制计算机,而不适合实时性要求高的嵌入式系统。
  9. HopenOS[14]
    北京凯思昊鹏软件工程技术有限公司自主研发的一款嵌入式实时操作系统,其核心一般为左右。其特点是占用空间小、实时性好、易于定制、支持多任务和多线程。但其任务间并无任何保护措施,并不是高可靠的嵌入式操作系统。
  10. LiteOS
    Huawei LiteOS是华为面向物联网领域开发的一个基于实时内核的轻量级操作系统。现有基础内核包括不可裁剪的极小内核和可裁剪的其他模块。极小内核包含任务管理、内存管理、异常管理、系统时钟和中断管理。可裁剪模块包括信号量、互斥锁、队列管理、事件管理、软件定时器等。除了基础内核,Huawei LiteOS还提供了增强内核,包括C++支持、低功耗以及维测模块。低功耗通过支持Tickless机制、run-stop休眠唤醒,可以极大地降低系统功耗。维测部分包含了获取CPU占用率、Trace事件跟踪、Shell命令行等功能。不具备分页内存管理功能,内存隔离方面无法做的细粒度。
  11. AliOS Thing
    AliOS Things是面向IoT领域的轻量级物联网嵌入式操作系统。基于Linux平台,提供MCU虚拟化环境。
  12. QNX
    QNX是一个分布式、嵌入式、可规模扩展的硬实时微内核操作系统。其核心仅提供4种服务:进程调度、进程间通信、底层网络通信和中断处理,其进程在独立的地址空间运行。所有其它OS服务,都实现为协作的用户进程,因此QNX核心非常小巧(QNX4.x大约为12Kb)而且运行速度极快。
  13. VxWorks
    VxWorks是美国Wind River System公司推出的一个实时操作系统。它以其良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中。闭源不公开源码。

参考文献

[1] 闫广明. 嵌入式系统内存空间域隔离技术的研究与实现[D].哈尔滨工程大学,2011.
[2] Todd M. Austin,Scott E. Breach,Gurindar S. Sohi. Efficient detection of all pointer and array access errors[J]. ACM SIGPLAN Notices,1994,29(6):
[3] Jeremy Condit,Matthew Harren,Scott McPeak,George C. Necula,Westley Weimer. CCured in the real world[J]. ACM SIGPLAN Notices,2003,38(5):
[4] Robert Wahbe,Steven Lucco,Thomas E. Anderson,Susan L. Graham. Efficient software-based fault isolation[J]. ACM SIGOPS Operating Systems Review,1993,27(5):
[5] Matthew Simpson,Bhuvan Middha,Rajeev Barua. Segment protection for embedded systems using run-time checks[P]. Compilers, architectures and synthesis for embedded systems,2005.
[6] S. Suzuki and K. G. Shin, “On memory protection in real-time OS for small embedded systems,” Proceedings Fourth International Workshop on Real-Time Computing Systems and Applications, 1997, pp. 51-58, doi: 10.1109/RTCSA.1997.629173.
[7] Simon W, Yefim S and Hubertus F. Multiple Page Size Support in the Linux Kernel. Proceedings of the Ottawa Linux Symposium. 2002.6:573-593.
[8] 杨仕平. 分布式任务关键实时系统的防危(Safety)技术研究[D].电子科技大学,2004.
[9] Jonathan S. Shapiro, Jonathan M. Smith, and David J. Farber. 1999. EROS: a fast capability system. SIGOPS Oper. Syst. Rev. 33, 5 (Dec. 1999), 170–185.
[10] 王丽杰,熊光泽,罗蕾.嵌入式RTOS安全保护机制的研究与实现[J].电子科技大学学报,2005(05):650-653.
[11] 龚育昌,唐玲,张晔,贾永泉.安全操作系统中的功能隔离机制[J].中国科学院研究生院学报,2008(04):538-548.
[12] 欧庆于.基于分区内核的安全嵌入式系统[J].计算机工程,2009,35(23):158-160.
[13] Emmett Witchel,Josh Cates,Krste Asanovic. Mondrian memory protection[J]. ACM SIGARCH Computer Architecture News,2002,30(5):
[14] Xichang ZhouYue GaoJing Xu. The Design and Implementation of Embedded Operating System for Smart Phone. Advances in embedded software and system: Hangzhou, China 2004.1: 145-149P.

【文献心得】内存隔离技术研究现状调研相关推荐

  1. 浅谈软件定义网络(SDN)技术研究现状和发展趋势

                       浅谈软件定义网络(SDN)技术研究现状和发展趋势 友情全文PDF链接:浅谈软件定义网络(SDN)技术研究现状和发展趋势.pdf-网络基础文档类资源-CSDN下载 ...

  2. 国内外RFID技术研究现状与发展趋势

    http://www.istis.sh.cn/list/list.aspx?id=6509 1 技术概述 RFID射频识别技术实际上是一项较早的技术,在20世纪60年代的时候,RFID射频识别技术的理 ...

  3. 湍流退化图像复原如何使用matlab,湍流退化图像复原技术研究现状及展望

    0引言目标通过大气湍流的成像是诸如天文观测.精确制导等光电探测成像系统必然会遇到的问题,它影响到光学系统的成像性能.特别是随着地基高分辨力成像望远镜技术的发展,从湍流退化图像中有效地恢复出原目标图像, ...

  4. PHP内存马技术研究与查杀方法总结

    内存马 概念 内存马是无文件攻击的一种常用手段,随着攻防演练热度越来越高:攻防双方的博弈,流量分析.EDR等专业安全设备被蓝方广泛使用,传统的文件上传的webshll或以文件形式驻留的后门越来越容易被 ...

  5. 傻白探索Chiplet,互连技术研究现状(七)

    目录 一.串行互连 二.并行互连 三.串行与并行互连的比较 四.互连标准接口 (1)背景 (2)UCIe Chiplet的可行性常常受到片间互连的性能.可用性以及功耗和成本问题的限制,各种异构芯片的互 ...

  6. 全球及中国数字内容产业运行现状调研与盈利前景分析报告2022年

    全球及中国数字内容产业运行现状调研与盈利前景分析报告2022年 --------------------------------------------------- <出版单位>:鸿晟信 ...

  7. 基于目标物体检测技术的工业机器人分拣技术研究

    本课题研究的目的.意义 随着我国经济的不断发展,以工业机器人为基础的自动化生产过程在零件装配.货物包装以及3C产业等领域中较为常见.越来越多的企业将以往工厂中通过员工手动完成的任务交给机器人去完成,大 ...

  8. 带内全双工水声通信系统自干扰抵消技术研究框架与思路

    [摘  要]水声通信技术已经被广泛应用于水下信息交互.海洋环境监测数据回传等方面,但受限于半双工体制,频率效率难以获得突破性的提升.首先对目前IBFD-UWAC技术研究现状进行了简述:然后重点阐述并分 ...

  9. uniyu 雷达波束_雷达极化信息获取及极化信号处理技术研究综述

    [1] Sinclair G.The transmission and reception of elliptically polarized waves[J].Proceedings of the ...

最新文章

  1. 圣何塞与 Microsoft 宣布该市为超过 5,000 名市府公务员选择 Office 365、Windows Azure 和 StorSimple...
  2. python基础练习(七)
  3. 简介QTP中的Active Screen
  4. php提示行号,在php中使用trigger_错误时如何获得正确的行号?
  5. Spring 事务基于注解和xml方式
  6. 【java】项目环境配置
  7. matlab不显示变量,Matlab空间面板SAR模型运行时解释变量显示不全
  8. 【nyoj-456】 邮票分你一半 (dp,0-1背包的中点问题)
  9. ubuntu定时执行python脚本方法及实例代码
  10. Linux每个目录的介绍
  11. 金三银四大厂面经总结,淘汰了80%的Java面试者
  12. ASP.NET2.0 Person Web Site:将图片以二进制的从数据库读取
  13. Python实现PDF转TXT
  14. VUE小案例——奇妙清单(vue指令综合应用)
  15. 网络安全学习相关网站
  16. 3DMAX的渲染后期丨怎么在PS里P出真实感的灯光?
  17. python泊松分布_泊松分布与Python图解
  18. 网盘搜索引擎原理大揭秘
  19. 微软怎么设计Exchange 2003的体系结构
  20. 工银亚洲见证开户详细过程和攻略

热门文章

  1. ​VC深思考:在商还得言商!
  2. 中兴力维喜获“中国智慧城市创新应用金奖”
  3. 第四届中国(广东)国际“互联网+”博览会今日在佛山开幕 聚集工业“智慧”推动产业加速转型...
  4. ScrollView水平滑动条选中条目的居中显示
  5. msk 频偏_基于MSP430的MSK调制解调实现.doc
  6. 杜甫的唐诗三百首中的望岳
  7. Jmeter读取excel表格数据响应数据乱码
  8. 2022年618机顶盒哪款好?当贝盒子功能最全性价比更优
  9. windows添加右键打开cmd命令窗口
  10. 看牛人如何学习JAVA-如何学习java