《Linux核心設計與實現》筆記——核心編譯過程以及核心編程特點__html5

來源:互聯網
上載者:User
核心編譯的過程

1. 下載核心原始碼樹 解壓至/usr/src
# tar xf linux-3.13.5.tar.xz -C /usr/src
# ln -sv /usr/src/linux-3.13.5 /usr/src/linux
2. 核心配置 設定檔儲存在核心源碼根目錄下.config檔案中
make oldconfig 備份當前.config檔案為.config.old
make config在命令列下,逐項配置
make menuconfig在圖形化介面配置
make defconfig 基於預設的配置為使用的體繫結構建立配置
3. 編譯核心
make或者make -jN 衍生N個編譯任務進行編譯
make > /dev/null將輸出重新導向
4. 安裝模組
make modules_install
把已經編譯的模組安裝到正確的主目錄 /lib/modules下
5. 編譯安裝 make install
/boot/ 目錄下會產生vmlinuz-ver,
System.map-ver(符號對照表,將核心符號和地址對應)
/boot/grub/grub.conf 檔案中會增加新核心的啟動項
6.重啟,選擇新核心即可 核心編程特點: 無libc或標準標頭檔。

基本標頭檔/include
如#include<linux/inotify.h>,位於 /include/linux/inotify
體繫結構相關標頭檔 /arch/<architecture>/include/asm
如#include<asm/ioctl.h>於/arch/x86/include/asm/ioctl.h

libc中的函數實現大多調用系統調用,應用從使用者空間通過系統調用陷入核心空間,如果從核心中調用了libc庫中的函數,可能會發生從”核心陷入到核心”,這可能造成系統的不穩定,崩潰等潛在問題。 沒有記憶體保護

核心中記憶體錯誤會導致oops,核心記憶體不分頁 不能輕易使用浮點數

執行浮點指令需要捕獲陷阱,著手整數到浮點數的轉換,操作繁瑣
容量小且固定的核心棧 同步和並發

核心容易產生競爭條件,linux是搶佔式的多任務系統;支援SMP,兩個處理器同時執行代碼,使用同一個資源;中斷的到達是非同步 可移植性更加重要

1、字長和資料類型2、資料對齊3、位元組順序4、時間、頁長度5、處理器排序、SMP、核心搶佔、高端記憶體等考慮。
使用GNU C

使用了許多GNU C 編譯器的特性,內聯彙編,內嵌函式,分支聲明等 第18章 調試

1、 列印調試 printk() 18個等級
klogd從屬記錄緩衝區擷取核心資訊,再通過syslogd儲存到系統記錄檔中。
2、 OOPS
OOPS是核心告知使用者有不幸發生的最常用方式,產生的原因可以是記憶體訪問越界、非法指令等,OOPS能夠回溯導致錯誤發生的函數調用鏈。
3、探測系統
用UID作為選擇條件
if (current->uid != 7777)
{ /* 原先的代碼 */ }
else { /* 新的特性 */ }
使用條件變數
設定一些條件變數來控制核心是否執行某段代碼.
使用統計量
實現思路就是在核心中的設定一個全域變數, 比如 my_count, 當核心執行到某段代碼時, 給 my_count + 1 就行.同時還要將 my_count 列印出來(可以用printk), 便於隨時查看它的值.
使用頻率限制(限制錯誤輸出數量)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.