實驗三 跟蹤分析Linux核心的啟動過程

2022-08-11 11:27:17 字數 666 閱讀 7610

《linux核心分析》mooc課程

一、linux核心原始碼

arch目錄下儲存有各個平台的源**,fs檔案系統linux核心的原始碼放在kernel目錄中。

原始碼的目錄結構如下圖所示:

二、乙個簡單的linux系統menuos

三、使用gdb跟蹤除錯linux核心的方法

-s freeze cpu at startup(在cpu執行前凍結)

-s 在tcp::1234視窗中建立gdb server.

在程式中設定斷點,然後c執行檔案,之後可以用list指令來檢視函式執行的位置。

先在tcp:1234埠建立gdb sever,使用break在init上設定斷點檢視init函式的位置:

四、start_kernel函式

mm_init:記憶體管理模組初始化  sched_init排程模組初始化

rest_init:在程序核心啟動時就一直存在的0號程序。

init_process是1號程序,也就是第乙個使用者態程序。當沒有1號程序系統會找預設路徑下的程式來作為一號程序。

函式執行時會當系統沒有程序呼叫時就排程到idle程序。

0號程序建立了其他服務的核心執行緒。

Linux核心分析實驗三

使用gdb 跟蹤除錯核心從 start kernel 到init 程序啟動 使用gdb 跟蹤除錯核心 開啟 shell 終端,執行以下命令 cdlinuxkernel qemu kernellinux 3.18.6 arch x86 boot bzimage initrd rootfs.img s ...

跟蹤分析Linux核心的啟動過程

在linux作業系統中,系統的啟動都是從start kernel 這個函式開始的。start kernel 是核心的彙編與 語言的交接點,在該函式以前,核心的 都是用彙編寫的,完成一些最基本的初始化與環境設定工作,比如核心 載入記憶體並解壓縮 現在的核心一般都經過壓縮 cpu 的最基本初始化,為c ...

跟蹤分析Linux核心的啟動過程

說明 在實驗樓裡做該實驗時,發現實驗樓環境老卡死,折騰幾個小時都如此,根本沒有辦法完成作業。因此此處只能提供一張截圖。後面的內容都是根據老師的課程整理出來的。開啟shell 使用gdb跟蹤除錯核心 gdb file linux 3.18.6 vmlinux 說明 在gdb介面中targe remot...