嵌入式操作系统新纪元?

2019-07-13 07:32发布

自从ARM公司和各大半导体公司推出Cortex系列芯片以及移动互联网、物联网兴起在嵌入式操作系统领域一种新纪元隐约出现。1、Linux系统特定领域式微这里的式微不是指Linux系统整体的式微,是专指Linux在嵌入式某些特定领域领域。笔者在做过的几个项目中需要用到硬件模块有网络模块、TFT-LCD模块等,软件上任务数量也比较多。当时想到的立即是嵌入式Linux,但老大则选择了STM32配合带网络协议栈模块、STemWin图形库方案,任务调度通过一个状态机,硬件上成本更低了,效果也不差。Linux从出生那天起就不是专门为嵌入式系统设计的,Linus是在PC上开发基于Unix的Linux系统的。之所以后来Linux应用于嵌入式方案,一则需求导致,二则Linux开源特性可以任意修改。The ARM Linux Project虽然号称一直在跟进Linux在ARM嵌入式平台的内核演进,但资料寥寥。ucLinux有商业公司加持也不过寥寥。开发者头痛的是,即使嵌入式领域软件硬件碎片化严重,但每次开发都要基于裸内核,一个不大不小的项目就要面对几十万行代码,无疑难度陡增。项目压力大,能节省研发时间也能省钱。首先越来越多功能从操作系统中剥离出来,比如图形库、协议栈、固件包等。这些软件包可以直接被调用远比放进Linux中配置、修改简单。其次越来越专用于嵌入式领域的操作系统出现比如无需MMU的、不带文件系统的,如FreeRTOS、Embed等等。这些都是硬件专业化在软件上的体现,现在硬件专业化程度越来越高,GPU、矿机、FPU库……已经不是一个大杂烩操作系统能胜任的。但即使如此Linux还是要学的,因为在必须用到的Linux领域它还是必须用的。比如路由器、工控机等等。
2、专一化软件库和操作系统流行以前那种一套OS走天下的局面正在被改变,物联网兴起带来一大批OS,基于需求的多样性和硬件的专一化,一套OS基本不可能实现所有需求。以前在嵌入式领域的歧视链是:会Linux——会单片机现在歧视链:会各种SOC(AI、飞控、挖矿、FPU)——会Linux——会单片机操作系统本质上只不过是个硬件资源管理和任务调用的软件包而已,它不能实现AI、DSP等其他需求,需要开外挂。因此从业者除了在传统领域扎实也要不断学习新的SOC软件技能,也就是不要只会操作系统和裸机,也要多学学AI库、GPU、数学什么的。
3、操作系统会演进为一个单纯的软件包每次看带FreeRTOS的项目都会感慨,这个OS不过是我整个项目的一个包而已,还有其他飞控计算包、驱动包等等。OS越来越专一化,不再集成一堆大杂烩的东西,对于软件和系统理解要简单多了。现在和过去IT界总是喜欢神秘化和困难化技术,而对于如何运用逻辑学和常识去学习技术则少有研究。IT技术本质上不过是工业技术,既不是基础科研也不是文学研究,那些我们能学到的技术早被最初的开发者摸透了,既然都被造出来了难道还怕不理解吗?业内不要神秘化和困难化技术。