自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

剖析 Linux 內(nèi)核在底層是如何工作的

系統(tǒng) Linux
您可以在太空、計算機、智能手表、手機、機器人和健康等許多不同領(lǐng)域看到 Linux 內(nèi)核。但是你有沒有想過 Linux 內(nèi)核在底層是如何工作的?

Linux 內(nèi)核就像一座橋梁,可以實現(xiàn)應(yīng)用程序和硬件之間的計算通信并管理系統(tǒng)的資源。Linus Torvalds 使用 C 和 Assembly 開發(fā)了 Linux 內(nèi)核,因此,他成功地創(chuàng)建了一個輕量級和可移植的內(nèi)核,并以開源的形式向公眾發(fā)布。

您可以在太空、計算機、智能手表、手機、機器人和健康等許多不同領(lǐng)域看到 Linux 內(nèi)核。但是你有沒有想過 Linux 內(nèi)核在底層是如何工作的?

Linux 下的硬件使用情況

首先,Linux 內(nèi)核控制在您打開計算機時運行哪些硬件以及以何種方式運行。此外,借助編程接口,控制高端軟件成為可能。舉一個這些控件的例子,您可以查看安裝在主板插槽中的硬件信息,并從這些詳細信息中受益。

此外,這個編程接口提供了一個抽象層。例如,如果您想與朋友進行視頻對話,則需要一個網(wǎng)絡(luò)攝像頭。抽象層使您使用的軟件可以使用此網(wǎng)絡(luò)攝像頭,無論其品牌和型號如何。這里的軟件只能使用 Linux 存在的接口。Linux 內(nèi)核將此接口的函數(shù)調(diào)用轉(zhuǎn)換為網(wǎng)絡(luò)攝像頭所需的實際硬件命令。

使用/proc和/sys虛擬文件系統(tǒng),Linux 內(nèi)核可以導(dǎo)出有關(guān)它檢測到的硬件的詳細信息。您可以在下面看到一些用于此目的的工具以及它們導(dǎo)出的設(shè)備和卡:

  • lspci:用于 PCI 設(shè)備
  • lsusb:用于 USB 設(shè)備
  • lspcmcia: 用于 PCMCIA 卡

如您所見,上面屏幕截圖中的 Linux 發(fā)行版在 VMware 上運行。但是,您有機會看到很多信息,例如 VGA、USB 控制器、橋接器和 SATA 控制器。

您還可以使用-v參數(shù)來獲取更詳細的信息。

