久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > 學習Linux一點心得(de)

學習Linux一點(dian)心得 時間:2018-09-28      來源:未知

從2016年8月15日入職到現在(zai)有半年時間(jian)了,簡單談一(yi)下(xia)自(zi)己的(de)心(xin)得(de)及對(dui)自(zi)己學習Linux的(de)一(yi)點理解。

本(ben)人也是(shi)從參(can)加華清遠(yuan)見培(pei)訓才開(kai)始(shi)接(jie)觸Linux,經過(guo)(guo)培(pei)訓老師(shi)的講解、自(zi)己(ji)平時查閱資料以(yi)及實際工作中(zhong)的接(jie)觸,對Linux認(ren)識也逐漸加深。下面(mian)把(ba)自(zi)己(ji)的認(ren)識過(guo)(guo)程簡單說明一下,可以(yi)供剛(gang)入門的同學參(can)考(kao)。

1、 學(xue)習(xi)Linux絕對是(shi)一項系統工程,不(bu)要(yao)(yao)想著幾(ji)個月或幾(ji)天可(ke)以(yi)(yi)搞定。隨著對Linux認(ren)識的(de)(de)深入,你會(hui)越(yue)(yue)來越(yue)(yue)覺得這(zhe)是(shi)不(bu)可(ke)能(neng)的(de)(de)(跟智商(shang)沒關系),因為(wei)涉及(ji)的(de)(de)知識點實在太多。那我(wo)們是(shi)不(bu)是(shi)要(yao)(yao)把所有(you)的(de)(de)知識學(xue)完才能(neng)工作(zuo),這(zhe)個到沒有(you)必要(yao)(yao),因為(wei)實際工作(zuo)(某個崗位)不(bu)需要(yao)(yao)那么(me)多知識。所以(yi)(yi),把教學(xue)大綱(gang)內容的(de)(de)掌握了,應該可(ke)以(yi)(yi)勝任某些初級工作(zuo)。

2、 如(ru)果(guo)從事(shi)底層開(kai)發,與硬件打交(jiao)道,你需(xu)要(yao)(yao)對(dui)CPU架(jia)構有(you)個(ge)大概的(de)(de)了(le)解,因(yin)(yin)為(wei)(wei)要(yao)(yao)讓系統跑起來,你必須知道Linux的(de)(de)引導(dao)過程(cheng)。通常(chang)ARM架(jia)構和(he)X86的(de)(de)引導(dao)過程(cheng)還是有(you)差異的(de)(de),盡管原理差不(bu)(bu)多。我們在(zai)(zai)培訓(xun)的(de)(de)時(shi)(shi)(shi)候主要(yao)(yao)接觸的(de)(de)是ARM平(ping)(ping)臺,但(dan)有(you)可能(neng)工作時(shi)(shi)(shi)接觸的(de)(de)X86架(jia)構,因(yin)(yin)此你除(chu)了(le)要(yao)(yao)知道U-boot如(ru)何(he)引導(dao)ARM平(ping)(ping)臺的(de)(de)Linux內核,還要(yao)(yao)知道grub如(ru)何(he)引導(dao)X86平(ping)(ping)臺下的(de)(de)Linux內核,因(yin)(yin)為(wei)(wei)當前Linux主要(yao)(yao)發行(xing)版(ban)基本都是采用Grub2來引導(dao)。有(you)時(shi)(shi)(shi)間需(xu)要(yao)(yao)了(le)解一(yi)下grub2,可能(neng)還要(yao)(yao)知道MBR、EFI等(deng),這些是X86平(ping)(ping)臺的(de)(de)BIOS相關的(de)(de)知識。掌握了(le)這些你才能(neng)在(zai)(zai)開(kai)發平(ping)(ping)臺上(shang)(shang)安(an)裝系統,不(bu)(bu)管什么(me)平(ping)(ping)臺都能(neng)搞定,才能(neng)以不(bu)(bu)變應萬變。上(shang)(shang)課時(shi)(shi)(shi),可能(neng)老師會講init進程(cheng),但(dan)我要(yao)(yao)告訴你,如(ru)果(guo)你實(shi)際遇到的(de)(de)init行(xing)為(wei)(wei)跟(gen)上(shang)(shang)課時(shi)(shi)(shi)不(bu)(bu)一(yi)樣,不(bu)(bu)要(yao)(yao)奇怪,因(yin)(yin)為(wei)(wei)現在(zai)(zai)發行(xing)版(ban)的(de)(de)init已(yi)經被重寫了(le)好幾個(ge)版(ban)本,上(shang)(shang)個(ge)時(shi)(shi)(shi)講的(de)(de)是Sysv標準。現在(zai)(zai)發行(xing)版(ban)init雖然部分兼容sysv,但(dan)變化(hua)也是非常(chang)大的(de)(de)。具(ju)體的(de)(de)可以上(shang)(shang)網搜索UpStart 和(he) systemd。

