linux核心是什麼?它做什麼?

核心是與計算機中的硬體介面的易於更換的軟體的最低級別。它負責將所有以“使用者模式”執行的應用程式連線到物理硬體,並允許程序(稱為伺服器)使用程序間通訊(IPC)從彼此獲取資訊。...

linux核心是什麼?它做什麼? With over 13 million lines of code, the Linux kernel is one of the largest open source projects in the world, but what is a kernel and what is it used for?

什麼是核心(the kernel)?

核心是與計算機中的硬體介面的易於更換的軟體的最低級別。它負責將所有以“使用者模式”執行的應用程式連線到物理硬體,並允許程序(稱為伺服器)使用程序間通訊(IPC)從彼此獲取資訊。

不同型別的果仁

當然,在從頭開始構建核心時,有不同的方法來構建核心和體系結構方面的考慮。一般來說,大多數核心分為三種類型:單核、微核和雜交。Linux是單片核心,而OSX(XNU)和Windows7使用混合核心。讓我們快速瀏覽一下這三個類別,以便稍後更詳細地討論。

linux核心是什麼?它做什麼? Image by uptown popcorn

MicrokernelA microkernel只管理它所擁有的:CPU、記憶體和IPC。計算機中幾乎所有的東西都可以看作是一個附件,可以在使用者模式下處理。微核心具有可移植性的優勢,因為只要作業系統仍嘗試以相同的方式訪問硬體,它們就不必擔心您是否更換了顯示卡甚至作業系統。微核心佔用的記憶體和安裝空間也非常小,而且它們往往更安全,因為只有特定的程序在使用者模式下執行,而使用者模式沒有管理模式那樣的高許可權。

贊成的意見

  • 便攜性
  • 安裝佔地面積小
  • 記憶體佔用小
  • 安全

欺騙

  • 硬體透過驅動程式更加抽象
  • 硬體可能反應較慢,因為驅動程式處於使用者模式
  • 程序必須在佇列中等待以獲取資訊
  • 程序不等待就無法訪問其他程序

單片核心單片核心與微核心相反,因為它們不僅包含CPU、記憶體和IPC,還包含裝置驅動程式、檔案系統管理和系統伺服器呼叫等內容。單片核心往往更擅長訪問硬體和多工處理,因為如果一個程式需要從記憶體或執行的另一個程序獲取資訊,它有一條更直接的線路來訪問它,而不必在佇列中等待來完成任務。但是,這可能會導致問題,因為在管理模式下執行的事情越多,如果一個系統的行為不正常,那麼會導致系統崩潰的事情就越多。

贊成的意見

  • 程式更直接地訪問硬體
  • 流程之間更容易溝通
  • 如果您的裝置受支援,則無需額外安裝即可使用
  • 程序反應更快,因為沒有處理器時間的佇列

欺騙

  • 安裝佔地面積大
  • 大記憶體佔用
  • 安全性較低,因為所有操作都在管理模式下執行

linux核心是什麼?它做什麼? Image via schoschie on Flickr

Hybrid KernelHybrid kernels能夠選擇在使用者模式下執行什麼,在管理模式下執行什麼。通常情況下,諸如裝置驅動程式和檔案系統I/O之類的操作將在使用者模式下執行,而IPC和伺服器呼叫將保持在監控模式下。這兩方面都是最好的,但通常需要硬體**商做更多的工作,因為所有的驅動程式責任都由他們來承擔。它也可能有一些微核心固有的延遲問題。

贊成的意見

  • 開發人員可以選擇哪些在使用者模式下執行,哪些在主管模式下執行
  • 安裝佔用空間小於單片核心
  • 比其他型號更靈活

欺騙

  • 會和微核心一樣受到程序延遲的影響
  • 裝置驅動程式需要由使用者管理(通常)

linux核心檔案在哪裡?

linux核心是什麼?它做什麼?

在Ubuntu中,核心檔案儲存在/boot資料夾中,稱為vmlinuz version。vmlinuz這個名字來自於unix世界,60年代的時候,他們把核心簡單地稱為“unix”,所以Linux在90年代第一次開發核心時就開始把核心稱為“Linux”。

當開發虛擬記憶體以實現更簡單的多工處理能力時,“vm”被放在檔案的前面,以表明核心支援虛擬記憶體。有一段時間,Linux核心被稱為vmlinux,但是核心太大,無法容納可用的啟動記憶體,因此核心映像被壓縮,結尾的x被改為z,以顯示它是用zlib壓縮壓縮的。這種壓縮並不總是被使用,通常被LZMA或BZIP2代替,有些核心被簡單地稱為zImage。

版本編號將採用A.B.C.D格式,其中A.B可能是2.6,C是您的版本,D表示您的修補程式或修復程式。

linux核心是什麼?它做什麼?

在/boot資料夾中還有其他非常重要的檔案,稱為初始化.img-版本,系統地圖-版本和配置版本。initrd檔案用作一個小型RAM磁碟,用於提取和執行實際的核心檔案。這個系統地圖檔案用於在核心完全載入之前進行記憶體管理,配置檔案告訴核心在編譯核心映像時要將哪些選項和模組載入到核心映像中。

linux核心體系結構

因為Linux核心是單片的,所以與其他型別的核心相比,它的佔用空間最大,複雜性最高。這是一個設計特性,在Linux的早期受到了相當多的討論,仍然帶有一些與單片核心固有的設計缺陷。

