在开始今天的正文之前,我们先通过下面的视频,来更直观的感受下微内核操作系统:
为什么要选择微内核操作系统?
微内核操作系统,单从名字上来说可能被误解为操作系统非常小,但这并不是它本身的意义,而是指内核非常小,内核只保留一些基本的功能,一些系统服务,例如文件系统,网络协议栈等则放到了用户态。
例如原来在宏内核操作系统中,用户应用程序是通过系统调用,陷入到内核中,然后再读取、访问文件。而在微内核操作系统中,则是用户应用程序通过发送IPC消息给到运行在用户态的文件系统服务来访问文件。
针对于微内核操作系统,我们看到最近两三年有些新的发展:
Google在推进Fuchsia微内核操作系统
Intel在CPU的管理引擎中使用Minix微内核操作系统
华为在推进鸿蒙分布式微内核操作系统
可以看到相关厂商都一致性的选择了微内核架构或和微内核架构相关的技术方式。
这个背后的可能原因会有哪些?
原⽣进程沙箱,解决应⽤安全和分发问题 -- Google Fuchsia(⿊客)
稳定的驱动接⼝,硬件⼚商可独⽴维护硬件驱动 -- Google Fuchsia(硬件)
系统模块化,分层,设备⼚商可以灵活定制专有系统 -- Google Fuchsia(友商)
Linux越来越庞大,更多的为服务器进行优化,针对低性能、低资源设备显得臃肿;
可以提供网络,文件,web服务等的功能轻型系统;-- MINIX on Intel
(以上内容:部分是许中兴博士的Fuchsia一文的摘录,部分则出自网络上一些文章)
2019年年初,微内核也在RT-Thread提上了日程,同年4月便正式开始推进这件事情。还有一个促使我们决定的重要原因是,我们从中看到一些市场需求:
快速启动,终端上的系统可以在500ms内完成启动并就绪;
安全方面的考虑,当应用出问题时不会影响到其他无关功能;
在进行系统升级时,不类似传统RTOS需要把整个固件进行升级;
当要在ARM11、Cortex-A等带MMU的处理器上跑一套操作系统时,RT-Thread已经不那么能够得到适应:整体一起开发,代码维护相对困难;升级时也需要对系统一起进行升级。
RT-Thread Smart 混合微内核
RT-Thread Smart 之所以采用混合微内核架构,更多是从工程、实用层面考虑如何有效的解决需求:
系统启动需要足够快,功能就绪时<500ms
在初始启动时,时间会花很大一部分在系统加载上。传统的方式,都是整个映像程序一起加载。新的系统则只需要加载一个非常小的系统,然后其他应用部分按需加载,同时保持整体资源占用足够小;
应用崩溃时不再影响到内核、系统其他无关功能
每个应用都是地址隔离的,拥有自己的独立地址空间。当应用执行出错,或访问错误地址时,应用程序会core dump,而不会影响到其他应用,系统内核;
在工程引入新的特性时,对原有的功能不影响
继续沿用目前的RT-Thread整体内核代码,在原有基础上增加、完善lwP(轻型进程)功能,保留原有的实时性和小巧的特点。
RT-Thread混合微内核架构
从架构图可以看出内核的功能相对基本,一些系统服务则挪到了用户态,例如elmFATKit - FAT的文件系统,lwIPKit - lwIP轻型TCP/IP协议栈等,而在用户态则使用嵌入式系统中常用的musl libc库:一个轻型,但相对完整的libc实现。不过另外一点,这些系列的用户态系统服务,如果需要追求高性能,也可以在menuconfig中定制这个功能组件继续在 内核中保留,这样可以达到最佳的性能。
通过混合微内核改造RT-Thread操作系统后,RT-Thread将成为最适合物联网产业的IoT OS之一,因为它可以完美覆盖小资源场景的MCU用于简单控制<使用RT-Thread nano版本>;中等规模的IoT节点<使用RT-Thread宏内核版本>;功能丰富的智能设备<使用RT-Thread混合微内核版本,也称之为RT-Thread Smart>。
报名测试条件及内容
上面已经对RT-Thread混合微内核操作系统进行了简单的介绍,还有许多没有公布的细节。如果你有兴趣了解,欢迎报名RT-Thread混合微内核系统内测,从更全面的方位来了解RT-Thread Smart。 在参与测试前,先说明下参与的条件:(名额有限,希望您可以认真对待报名表中的每一个问题)
希望是从事嵌入式系统终端开发的行业,具备开发经验;
希望有一定的Linux开发基础,前期一些开发环境可能是在Linux下;
对于参与的同学,我们会提供一份柿饼M7的开发板,同时根据情况收取一定的押金,后续开发板归还后返回押金;
以下这个就是柿饼M7的开发板:
柿饼M7开发板包括:
全志R11处理器,1.2GHz ARM Cortex-A7,64MB DRAM
板载16MB SPI NorFlash
支持AP6181 WiFi
USB接口(用于USB Device连接PC),USB转串口TTL
40/50pin标准RGB屏接口
6线Touch电容触摸屏接口
音频Speaker接口,MIC模拟麦克风
MIPI/DVP camera接口(目前还未包括驱动)
对于参与测试的同学,需要做些什么:
提供一份使用的测试报告,反馈混合微内核使用上的最直观感受;
在上面进行一定的开发,反馈开发层面哪里不足、需要改进;
希望可以有1 - 2个月的时间来和我们持续的沟通和反馈;
全部0条评论
快来发表一下你的评论吧 !