Linux下程式設計有什麼優勢

lijun139發表於2017-03-01
作者:方春根
連結: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真的沒問題

相關文章