一、什麼是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
文件,它們分別是鏡像
和設備樹
。 -
我們在進行系統移植的時候,其實移植了四個文件,除了已經說到的這兩個之外,還有就是
uboot
和rootfs
,分別是用於啓動內核的引導程序
和根文件系統
。 -
因此,也就是說
引導程序
、鏡像
、設備樹
以及根文件系統
這四部分組成了一個系統。
六、結語
以上內容只是爲了提前對一些名詞有個整體的概念,至於uboot
、linux內核的編譯
以及根文件系統
的詳細知識等後面學習到的時候我們再說,以上如果有什麼錯誤還望指正,謝謝!!!