Docker放飞嵌入式开发 -- 微软IoT之道

为什么是Docker?

尽管现在的Docker已经风靡全球,但还是有很多开发者(特别是嵌入式开发者)对Docker认识还是仅仅停留在它的服务器应用上面。殊不知,Docker已经是微软Azure IoT Edge技术的重要组成部分。那么Docker到底有什么本事,能在Iot领域如此重要呢?
举个例子,无论你是什么CPU,什么操作系统,什么硬件条件,下面一条命令,就可以让你的PC,嵌入式设备,跑上一个指定版本的APP:

sudo docker run -it --privileged -v /dev:/dev-share idea4good/gui-lite:latest bash /run.sh

对嵌入式的意义


作为一个嵌入式开发者,你或许会遇到以下场景:
1. 每当硬件升级的时候,你能保证你的APP还能在新硬件环境正确运行吗?
2. 当设备的驱动程序发生变化后,你能保证你的APP还能正确运行吗?
3. 当APP出现了问题,是硬件的问题,还是软件的问题?
4. 因为嵌入式软件升级困难(往往需要现场升级),你不得不对APP作无数次测试,从而导致上线时间越拖越久?
5. 当APP确实要升级的时候,串口,调试器,人员一个都不能少
其实,这些问题都可以由Docker来解决,谁说的?微软!
大家可以百度一篇微软Azure IoT Edge的文章看一下,它能够实现IoT的大规模部署、随时升级及平台无关(还有更多的功能我就不一一介绍了);但微软没有明说的是:实现方法就是Docker

X11/显示问题


但有UI的嵌入式开发者,可能马上跳出来反对,因为Docker没有提供对framebuffer的访问办法,目前网上推荐的方法都是X11,这无疑增加了麻烦和对嵌入式资源的消耗,而且性能问题也有待考验。
其实这个问题,微软已经提供了很好的解决方法,确切的说它的方法不仅适用于对framebuffer的访问,甚至适用于对各种硬件(例如:音频,I2C,I2S,串口),驱动的访问。
因此,显示,及硬件的访问并不是问题,甚至具体方法,还是体现在上面的那一条命令之中。

猜你喜欢

转载自blog.csdn.net/idea4good/article/details/88775713
今日推荐