我們能從Linux系統上學(xué)到什么?談?wù)刲inux的四個(gè)維度

發(fā)布時(shí)間:2018-11-26 10:21    發(fā)布者:xyd2018
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和使用Linux
2011年有一本書(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)注一下。

linux驅動(dòng)其實(shí)并不復雜,我們要做的就是在linux統一的驅動(dòng)框架下實(shí)現對外設的統一管理。很多的代碼架構都是現成的,所以我們只要做好模仿、學(xué)習、測試和驗證就可以了。比較簡(jiǎn)單的代碼就是下面的這一段話(huà),

加載模塊就是輸入insmod hello.ko,卸載模塊就是rmmod hello.ko。在這過(guò)程中,我們都可以看到相應的打印內容。當然,朋友們可以一直往里面加代碼,一步步調試,一步步學(xué)習,只要堅持和總結,都是可以學(xué)習好linux的驅動(dòng)代碼的。

這里順便把Makefile也寫(xiě)一下,

(4)linux kernel代碼移植、修改和維護
linux kernel代碼相信是被很多人奉為經(jīng)典的,但是linux kernel的代碼很長(cháng)也很難。一方面,linux代碼存在技巧代碼、匯編代碼,同時(shí)部分函數冗長(cháng)、文件冗長(cháng)、命名不規范,另外一方面linux的代碼分布合理、系統流程明顯、相關(guān)資料眾多。關(guān)鍵是我們自己怎么從linux kernel中學(xué)到東西?是看書(shū)呢,還是看代碼呢?是每一行都看呢,還是按照模塊看呢?是掌握主要原理呢,還是看實(shí)現技巧呢?是看高版本呢,還是先熟悉低版本呢?下面,我想就自己的經(jīng)歷談?wù)勛约旱目捶ǎ?br /> a)熟悉的代碼認真看,不熟悉的代碼了解一下接口就可以,對于內存管理只要了解__get_free_page、kmalloc、vmalloc這幾個(gè)函數就可以了;

b)代碼不要貪多求快,多思考多實(shí)踐;

c)忽視技巧,看中代碼的處理流程和策略的權衡,多多思考為什么要這么設計;

d)利用module特性查看代碼的執行日志,代替函數堆棧的功能;

e)了解linux性能的改進(jìn)方法,了解為什么有軟中斷、rcu、slab和各種各樣的延時(shí)函數;

f)自己編寫(xiě)os,實(shí)現內存管理、信號量、消息隊列、驅動(dòng)開(kāi)發(fā)、中斷和線(xiàn)程調度,深入理解os的流程。
以下課程可免費試聽(tīng)C語(yǔ)言、電子、PCB、STM32、Linux、FPGA、Python、安卓等。
想學(xué)習的你和我聯(lián)系預約就可以免費聽(tīng)課了宋工QQ3524659088 Tel/V17317951908

本文地址:http://selenalain.com/thread-550528-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
chendaxia666 發(fā)表于 2018-11-30 21:44:54
學(xué)習了
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页