Linux核心開發人員為繞過這些缺陷所做的一件事就是**可以在執行時載入和解除安裝的核心模組,這意味著您可以動態新增或刪除核心的特性。這不僅僅是向核心新增硬體功能,還包括執行伺服器程序的模組(如低階虛擬化),但在某些情況下,它還允許替換整個核心而無需重新啟動計算機。

想象一下,如果您可以升級到Windows service pack而不需要重新啟動…

核心模組

linux核心是什麼?它做什麼?

如果Windows已經安裝了所有可用的驅動程式,而您只需開啟所需的驅動程式,會怎麼樣?這基本上就是核心模組為Linux所做的事情。核心模組,也稱為可載入核心模組(loadable Kernel module,LKM),對於在不消耗所有可用記憶體的情況下保持核心與所有硬體一起工作是必不可少的。

模組通常會向基本核心新增裝置、檔案系統和系統呼叫等功能。LKM的副檔名為.ko,通常儲存在/lib/modules目錄中。由於模組化的特性,您可以透過使用menuconfig命令在啟動期間設定要載入或不載入的模組,或者透過編輯/boot/config檔案,或者使用modprobe命令動態地載入和解除安裝模組,來輕鬆地自定義核心。

第三方和封閉原始碼模組在某些發行版(如Ubuntu)中可用,並且在預設情況下可能不會安裝,因為這些模組的原始碼不可用。軟體開發人員(例如nVidia、ATI等)不提供原始碼,而是構建自己的模組並編譯所需的.ko檔案以供分發。雖然這些模組在beer中是免費的,但它們在speech中不是免費的,因此沒有包含在一些發行版中,因為維護人員覺得它透過提供非免費軟體“汙染”了核心。

核心並不神奇,但它對任何正常執行的計算機來說都是必不可少的。Linux核心與OSX和Windows不同,因為它包含核心級的驅動程式,並使許多受支援的東西“開箱即用”。希望你能對你的軟體和硬體是如何協同工作的,以及你需要什麼樣的檔案來引導你的電腦有更多的瞭解。

核心.orgImage英格里德拉爾

  • 發表於 2021-04-13 05:20
  • 閱讀 ( 33 )
  • 分類:網際網路

你可能感興趣的文章

7個偉大(但醜陋)的linux軟體程式

...可能是好事也可能是壞事,但爪子是非常靈活的。如果有什麼客戶端無法處理,它可能會有一個外掛來幫助解決這個問題。這可以讓你選擇任何你想要的功能,以幫助保持程式輕。例如,有一個外掛可以顯示HTML電子郵件(而不...

  • 發佈於 2021-03-12 03:18
  • 閲讀 ( 39 )

什麼是apk檔案,它做什麼?

... 所以apk是Android用來分發和安裝應用程式的核心格式。它們對於強大的Android使用者來說非常方便,但是你必須小心從哪裡下載它們。請嘗試這些安全的Android APK下載網站! ...

  • 發佈於 2021-03-12 04:43
  • 閲讀 ( 54 )

使用conky讓您的linux系統變得棒極了

...網路使用情況和硬碟利用率如何?這一美麗的桌面體驗的核心是康基。 ...

  • 發佈於 2021-03-12 15:38
  • 閲讀 ( 37 )

5 facebook限制和煩惱(以及如何解決)

... facebook讓你煩惱的是什麼? ...

  • 發佈於 2021-03-13 01:28
  • 閲讀 ( 51 )

我沒有windows或mac:我只使用linux的8個原因

...at一夜之間消失,Linux將會繼續。商業作業系統**商圍繞其核心產品構建了生態系統。Linux是一個生態系統。它以一種任何組織或實體都無法控制的方式提供計算。 ...

  • 發佈於 2021-03-13 02:59
  • 閲讀 ( 53 )

如何用gentoo完全控制你的電腦

...。儘管GNOME和KDE這樣的桌面環境是可用的,但Gentoo透過其核心安裝直接引導到命令列。Gentoo是一個最小的作業系統,沒有預裝軟體包。Gentoo是一個空白畫布,它甚至要求使用者在初始安裝時編譯核心。 ...

  • 發佈於 2021-03-13 12:40
  • 閲讀 ( 41 )

最新的linux作業系統,適用於各個領域

...服力的理由,比如嘗試Unity 8,更新的GNOME應用程式和Linux核心4.8。這六個升級到16.04xenialxerus的巨大原因證明了更新的LTS迭代是值得使用的。破折號不再顯示亞馬遜搜尋,有一個新的軟體中心,你可以移動到螢幕底部的啟動器。 ...

  • 發佈於 2021-03-16 08:05
  • 閲讀 ( 53 )

如何測試linux pc的效能

...次測試中,您可以指定不同的引數,例如測試例項數、CPU核心數、測試的積極性、執行時間等。 ...

  • 發佈於 2021-03-17 09:58
  • 閲讀 ( 48 )

什麼是cpu?它做什麼?

... 核心處理單元(CPU)通常被稱為計算機的大腦。雖然CPU只構成許多處理單元中的一個,但它是最重要的處理單元之一。它是計算機中執行計算、操作和執行程式的部分。 ...

  • 發佈於 2021-03-17 18:33
  • 閲讀 ( 54 )

為什麼windows提供linux核心會改變一切

... 乍一看,Windows作業系統中的Linux核心似乎並不太重要。畢竟,如果你已經在使用Windows,為什麼還要用Linux呢? ...

  • 發佈於 2021-03-20 05:49
  • 閲讀 ( 52 )
s60778954
s60778954

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章