3、 我(wo)們的(de)(de)(de)(de)主要(yao)工(gong)作(zuo)不(bu)(bu)可(ke)能(neng)僅(jin)僅(jin)安(an)裝一個(ge)Linux操作(zuo)系(xi)統,通(tong)常主要(yao)工(gong)作(zuo)應當是(shi)設備驅(qu)動的(de)(de)(de)(de)移(yi)植(zhi)或(huo)開(kai)發。這個(ge)需要(yao)的(de)(de)(de)(de)知識就(jiu)比較專業了(le)(le),不(bu)(bu)是(shi)簡單套(tao)用一下字符(fu)設備、塊(kuai)設備或(huo)網(wang)絡設備能(neng)搞定的(de)(de)(de)(de)。需要(yao)熟知硬件設備的(de)(de)(de)(de)工(gong)作(zuo)過(guo)程,如何設置寄存器(qi),寄存器(qi)的(de)(de)(de)(de)地(di)址是(shi)什么,這個(ge)就(jiu)要(yao)“肯“芯片的(de)(de)(de)(de)datasheet和(he)考(kao)驗個(ge)人E文(wen)的(de)(de)(de)(de)能(neng)力了(le)(le),有(you)(you)可(ke)能(neng)讀(du)了(le)(le)一遍(bian)不(bu)(bu)知所(suo)云。還(huan)要(yao)熟悉(xi)相關標準和(he)協議(yi)(比如:pci、usb、i2c、spi等),這有(you)(you)可(ke)能(neng)又是(shi)幾百或(huo)上千頁的(de)(de)(de)(de)文(wen)檔需要(yao)閱(yue)讀(du)。再者就(jiu)是(shi)Linux相關子系(xi)統的(de)(de)(de)(de)實現(xian),比如tty、gpio、i2c、usb、pci、net、blk等,因為終你的(de)(de)(de)(de)驅(qu)動代碼(ma)要(yao)調(diao)用這些子系(xi)統的(de)(de)(de)(de)內核(he)代碼(ma),你不(bu)(bu)能(neng)僅(jin)僅(jin)參考(kao)模板代碼(ma),因為那樣如果出現(xian)問題,你將束手無策(ce)。

4、 文(wen)件(jian)(jian)系(xi)(xi)(xi)統(tong)(tong)可以說是(shi)Linux的靈魂,因為(wei)有(you)人(ren)云(yun)Linux中“一切皆文(wen)件(jian)(jian)”。不要(yao)覺得(de)只有(you)磁盤上才(cai)存在文(wen)件(jian)(jian)系(xi)(xi)(xi)統(tong)(tong),內存中也(ye)有(you)文(wen)件(jian)(jian)系(xi)(xi)(xi)統(tong)(tong),而且有(you)很多。典型的sysfs文(wen)件(jian)(jian)系(xi)(xi)(xi)統(tong)(tong)就是(shi)內存文(wen)件(jian)(jian)系(xi)(xi)(xi)統(tong)(tong),搞Linux驅動開發(fa),sysfs文(wen)件(jian)(jian)系(xi)(xi)(xi)統(tong)(tong)是(shi)必(bi)須要(yao)掌握的,他和驅動程序的關系(xi)(xi)(xi)不是(shi)一般(ban)的密切,了解sysfs文(wen)件(jian)(jian)系(xi)(xi)(xi)統(tong)(tong)就必(bi)須了解Kobject對象體系(xi)(xi)(xi),這個(ge)體系(xi)(xi)(xi)的內容也(ye)比(bi)較豐富。

5、 實際項目(mu)開發(fa)設(she)計多(duo)的就是(shi)通(tong)訊設(she)備(bei),除(chu)了板(ban)上(shang)的spi、i2c通(tong)訊外,設(she)備(bei)間的通(tong)訊主要為串口(kou)(RS232、422、485)、網口(kou)(802.11)以及無線通(tong)訊(wifi、bt、3g、4g),這些通(tong)訊協議即(ji)使不能完全掌(zhang)握,也(ye)要了解大(da)概(gai)。

