528 linux核心學習 核心程序啟動分析

2021-10-19 11:35:39 字數 870 閱讀 2400

全部學習彙總:

最近補了一點基礎的概念,之前完全看不懂的**似乎有看懂了一丟丟。嘗試做乙個補充理解筆記。

這裡,增加了乙個理解說明,關於fork。之前,這個函式功能不了解,而這部分沒有源**存在於庫檔案,因此也沒去做深入的分析。現在大概看懂了,其實這裡是fork建立了乙個子程序。而子程序中,執行了init函式。

在我手中這份核心**中,存在兩個init函式,但是也非常明確,這裡的init就是main.c中的,因為另乙個是靜態函式無法在這裡呼叫。

接下來,再看看init中的相應**。

最開始,先執行了一部分驅動的設定,輸出了一些系統本身的資訊。

上面這部分**中,fork了乙個新的程序,並在子程序中關閉了乙個檔案識別符號,嘗試開啟乙個檔案,成功則退出。不成功,嘗試執行乙個其他的程式,失敗後退出且有乙個退出碼返回。如果成功,應該是進入相應的程式不再返回了。繼續往下,其實是父程序的處理,父程序會等待子程序的執行。

之後,父程序進入乙個死迴圈。在死迴圈中,又fork程序,失敗的時候列印失敗提示資訊。成功,則在fork出來的子程序中關閉了三個檔案識別符號。下面的幾行**,又涉及到了我不熟悉的函式。不過,從這裡看得出,其實266行會讓這個任務不再返回,因此正常執行的話這個迴圈中不會無限fork。繼續往後,有些異常處理以及同步操作。

有幾個不熟悉的函式,後面還是得要增補學習一下。

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核心學習筆記 核心同步

linux核心中執行的程式,時刻都要防止併發引起的競態。這將會導致資料結構被破壞,嚴重的時候會引起核心崩潰。所以核心同步技術對核心開發的驅動程式來說非常重要。不懂核心同步技術的人,是寫不出安全健壯的核心驅動程式來的。在學習核心同步技術之前需要掌握一下幾個概念。1 並行,併發與競態 在smp執行的li...