1. 程式人生 > >怎麽查找關於內核參數和函數的說明文檔

怎麽查找關於內核參數和函數的說明文檔

pad 註意 grep命令 安裝 style cal ont sys left

Linux內核源代碼釋出時會包含有一些關於內核參數(如sysctl.conf中的參數)和函數的說明文檔,在CentOS/RedHat系統中,kernel-doc軟件包裏面打包的就是這些文檔(也可以從官網https://www.kernel.org/下載內核源碼包,裏面就會有這些文檔)。

?

安裝kernel-doc軟件包:

[root@gw ~]# yum install kernel-doc

安裝好kernel-doc軟件包後,可以使用下面的命令查看它將文檔安裝在哪裏了。可以看到,文檔在兩個位置:

[root@gw ~]# rpm -ql kernel-doc | awk -F "/" ‘{print "/"$2"/"$3"/"$4"/"$5}‘ | uniq

/usr/share/doc/kernel-doc-2.6.32

/usr/share/man/man9

?

1、 第一個位置的完整的路徑是/usr/share/doc/kernel-doc-2.6.32/Documentation,裏面包含的是關於內核參數等的txt說明文檔,可以直接使用grep命令查找你想要了解的內核參數,比如,我想要了解/etc/sysctl.conf裏面net.ipv4.ip_forward這個參數的含義,那麽我可以執行:

[root@gw ~]# cd /usr/share/doc/kernel-doc-2.6.32/Documentation

[root@gw Documentation]# grep -ir --color ‘ip_forward‘ ./*

輸出結果如下圖。其中,networking/ip-sysctl.txt文件裏面的就是關於net.ipv4.ip_forward這個參數的說明。

技術分享圖片

需註意的是,這些文件裏面其實只是對內核參數的簡要說明。對一些簡單的內核參數來說,看這裏面的說明是沒有問題的;但對於復雜的內核參數來說,可能還需要你有更綜合的知識才行。

?

2、 第二個位置/usr/share/man/man9裏面是內核使用的函數的man說明文檔,使用man命令可以查看它們的內容。比如,裏面有一個syscall_get_arguments.9.gz文件,實際來說,syscall_get_arguments就是一個函數來的,文件裏面就是關於這個函數的說明信息。要查看文件內容,需使用man命令:

[root@gw ~]# man syscall_get_arguments

這有什麽用呢?在一些涉及到內核函數的地方可能會派上用場。比如,查看Linux內核源代碼時(當然,Linux內核源代碼我看不懂,但我這只是舉個例,對嘛),或者,在使用strace追蹤程序調用內核函數的情況時(這就有可能用上了)。

怎麽查找關於內核參數和函數的說明文檔