6、 驅動開(kai)發可以參考模(mo)板(ban),但調試(shi)驅動是(shi)(shi)沒(mei)有模(mo)板(ban)參考的(de)。驅動程序開(kai)發的(de)真正的(de)能力是(shi)(shi)體現(xian)在解決問(wen)題的(de)能力,你(ni)不(bu)(bu)可能憑空想象和猜測哪里出問(wen)題了(le),需(xu)要有手(shou)段。這就要用到調試(shi)方(fang)法、手(shou)段了(le),還有就是(shi)(shi)對內核相關驅動架構要非常(chang)清楚,能夠通過內核消息,定位(wei)問(wen)題大致位(wei)置(zhi)。如果你(ni)的(de)硬(ying)件知識過硬(ying),不(bu)(bu)僅不(bu)(bu)需(xu)要和硬(ying)件工程師扯皮(pi),還可以“謙虛的(de)“地提示他,硬(ying)件哪里可能是(shi)(shi)有問(wen)題的(de)。

7、 如果(guo)實在搞不(bu)定(ding),不(bu)要忘記找(zhao)“度娘“。以(yi)(yi)我的經(jing)驗,應(ying)該可以(yi)(yi)找(zhao)到(dao)80%的答案。

8、 分(fen)(fen)享(xiang)一(yi)個實(shi)(shi)際(ji)項目(mu)—PCI總(zong)(zong)線(xian)(xian)轉16串(chuan)口(kou)卡。一(yi)看項目(mu)的名(ming)字,就知(zhi)道(dao)是(shi)(shi)(shi)與(yu)PCI總(zong)(zong)線(xian)(xian)和串(chuan)口(kou)有(you)(you)關,PCI總(zong)(zong)線(xian)(xian)是(shi)(shi)(shi)X86平臺上(shang)常用(yong)總(zong)(zong)線(xian)(xian),現(xian)在已經發展到PCIe了,PCI是(shi)(shi)(shi)32/64位總(zong)(zong)線(xian)(xian)而PCIe是(shi)(shi)(shi)串(chuan)行(xing)總(zong)(zong)線(xian)(xian),但(dan)速度更快(3.0版的1x帶寬達到8.0Gbps)。協(xie)(xie)議上(shang)PCIe是(shi)(shi)(shi)基(ji)本兼(jian)容PCI的,所以(yi)Linux內(nei)核中采用(yong)是(shi)(shi)(shi)同一(yi)個架構。現(xian)在PC、工控(kong)機(ji)上(shang)的千兆網卡、SATA3.0等基(ji)本都是(shi)(shi)(shi)采用(yong)PCIe轉化(hua),只(zhi)有(you)(you)這(zhe)樣才能滿足帶寬要求。至(zhi)于串(chuan)口(kou)部(bu)(bu)(bu)分(fen)(fen),如果開(kai)發過(guo)Uart(8250)驅(qu)動(dong)(dong)(dong),應該沒問(wen)題。實(shi)(shi)際(ji)的硬件(jian)部(bu)(bu)(bu)分(fen)(fen)是(shi)(shi)(shi)由PLX9054+FPGA來實(shi)(shi)現(xian),由于存(cun)(cun)在FPGA,串(chuan)口(kou)部(bu)(bu)(bu)分(fen)(fen)寄存(cun)(cun)器(qi)由FPGA工程師(shi)提供,這(zhe)個需(xu)要軟件(jian)和硬件(jian)磨合(he)。后的驅(qu)動(dong)(dong)(dong)應該是(shi)(shi)(shi)一(yi)個復合(he)驅(qu)動(dong)(dong)(dong),你不能簡(jian)單套用(yong)字符設(she)備、塊(kuai)設(she)備或(huo)網絡(luo)設(she)備那一(yi)套。PCI部(bu)(bu)(bu)分(fen)(fen)的驅(qu)動(dong)(dong)(dong),你不僅要了解(jie)PCI協(xie)(xie)議、PCI配置過(guo)程(配置空(kong)(kong)間(jian)的讀寫),為了實(shi)(shi)現(xian)PCI設(she)備上(shang)電自(zi)動(dong)(dong)(dong)配置還(huan)涉(she)及(ji)到EEPROM芯片的燒寫,同時還(huan)要熟悉(xi)(xi)Linux內(nei)核PCI部(bu)(bu)(bu)分(fen)(fen)架構,以(yi)及(ji)驅(qu)動(dong)(dong)(dong)程序的注冊。整個驅(qu)動(dong)(dong)(dong)部(bu)(bu)(bu)分(fen)(fen)不是(shi)(shi)(shi)兩塊(kuai)簡(jian)單疊加,需(xu)要有(you)(you)機(ji)結(jie)合(he)。如果你不知(zhi)道(dao)PCI配置空(kong)(kong)間(jian)、IO空(kong)(kong)間(jian)、內(nei)存(cun)(cun)空(kong)(kong)間(jian),不熟悉(xi)(xi)內(nei)存(cun)(cun)映射(she)機(ji)制、虛擬內(nei)存(cun)(cun)概(gai)念,不了解(jie)PCI的INTA—INTD或(huo)PCIe的MSI等中斷機(ji)制,這(zhe)個驅(qu)動(dong)(dong)(dong)是(shi)(shi)(shi)搞不出來的。這(zhe)一(yi)個項目(mu)涉(she)及(ji)的知(zhi)識點非(fei)常多,即使是(shi)(shi)(shi)串(chuan)口(kou)部(bu)(bu)(bu)分(fen)(fen),也不是(shi)(shi)(shi)簡(jian)單一(yi)個字符設(she)備可以(yi)搞定的,你需(xu)要知(zhi)道(dao)tty、線(xian)(xian)路規程、UART協(xie)(xie)議。

