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

來源:互聯網
上載者:User

標籤:

跟蹤分析Linux核心的啟動過程沙雨濟 20122137原創作品轉載請註明出處 + 《Linux核心分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000 一 、實驗內容:使用gdb跟蹤調試核心從start_kernel到init進程啟動。 二 、實驗過程:(附)首先進入實驗樓環境,進入LinuxKernel檔案夾,可以看到檔案裡linux-3.18.6已經編譯完成,前期工作已完成。根據提示代碼,我們將其啟動。代碼:
  1. cd LinuxKernel/
  2. qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img

核心啟動完成,可執行檔init被執行起來。輸入help,可看見三個命令。至此,linux系統構建完畢。
接下來我們用gdb跟蹤核心運行過程,在之前代碼中加入參數—S -s,再次啟動核心。代碼:
  1. qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S # 關於-s和-S選項的說明:
  2. # -S freeze CPU at startup (use ’c’ to start execution)
  3. # -s shorthand for -gdb tcp::1234 若不想使用1234連接埠,則可以使用-gdb tcp:xxxx來取代-s選項
可見,視窗運行被凍結。 
另外開啟一個視窗,用gdb把帶有符號表的核心鏡像載入進來,連結gdb server,設定斷點來跟蹤核心。  
至此,實驗結束。至於自己搭建的linux環境,由於網速限制並沒有構建成功。 
ㄒoㄒ)/~~ 三 、實驗總結:通過本次實驗,初次認識了Linux核心的代碼,通過核心啟動,凍結,恢複和跟蹤 更加深入了對start_kernel函數的執行。

 

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.