rtems总体设计思路
与典型的通用操作系统差别很大的是,rtems是基于扁平内存管理的层次型单体内核,应用程序与内核形成一个基于函数调用形式的整体功能单元,在一个地址空间下协同完成特定的功能,而对于普通的操作系统而言,应用程序和操作系统是处于不同的特权状态和地址空间。
系统调用是应用程序访问操作系统的接口,在接口上,通用操作系统和应用程序是处于两个不同的cpu特权态,操作系统处于核心态,应用程序处于用户态,rtems没有用户态和核心态,rtems内核和应用程序之间只是简单的函数调用关系,都处于和心态,好处是执行速度快
在内存管理方面,通用系统采用了虚拟内存的管理方式(比如linux 下的swap空间),能够让内存需求超过实际物理内存的进程能够执行,这样可以实现对不同内存区域的保护,所以一个应用的错误不会导致系统的崩溃。但无法满足实时性的要求,rtems没有采用虚拟内存,而是简单的单一地址空间管理方式,这样使得应用程序和内核在一个地址空间,直接访问,好处是确保了实时性。
在进程和线程管理方面,rtems没有进程的概念,只有线程,task。rtems的线程共享应用程序和rtems内核拥有的整个地址空间,好处是线程开销小,线程调度简单。
在文件系统管理方面,当前通用操作结合虚存管理,实现了多种复杂的文件系统。rtems有相对简单的虚拟文件系统,支持有限的嵌入式文件系统比如DOSFS(FAT)
rtems的总体结构如下:
应用服务层:TCP/IP、GUI、FIle system
系统服务层:classic API 、POSIX API、ITRON API
核心层:SUper CORE
硬件抽象层:Llb CPU、lib chip、BSP
第二层是rtems核心层,由一系列的核心组件组成,主要包括有:
与线程管理和调度相关的组件:
thread handler组件
thread queue handler组件
priority handler组件
watchdog handler组件
与同步互斥相关的组件:
mutex handler组件
等等
其他重要组件:
object handler组件
ISR handler组件
workspace handler组件
posted on 2016-09-27 18:31 sichenzhao 阅读(279) 评论(0) 编辑 收藏 举报