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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux内核态real cred,Linux内核实验报告——实验5.doc

發布時間:2025/3/19 linux 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核态real cred,Linux内核实验报告——实验5.doc 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux內核實驗報告

實驗題目:新系統調用設計實驗

實驗目的:

系統調用是內核提供給用戶應用程序使用的內核函數名,這些函數提供了內核為用戶

應用程序所提供的系統服務功能。這些函數在用戶應用程序中的書寫格式與用戶自定義函

數形式上沒有什么不同,但這些函數的編寫和調用過程卻與自定義函數有著很大的不同。

它們需要事先在內核中安排好入口和函數體,當調用時會引發系統軟中斷根據對應的存根

函數查中斷表進入請求的內核函數。

我們能夠學會添加一個自己的系統調用

硬件環境:

Pentium(R) Dual-Core CPU T4400 @ 2.20GHz

軟件環境:

Ubuntu12.04

gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)

內核版本:3.0.24

實驗步驟:

代碼分析

著中講解第二個實驗:要在do_page_fault中增加一個計數pfcount,設計它為一個全局變量,聲明在mm.h中。設計系統調用,返回該pfcount。

設計說明

do_page_fault的時候每次在缺頁的時候都會將pfcount計數加一,這樣我們只需要設計系統調用就能夠得到該值。

調試記錄

結論分析與體會:

在本次實驗中我們完整設計了兩個系統調用,實現系統調用主要有三個過程:

1.在syscall_table_32.S這個匯編文件中添加系統調用的入口項

2.在unistd_32.h中添加系統調用號,以便用戶程序調用

3.在內核中的某個地方實現系統調用

另外關于asmlinkage這個標記:

“"asmlinkage" is defined, for example, in the header file "include/asm-i386/linkage.h" as __attribute__((regparm(0))) that tells compiler put all function parameters in the stack (i.e. disables call optimization). ”

也就是說它告訴編譯器把所有的參數都放在堆棧中,而不是寄存器,這樣內嵌匯編代碼的時候有好處?

程序完整源代碼:

kernel/sys.c

/*

* linux/kernel/sys.c

*

* Copyright (C) 1991, 1992 Linus Torvalds

*/

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

總結

以上是生活随笔為你收集整理的linux内核态real cred,Linux内核实验报告——实验5.doc的全部內容,希望文章能夠幫你解決所遇到的問題。

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