9、 搞(gao)驅(qu)動開發既需(xu)要積累知(zhi)識、又需(xu)要積累經驗,切記紙上(shang)談兵、好(hao)高騖(wu)遠。實在沒什么Linux學(xue)習方法推薦,如(ru)果要推薦的(de)(de)話,我(wo)個(ge)人覺得可以(yi)參考這(zhe)(zhe)個(ge)配(pei)置《3+1+1+1+1》,具(ju)體(ti)為(wei):3本書(Linux內(nei)(nei)(nei)核(he)開發(Robert Love)、深(shen)入理解Linux內(nei)(nei)(nei)核(he)(Daniel P. Bovet / Marco Cesati)、Linux設備(bei)驅(qu)動程序(xu)(Jonathan Corbet))+1個(ge)軟件(Source Insight)+1套內(nei)(nei)(nei)核(he)源碼(ma)(ma)(ma)(建議版本至少大于(yu)2.6)+1個(ge)網絡搜索引擎(qing)+1個(ge)持(chi)續的(de)(de)學(xue)習熱(re)情。這(zhe)(zhe)里(li)說一下閱讀(du)內(nei)(nei)(nei)核(he)代(dai)碼(ma)(ma)(ma),對于(yu)初學(xue)者(zhe)可能非常(chang)痛苦(ku),因為(wei)內(nei)(nei)(nei)核(he)代(dai)碼(ma)(ma)(ma)里(li)面有很多(duo)鏈表、鎖、出錯(cuo)處理以(yi)及你聞所未聞的(de)(de)算法,更傷(shang)心的(de)(de)是(shi)當(dang)你懷揣無比(bi)堅定的(de)(de)信(xin)念,興致勃勃地用(yong)SI跟(gen)(gen)蹤(zong)代(dai)碼(ma)(ma)(ma),要一探究竟(jing),結果代(dai)碼(ma)(ma)(ma)跟(gen)(gen)到(dao)一半無法進行了(le)(le)。這(zhe)(zhe)是(shi)因為(wei)內(nei)(nei)(nei)核(he)很多(duo)地方采用(yong)了(le)(le)函數指針和回調機制(zhi),只有在執行的(de)(de)時候(hou),才指向具(ju)體(ti)的(de)(de)函數。這(zhe)(zhe)樣是(shi)不是(shi)就沒法跟(gen)(gen)蹤(zong)了(le)(le)呢,當(dang)然不是(shi),具(ju)體(ti)就不詳述了(le)(le),可以(yi)到(dao)網上(shang)查找相關資(zi)料。

10、 基礎(chu)知識也需要掌握(wo),Shell編程、Make工具的使用、內核編譯系統、gcc編譯和鏈接、elf格式(shi)加載過程、ext2文件(jian)系統等,扎實的基礎(chu)知識,可以讓你(ni)學習新知識事半功倍。

以上(shang)簡單(dan)羅列了一下個(ge)人在學習Linux過(guo)程(cheng)中的一點(dian)體會(hui),有些細節沒(mei)有展開。若(ruo)想了解涉及到的具體知識點(dian),請自(zi)己(ji)到網上(shang)搜索(suo)。由于(yu)自(zi)己(ji)也(ye)剛剛入(ru)門,如果誤導了你(ni),還(huan)請見(jian)諒!

上一篇:AS606指紋模塊調試總結

下一篇:Android傳感器開發

熱點文章推薦
華清(qing)學員就業榜單
高薪學(xue)員經驗分享
熱點新聞(wen)推薦
前臺專線:010-82525158 企業培訓洽(qia)談專線(xian):010-82525379 院校(xiao)合作洽(qia)談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部