linux驅動開發學習筆記一:關於linux內核的一些基本概念

一、什麼是linux內核?

  • Linux是一種開源電腦操作系統內核。它是一個用C語言寫成,符合POSIX標準的類Unix操作系統。
  • 操作系統是一個用來和硬件打交道併爲用戶程序提供一個有限服務集的低級支撐軟件。一個計算機系統是一個硬件和軟件的共生體,它們互相依賴,不可分割。計算機的硬件,含有外圍設備、處理器、內存、硬盤和其他的電子設備組成計算機的發動機。但是沒有軟件來操作和控制它,自身是不能工作的。完成這個控制工作的軟件就稱爲操作系統,在Linux的術語中被稱爲“內核”,也可以稱爲“核心”
  • Linux內核的主要模塊(或組件)分以下幾個部分:存儲管理CPU和進程管理文件系統設備管理和驅動網絡通信,以及系統的初始化(引導)系統調用等。

二、linux內核的具體功能

  • 管理進程

  • 管理內存

  • 文件系統

  • 設備控制

  • 網絡管理

具體可以參考這篇文章:https://www.jianshu.com/p/d14b85853051

三、什麼是linux發行版?和linux內核有什麼關係?

  • Linux內核的發展過程中,我們還不得不提一下各種Linux發行版的作用,因爲正是它們推動了Linux的應用,從而也讓更多的人開始關注Linux

  • 一些組織或廠家,將Linux系統的內核與外圍實用程序(Utilities)軟件和文檔包裝起來,並提供一些系統安裝界面和系統配置、設定與管理工具,就構成了一種發行版本(distribution),Linux的發行版本其實就是Linux核心再加上外圍的實用程序組成的一個大軟件包而已。

  • 相對於Linux操作系統內核版本,發行版本的版本號隨發佈者的不同而不同,與Linux系統內核的版本號是相對獨立的。因此把SUSE、RedHat、Ubuntu、Slackware等直接說成是Linux是不確切的,它們是Linux的發行版本,更確切地說,應該叫做“以Linux爲核心的操作系統軟件包”

  • 根據GPL準則,這些發行版本雖然都源自一個內核,並且都有自己各自的貢獻,但都沒有自己的版權。Linux的各個發行版本(distribution),都是使用Linus主導開發併發布的同一個Linux內核,因此在內核層不存在什麼兼容性問題。每個版本都不一樣的感覺,只是在發行版本的最外層纔有所體現,而絕不是Linux本身特別是內核不統一或是不兼容。

四、我們爲什麼有時要重新編譯linux內核?

  • 新的內核修訂了舊內核的bug,並增加了許多新的特性。如果用戶想要使用這些新特性,或想根據自己的系統度身定製一個更高效,更穩定的內核,就需要重新編譯Linux內核。 通常,更新的內核會支持更多的硬件,具備更好的進程管理能力,運行速度更快、 更穩定,並且一般會修復老版本中發現的許多漏洞等,經常性地選擇升級更新的系統內核是Linux使用者的必要操作內容。

  • 或者是出於某種需求,比如對內核大小有要求,去掉內核中某些用不到的部分,這種場景往往出現在嵌入式系統中。

  • 或者自己修改了某部分內核代碼或者新寫了一個設備驅動,需要編譯後驗證功能。

五、系統移植用到了哪些文件?

  • linux內核編譯完成之後,會生成一個.zimage文件和一個.dtb文件,它們分別是鏡像設備樹

  • 我們在進行系統移植的時候,其實移植了四個文件,除了已經說到的這兩個之外,還有就是ubootrootfs,分別是用於啓動內核的引導程序根文件系統

  • 因此,也就是說引導程序鏡像設備樹以及根文件系統這四部分組成了一個系統。

六、結語

以上內容只是爲了提前對一些名詞有個整體的概念,至於ubootlinux內核的編譯以及根文件系統的詳細知識等後面學習到的時候我們再說,以上如果有什麼錯誤還望指正,謝謝!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章