准确的说,mbed OS是专门为物联网定制的一个操作系统: 下面一段定义来自于ARM官网: 专为基于ARM Cortex-M处理器的设备所设计的免费操作系统.,将物联网所需的所有基础组件,包括安全, 通信传输与设备管理等功能,整合为一套完整软件,以协助开发低功耗,产品级的物联网设备并实现量产。 这套操作系统将自2014年第四季度起作为初期开发工具提供给mbed合作伙伴,首批采用mbed操作系统的设备预计于2015年问世。 mbed官网是这样定义自己的: We are creating a modern full-stack operating system that is designed specifically for ARM Cortex®-M-based MCUs 这是一个为物联网打造的操作系统,不要把它想做可以和Android或IOS相抗衡的操作系统,ARM提供一大堆套件,不得不说这些套件都很好很强大。
作者:刘凯
链接:https://www.zhihu.com/question/25981847/answer/130919807
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
ARM mbed(1.0/2.0)起初只有两个人的时候,做得挺好,最大的好处是跨MCU(同一ARM生态下),跨编译器(GCC/ARMCC/Keil/IAR)。所以一个工程在这些MCU/CC之间切换很方便。ARM mbed 3.0野心很大,要实现IoT OS,收购了6LowPAN/TLS中间件,搞了个yotta。但是mbed 3.0废弃了。虽然官网上看不出。ARM mbed 5.0(这时mbed有200多位工程师了)回头搞了mbed-cli,封装了git/hg,可惜在国内你们知道的。连Github有时候都无法访问。import工程花个半小时或失败是常事。虽然可用,但是真心耗时。而且mbed-cli不知道是否认真测试过,Mac(编译器头文件),Linux(编译器头文件),Windows 10(Makefile)下都有问题。现在居然Windows XP是我唯一可以工作的环境。其实,mbed应该提供一个虚拟机。ARM online compiler + Keil + GCC4.9是我目前主要的工作环境,但是mbed 5.0工程导出后可能会因为Makefile和CC导致不兼容,需要手动修改,然后编译。而且mbed 5.0之后代码好像引入了STL,一堆不兼容。ARM mbed想要做更多,但是引入了太多CS/IT行业的工具和编程风格,又未经过完整测试。原来ARM mbed的网页登陆采用了Google API,我提交了建议后取消了这一做法,这样我们国内用户才可以继续访问ARM mbed服务。关于mbed rtos,我也问过了,ARM对rtos定义了CMSIS-RTOS标准,所有现行rtos如Keil RTX,uC/OS都需要提供CMSIS-RTOS封装层后,大家可以互换。而mbed rtos是基于CMSIS-RTOS标准的。但是mbed rtos原始代码来自于哪里,ARM mbed没有交代。
linux驱动比较大2个不是一个概念。uc/os是实时的轻量级。。。linux是个完整的体系。。。。一般arm都可以跑这2个.主要看用途的。。。比如移植图形界面就要用linux书?你是要linux方面编程的还是介绍linux和uc/os区别的要是编程的话