ZTE資深工程師大談通透Linux設計“寶典”
發布時間:2014-10-17 責任編輯:sherryyu
【導讀】還在大學的你,不知道未來何去何從?都說迷茫是大事做不了,小事不想做。還在做程序袁的你,是不是也想創業?程序袁好創業嗎?Linux好學嗎? 學會了這個能找到咋樣的工作?下麵就跟著小編的采訪揭開上述迷霧吧!
1、大家都比較想了解您個人學習的曆程與感想,可否與大家分享一下?
韋東山:
我從2003年開始工作,那時候的技術真是差勁啊:直到2005年,在硬件方麵我隻會設計兩層板,在軟件方麵我用的一直是51單片機。有一次老板的朋友來做技術指導,聊起ARM、wince、Linux、操作係統,讓人真是大開眼界。
操作係統才是未來!必須改變!
在硬件方麵沒人指導很難有長進,但是軟件方麵我可以自學啊。於是我開始買各種ARM的書,買周立功的2104板和書,用它來學習過UCOS,感覺他們還在延續著單片機的思路。這不行啊!得上操作係統!學WINCE?還是學LINUX?WINCE可是要錢的,咱學個免費的LINUX吧。買個 S3C2440開發板,就這樣開始了LINUX的自學之路。
多謝友善之臂的老板楊斌,我買的是個二手的2440開發板,他還是認真的提供技術支持,那時我沒少請教他問題。他應該發達!
2005年那會,嵌入式LINUX方麵的書是沒有的,所以我的學習過程完全依賴網絡、論壇,現在回首那個時候的提問,可以發現很多幼稚問題(特意去試了下,我才發現那個網站已經關閉了,世事難料啊)。
工作後再難有在校時的心態與大段時間……,直到公司倒閉……,我於是回老家閉門學習半年。在外租房,有家不回;沒日沒夜,不是在電腦前就是在床上,要不就是去吃飯的路上;自學、翻書、發貼、編程試驗、問題解決不了時苦悶得想砸電腦;現在回想起來感覺也挺勵誌的。就這樣,用了半年終於入了門,bootloader完全掌握,基本的Linux驅動會寫了,錢也用完了,要出來工作了(想想也挺鬱悶,大學4年工作2年,竟然技術不過關要回爐重造)。
我沒有Linux工作經驗啊,怎麼辦?那就自己寫個操作係統混經驗值吧,仿照UCOS、LINUX,寫一個簡單的操作係統:基於MMU的操作係統 (MOS)。就用它作為敲門磚,寫到簡曆上去顯得有點料。去麵試了三家公司,華為惠通、UT斯達康、中興,全中!因為錢沒了,而中興的通知來得最早,就去它吧。
說實話,那時我的Linux水平隻是剛入門,好在2006年那會中興也剛從vxwork轉為Linux,大家都不懂都在學習,我倒也不顯得丟人。在中興裏,又是沒日沒夜地工作、學習了2年。期間碰到過無數的疑難問題,煆煉了能力。說真的,隻有在解決問題的同時,你才會東想西想,把有關、無關的技術都想清楚並掌握得紮實。
2007年從中興辭職開始寫書。不要笑我隻有2年Linux工作經驗就敢寫書,自學半年工作兩年,是這輩子最用功的時刻,遠比高考時努力。這2年半所學到的東西遠超大學4年。工作和寫書對技術的要求完全不同,工作上你能寫出程序解決問題就可以,而寫書則要求你對知識理解透徹。書寫了1年,也可以認為繼續學習了1年。2008年那會還沒有手把手教、從零搭係統開始學習嵌入式Linux的書,這本書《嵌入式Linux應用開發完全手冊》又火了一把。
書出了,我也稍有點名氣,於是從2009年開始在幾個培訓機構講課,去過華清遠見、尚觀,都是兼職,因為我當時還想著自己創業呢。業沒創好錢又沒了,隻能去兼職。這樣又持續了2年,這又是一個煆煉:怎麼講,別人才容易學會。
這就是我的學習工作經曆,生活推著我在Linux上曆煉了9年。如果你還是學生,勸你盡早找到自己的興趣,全力鑽研;如果你已經進入社會,最好能找到相關的工作,白天上班也是煆煉,晚上繼續學習。
2、自從業以來,遇到最大的困難與挑戰是什麼?能否給我們分享些您的經驗以及心路曆程?
韋東山:
轉行!轉行是最困難的,這意味著你前麵積累的經驗幾乎沒用了,還需要學習全新的知識──這需要大量的時間。我的第1份工作是做硬件的,後來由於工作需要也寫一下單片機程序,但是軟件水平是很低的。決定轉行學習Linux時,這需要有操作係統的概念知識、全新的ARM體係架構知識、完全沒接觸過的軟件設計理念(寫單片機時就是一個while循環,Linux裏都是麵向對象的思想)。
這千頭萬緒,要學習的知識很多,從哪裏入手,從哪裏抽出時間,這就是2個最大的困難。
· 對於時間,我是暫停工作閉門自學了半年;
· 對於從哪裏學習,我是先學習了趙炯的《LINUX內核完全注釋》,這讓我對操作係統有比較深的認識;接著把 ARM開發板當作單片機學習裸板,把bootloader涉及的硬件操作單獨寫程序試驗;最後開始學習驅動程序的編寫。從裸板程序開始,直到Linux驅動,這就是我的主要學習方法,這也是《嵌入式Linux應用開發完全手冊》的章節順序。
3、IP Camera帶音頻視頻功能、可以聯網互動,因此可能會被惡意入侵、隱私泄密,工程師如何做到保護?
韋東山:
IP Camera的使用涉及3個部件:用來錄像錄音的IP Camera、提供數據傳輸或存儲的服務器、觀看音視頻的客戶端(PC或手機等)。
我們會根據IP Camera的使用場景,為每一個階段提供數據保護,比如:
a. 客戶拿到IP Camera時,要登錄服務器注冊帳號,並綁定設備。在服務器上的WEB服務就要注意隱私保護,必要時引入手機驗證。
b. 客戶端向服務器提出請求時,要輸入用戶名和密碼,這可以參考Linux的遠程登錄密碼驗證功能。比如使用ssh協議登錄Linux服務器時,會提示你輸入用戶名和密碼。相信這一套機製非常可靠,我們可以直接引用。
c. 三者之間傳輸數據時,數據要先加密再傳輸。可以使用公用密鑰等加密方式。
d. 在服務器上存儲的數據,如果你對安全保護不在行,可以使用大公司提供的雲服務。
我隻是給出一個思路,經驗不豐富。歡迎探討。
4、IP Camera運動控製部分可以實現拍攝角度的調節,能否通過自動控製攝像頭的角度實現人臉、頭部信息的鎖定、實時運動捕捉,大概怎麼實現的,能否介紹一下?
韋東山:
術業有專攻,圖像處理不是我們的專長。但是要做這一塊,我們會這樣做:先使用開源軟件比如OpenCV,如果它達不到要求,再求助於專業人士。
[page]
5、傳統的Linux驅動開發和Android驅動開發有何區別?現在android那麼火,它跟LINUX是什麼關係?學好了你們的視頻,對學習android有何幫助?你們後續有無錄製android視頻的計劃?
韋東山:
簡單地說,Android驅動=Linux驅動+封裝。 Android應用程序是使用java編寫的,Linux內核和驅動程序是使用C語言編寫的,java APP要訪問驅動程序,這中間需要插入一個封裝接口。核心還是底下的Linux驅動程序;對於封裝,你隻要了解了封裝規則,基本就可以一通百通了。所以,如果你的目標是掌握Android驅動,那麼我們的視頻很適合你。我們後麵也會講講Android驅動的封裝,它不會太難。
對於Android應用程序,可以認為它跟Linux的關係不大。即使你沒有Linux知識,也可以在1個月內入門Android應用開發──我隻是說,你會開發簡單的界麵。程序的核心永遠是在界麵之後,所以不要沾沾自得。比如手機遊戲,背後的圖像處理算法、遊戲的邏輯,這才是重點。如果你的目標是掌握Android應用,我反而覺得你應該跳出“Android”來學習。應用程序的領域實在太多,有網絡、圖像處理、安全、搜索等等,由你的興趣來選擇方向吧。Android應用隻是一個人機界麵,把背後的複雜係統展示給客戶來使用,如果你隻滿足於“寫界麵”,好吧,1個月速成,再花幾個月深入理解 Android的框架。容易上手的,就容易掉價。前幾年Android應用開發由於會的人還不多,工資挺高;這兩年就開始往下掉了;要保住你的薪資水平,除了界麵你還需要掌握“核心技能”:界麵背後的支撐。
我沒有打擊Android應用的意思,對於急於找到工作的人,我反而建議去學習Android應用。你應聘到工作後,公司自然會壓著你去了解產品的相關知識,否則你也寫不出界麵啊。
6、工程師一般時間都是比較緊張的,您是在什麼情況下寫的《嵌入式LINUX應用開發完全手冊》這本書呢?這本書是想給大家分享些什麼呢?
韋東山:
辭職寫的。我2005年自學Linux時在網上發布了“S3C2410完全開發流程”的學習筆記,被出版社的編輯看到。他們在2006年聯係我寫書,那時我在中興上班。在公司上班期間,根本沒有時間寫書:工作累個半死,回來哪有精力寫。於是決定2007年辭職專門寫書。
我(wo)學(xue)習(xi)時(shi),大(da)部(bu)分(fen)的(de)知(zhi)識(shi)都(dou)是(shi)從(cong)網(wang)上(shang)搜(sou)索(suo)得(de)來(lai),這(zhe)需(xu)要(yao)耗(hao)費(fei)巨(ju)大(da)的(de)精(jing)力(li)去(qu)尋(xun)找(zhao),並(bing)且(qie)不(bu)係(xi)統(tong)。作(zuo)為(wei)初(chu)學(xue)者(zhe),不(bu)知(zhi)道(dao)去(qu)搜(sou)什(shen)麼(me)來(lai)入(ru)門(men),也(ye)不(bu)知(zhi)道(dao)搜(sou)什(shen)麼(me)來(lai)深(shen)入(ru)。所(suo)以(yi),我(wo)想(xiang)出(chu)一(yi)套(tao)“完全教程”,讓零基礎的入隻看這本書,就可以入門並掌握比較深的、工作中可以使用的知識。
好吧,其實也是被編輯以名利相誘,然後催我寫寫寫!
7、“電子從業人員的發展方向”大概分為兩類:軟件工程師、硬件工程師,軟件工程師一般又可以分為:底層係統、上層應用。您如何看待這三種方向的職業發展呢?
韋東山:
我剛工作時也曾是個硬件工程師,但是發現沒人帶的話很難有進步,於是轉行做軟件了。對於他的職業發展,我也隻能簡單說說。
不少人問我,到底是學驅動還是學應用?
我隻能說憑興趣,並且驅動和應用並不是截然分開的
a. 我們說的驅動,其實並不局限於硬件的操作,還有操作係統的原理、進程的休眠喚醒調度等概念。想寫出一個好的應用,想比較好的解決應用碰到的問題,這些知識你應該懂
b. 做應用門檻低,特別是現在的ANDROID,純JAVA。做應用的發展路徑個人認為有兩個方向:一是業務純熟,二是成為某個專業領域的專家。比如在通信行業、IPTV行業、手機行業,你了解行業的業務需求。所以,當領導的人,多是做業務應用的。另一個方麵就是在網絡傳輸、圖像處理、人工智能等等領域的鑽研,這更多的時候像是在研究學術問題,而不僅僅是寫程序。
c. 做驅動,其實我不想稱為“做驅動”,而是想稱為“做底層係統”,做好了這是通殺各行業。我工作幾年,做過手機、IPTV、會議電視,但是這些產品對我毫無差別,因為我隻做底層。他們的業務跟我沒關係。
當應用出現問題,他們解決不了時,我就會從內核角度給他們出主意,給他們提供工具。
在實際工作中,寫驅動的活反而不多,更多的是從係統的角度解決難題。底層涉及的絕不僅僅是驅動,更多在於“係統”:它上接應用,下接硬件。很多疑難問題隻能由底層的人解決。做底層的發展方向,個人認為是著眼於整個係統的技術專家。
d. 其(qi)實(shi),做(zuo)底(di)層(ceng)還(hai)是(shi)做(zuo)應(ying)用(yong),之(zhi)間(jian)並(bing)沒(mei)有(you)一(yi)個(ge)界(jie)線(xian),有(you)底(di)層(ceng)經(jing)驗(yan),再(zai)去(qu)做(zuo)應(ying)用(yong),你(ni)會(hui)感(gan)覺(jiao)很(hen)踏(ta)實(shi)。有(you)了(le)業(ye)務(wu)經(jing)驗(yan)或(huo)是(shi)掌(zhang)握(wo)某(mou)項(xiang)核(he)心(xin)技(ji)術(shu),你(ni)再(zai)了(le)解(jie)一(yi)下(xia)底(di)層(ceng),很(hen)快(kuai)就(jiu)可(ke)以(yi)組(zu)成(cheng)一(yi)個(ge)團(tuan)隊(dui)。
e. 我建議你上下兼通,做應用讓你視野更廣闊,做底層讓你技術紮實。
f. 就(jiu)職(zhi)位(wei)而(er)言(yan),永(yong)遠(yuan)是(shi)應(ying)用(yong)的(de)職(zhi)位(wei)多(duo)於(yu)底(di)層(ceng)的(de)職(zhi)位(wei)。所(suo)以(yi),如(ru)果(guo)你(ni)找(zhao)不(bu)到(dao)底(di)層(ceng)的(de)工(gong)作(zuo),完(wan)全(quan)可(ke)以(yi)先(xian)做(zuo)應(ying)用(yong)。在(zai)工(gong)作(zuo)中(zhong)把(ba)底(di)層(ceng)的(de)本(ben)領(ling)也(ye)學(xue)會(hui)。在(zai)公(gong)司(si)中(zhong),那(na)些(xie)被(bei)稱(cheng)為(wei)“係統工程師”的人絕對是上下兼通的
8、工程師經常在談如何找一個好的平台,您是如何看待這個問題的?
韋東山:
找平台,這是個技術活,或是個運氣活。我有同學一直在騰迅做遊戲,估計身家豐厚;也有朋友在公司分股票之前離職。就我個人經驗來說,我先是在小公司上班,後來到大公司,各有利蔽:
· 對於技術能力:在zai小xiao公gong司si裏li你ni會hui成cheng為wei多duo麵mian手shou,軟ruan件jian硬ying件jian生sheng產chan調tiao試shi你ni都dou會hui插cha上shang一yi腳jiao,如ru果guo能neng潛qian心xin學xue習xi,對dui往wang後hou發fa展zhan有you好hao處chu。我wo在zai小xiao公gong司si裏li設she計ji過guo硬ying件jian,到dao中zhong興xing做zuo驅qu動dong時shi,可ke以yi跟gen硬ying件jian工gong程cheng師shi一yi起qi研yan究jiu原yuan理li圖tu。現xian在zai創chuang業ye了le,還hai可ke以yi自zi己ji設she計ji產chan品pin。在zai大da公gong司si裏li,每mei人ren專zhuan門men負fu責ze一yi小xiao塊kuai,你ni可ke以yi學xue得de深shen入ru,並bing且qie有you各ge種zhong設she計ji規gui範fan。
· 對於人際關係:zaidagongsili,nihuirenshigengduoderen,renshigegebumenderen,zheduijinhoufazhanyeyoubangzhu。wocizhihoujiedaodelietoudianhua,doushizhongxingdetongshituijiande。xianzaiquefanafangmiandejineng,yekeyixiangyuanlaidetongshiqingjiao。
· 對於收入:嗬嗬,看運氣吧。有人被微軟拒絕後成為了億萬富翁,有人則終身在微軟裏寫代碼;有人創業失敗,有人單憑公司年終獎就資產豐厚。
根據你的需求,能承擔風險的能力,來選擇平台──這似乎是廢話,確實是。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 2026藍牙亞洲大會暨展覽在深啟幕
- 新市場與新場景推動嵌入式係統研發走向統一開發平台
- 維智捷發布中國願景
- 2秒啟動係統 • 資源受限下HMI最優解,米爾RK3506開發板× LVGL Demo演示
- H橋降壓-升壓電路中的交替控製與帶寬優化
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
接口IC
介質電容
介質諧振器
金屬膜電阻
晶體濾波器
晶體諧振器
晶體振蕩器
晶閘管
精密電阻
精密工具
景佑能源
聚合物電容
君耀電子
開發工具
開關
開關電源
開關電源電路
開關二極管
開關三極管
科通
可變電容
可調電感
可控矽
空心線圈
控製變壓器
控製模塊
藍牙
藍牙4.0
藍牙模塊
浪湧保護器




