linux驅動常見問題

2021-09-30 00:04:57 字數 1009 閱讀 2407

》lsmod時會執行驅動中的init函式,rmmod時會執行驅動程式中的exit函式。init函式中申請的資源要在rmmod中釋放。

》mknod結合主裝置號與從裝置號可以建立乙個裝置檔案

》0~3g使用者空間,3~4g是核心空間

》核心的記憶體申請函式

kmalloc:分配的內存在物理上是連續的,能分配的記憶體較小

》裝置驅動模型三個重要成員是:匯流排、裝置、驅動;

》中斷的上半部分和下半部分的問題:講下分成上半部分和下半部分的原因,為何要分?講下如何實現?

上半部分執行與硬體相關的處理要求快, 而有些驅動在中斷處理程式中又需要完成大量工作,這構成矛盾,所以linux有所謂的bottom half機制,中斷處理程式中所有不要求立即完成的,在開中斷的環境下,由底半程式隨後完成.

linux的底半處理實際上是建立在核心的軟中斷機制上的

》執行緒同步和程序同步:自旋鎖和訊號量(互斥鎖)

》自旋鎖和訊號量有什麼區別:

》字元裝置和塊裝置的區別:

》linux的使用者態與核心態的通訊方式:

linux下核心空間與使用者空間進行通訊的方式主要有syscall(system call)、procfs、ioctl和netlink等。

syscall:一般情況下,使用者程序是不能訪問核心的。它既不能訪問核心所在的記憶體空間,也不能呼叫核心中的函式。linux核心中設定了一組用於實現各種系統功能的子程式,使用者可以通過呼叫他們訪問linux核心的資料和函式,這些系統呼叫介面(sci)稱為系統呼叫;

procfs:是一種特殊的偽檔案系統 ,是linux核心資訊的抽象檔案介面,大量核心中的資訊以及可調引數都被作為常規檔案對映到乙個目錄樹中,這樣我們就可以簡單直接的通過echo或cat這樣的檔案操作命令對系統資訊進行查取;

netlink:使用者態應用使用標準的 socket api 就可以使用 netlink 提供的強大功能;

ioctl:函式是檔案結構中的乙個屬性分量,就是說如果你的驅動程式提供了對ioctl的支援,使用者就可以在使用者程式中使用ioctl函式控制裝置的i/o通道。

Linux常見問題

在連線linux上的mysql時出現 communications link failure due to underlying exception last packet sent to the server was 1 ms ago 這個是由於資料庫連線超時造成的。需要修改mysql配置 開啟v...

Linux常見問題

cenos6.7無法上網 解決方法 該解決方法是設定為nat模式 1.將網路連線模式設定成nat模式,不能設定成僅主機模式 2.檢視ip網段與閘道器網段是否一致,如果不一致 將ip網段設定成與網管網段一致 3.將onboot設定成yes 4.將閘道器設定成與非虛擬機器不同的閘道器位址,如 非虛擬機器...

Linux常見問題

檢查主機,能正常聯網 linux下 ifconfig 發現沒有固定ip ping下也是無法連線 解決方式 將模式改為主機模式 輸入以下 sudo service network manager stop sudo rm var lib networkmanager networkmanager.st...