|
Linux系統是軟件開(kāi)發(fā)歷史上的一個(gè)傳奇。來(lái)自全球的個(gè)人、公司、團體為了完成開(kāi)放和自由的訴求,在一種松散但是卻有效的方式下,成功地創(chuàng )建一個(gè)偉大的生態(tài)系統。無(wú)論從軟件的規模和穩定性上面,linux都是首屈一指的。當然這里說(shuō)的linux更多的是一個(gè)生態(tài),它包括內核、驅動(dòng)、庫文件、gui、數據庫以及上層應用軟件。linux產(chǎn)生的基因決定了它的應用只能局限在一個(gè)小的范圍內。當然,你可以不服氣地說(shuō)不是還有Android嘛,但是我們要清楚android事實(shí)上是一個(gè)建立在linux之上的虛擬機,嚴格意義上說(shuō)和linux的關(guān)系不是那么大。沒(méi)有g(shù)oogle的推廣和移動(dòng)終端聯(lián)盟的支持,Linux系統本身只能偏安一隅,在特定的領(lǐng)域發(fā)揮特定的作用,而不是像windows一樣成為所有人每天必須要面對的系統軟件。 當然,說(shuō)了這么多,我們真正關(guān)心的是自身可以從這個(gè)生態(tài)圈中獲得些什么?說(shuō)得更直白一點(diǎn)就是,我們可以從linux系統上面學(xué)到點(diǎn)什么,它對我們個(gè)人的成長(cháng)和發(fā)展有哪些積極的因素。個(gè)人覺(jué)得,完全可以通過(guò)下面四個(gè)維度并結合自己的興趣進(jìn)行選擇和判斷。(1)熟練學(xué)習linux、配置linux和使用Linux2011年有一本書(shū)特別火,長(cháng)期位列在熱銷(xiāo)排行榜上,這本書(shū)就是《鳥(niǎo)哥的linux私房菜》。這本書(shū)以centos為例,講了很多的內容,比如說(shuō)系統安裝、常見(jiàn)配置、軟件更新、特殊命令的用法、服務(wù)器的配置等等。整本書(shū)的內容很厚,而且內容是一版再版,可見(jiàn)大家對linux的基礎知識是非?是蟮。另外一方面,現在隨著(zhù)電商和視頻網(wǎng)站的迅速發(fā)展,一種稱(chēng)為運維工程師的職業(yè)開(kāi)始熱門(mén)起來(lái)。由于行業(yè)的特殊性,某些互聯(lián)網(wǎng)公司需要成百上千的服務(wù)器統一對客戶(hù)進(jìn)行服務(wù),那么怎么樣搭建網(wǎng)站、配置服務(wù)器均衡負載、進(jìn)行遠程控制、正確配置數據庫和統一管理服務(wù)器集群,這些都是運維工程師需要關(guān)注的事情。從這個(gè)意義上來(lái)說(shuō),運維工程師的重要性可見(jiàn)一般了。(2)利用linux開(kāi)發(fā)應用層軟件通俗意義上來(lái)說(shuō),利用linux開(kāi)發(fā)應用層的軟件和windows上面開(kāi)發(fā)應用軟件沒(méi)有什么不同?赡,在windows上面使用得比較多的就是mfc、gdi、win32這些接口,而在嵌入式上面使用的就比較多種多樣了,什么qt、minigui、gtk都是可以用來(lái)進(jìn)行開(kāi)發(fā)的。當然,上面說(shuō)的都是界面程序,很多公司的linux程序是沒(méi)有界面的,比如說(shuō)游戲公司的linux工程師。相比較而言,他們看中的更多的是linux的穩定性,所以在linux上開(kāi)發(fā)的更多的都是服務(wù)器端程序。很多人都有一個(gè)誤解,認為操作系統就一定比應用軟件高級,其實(shí)不然。在我看來(lái),office、webkit、samba、mplayer這些軟件的代碼都是在百萬(wàn)行以上,本身的結構也是相當復雜的。說(shuō)到應用開(kāi)發(fā),網(wǎng)上有幾本書(shū),分別是《linux程序設計》、《unix環(huán)境高級編程》、《unix網(wǎng)絡(luò )編程》,對我們都很有借鑒意義。誠然有些書(shū)是基于unix系統的,但是基本的編程接口都是差不多的,相應的代碼在linux跑絕對沒(méi)問(wèn)題。(3)利用linux開(kāi)發(fā)驅動(dòng)和其他os系統開(kāi)發(fā)驅動(dòng)的工作一樣,linux驅動(dòng)開(kāi)發(fā)也有自己的一整套流程。要想真正地做好驅動(dòng),一般來(lái)說(shuō)你需要知道芯片的寄存器特性、電氣原理圖、總線(xiàn)標準,當然熟悉信號測試,通曉定時(shí)器、互斥工具、回調機制、位運算、中斷機制、芯片設置、信號時(shí)序、地址分配,這些也是少不了的。更極端一點(diǎn),如果本身創(chuàng )業(yè)的公司比較小,驅動(dòng)開(kāi)發(fā)工程師有的時(shí)候還需要自己測試信號、調試boot、焊接芯片,這些都是可能的。所以說(shuō),對于真正的芯片企業(yè)來(lái)說(shuō),無(wú)論是美資、日資、臺資企業(yè)來(lái)說(shuō),驅動(dòng)開(kāi)發(fā)工程師的收入都是非?捎^(guān)的。特別是現在有了android的推波助瀾,驅動(dòng)開(kāi)發(fā)工程師的薪酬更是水漲船高。希望在軟件上有所突破的硬件工程師或者是希望對系統本身進(jìn)行更多了解的軟件工程師,都可以將此作為自己長(cháng)期發(fā)展的一個(gè)方向。關(guān)于這方面的書(shū)很多,《linux driver development》無(wú)疑是人氣最旺的一本,但是我想說(shuō)的是有一本國內朋友寫(xiě)的書(shū)也相當不錯,那就是宋寶華的《Linux設備驅動(dòng)開(kāi)發(fā)詳解》,質(zhì)量也相當不錯,朋友們有時(shí)間也可以關(guān)注一下。
|
|