在 Linux 內(nèi)核中,應(yīng)用程序通常通過/dev目錄中存在的特殊文件訪問設(shè)備。這些特殊文件代表磁盤驅(qū)動器和其他物理設(shè)備。/dev/hda、/dev/sdc、/dev/sdc3、/ dev/input/mouse0和dev/snd/*等文件就是這些特殊文件的示例。

Linux 文件系統(tǒng)管理

文件系統(tǒng)是 Linux 內(nèi)核中最著名的組件之一。Linux 的文件系統(tǒng)是其最大的優(yōu)點之一。Linux 系統(tǒng)上的所有文件都集中在一個分支中。因此,用戶可以利用這個層次結(jié)構(gòu)到達他們想要的地方。

此層次結(jié)構(gòu)的起點是根目錄 ( / )。其他子目錄在根目錄下。/下最常用的子目錄是/home目錄。該子目錄包含其他子目錄,每個目錄都有存儲實際數(shù)據(jù)的文件。

例如,您可以考慮桌面上的文本文件。如果您在桌面上創(chuàng)建一個名為helloworld.txt的文本文件,則可以將其稱為/home/linuxmi/Desktop/helloworld.txt。這里/linuxmi 是我的用戶名,你們的會有所不同。因為這個子目錄名取決于你當(dāng)前的用戶名。使用這個命名系統(tǒng),Linux 內(nèi)核在磁盤上存在的實際存儲和物理存儲之間進行轉(zhuǎn)換。

此外,Linux 內(nèi)核可以集成來自多個磁盤的數(shù)據(jù)。這就是安裝系統(tǒng)發(fā)揮作用的地方。它使用根系統(tǒng)中的一個磁盤并將其他磁盤安裝到層次結(jié)構(gòu)中的現(xiàn)有目錄。然后將其他磁盤放置在安裝點下。這允許用戶將/home目錄存儲在另一個硬盤上,該硬盤還包含其他子目錄。

當(dāng)您將磁盤掛載到/home目錄時,您可以從正常位置訪問這些目錄。因此,/home/linuxmi/Desktop/helloworld.txt等路徑繼續(xù)有效。

您可以使用findmnt -A命令查看系統(tǒng)上文件之間的掛載點。

對于許多文件系統(tǒng)格式,您可以將數(shù)據(jù)物理存儲在磁盤上。Linux 上最廣為人知的是ext2、ext3和ext4文件系統(tǒng)格式。但是,還有許多其他文件系統(tǒng)格式。在任何情況下,您都必須在掛載文件系統(tǒng)之前對其進行格式化。為此,您可以使用mkfs.ext3(mkfs 代表 make file system,而 ext3 是文件系統(tǒng))之類的命令。

這些命令接受您要格式化的設(shè)備文件路徑作為參數(shù)。這是一種破壞性操作,如果您不想擦除或重置文件系統(tǒng),則應(yīng)謹慎使用。

除此之外,還有Linux 內(nèi)核使用的NFS 等網(wǎng)絡(luò)文件系統(tǒng)。NFS 是一種網(wǎng)絡(luò)文件系統(tǒng),其中數(shù)據(jù)不存儲在本地磁盤上。使用 NFS,數(shù)據(jù)通過網(wǎng)絡(luò)傳輸?shù)酱鎯?shù)據(jù)的服務(wù)器。由于數(shù)據(jù)將在服務(wù)器上,用戶不必經(jīng)常處理它。他們也可以像往常一樣使用傳統(tǒng)的 Linux 分層文件系統(tǒng)。

共享功能操作

Linux系統(tǒng)中的所有軟件都有共同的功能。這就是為什么這些函數(shù)是 Linux 內(nèi)核的核心。例如,打開一個文件時,你可以只用文件名打開它,而不知道文件的物理存儲位置,以及它將使用什么功能和操作。所有這些功能都已經(jīng)存在于內(nèi)核中。

您可以將文件存儲在硬盤上,在多個硬盤之間拆分,甚至將其保存在遠程服務(wù)器上。在這種情況下,共享文件通信功能很重要。無論數(shù)據(jù)如何移動,應(yīng)用程序都會交換數(shù)據(jù)。共享通信功能可以進行這些數(shù)據(jù)交換。這一舉措可以通過無線網(wǎng)絡(luò)甚至固定電話線進行。

Linux 中的進程管理

對內(nèi)存中的數(shù)據(jù)或信息進行操作的程序的活動實例稱為進程。Linux 內(nèi)核的任務(wù)是生成并跟蹤這些內(nèi)存區(qū)域。內(nèi)核為正在運行的程序分配內(nèi)存,并將可執(zhí)行代碼從文件系統(tǒng)加載到內(nèi)存中。緊接著,內(nèi)核運行代碼。

Linux 內(nèi)核支持多任務(wù)處理。它能夠同時運行多個進程。但是,在任何給定的時間范圍內(nèi)只有一筆交易。但是,Linux 內(nèi)核將時間分成小塊,因此每個過程都是按順序進行的。

由于這些小時間段以毫秒為增量,因此它們僅在特定時間處于活動狀態(tài),其余時間保持空閑狀態(tài)。Linux 內(nèi)核在這里的工作是通過一次運行多個進程來最大化性能。

如果時隙太長,正在運行的應(yīng)用程序可能不會像您希望的那樣響應(yīng)。如果時間框架太短,任務(wù)更改可能會出現(xiàn)問題。根據(jù)進程的優(yōu)先級,此處所需的時間幀間隔會有所不同。您之前可能聽說過高優(yōu)先級進程和低優(yōu)先級進程。這是 Linux 內(nèi)核控制的功能之一。

這種解釋并不總是正確的。真正的限制是每個處理器內(nèi)核一次只能有一個工作進程。多處理器系統(tǒng)允許多個進程并行運行。一個基本系統(tǒng)幾乎總是有幾十個正在運行的進程。

Linux 中的訪問權(quán)限

與其他操作系統(tǒng)一樣,您可以在 Linux 系統(tǒng)上創(chuàng)建許多用戶。在這種情況下,有一個支持單個用戶和組的權(quán)限管理系統(tǒng)。這就是文件和用戶權(quán)限發(fā)揮作用的地方。

Linux 內(nèi)核管理數(shù)據(jù)并檢查每個進程的必要權(quán)限。例如,如果您嘗試打開文件,內(nèi)核必須根據(jù)訪問權(quán)限檢查進程 ID。如果內(nèi)核檢查并看到您有權(quán)限,它將打開該文件。

Linux 內(nèi)核控制一切

正如您所看到的,Linux 內(nèi)核監(jiān)督從您的文件安全到創(chuàng)建用戶和從網(wǎng)絡(luò)下載文件的所有事情。一切都有一定的順序。每個用戶都有權(quán)限。Linux內(nèi)核管理進程和時隙以獲得最佳性能。

此外,文件系統(tǒng)是將 Linux 內(nèi)核區(qū)別于其他操作系統(tǒng)的最大特性之一,它非常重要。Linux 不是一個隱藏的盒子。相反,所有文件和源代碼都是可訪問的。為了更好地理解 Linux 內(nèi)核的實用性和強大特性,您可以研究Linux目錄系統(tǒng)層次結(jié)構(gòu)。

責(zé)任編輯:趙寧寧 來源: Linux迷
相關(guān)推薦

2009-03-27 18:27:48

2023-04-19 08:13:02

EpollLinux

2010-01-07 13:44:54

Linux內(nèi)核代碼

2009-06-17 17:00:03

2015-09-11 15:56:52

內(nèi)核構(gòu)建Linux

2021-08-23 06:59:38

Linux內(nèi)核代碼

2020-11-20 07:55:55

Linux內(nèi)核映射

2017-03-03 09:40:52

Linux休眠喚醒

2025-04-18 04:05:00

2025-04-01 02:00:22

2025-04-02 00:33:00

2011-08-08 13:45:58

jQuery

2021-05-10 17:20:55

AIOps開發(fā)人員人工智能

2021-01-26 09:14:19

Linux內(nèi)核模塊

2021-10-06 20:00:08

LinuxLinux內(nèi)核Kasan

2023-06-09 14:01:00

架構(gòu)程序APP

2009-06-17 11:58:19

Linux

2009-06-17 13:03:42

Linux內(nèi)核

2025-03-05 00:49:00

Win32源碼malloc

2022-04-13 14:43:05

JVM同步鎖Monitor 監(jiān)視
點贊
收藏

51CTO技術(shù)棧公眾號