linux下如何查詢一個函數(shù)或結構的原代碼?
使用ctags最方便。1.安裝CTAGS。2.在內(nèi)核源碼目錄下執(zhí)行ctags-R*生成標簽數(shù)據(jù)庫。3.您在vim-t中尋找的數(shù)據(jù)結構的定義。例如,vim-tflock在網(wǎng)絡上有詳細的說明。您可以搜索以下內(nèi)容。
linux中為什么那么多main函數(shù)?
你是說源代碼?那些都是內(nèi)核的模塊和驅動,真正的內(nèi)核只有一個主函數(shù)。
如何學習linux驅動開發(fā)?
1.學習編寫簡單的makefile
2.創(chuàng)建一個可以運行makefile的應用程序。
3.學習編寫驅動的makefile
4.寫一個簡單的char驅動,makefile編譯好了,可以是insmod,lsmod,rmmod。在驅動程序的init函數(shù)中打印HelloWorld之后,您應該能夠通過dmesg看到輸出。
5.寫一個完整的驅動,加上驅動實現(xiàn)的各種功能,如讀,寫,ioctl和輪詢。在ioctl中完成了從用戶空間到內(nèi)核空間的結構轉換。
6.寫一個塊驅動,加上讀,寫,ioctl,poll等各種函數(shù)。
7.簡單學習一下最難的內(nèi)存管理,了解各種內(nèi)存alloc函數(shù)的實現(xiàn)細節(jié)。這是linux開發(fā)的基本功。
8.學習鎖機制的應用,這不是最難的但也是最容易出錯的,涉及到很多同步和并發(fā)的問題。
9.看看內(nèi)核中實際應用的驅動代碼。你會發(fā)現(xiàn)你已經(jīng)知道最基本的,大的框架都是一樣的,無非是read,write,ioctl等函數(shù)的實現(xiàn),但是包含了很多很多以前不知道的小的實現(xiàn)細節(jié)。這個時候要考慮很多其他的問題,而不僅僅是基本功能的實現(xiàn)。
Linux免費學習地址:
linux函數(shù)命名規(guī)范?
Linux中的命名規(guī)范:
注意:
1.除/(根目錄)以外的所有字符都是合法的。
2.有些字符,如空格字符、制表符、退格字符和字符@#()-最好不要使用。
3.避免使用?作為通用文件名的第一個字符。
4.區(qū)分大小寫。
變量命名規(guī)則:
1)變量名必須有一定的含義,并且準確。例如,有一個變量用于存儲書籍的數(shù)量,可以命名為number_of_book或num_of_book。不推薦我,因為沒有意義。也不建議用number或者book,因為意思不準確。2)不建議大小寫混合。如果定義了計數(shù)變量,intnCount;這是Windows中不錯的一個。變量名,其中nCount的首字母n用來表示這個變量的類型是int。但是不建議在Linux下使用大小寫混合。通常,標識符只由小寫字母、數(shù)字和下劃線組成。3)無意義時盡量使用較短的變量名。比如有一個變量用來臨時存儲一個計數(shù)值,把變量命名為tmp_count顯然比this_is_athis_is_a_temperary_counter更好。4)匈牙利命名法不用于表示變量的類型。如intnCount;n用來描述變量的類型,所以在Linux中不建議命名變量。5)函數(shù)名要以動詞開頭,因為函數(shù)是一組具有特定功能的語句塊。例如,用于獲取外部輸入值的函數(shù)可以命名為get_input_number。6)盡量避免使用全局變量。
