歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> 讀薄「Linux 內核設計與實現」(1)

讀薄「Linux 內核設計與實現」(1)

日期:2017/3/3 12:05:36   编辑:Linux技術
這篇文章是《讀薄「Linux 內核設計與實現」》系列文章的第一篇,本文主要講了兩個問題:內核編程的特點以及 GNU C 在內核開發中的特點。

0x00 內核編程特點

無 libc 庫,不能訪問標准 C 文件
使用 GNU C
無內存保護機制
慎用浮點數計算
注意同步和並發
可移植性考慮:保持字節順序、64位對齊、不假定字長和頁面長度

0x01 GNU C

內聯函數:將函數展開至調用位置,省卻函數調用代價
內聯匯編:在確定體系結構的情況下,在 C 代碼中直接嵌入匯編代碼
分支聲明:分支時可根據預知條件發生的概率進行優化
例:
[code]if(error){
/* do something */
}

優化後:
[code]if(unlikely(error)){ //error為0的概率大
/* do something */
}

或:
[code]if(likely(success)){ //success為0的概率大
/* do something */
}

本文的版權歸作者 羅遠航 所有,采用 Attribution-NonCommercial 3.0 License。任何人可以進行轉載、分享,但不可在未經允許的情況下用於商業用途;轉載請注明出處。感謝配合!
Copyright © Linux教程網 All Rights Reserved