日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

《Linux内核分析》实践2

發布時間:2024/1/17 linux 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《Linux内核分析》实践2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

《Linux及安全》實踐2

一、Linux基本內核模塊

1.1什么是內核模塊

  • linux模塊是一些可以作為獨立程序來編譯的函數和數據類型的集合。之所以提供模塊機制,是因為Linux本身是一個單內核。單內核由于所有內容都集成在一起,效率很高,但可擴展性和可維護性相對較差,模塊機制可彌補這一缺陷。
  • Linux模塊可以通過靜態或動態的方法加載到內核空間,靜態加載是指在內核啟動過程中加載;動態加載是指在內核運行的過程中隨時加載。(我們要做的實踐內容就是動態加載內核模塊)
  • 一個模塊被加載到內核中時,就成為內核代碼的一部分。模塊加載入系統時,系統修改內核中的符號表,將新加載的模塊提供的資源和符號添加到內核符號表中,以便進行模塊間的通信。

1.2.c程序編寫

  • 具體代碼如下(打印學號):
  • 解釋:

    (1)關于 #include <linux/init.h>以及#include <linux/module.h>是編寫內核模塊程序所必須的2個頭文件。

    (2)編寫內核模塊時必須要有的兩個函數 :
    - 加載函數:

    static int init_fun(void){// 初始化代碼} 函數實例:static int hello_init(void)// 不加void在調試時會出現報警{printk("hello world!/n");return 0;}- 卸載函數(出口函數) 無返回值static void cleaup_fun(void){// 釋放代碼}

    (3)printk是內核態信息打印函數,功能和比標準C庫的printf類似

    (5)module_init(fun):告訴內核模塊程序從何處開始執行。module_exit(fun):告訴內核編寫模塊程序從何處離開。

    (6)模塊許可聲明:函數原型是MODULE_LICENSE(),告訴內核該程序使用的許可證,一般是GPL。

1.3Makefile編寫

  • 代碼如下:
  • 解釋:
    • 其中make -C $(LINUX_KERNEL_PATH) 指明跳轉到內核源碼目錄下讀取Makefile
      M=$(CURRENT_PATH) 表明返回到當前目錄繼續執行當前的Makefile(M= 后指定的是 lwr.c 和 Makefile 所在的目錄)
    • 關于個人虛擬機的內核版本號,輸入指令“uname - a”可查看,在usr/src中可找到
  • 1.4操作

    • 輸入make進行自動編譯;編譯之后,生成需要的文件
    • 輸入sudo insmod lwr.ko,加載模塊(root權限)
    • 輸入dmesg,測試模塊輸出
    • 卸載模塊:“sudo rmmod 模塊名” 之后,就將內核中之前加載的模塊刪除,此時再輸入dmesg測試,可以看到顯示了exit信息

    二、Linux內核模塊的功能實現

    1.實現輸出當前進程信息的功能

    • 代碼如下:
    • 結果如下:
    • 溫馨提示需要改一下makefile哦,代碼里使用了printk函數打印了進程的pid、state等信息

    2.實現讀取進程鏈表的功能

    • 代碼如下:
    • 結果如下:
    • 這個與上述不同的地方在于要打印進程鏈表的,所以需要一個循環,連續打印
    • for_each_process()的函數本質即for循環,從第一個PCB(init_task)開始,順著pcurrent鏈表進行遍歷,輸出所有當前進程的信息(pid,tgid等)。

    轉載于:https://www.cnblogs.com/shadow135211/p/5525441.html

    總結

    以上是生活随笔為你收集整理的《Linux内核分析》实践2的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。