1. windows驅動開發工程師工資收入多少
不能籠統的說linux驅動軟體開發工資多少,這個還是看你自己的實際水平的以及工作經驗等因素。水平不行,公司都不會要你,水平好,那價錢不會是問題。但相比而言,做驅動開發的工資還是比應用層的會高一點。
2. 驅動工程師是干什麼的,與測試或者開發鏈%
驅動工程師:是為計算機硬體設備(比如網卡、音效卡、滑鼠、鍵盤、網卡等等)編寫的底層介面程序,使操作系統更好的對硬體設備使用和管理,驅動硬體工作。這些人的職稱達到工程師的級別。就叫驅動工程師。
測試工程師:編寫計算機軟體的人寫好的程序,需要有人測試一下,評估一下軟體工程師寫的程序有沒有問題,有沒有偷懶等的人是測試工程師。就象你寫了本書,你感覺你寫的書很棒了,你准備發表,你先把書給一個愛挑別人毛病的人看一下,把錯字,錯詞等等給你挑出來,這樣才能讓你的書對的起大家的眼睛。
開發鏈%:這個詞我也不知道,如果你寫錯字了,那你就對不起我的眼睛了。我也會對你說:「啥球水平嗎!怎麼上學的,字都寫不對」。
現在應該明白了吧。
3. 底層C/驅動開發工程師是什麼職位
前端工程師的主要職責有: 解決瀏覽器的兼容性,可能還要包括移動端; 利用html,css,js(包括js的各種框架)實現網站的功能; 保證良好的用戶體驗,各種優化等; 和後端進行數據交互。需要熟悉php,資料庫甚至於linux操作等
4. Windows驅動工程師是做什麼的
崗位職責:
負責windows 系統的USB底層驅動開發。
崗位要求:
1、熟悉Windows內核,有Windows USB驅動程序開發經驗(包括WDM,DDK的開 發)。
2、熟練掌握驅動程序調試方法和調試工具。熟悉USB介面協議,有USB設備開發經驗者優先。
3、精通硬體驅動、硬體USB驅動協議開發,扎實的C/C++以及多線程程序設計功底;
4、吃苦耐勞,有良好的團隊合作能力。
5. 如何成為優秀的linux驅動工程師
首先要定義,我所認為的一個優秀的驅動開發工程師,應該具備什麼樣的能力,這里列一下按照從易到難的順序,個人認為應該會有幾個方面的要求吧:
能夠獨立完成驅動的功能開發任務
能夠分析和優化驅動的性能,針對特定硬體揚長避短
能夠充分了解模塊相關軟硬體能力、發展方向,輔助應用工程師最大化利用硬體能力
能夠輔助硬體工程師規劃硬體設計,預防問題,謀求功能模塊的最佳方案
能夠協助定義系統架構,合理規劃軟硬體,謀求產品實現的最佳方案
作為一個驅動工程師,很多時候不是完全從頭開發一個完整的子系統,而是針對特定硬體和平台移植驅動,增加功能,解決Bug等等,如果從這方面外在的表現來看:
解決問題的境界,大概會有這么幾個階段:
不知道哪裡存在BUG
不知道如何解決BUG
知道如何解決BUG
知道如何發現BUG
知道如何規劃BUG
知道如何發現BUG(而不是撞上BUG)其實並不簡單,需要你對系統有足夠的了解,能夠察覺可能出問題的地方。而規劃Bug更難,需要你能對問題的輕重緩急做出准確的判斷。沒有的完美的世界,只有適當的取捨,規避和預防。
而從解決問題過程的角度來看,我認可以分為幾個階段:
BUG發生 -> 大量跟蹤調試代碼 -> 終於發現並解決BUG
BUG發生 -> 理論推測可能原因 -> 迅速定位並解決BUG
閱讀代碼 -> 預測可能出現的BUG -> 證實並解決BUG
號稱能光憑瞄一遍代碼就找到問題的高手,我想我是沒希望了。
應該具備怎樣的素質
那麼要達到上訴最佳境界,需要具備和發展哪些素質和能力呢?
足夠的硬體知識
能看簡單的原理圖,能夠分析硬體異常的可能原因,能夠使用常見的硬體調試工具,我想這是做為優秀的驅動工程師,區別與其它軟體工程師,所不可避免、必須具備的專業素質。當然取決於你具體從事的工作,對這方面的要求不盡相同。
對於驅動開發者來說,不了解所開發驅動外設的硬體原理和相關背景知識,也許很多時候,也能夠完成一些移植,修補的工作任務,但這就好比無源之水,無根之木,我相信是很難走遠的。
多多益善的操作系統知識
做驅動開發,特別是純粹的外設的驅動移植工作,剛開始的時候,也許你並不需要了解很多操作系統本身的知識(像內存管理,進程調度,鎖,各種內核子系統的原理框架等等),也能順利完成手頭的一些工作。
但是,如果一但需要優化驅動,需要完善軟體框架,或者是遇上疑難問題需要跟蹤解決,對操作系統,內核本身的了解,就體現出它的價值了。
對於Linux內核驅動開發者,尤其如此,首先,代碼是完全開源的,你有條件去了解背後的運行機制,其次,Linux內核和各個組成子系統總是在迅速的進化發展中,不進則退,你也有必要跟上時代發展的腳步。
強烈的好奇心,持續的熱情
如果驅動開發不僅僅是你的愛好,更是你養家糊口的途徑,我想,很多時候,你大概不會有機會專注於一兩個你最有經驗的模塊的開發和維護。隨著能力的成長,勢必會要求你接觸和掌握越來越多的各式各樣的驅動模塊的開發。
對於這件事,包括我自己,有時候大概都會有如下幾種反應:
哇,原來的工作做太久了,太乏味了,很高興能做不同的工作。
啊?又要做別的模塊啊?我手頭的工作已經太多了!
這個模塊沒意思,我不想做。
相信多數有志青年們都是第一種表現了 8 )不過,有些時候,我發覺,很多人的這種熱情其實並不持久,一個新的模塊沒做多久,就再次厭倦了,是已經爐火純青了么,未必,或許只是修改了幾個BUG以後不甚其煩。很多時候,我面試前來求職的工程師時,發現簡歷上這個也做過,那個也做過,但是一但問到解決了什麼問題,所做過的驅動,框架、流程、原理之類的問題的時候,就一問三不知了。
我覺得如果自己的目標是優秀,那麼最起碼的標准應該是對具體驅動模塊相關的子系統的整體工作流程,框架,具備足夠的好奇心,樂於去了解和學習,而不僅僅是為了完成任務而工作,否則的話,很難積累下扎實的經驗和技術。
清晰的邏輯思維能力
這一點,也許是個軟體開發人員都應該具備吧,不過,做為驅動開發工程師來說,有時候,大多數情況下,工作的硬體環境並不是完美的,遇到問題需要分析判斷錯誤的原因是硬體問題還是驅動Bug,這時候,清晰的邏輯思維能力尤其重要。
良好的工作習慣
大多數人都不是天才,要成為優秀的開發工程師,一需要持續努力,二需要時間積累經驗,而這過程中,很重要的一點,就是要有良好的工作習慣。譬如,注意設計文檔的維護,對工作中遇到的問題的記錄,過往經驗的及時記錄,適當的軟體開發流程等等。文檔工作,可能很多人很不願意去做,它的確很花費時間。不過,唉。。。老啦,好記性不如爛筆頭啊 8 )。當然,其實設計文檔更多的是為你提供思考的機會,而過往經驗的總結,也可以起到和大家交流技術,共同進步的目的。
英語
這個也是必須的啦,沒有辦法,郵件列表,技術文檔,社區,精通英語肯定是很大的優勢,做開源項目尤其如此。閱讀各種Spec標准文檔之類的速度還是很重要的。閱讀無障礙是一回事,能和母語一樣一目十行,那才爽呀,唉,人生苦短,效率啊!光讀文檔,就不知道要比老外多花多少時間。。。。
了解更多開源相關,去LUPA社區看看吧
6. 嵌入式軟體工程師和驅動軟體工程師有什麼區別嗎
做硬體的需要掌握的知識:
模電,數電,高頻,繪圖軟體如ORCAD,PADS,EMC,EMI,各種安檢如FC,EC等,處理器的
架構,各種協議如IIC,SPI,USB,IIS,UART等,NAND,NOR,SDRAM,DDR,DDR2的
區別及接法等,最重要的是焊接水平要過硬,小到0805,0603,0402的電阻
電容,以及SOP,QFP封裝的密腳IC,大到BGA,都要能焊。具有很強的硬體電路,高頻,
高速電路的檢測排除故障的技能。
做底層軟體的需要掌握的知識:
C語言,C++,系統架構如WINCE,數據結構,各種通訊協議,還要對硬體有很大的了解
做硬體的需要掌握的技能:在ADS或MDK下調試程序的技能,使用模擬器排除故障的技能,
能夠看得懂底層驅動程序,能夠寫底層驅動程序來解決,分析硬體上的問題。只是很多公司
的軟體硬體分得很明確,搞硬體的不能碰軟體。
7. 驅動工程師是幹嘛的
驅動工程師:是為計算機硬體設備(比如網卡、音效卡、滑鼠、鍵盤、網卡等等)編寫的底層介面程序,使操作系統更好的對硬體設備使用和管理,驅動硬體工作。這些人的職稱達到工程師的級別。就叫驅動工程師。
測試工程師:編寫計算機軟體的人寫好的程序,需要有人測試一下,評估一下軟體工程師寫的程序有沒有問題,有沒有偷懶等的人是測試工程師。就象你寫了本書,你感覺你寫的書很棒了,你准備發表,你先把書給一個愛挑別人毛病的人看一下,把錯字,錯詞等等給你挑出來,這樣才能讓你的書對的起大家的眼睛。
開發鏈%:這個詞我也不知道,如果你寫錯字了,那你就對不起我的眼睛了。我也會對你說:「啥球水平嗎!怎麼上學的,字都寫不對」。
8. Linux 內核和驅動開發工程師的發展前景怎麼樣
或許這樣的標題,應該是由像Linus或Greg KH這樣的大師級的高手才有資格寫的吧。但是作為我來說,也許我更想把這個標題作為一個疑問句來使用,整理一下自己的認識,用來勉勵自己,和大家一起努力實現這個目標。認識膚淺的地方,還請大家見諒。
從事嵌入式開發是當下比較熱門的一個領域,做職業規劃的時候,比較清晰的是有三條路可以走:
C1、嵌入式軟體開發工程師
C2、嵌入式硬體開發工程師
C3、嵌入式驅動開發工程師。
其中
C1是計算機相關專業的同學可以選擇的,因為學習的課程相對偏軟,平時在PC上編程比較多,做軟體開發會相對輕松。
C2是學習電子電路的同學可以考慮,對模擬電路比較熟悉,可以設計出質量好的電路板。
C3的難度比較大,需要同時熟悉軟體和硬體,真正的做到軟、硬相結合,搭建軟體和硬體互通的橋梁,當然了在業界的待遇也是相對來說比較高的。
我們可以去一些招聘網站查看相關企業的崗位要求,這樣學習的時候就有了一個比較明確的目標。今天看到一位前輩的博文,談究竟應該如何成為優秀的驅動開發工程師,很受鼓舞,在此與大家分享共勉。
--------------------------------------------------------------
何謂優秀的驅動開發工程師
首先要定義,我所認為的一個優秀的驅動開發工程師,應該具備什麼樣的能力,這里列一下按照從易到難的順序,個人認為應該會有幾個方面的要求吧:
能夠獨立完成驅動的功能開發任務
能夠分析和優化驅動的性能,針對特定硬體揚長避短
能夠充分了解模塊相關軟硬體能力、發展方向,輔助應用工程師最大化利用硬體能力
能夠輔助硬體工程師規劃硬體設計,預防問題,謀求功能模塊的最佳方案
能夠協助定義系統架構,合理規劃軟硬體,謀求產品實現的最佳方案
作為一個驅動工程師,很多時候不是完全從頭開發一個完整的子系統,而是針對特定硬體和平台移植驅動,增加功能,解決Bug等等,如果從這方面外在的表現來看:
解決問題的境界,大概會有這么幾個階段:
不知道哪裡存在BUG
不知道如何解決BUG
知道如何解決BUG
知道如何發現BUG
知道如何規劃BUG
知道如何發現BUG(而不是撞上BUG)其實並不簡單,需要你對系統有足夠的了解,能夠察覺可能出問題的地方。 而規劃Bug更難,需要你能對問題的輕重緩急做出准確的判斷。沒有的完美的世界,只有適當的取捨,規避和預防。
而從解決問題過程的角度來看,我認可以分為幾個階段:
BUG發生 -> 大量跟蹤調試代碼 -> 終於發現並解決BUG
BUG發生 -> 理論推測可能原因 -> 迅速定位並解決BUG
閱讀代碼 -> 預測可能出現的BUG -> 證實並解決BUG
---------------------------------------------------------------
應該具備怎樣的素質
那麼要達到上訴最佳境界,需要具備和發展哪些素質和能力呢?
一、足夠的硬體知識
能看簡單的原理圖,能夠分析硬體異常的可能原因,能夠使用常見的硬體調試工具,我想這是做為優秀的驅動工程師,區別與其它軟體工程師,所不可避免、必須具備的專業素質。當然取決於你具體從事的工作,對這方面的要求不盡相同。
對於驅動開發者來說,不了解所開發驅動外設的硬體原理和相關背景知識,也許很多時候,也能夠完成一些移植,修補的工作任務,但這就好比無源之水,無根之木,我相信是很難走遠的。
二、多多益善的操作系統知識
做驅動開發,特別是純粹的外設的驅動移植工作,剛開始的時候,也許你並不需要了解很多操作系統本身的知識(像內存管理,進程調度,鎖,各種內核子系統的原理框架等等),也能順利完成手頭的一些工作。
但是,如果一但需要優化驅動,需要完善軟體框架,或者是遇上疑難問題需要跟蹤解決,對操作系統,內核本身的了解,就體現出它的價值了。
對於Linux內核驅動開發者,尤其如此,首先,代碼是完全開源的,你有條件去了解背後的運行機制,其次,Linux內核和各個組成子系統總是在迅速的進化發展中,不進則退,你也有必要跟上時代發展的腳步。
三、強烈的好奇心,持續的熱情
如果驅動開發不僅僅是你的愛好,更是你養家糊口的途徑,我想,很多時候,你大概不會有機會專注於一兩個你最有經驗的模塊的開發和維護。隨著能力的成長,勢必會要求你接觸和掌握越來越多的各式各樣的驅動模塊的開發。
對於這件事,包括我自己,有時候大概都會有如下幾種反應:
哇,原來的工作做太久了,太乏味了,很高興能做不同的工作。
啊?又要做別的模塊啊?我手頭的工作已經太多了!
這個模塊沒意思,我不想做。
相信多數有志青年們都是第一種表現了,不過,有些時候,我發覺,很多人的這種熱情其實並不持久,一個新的模塊沒做多久,就再次厭倦了,是已經爐火純青了么,未必,或許只是修改了幾個BUG以後不甚其煩。很多時候,我面試前來求職的工程師時,發現簡歷上這個也做過,那個也做過,但是一旦問到解決了什麼問題,所做過的驅動,框架、流程、原理之類的問題的時候,就一問三不知了。
我覺得如果自己的目標是優秀,那麼最起碼的標准應該是對具體驅動模塊相關的子系統的整體工作流程,框架,具備足夠的好奇心,樂於去了解和學習,而不僅僅是為了完成任務而工作,否則的話,很難積累下扎實的經驗和技術。
四、清晰的邏輯思維能力
這一點,也許是個軟體開發人員都應該具備吧,不過,做為驅動開發工程師來說,有時候,大多數情況下,工作的硬體環境並不是完美的,遇到問題需要分析判斷錯誤的原因是硬體問題還是驅動Bug,這時候,清晰的邏輯思維能力尤其重要。
五、良好的工作習慣
大多數人都不是天才,要成為優秀的開發工程師,其一需要持續努力,其二需要時間積累經驗,而這過程中,很重要的一點,就是要有良好的工作習慣。譬如,注意設計文檔的維護,對工作中遇到的問題的記錄,過往經驗的及時記錄,適當的軟體開發流程等等。文檔工作,可能很多人很不願意去做,它的確很花費時間。不過,唉。。。老啦,好記性不如爛筆頭啊 。當然,其實設計文檔更多的是為你提供思考的機會,而過往經驗的總結,也可以起到和大家交流技術,共同進步的目的。
六、英語
這個也是必須的啦,沒有辦法,郵件列表,技術文檔,社區,精通英語肯定是很大的優勢,做開源項目尤其如此。閱讀各種Spec標准文檔之類的速度還是很重要的。閱讀無障礙是一回事,能和母語一樣一目十行,那才爽呀,唉,人生苦短,效率啊!光讀文檔,就不知道要比老外多花多少時間。
9. Camera驅動開發工程師是做什麼的
負責windows 系統的USB底層驅動開發。
10. 如何成為優秀的驅動開發工程師
你首先需要了解WDM和WDF的驅動framework和他們的具體工作流程,windows的DDK有大量的常式,你可以作為參考和起始點。
然後你需要理解你要做驅動的匯流排架構和晶元的具體spec,這樣的話,你才能知道怎麼才能進行控制操作和數據傳輸。
最後你需要了解windbg軟體的使用,只有你了解了debug的技術,你才能有效的分析你軟體的問題和解決問題。
實踐出真理,多動手。寫一些filter驅動和USB,BT之類的軟體,對於提高你的水平也是很有幫助的。