• 1 
瀏覽模式: 普通 | 列表
02
19

Who call me – kernel版

很感謝jserv兄的who call me,讓我學到不少東西,而在Linux 2.6 kernel,也有相似的技巧可用,搭配__builtin_return_address和kallsyms_lookup,我們可以做出一個簡單的kernel module who call me

查看kallsyms.c這個程式,會發現其實已經有不少現成的kernel API封裝好給你用了,我這邊範例用的就是sprint_symbol這個函式,簡單的範例如下所示

[閱讀全文]

標籤: linux
02
11

SIPp-惡搞SIP的工具

前一陣子被交待要做SIP stack的測試,跟同事討論後又學到一個好東西,SIPp,它是一個很直覺化的工具,只要寫出你要測試的SIP流程,就可以用各種不同的SIP method測試SIP stack.

SIPp強大的地方在於可以自己編寫SIP method script,舉例如下,一個簡單的向SIP server (192.168.15.3)register的script,而register的username和password分別為444

[閱讀全文]

標籤: linux
02
03

seq_file-讀取proc資料的新選擇

古早以前kernel對於proc資料的讀取都由read_proc這個callback函式處理,那它的prototype如下

  1. static int read_proc(char *page, char **start, off_t off, int count, int *eof,void *data)

kernel module傳給使用者的資料最終要印在page這個大小為4096bytes的空間裡,所以kernel moduel在處理使用者要讀取資料時要特別注意這個boundry,不過現在因為seq_file的出現,情勢會隨之改觀

[閱讀全文]

標籤: linux
02
02

udev-強大的device node管理系統

過年前跑去書店打發無聊的時間,看到這個月又出了兩本跟linux device driver相關的書籍,隨手拿起來翻翻,發現其中有一篇寫到udev framework,裡面詳盡解釋device node在insert kernel module時如何自動建立,並且可隨著使用者更改規則而產生persistent node…等不同於devfs的變化

[閱讀全文]

標籤: embedded linux
  • 1