Linux Kernel學習004 核心開發特點

2021-09-10 05:16:24 字數 533 閱讀 6183

相對與在使用者空間內的應用開發,核心開發有很多獨特之處:

libc的實現是依賴於核心的,因此,核心中不存在可以直接使用的libc。但是,大部分常用的c語言庫函式都在核心中得到了實現(在lib目錄下)。

標頭檔案,基本的標頭檔案都位於include目錄和arch/《處理器架構》/include中。

雖然c語言有國際化的標準比如c90、c99、c11等,但是核心並不僅僅使用了便準c語言,它的開發還依賴於gcc體統的很多拓展功能。比如attribute

在使用者空間中的程序,如果進行非法記憶體訪問,則核心會發現錯誤,並進行相應的處理。但是,若在核心中發生了非法記憶體訪問,則後果很難控制。記憶體錯誤可能的會導致oops。

核心中使用浮點數很繁瑣,需要人工儲存和恢復浮點暫存器,一般情況下,不要使用浮點操作。

核心棧的準確大小隨體系結構而變化,一般是兩頁。

核心的許多特性要求能夠併發地訪問共享資料,這就要求同步機制一保證不出現競爭條件。

linux是乙個支援多種架構的可移植作業系統,大部分核心**應該與體系結構無關。

BGL學習00 開始

這篇blog是我學習 boost之bgl的開始。bgl是boost graph library的縮寫,是基於boost的乙個強大的圖論函式庫。其採用了c 泛型程式設計 generic programming 的思想,因而有強大的通用性 擴充套件性和高效率。從今天開始我將系統地學習這個庫,基本想法是逐...

創新班學習00

1.自己學。勿相互問,學習方法。通過網路學習。怎麼問問題。如何使用搜尋引擎。google。一兩天!周解決問題。2 期望得到的 a 學習能力。解決問題。語言,幾個小時,不超過三天。b.如何保證工作質量。不出錯誤。c目前軟體行業前沿語言,技術,設計。比如。13年使用golang語言,08年使用andro...

C 學習之路 00

在學習c 前,我們必須了解c 的一些基礎概念 1.c 跟大多數語言一樣,區分大小寫。2.擴充套件名為cpp。3.一般的程式大概包括以下元素 註解,一般由字首 標識 預處理器編譯指令 include 函式頭 int main 函式體,用 括起來的部分 結束main 函式的return語句 int ma...