暢談從業(yè)以來兩大難題 - 和中興資深工程師一起大啖Linux的設計與開發(fā)

2014年10月15日 12:03 來源:電子發(fā)燒友論壇 作者:陳晨 我要評論(0)

標簽:Linux(209063)操作系統(tǒng)(123233)

  2、電子發(fā)燒友:自從業(yè)以來,遇到最大的困難與挑戰(zhàn)是什么?能否給我們分享些您的經(jīng)驗以及心路歷程?

  韋東山:

  轉行!轉行是最困難的,這意味著你前面積累的經(jīng)驗幾乎沒用了,還需要學習全新的知識──這需要大量的時間。我的第1份工作是做硬件的,后來由于工作需要也寫一下單片機程序,但是軟件水平是很低的。決定轉行學習Linux時,這需要有操作系統(tǒng)的概念知識、全新的ARM體系架構知識、完全沒接觸過的軟件設計理念(寫單片機時就是一個while循環(huán),Linux里都是面向對象的思想)。

  這千頭萬緒,要學習的知識很多,從哪里入手,從哪里抽出時間,這就是2個最大的困難。

  · 對于時間,我是暫停工作閉門自學了半年;

  · 對于從哪里學習,我是先學習了趙炯的《LINUX內(nèi)核完全注釋》,這讓我對操作系統(tǒng)有比較深的認識;接著把 ARM開發(fā)板當作單片機學習裸板,把bootloader涉及的硬件操作單獨寫程序試驗;最后開始學習驅動程序的編寫。從裸板程序開始,直到Linux驅動,這就是我的主要學習方法,這也是《嵌入式Linux應用開發(fā)完全手冊》的章節(jié)順序。

  3、電子發(fā)燒友:IP Camera帶音頻視頻功能、可以聯(lián)網(wǎng)互動,因此可能會被惡意入侵、隱私泄密,工程師如何做到保護?

  韋東山:

  IP Camera的使用涉及3個部件:用來錄像錄音的IP Camera、提供數(shù)據(jù)傳輸或存儲的服務器、觀看音視頻的客戶端(PC或手機等)。

  我們會根據(jù)IP Camera的使用場景,為每一個階段提供數(shù)據(jù)保護,比如:

  a. 客戶拿到IP Camera時,要登錄服務器注冊帳號,并綁定設備。在服務器上的WEB服務就要注意隱私保護,必要時引入手機驗證。

  b. 客戶端向服務器提出請求時,要輸入用戶名和密碼,這可以參考Linux的遠程登錄密碼驗證功能。比如使用ssh協(xié)議登錄Linux服務器時,會提示你輸入用戶名和密碼。相信這一套機制非??煽浚覀兛梢灾苯右?。

  c. 三者之間傳輸數(shù)據(jù)時,數(shù)據(jù)要先加密再傳輸??梢允褂霉妹荑€等加密方式。

  d. 在服務器上存儲的數(shù)據(jù),如果你對安全保護不在行,可以使用大公司提供的云服務。

  我只是給出一個思路,經(jīng)驗不豐富。歡迎探討。

  4、電子發(fā)燒友:IP Camera運動控制部分可以實現(xiàn)拍攝角度的調(diào)節(jié),能否通過自動控制攝像頭的角度實現(xiàn)人臉、頭部信息的鎖定、實時運動捕捉,大概怎么實現(xiàn)的,能否介紹一下?

  韋東山:

  術業(yè)有專攻,圖像處理不是我們的專長。但是要做這一塊,我們會這樣做:先使用開源軟件比如OpenCV,如果它達不到要求,再求助于專業(yè)人士。

  5、電子發(fā)燒友:傳統(tǒng)的Linux驅動開發(fā)和Android驅動開發(fā)有何區(qū)別?現(xiàn)在android那么火,它跟LINUX是什么關系?學好了你們的視頻,對學習android有何幫助?你們后續(xù)有無錄制android視頻的計劃?

  韋東山:

  簡單地說,Android驅動=Linux驅動+封裝。 Android應用程序是使用java編寫的,Linux內(nèi)核和驅動程序是使用C語言編寫的,java APP要訪問驅動程序,這中間需要插入一個封裝接口。核心還是底下的Linux驅動程序;對于封裝,你只要了解了封裝規(guī)則,基本就可以一通百通了。所以,如果你的目標是掌握Android驅動,那么我們的視頻很適合你。我們后面也會講講Android驅動的封裝,它不會太難。

  對于Android應用程序,可以認為它跟Linux的關系不大。即使你沒有Linux知識,也可以在1個月內(nèi)入門Android應用開發(fā)──我只是說,你會開發(fā)簡單的界面。程序的核心永遠是在界面之后,所以不要沾沾自得。比如手機游戲,背后的圖像處理算法、游戲的邏輯,這才是重點。如果你的目標是掌握Android應用,我反而覺得你應該跳出“Android”來學習。應用程序的領域實在太多,有網(wǎng)絡、圖像處理、安全、搜索等等,由你的興趣來選擇方向吧。Android應用只是一個人機界面,把背后的復雜系統(tǒng)展示給客戶來使用,如果你只滿足于“寫界面”,好吧,1個月速成,再花幾個月深入理解 Android的框架。容易上手的,就容易掉價。前幾年Android應用開發(fā)由于會的人還不多,工資挺高;這兩年就開始往下掉了;要保住你的薪資水平,除了界面你還需要掌握“核心技能”:界面背后的支撐。

  我沒有打擊Android應用的意思,對于急于找到工作的人,我反而建議去學習Android應用。你應聘到工作后,公司自然會壓著你去了解產(chǎn)品的相關知識,否則你也寫不出界面啊。

  6、電子發(fā)燒友:工程師一般時間都是比較緊張的,您是在什么情況下寫的《嵌入式LINUX應用開發(fā)完全手冊》這本書呢?這本書是想給大家分享些什么呢?

  韋東山:

  辭職寫的。我2005年自學Linux時在網(wǎng)上發(fā)布了“S3C2410完全開發(fā)流程”的學習筆記,被出版社的編輯看到。他們在2006年聯(lián)系我寫書,那時我在中興上班。在公司上班期間,根本沒有時間寫書:工作累個半死,回來哪有精力寫。于是決定2007年辭職專門寫書。

  我學習時,大部分的知識都是從網(wǎng)上搜索得來,這需要耗費巨大的精力去尋找,并且不系統(tǒng)。作為初學者,不知道去搜什么來入門,也不知道搜什么來深入。所以,我想出一套“完全教程”,讓零基礎的入只看這本書,就可以入門并掌握比較深的、工作中可以使用的知識。

  好吧,其實也是被編輯以名利相誘,然后催我寫寫寫!

上一頁123下一頁全文