嵌入式实时操作系统的可裁剪性及其实现
扫描二维码
随时随地手机看文章
由于宿主对象的多样性,为适应不同的要求,无论在硬件方面还是在软件方面,嵌入式系统必须具有很强的可裁剪性,并且便于修改。
所谓操作系统的可裁剪性,就是一个规模大且功能齐全的操作系统,在结构上保证了用户可在其中有选择地保留某些模块,而删减掉一些模块的性能。目标系统设计者的这个做法,也常常叫做对操作系统进行配置。因此,操作系统的可裁剪性也常被叫做操作系统的可配置性。
所谓的配置方法有两种:工种是在系统进行编译连接时进行配置;另一种是在系统运行时进行配置。
在编译连接时的配置方法一般都是通过条件编译来实现的,即在操作系统中都有一个配置文件,在这个文件中系统的设计者可通过对一些配置常数的设置来选择使用或不使用的模块。于是,在对系统编译连接时,编译系统就会按配置常数的设置值对与之对应的模块进行编译或不编译。于是,那些不被编译的模块就自然地不包含在系统中而被删掉了,这样就可以大大减小系统所占用的内存。所以,条件编译是实现系统裁剪的有效手段。但这需要一个前提条件,即用户要获得待裁剪的操作系统的源代码。
在运行时对系统进行配置,是依靠系统在初始化运行阶段执行一些条件转移语句来实现的。只不过这些条件语句是根据事先由目标系统开发人员编写的配置文件中的一些参数来跳转的。所以,也实现了系统功能上的裁剪,但不是物理上的裁剪。也就是说,被裁剪的模块的代码仍然还存在,只不过未被执行。所以,这种方法不能减少系统所占用的内存,只是使运行速度有某种程度的提高。但这种裁剪方法的优点是,目标系统开发人员可以没有源代码,并且操作起来很方便,因此是商品软件经常采用的方法。
当然,由于目标系统的多样性,尤其是在对产品个性化要求极高的今天,致使在设计中经常出现单纯依靠裁剪已经不可能获得一个满意的操作系统的情况。那么在这个时候,唯一的解决办法是修改或者添加功能模块。根据前面的内容,显然在一个具有微内核的操作系统上修改或添加是最方便的。这也是嵌人式操作系统大多都采用微内核结构的一个重要原因。