随着嵌入式处理器尤其是ARM处理器的广泛使用,嵌入式操作系统也曾爆发之势。对于初学者来讲以哪种系统作为学习对象成为一个问题。之所以说初学者,因为对老鸟来讲从一个系统转换到另外一个系统并不是一个费力的过程。但对初学者来讲,学的太杂会出现一直在低水平徘徊的危险。
由于市场的需求是多种多样,必然产生的嵌入式操作系统也是多种多样。由于本人一直从事信号处理相关行业,自然关注的也是对高性能CPU比较友好的操作系统。从个人的角度看,一个操作系统至少要有这么几个特点。
1、实时性能,实时不仅仅意味着反应快,也意味着程序效率,对信号处理来讲对性能和效率的追求是没有上线的;
2、要有相对完整的驱动框架,可以让内核和BSP分别开发而不要融合在一起;
3、能够实现应用与系统的分离,不然每次改动程序都要更新整个系统,有些太麻烦,如果客户需要二次开发的功能,简直就无能为力了;
4、有独立的调试工具,目前GDB是比较常用的调试手段;
5、最好有自己的开发环境,不过如果包含上面功能,一般都必须要有自己的开发环境了,有开发环境可以大大的提高工作效率;
6、可以裁剪,毕竟对嵌入式来讲,不必要的功能会占用宝贵的资源,影响效率。
如果能够开源就更好了,开源的好处对商业来讲意味着比较大的自由。一个自由是可以减小项目开始的投入,想买就买不想买也没人逼你,毕竟还没商用。不必去花钱购买一套软件,往往这种软件价格不菲。项目成功或者盈利后这些花销或许不是什么,但在开始对很多中小公司或个人来讲项目开始就有这么大的投入还是有些压力的。
另外一个自由最重要,可以根据自己的需求特点对系统做些更改或扩展,我想Linux之所以如此火爆,这个应该是个很重要的原因。想象一下,如果arm绑定Windows发展,那多核和大小核的应用要等到猴年马月。从市场的规律看,供给总是落后于需求,这种扩展的灵活性一方面可以避免被人卡脖子,另一方面也给形成自己的独特优势提供了可能。 |