OpenWrt?需要具備哪些基礎知識?

大家好我是佐須之男,我從08年至今一直從事著路由器相關的工作:固件定製、技術諮詢、開發培訓。在培訓班中有很多學員問OpenWrt如何上手、需要具備哪些基礎知識?雖然我在OpenWrt領域談不上是專家級別,但還是想給大家聊一下我的看法和觀點,起一個拋磚引玉的作用。

記得在我剛參加工作時,很多小企業為了降低成本,對嵌入式開發人員的能力要求極高,需要你既熟悉軟件又精通硬件,自己畫板然後寫軟件都是正常不過的事。這是真事,我很多前輩的確是全能型人才,我一直把他們作為榜樣。現在很多老闆恨不得回到那個時代,當年的大牛真的是物美價廉,他們用極低的人力成本獲取了巨大的財富。很多人對嵌入式的認知還停留在我工作那會兒,其實現在嵌入式對個人能力要求並沒有以前那麼苛刻了,現在畢竟都是團隊合作。

首先OpenWrt是一套小型的Linux系統,知識體系繼承自Linux。因此對於新手來說,首先需要補充的知識肯定是Linux相關的。現在Linux相關書籍那麼多。不可能每本都去看,所以最佳的學習途徑還是藉助互聯網。反觀我以前看的Linux書籍,其實很多都是國內外資料的整理和翻譯,真正有價值的書籍並不多。

學習OpenWrt可以從兩個方面入手,命令和文件。命令就是OpenWrt自帶的命令,我們可以逐個去理解每個命令的用法和作用。文件就是OpenWrt系統的文件構成,通過閱讀文件內容和了解文件作用,這樣可以加深理解OpenWrt的運行機制。比如insmod命令,我們可以先通過man手冊查看此命令的用法,然後在終端中試驗。文件這塊呢,比如/etc/passwd文件,網上有很多介紹此文件作用的文章,可以通過修改文件來試驗效果。加以時日,相信大家可以在短期能增加對OpenWrt理解和認識。

上面我所說的是使用級別,假如需要達到開發級別需要更多的努力。因為一旦涉及開發,使用這塊的基礎知識是必不可少的。那說下OpenWrt開發需要哪些知識?首先是能看懂C語言,並不需要你熟練掌握C語言,能改簡單的代碼就OK,具體為啥我們後面會解釋到。其次就是需要掌握一門解釋類語言比如python、lua、shell,這些其實是開發過程中最常用的語言。隨著技術的發展,C語言在嵌入式行業已經呈現邊緣化的趨勢,在整個開發中只是用來開發驅動等底層,很少用來實現業務邏輯的,未來主流趨勢的是lua或python。現在主流芯片已經採用ARM架構,嵌入式行業已經越過了性能瓶頸,迎來的是業務瓶頸。智能家居、物聯網時代假如還是採用爺爺輩的C語言的話,那估計等你開發完別家產品估計都升級到第二代或者第三代了,你還在搞原型。關於界面這塊,很多公司都配備了前端,基本上HTML部分由前端包攬。所以基本上你只要掌握一門語言,然後會簡單的html就可以進入OpenWrt開發的殿堂。

下面做下總結,OpenWrt其實是很容易入門的,除非你是做相關封閉領域的開發,比如無線mesh、wifi探針這類可能會遇到天花板。假如遇到難題大家可以來我做技術諮詢,西瓜視頻上也有我上傳的“跟著佐大學Lede/OpenWrt開發試聽課"系列視頻助大家快速入門。


分享到:


相關文章: