《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...