作者:方春根
链接:https://www.zhihu.com/question/26031045/answer/35980197
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
题主的意思不是问“Linux好处都有啥,谁说对了不给他”(escape根据题主描述题主应该压根不清楚计算机的体系结构那么有点基本开发经验的我可以简单讲讲关于题主的疑惑了:1,为什么无人机多用Linux系统?无人机,为了实现无人功能,就需要实现对飞机的远程操控。那么,最简单的方式就是在无人机上部署一个计算机来指挥无人机的行动过程。因为飞行器尺寸的限制,飞行器上的计算机需要可靠,低能量消耗以及尺寸比较小,那么arm处理器就比较符合这些原则了。如果题主研究过物联网相关的玩意,会发现这方面工程师很喜欢用树莓派或者其他的arm计算机实现一个“中控中心”的设计,淘宝上就可以买到一套完整的基于Arduino开源工程的无人飞行器的元件。也就是说,只要你有好的想法,你都可以通过现有的工具零件搭建出一个原型来实践。硬件有了,arm计算机,计算机是由软件和硬件组成的,软件呢?Linux平台上的各种操作系统。为什么选用Linux平台的操作系统?首先,对性能的要求比较低,符合低功耗要求。前人栽树,后人乘凉,linux平台上已经很多的“*”,即第三方库,很多现成做好的功能,拿过来就可以用,比如说安卓系统对定位功能的封装。(其实是满大街linux嵌入式开发工程经验。。。前人的开发经验最宝贵嘛)另外,linux对底层硬件的可操作性也是一等一的。(具体请见内核编程、驱动程序开发等书籍)总结一下,arm计算机适合用来作为电子积木搭建工程原型,linux平台比较适合arm计算机,所以就造成了“其中有很多无人机项目都是用 Linux 代码编写的”。2,(1)意思是Linux代码能来编程吗,Linux是内核,使用Linux内核的系统都可以被称作Linux系统。操作系统本身不是开发工具,不会出现用Linux代码编程这种事情。shell脚本不算,因为shell本身也是一种交互语言嘛。(2)我上网查了下Linux代码,好像和C语言差不多本来Linux就是用c搞的3,前面讲了,Linux是操作系统,题主也知道c语言。那么语言编好了程序,程序一般需要操作系统的支持下来运行,你写一个printf("hello world"),在萌萌哒的vc6下会出来个黑框框,在万恶的gcc下面会生成一个out文件。编程语言的表现是基于操作系统上的,那么在Linux下用c或者其他语言对无人机编程有什么优点?简答:1,操作系统本身低功耗不占用太多能源动力。2,第三方库有很多,从网络操作到硬件掌控,都有现成的*。3,对底层硬件的掌控性非常好,没有*,内核编程编出来个*也可以。4,arm和linux相依为命,约定俗成。5,除了linux/unix体积小,效率高以外,最重要的我觉得还是它的安全性,因为连内核都是可以重新编译的,完全不用担心后门程序。(感谢老何同志的补充)物联网大牛如有宝贵意见,请留言,在这里先为您的提携说声谢谢。update:别的答案这么喜欢黑windows,无视wince真的没问题