跟蹤分析Linux核心5 0系統呼叫處理過程

2021-09-12 20:23:00 字數 2088 閱讀 2350

實驗分析

實驗總結

學號末尾三位:474

本實驗**於——

2.在當前使用者目錄下建立linuxkernel資料夾

3. 將linux5.0.2原始碼拷貝到linuxkernel資料夾下並解壓,之後所有的檔案操作都在該資料夾下執行

4. 配置並編譯linux核心,使其具備除錯功能

命令如下:cd linux-5.0.2            #進入linuxkernel目錄

make menuconfig         #配置核心

->kernel hacking

->compile-time checks and compiler options

[*]compile the kernel with debug info

make               #編譯

5.製作根檔案系統

6.啟動menuos

7.跟蹤除錯核心啟動(gdb除錯加引數-s -s)

8.再另建一視窗,啟動gdb

*

實驗中可能遇到很多缺失元件和工具的情況,通過 sudo apt-get install *** 安裝即可。

1.增加系統呼叫

根據學號後兩位74,去system_call_table(位於/usr/include/asm/unistd_32.h)中查詢

#define __nr_sethostname 74

2.在test.c中增加sethostname函式,再重新編譯rootfs.img

sethostname函式

int sethostname

(int argc,char *ar**)

重新編譯rootfs.img

3.跟蹤呼叫

打斷點到sys_sethostname

本實驗讓我了解了系統呼叫的工作機制,作為程式設計師的我們通常只跟使用者空間實現的api打交道,核心只跟系統呼叫打交道,核心不關心應用程式是如何系統呼叫的。核心中大多數系統函式呼叫名稱以sys_為字首,每個系統呼叫有唯一的系統呼叫號。應用程式通過軟中斷來通知核心,進入系統呼叫入口system_call,從而執行對應的系統呼叫函式。

舉例跟蹤分析Linux核心5 0系統呼叫處理過程

學號最後三位編號 008 使用ubuntu編譯linux核心5.0 編譯核心的過程中可能需要安裝的依賴庫 sudo apt get install libncurses5 dev libssl dev sudo apt get install build essential openssl sudo...

舉例跟蹤分析Linux核心5 0系統呼叫處理過程

學號274 一 編譯linux核心5.0.1 xz d linux 5.0.1.tar.xz tar xvf linux 5.0.1.tar 2.編譯 make i386 defconfig make j8 可能會出現缺少相關依賴的問題,使用 sudo apt get install 缺少的依賴 安...

跟蹤分析Linux核心5 0系統86號呼叫處理過程

致謝學號末位 186 跟蹤分析linux核心5.0系統呼叫處理過程 選擇系統呼叫號後兩位與學號後兩位相同的系統呼叫進行跟蹤分析 分析系統呼叫 保護現場與恢復現場 系統呼叫號及引數傳遞過程 配置核心編譯引數 編譯核心 製作根檔案系統 mkdir linuxkernel cd linuxkernel m...