501 linux核心學習 skip

2021-10-14 12:31:27 字數 759 閱讀 1021

全部學習彙總:

最近在看乙個老版本的linux核心源**,為了快速了解核心中的一些實現機制,快速過掉了幾個彙編檔案。現在開始看c檔案,感覺舒服了很多。而且,由於**實現的功能跟我平時的嵌入式開發相差很大,看起來還是很有意思的。

今天看**的時候遇到了乙個skip_atoi函式,其實基本上猜測的出來這個是字元轉整形的意思。有點類似atoi這樣的函式,不過前面又來了乙個skip,還是去弄清楚這個函式究竟是想做什麼。

這個函式並不是乙個庫函式,在這個版本的核心**中存在源**。簡單看了下,很簡單但又讓我稍微有了點疑惑。主要的疑惑還是來自於經驗,經驗誤我啊!平時接觸大端的mcu多了,忘了intel的這個cpu其實預設是小端模式的。一下子弄清楚了這一點,其實就好懂了。我在**上也增加了一部分我自己的注釋,純中文,但是這是學習,講啥規範不規範呢!

其實,這個也蠻簡單了。就是從相應的儲存開始的位置找到最多的數字,並計算連成塊的數字的數值。

關於這個函式,也可以做乙個簡單的測試。

以上是測試**,編譯後執行的效果如下:

跟我自己的猜測還是一致的,我還測試了字串中增加\0的情況,效果是一樣的。我看到的**中,這個被用於了vsprintf中輸出格式中寬度的判斷。感覺第一次距離這種常用的底層函式這麼近,的確是很有意思。

Linux核心學習

交叉工具鏈 核心相關知識 linux系統的構成 使用者空間 核心空間 思考 為什麼劃分為兩個層次?目的其實是為保護作業系統,防止應用程式的異常導致作業系統崩潰。核心空間與使用者空間是程式執行的兩種不同狀態,通過系統呼叫和硬體中斷能夠完成從使用者空間到核心空間的轉移。那麼linux的核心由哪些構成呢?...

linux 核心學習

linux核心獲取 官網 linux作業系統的核心是模組化,可以使用lsmod命令檢視核心模組,下面展示已載入系統的模組 root 172.16.0.55 vendor composer test lsmod module size used by nfnetlink queue 8111 0 nf...

linux 核心學習(2)

linux核心原始碼樹大體結構 由於linux的原 持續在變化,所以不可能給出太詳細的內容,只能指出乙個特殊的驅動大概會出現在什麼地方。makefile 這是整個的原始碼樹的最頂層的makefile。它定義了很多的有用的變數和規則,如預設的gcc編譯標誌。arch 所有的特殊的體系結構的 都在這個目...