溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Linux的內(nèi)核和文件權(quán)限介紹

發(fā)布時(shí)間:2021-09-13 16:56:47 來源:億速云 閱讀:116 作者:chen 欄目:系統(tǒng)運(yùn)維

這篇文章主要講解了“Linux的內(nèi)核和文件權(quán)限介紹”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Linux的內(nèi)核和文件權(quán)限介紹”吧!

 

什么是 Linux ?

如果你以前從未接觸過Linux,可能就不清楚為什么會(huì)有這么多不同的Linux發(fā)行版。在查看Linux軟件包時(shí),你肯定被發(fā)行版、LiveCD和GNU之類的術(shù)語搞暈過。初次進(jìn)入Linux世界會(huì)讓人覺得不那么得心應(yīng)手。在開始學(xué)習(xí)命令和腳本之前,本章將為你稍稍揭開Linux系統(tǒng)的神秘面紗。首先,Linux可劃分為以下四部分:

  1. ? Linux內(nèi)核

  2. ? GNU工具鏈

  3. ? GUI桌面環(huán)境

  4. ? 應(yīng)用軟件 ...

|--------------------------| | APPS | 應(yīng)用軟件 |--------------------------| | | GUI桌面環(huán)境 | GUI |-------------| | | GNU | GNU工具鏈 |--------------------------| | kernel | Linux內(nèi)核 |--------------------------| | hardware | 計(jì)算機(jī)硬件 ----------------------------

一. Linux 內(nèi)核

Linux系統(tǒng)的核心是內(nèi)核。內(nèi)核控制著計(jì)算機(jī)系統(tǒng)上的所有硬件和軟件,在必要時(shí)分配硬件,并根據(jù)需要執(zhí)行軟件。

  • 系統(tǒng)內(nèi)存管理

  • 應(yīng)用程序管理

  • 硬件設(shè)備管理

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

1. 系統(tǒng)內(nèi)存管理

操作系統(tǒng)內(nèi)核的主要功能之一就是內(nèi)存管理。內(nèi)核不僅管理服務(wù)器上的可用物理內(nèi)存,還可以創(chuàng)建和管理虛擬內(nèi)存(即實(shí)際并不存在的內(nèi)存)

  • 內(nèi)核通過硬盤上的存儲(chǔ)空間來實(shí)現(xiàn)虛擬內(nèi)存,這塊區(qū)域稱為交換空間(swap  space)。內(nèi)核不斷地在交換空間和實(shí)際的物理內(nèi)存之間反復(fù)交換虛擬內(nèi)存中的內(nèi)容。這使得系統(tǒng)以為它擁有比物理內(nèi)存更多的可用內(nèi)存

  • Linux系統(tǒng)內(nèi)存映射

|---------|             ----------- |         |             | 物理內(nèi)存 | |         |             /---------- |         |    --------- | 虛擬內(nèi)存 | —— |  內(nèi)核  | |         |    --------- |         |             \----------  |         |             | 交換空間 | |---------|             -----------

2. 應(yīng)用程序管理

Linux操作系統(tǒng)將運(yùn)行中的程序稱為進(jìn)程。進(jìn)程可以在前臺(tái)運(yùn)行,將輸出顯示在屏幕上,也可以在后臺(tái)運(yùn)行,隱藏到幕后。內(nèi)核控制著Linux系統(tǒng)如何管理運(yùn)行在系統(tǒng)上的所有進(jìn)程。

  • 內(nèi)核創(chuàng)建了***個(gè)進(jìn)程(稱為init進(jìn)程)來啟動(dòng)系統(tǒng)上所有其他進(jìn)程。當(dāng)內(nèi)核啟動(dòng)時(shí),它會(huì)將init進(jìn)程加載到虛擬內(nèi)存中。內(nèi)核在啟動(dòng)任何其他進(jìn)程時(shí),都會(huì)在虛擬內(nèi)存中給新進(jìn)程分配一塊專有區(qū)域來存儲(chǔ)該進(jìn)程用到的數(shù)據(jù)和代碼。

  • Linux操作系統(tǒng)有5個(gè)啟動(dòng)運(yùn)行級(jí)

    • 運(yùn)行級(jí)為1時(shí),只啟動(dòng)基本的系統(tǒng)進(jìn)程以及一個(gè)控制臺(tái)終端進(jìn)程。我們稱之為單用戶模式。單用戶模式通常用來在系統(tǒng)有問題時(shí)進(jìn)行緊急的文件系統(tǒng)維護(hù)。顯然,在這種模式下,僅有一個(gè)人(通常是系統(tǒng)管理員)能登錄到系統(tǒng)上操作數(shù)據(jù)。

    • 標(biāo)準(zhǔn)的啟動(dòng)運(yùn)行級(jí)是3。在這個(gè)運(yùn)行級(jí)上,大多數(shù)應(yīng)用軟件,比如網(wǎng)絡(luò)支持程序,都會(huì)啟動(dòng)。

    • Linux中常見的運(yùn)行級(jí)是5。在這個(gè)運(yùn)行級(jí)上系統(tǒng)會(huì)啟動(dòng)圖形化的X Window系統(tǒng),允許用戶通過圖形化桌面窗口登錄系統(tǒng)。

3. 硬件設(shè)備管理

內(nèi)核的另一職責(zé)是管理硬件設(shè)備。任何Linux系統(tǒng)需要與之通信的設(shè)備,都需要在內(nèi)核代碼中加入其驅(qū)動(dòng)程序代碼。驅(qū)動(dòng)程序代碼相當(dāng)于應(yīng)用程序和硬件設(shè)備的中間人,允許內(nèi)核與設(shè)備之間交換數(shù)據(jù)。在Linux內(nèi)核中有兩種方法用于插入設(shè)備驅(qū)動(dòng)代碼:

  • 編譯進(jìn)內(nèi)核的設(shè)備驅(qū)動(dòng)代碼

  • 可插入內(nèi)核的設(shè)備驅(qū)動(dòng)模塊

以前,插入設(shè)備驅(qū)動(dòng)代碼的唯一途徑是重新編譯內(nèi)核。每次給系統(tǒng)添加新設(shè)備,都要重新編譯一遍內(nèi)核代碼。隨著Linux內(nèi)核支持的硬件設(shè)備越來越多,這個(gè)過程變得越來越低效。不過好在Linux開發(fā)人員設(shè)計(jì)出了一種更好的將驅(qū)動(dòng)代碼插入運(yùn)行中的內(nèi)核的方法。

開發(fā)人員提出了內(nèi)核模塊的概念。它允許將驅(qū)動(dòng)代碼插入到運(yùn)行中的內(nèi)核而無需重新編譯內(nèi)核。同時(shí),當(dāng)設(shè)備不再使用時(shí)也可將內(nèi)核模塊從內(nèi)核中移走。這種方式極大地簡化和擴(kuò)展了硬件設(shè)備在Linux上的使用。

Linux系統(tǒng)將硬件設(shè)備當(dāng)成特殊的文件,稱為設(shè)備文件。設(shè)備文件有3種分類:

字符型設(shè)備文件

字符型設(shè)備文件是指處理數(shù)據(jù)時(shí)每次只能處理一個(gè)字符的設(shè)備。大多數(shù)類型的調(diào)制解調(diào)器和終端都是作為字符型設(shè)備文件創(chuàng)建的。

塊設(shè)備文件

塊設(shè)備文件是指處理數(shù)據(jù)時(shí)每次能處理大塊數(shù)據(jù)的設(shè)備,比如硬盤。

網(wǎng)絡(luò)設(shè)備文件

網(wǎng)絡(luò)設(shè)備文件是指采用數(shù)據(jù)包發(fā)送和接收數(shù)據(jù)的設(shè)備,包括各種網(wǎng)卡和一個(gè)特殊的回環(huán)設(shè)備。這個(gè)回環(huán)設(shè)備允許Linux系統(tǒng)使用常見的網(wǎng)絡(luò)編程協(xié)議同自身通信。

Linux為系統(tǒng)上的每個(gè)設(shè)備都創(chuàng)建一種稱為節(jié)點(diǎn)的特殊文件。與設(shè)備的所有通信都通過設(shè)備節(jié)點(diǎn)完成。每個(gè)節(jié)點(diǎn)都有唯一的數(shù)值對(duì)供Linux內(nèi)核標(biāo)識(shí)它。數(shù)值對(duì)包括一個(gè)主設(shè)備號(hào)和一個(gè)次設(shè)備號(hào)。類的設(shè)備被劃分到同樣的主設(shè)備號(hào)下。次設(shè)備號(hào)用于標(biāo)識(shí)主設(shè)備組下的某個(gè)特定設(shè)備。

4. 文件系統(tǒng)管理

不同于其他一些操作系統(tǒng),Linux內(nèi)核支持通過不同類型的文件系統(tǒng)從硬盤中讀寫數(shù)據(jù)。除

了自有的諸多文件系統(tǒng)外,Linux還支持從其他操作系統(tǒng)(比如Microsoft Windows)采用的文件

系統(tǒng)中讀寫數(shù)據(jù)。內(nèi)核必須在編譯時(shí)就加入對(duì)所有可能用到的文件系統(tǒng)的支持。表1-1列出了

Linux系統(tǒng)用來讀寫數(shù)據(jù)的標(biāo)準(zhǔn)文件系統(tǒng)。

ext      | Linux擴(kuò)展文件系統(tǒng),最早的Linux文件系統(tǒng) ext2     | 第二擴(kuò)展文件系統(tǒng),在ext的基礎(chǔ)上提供了更多的功能 ext3     | 第三擴(kuò)展文件系統(tǒng),支持日志功能 ext4     | 第四擴(kuò)展文件系統(tǒng),支持高級(jí)日志功能 hpfs     | OS/2高性能文件系統(tǒng) jfs      | IBM日志文件系統(tǒng) iso9660  | ISO 9660文件系統(tǒng)(CD-ROM) minix    | MINIX文件系統(tǒng) msdos    | 微軟的FAT16 ncp      | Netware文件系統(tǒng) nfs      | 網(wǎng)絡(luò)文件系統(tǒng) ntfs     | 支持Microsoft NT文件系統(tǒng) proc     | 訪問系統(tǒng)信息 ReiserFS | 高級(jí)Linux文件系統(tǒng),能提供更好的性能和硬盤恢復(fù)功能 smb      | 支持網(wǎng)絡(luò)訪問的Samba SMB文件系統(tǒng) sysv     | 較早期的Unix文件系統(tǒng) ufs      | BSD文件系統(tǒng) umsdos   | 建立在msdos上的類Unix文件系統(tǒng) vfat     | Windows 95文件系統(tǒng)(FAT32) XFS      | 高性能64位日志文件系統(tǒng)
  • Linux服務(wù)器所訪問的所有硬盤都必須格式化成表1-1所列文件系統(tǒng)類型中的一種。

  • Linux內(nèi)核采用虛擬文件系統(tǒng)(Virtual File  System,VFS)作為和每個(gè)文件系統(tǒng)交互的接口。這為Linux內(nèi)核同任何類型文件系統(tǒng)通信提供了一個(gè)標(biāo)準(zhǔn)接口。當(dāng)每個(gè)文件系統(tǒng)都被掛載和使用時(shí),VFS將信息都緩存在內(nèi)存中。

2. GNU工具鏈

GNU組織(GNU是GNU’s Not Unix的縮寫)開發(fā)了一套完整的Unix工具,但沒有可以運(yùn)行它們的內(nèi)核系統(tǒng)。這些工具是在名為開源軟件(open  source software,OSS)的軟件理念下開發(fā)的。

開源軟件理念允許程序員開發(fā)軟件,并將其免費(fèi)發(fā)布。任何人都可以使用、修改該軟件,或?qū)⒃撥浖蛇M(jìn)自己的系統(tǒng),無需支付任何授權(quán)費(fèi)用。將Linus的Linux內(nèi)核和GNU操作系統(tǒng)工具整合起來,就產(chǎn)生了一款完整的、功能豐富的免費(fèi)操作系統(tǒng)。

盡管通常將Linux內(nèi)核和GNU工具的結(jié)合體稱為Linux,  但你也會(huì)在互聯(lián)網(wǎng)上看到一些Linux純粹主義者將其稱為GNU/Linux系統(tǒng),藉此向GNU組織所作的貢獻(xiàn)致意

核心GNU工具

GNU coreutils軟件包由三部分構(gòu)成:

  • 用以處理文件的工具

  • 用以操作文本的工具

  • 用以管理進(jìn)程的工具

Shell

GNU/Linux shell是一種特殊的交互式工具。它為用戶提供了啟動(dòng)程序、管理文件系統(tǒng)中的文件以及運(yùn)行在Linux系統(tǒng)上的進(jìn)程的途徑。  shell的核心是命令行提示符。命令行提示符是shell負(fù)責(zé)交互的部分。它允許你輸入文本命令,然后解釋命令,并在內(nèi)核中執(zhí)行。

  • 我們?cè)诿钚兄休斎氲拿疃际荊NU工具鏈提供,而非Linux內(nèi)核

  • 所有Linux發(fā)行版默認(rèn)的shell都是bash shell。bash shell由GNU項(xiàng)目開發(fā),被當(dāng)作標(biāo)準(zhǔn)Unix shell——Bourne  shell(以創(chuàng)建者的名字命名)的替代品。

  • Linux中常見的幾種不同 shell

bash | 由GNU項(xiàng)目開發(fā),被當(dāng)作標(biāo)準(zhǔn)shellash | 運(yùn)行在內(nèi)存受限環(huán)境中簡單的輕量級(jí)shell,但與bash shell完全兼容korn |  與Bourne shell兼容的編程shell,但支持如關(guān)聯(lián)數(shù)組和浮點(diǎn)運(yùn)算等一些高級(jí)的編程特性tcsh |  將C語言中的一些元素引入到shell腳本中的shellzsh |  結(jié)合了bash、tcsh和korn的特性,同時(shí)提供高級(jí)編程特性、共享歷史文件和主題化提示符的高級(jí)shell

3. Linux 桌面環(huán)境

在Linux的早期(20世紀(jì)90年代初期),能用的只有一個(gè)簡單的Linux操作系統(tǒng)文本界面。這個(gè)文本界面允許系統(tǒng)管理員運(yùn)行程序,控制程序的執(zhí)行,以及在系統(tǒng)中移動(dòng)文件。

隨著Microsoft  Windows的普及,電腦用戶已經(jīng)不再滿足于對(duì)著老式的文本界面工作了。這推動(dòng)了OSS社區(qū)的更多開發(fā)活動(dòng),Linux圖形化桌面環(huán)境應(yīng)運(yùn)而生。

  • X Window系統(tǒng)

有兩個(gè)基本要素決定了視頻環(huán)境:顯卡和顯示器。要在電腦上顯示絢麗的畫面,Linux軟件就得知道如何與這兩者互通。X  Window系統(tǒng)是圖形顯示的核心部分。

X Window系統(tǒng),是直接和PC上的顯卡及顯示器打交道的底層程序。它控制著Linux程序如何在電腦上顯示出漂亮的窗口和圖形

  • 現(xiàn)在流行的桌面環(huán)境有 Unity GNOME Cinnamon Xfce 等

Linux 發(fā)行版

已經(jīng)了解了構(gòu)成完整Linux系統(tǒng)所需要的4個(gè)關(guān)鍵部件,那你可能在考慮要怎樣才能把它們組成一個(gè)Linux系統(tǒng)。幸運(yùn)的是,已經(jīng)有人為你做好這些了

核心 Linux 發(fā)行版

核心Linux發(fā)行版含有內(nèi)核、一個(gè)或多個(gè)圖形化桌面環(huán)境以及預(yù)編譯好的幾乎所有能見到的Linux應(yīng)用。它提供了一站式的完整Linux安裝

Slackware | 最早的Linux發(fā)行版中的一員,在Linux極客中比較流行 Redhat    | 主要用于Internet服務(wù)器的商業(yè)發(fā)行版 Gentoo    | 為高級(jí)Linux用戶設(shè)計(jì)的發(fā)行版,僅包含Linux源代碼 openSUSE  | 用于商用和家用的發(fā)行版 Debian    | 在Linux專家和商用Linux產(chǎn)品中流行的發(fā)行版

系統(tǒng)目錄

|—— bin             # 二進(jìn)制目錄,存放用戶級(jí)的GNU工具(bash命令) |—— boot            # 啟動(dòng)目錄,存放用于系統(tǒng)引導(dǎo)時(shí)使用的各種文件 |—— dev             # 設(shè)備目錄,存放硬件設(shè)備,創(chuàng)建設(shè)備節(jié)點(diǎn) |—— etc             # 系統(tǒng)配置文件目錄,存放系統(tǒng)管理和配置文件 |—— home            # 普通用戶的主目錄 |—— lib             # 庫目錄,存放系統(tǒng)和應(yīng)用程序的動(dòng)態(tài)鏈接庫 |—— lost+found      # 這個(gè)目錄平時(shí)是空的,系統(tǒng)非正常關(guān)機(jī)而留下“無家可歸”的文件 |—— media           # 媒體目錄,可移動(dòng)媒體設(shè)備的常用掛載點(diǎn) |—— mnt             # 掛載目錄,另一個(gè)可移動(dòng)媒體設(shè)備的常用掛載點(diǎn) |—— opt             # 可選目錄,常用于存放第三方軟件包和數(shù)據(jù)文件 |—— proc            # 進(jìn)程目錄,存放現(xiàn)有硬件及當(dāng)前進(jìn)程的相關(guān)信息,是系統(tǒng)內(nèi)存的映射??芍苯釉L問這個(gè)目錄來獲取系統(tǒng)信息 |—— root            # 超級(jí)用戶的主目錄 |—— run             # 運(yùn)行目錄,存放系統(tǒng)運(yùn)作時(shí)的運(yùn)行時(shí)數(shù)據(jù) |—— sbin            # 系統(tǒng)二進(jìn)制目錄,存放許多GNU管理員級(jí)工具 |—— srv             # 服務(wù)目錄,存放本地服務(wù)的相關(guān)文件 |—— sys             # 系統(tǒng)目錄,存放系統(tǒng)硬件信息的相關(guān)文件 |—— tmp             # 臨時(shí)目錄,可以在該目錄中創(chuàng)建和刪除臨時(shí)工作文件,重啟后清空 |—— usr             # 用戶二進(jìn)制目錄,大量用戶級(jí)的GNU工具和數(shù)據(jù)文件都存儲(chǔ)在這里 |   |—— bin         # 包含系統(tǒng)安裝的可執(zhí)行程序。通常,這個(gè)目錄會(huì)包含許多程序 |   |—— games       #  |   |—— include     # 寫程序需要使用到的一些頭文件 |   |—— lib         # 包含由/usr/bin 目錄中的程序所用的共享庫 |   |—— local       # 是非系統(tǒng)發(fā)行版自帶,卻打算讓系統(tǒng)使用的程序的安裝目錄。 通常,由源碼編譯的程序會(huì)安裝在/usr/local/bin 目錄下 |   |—— sbin        # 包含許多系統(tǒng)管理程序 |   |—— share       # 存放幫助文檔和共享文件 |   |—— src         #  |—— var             # 可變目錄,用以存放經(jīng)常變化的文件,比如日志文件

文件權(quán)限-權(quán)限符

  • 命令行執(zhí)行: ls -l

drwxr-xr-x  # 文件類型  屬主權(quán)限 成員權(quán)限 其他用戶權(quán)限   d        rwx     r-x     r-x  |—— 文件類型 |   |—— - # 文件 |   |—— d # 文件夾 |   |—— l # 鏈接 |   |—— c # 字符型設(shè)備 |   |—— b # 塊設(shè)備 |   |—— n # 網(wǎng)絡(luò)設(shè)備 | |—— r # 可讀權(quán)限 |—— w # 可寫權(quán)限 |—— x # 可執(zhí)行權(quán)限

文件系統(tǒng)

  • ext

Linux操作系統(tǒng)中引入的最早的文件系統(tǒng)叫作擴(kuò)展文件系統(tǒng) (extended  filesystem,簡記為ext)。它為Linux提供了一個(gè)基本的類Unix文件系統(tǒng):使用虛擬目錄來操作硬件設(shè)備,在物理設(shè)備上按定長的塊來存儲(chǔ)數(shù)據(jù)。

ext文件系統(tǒng)采用名為索引節(jié)點(diǎn)的系統(tǒng)來存放虛擬目錄中所存儲(chǔ)文件的信息。索引節(jié)點(diǎn)系統(tǒng)在每個(gè)物理設(shè)備中創(chuàng)建一個(gè)單獨(dú)的表(稱為索引節(jié)點(diǎn)表)來存儲(chǔ)這些文件的信息。存儲(chǔ)在虛擬目錄中的每一個(gè)文件在索引節(jié)點(diǎn)表中都有一個(gè)條目。ext文件系統(tǒng)名稱中的extended部分來自其跟蹤的每個(gè)文件的額外數(shù)據(jù)

- 文件名 - 文件大小 - 文件的屬主 - 文件的屬組 - 文件的訪問權(quán)限 - 指向存有文件數(shù)據(jù)的每個(gè)硬盤塊的指針

Linux通過唯一的數(shù)值(稱作索引節(jié)點(diǎn)號(hào))來引用索引節(jié)點(diǎn)表中的每個(gè)索引節(jié)點(diǎn),這個(gè)值是創(chuàng)建文件時(shí)由文件系統(tǒng)分配的。文件系統(tǒng)通過索引節(jié)點(diǎn)號(hào)而不是文件全名及路徑來標(biāo)識(shí)文件。

  • ext2

最早的ext文件系統(tǒng)有不少限制,比如文件大小不得超過2 GB。在Linux出現(xiàn)后不久,ext文件系統(tǒng)就升級(jí)到了第二代擴(kuò)展文件系統(tǒng),叫作ext2

日志文件系統(tǒng)

日志文件系統(tǒng)為Linux系統(tǒng)增加了一層安全性。它不再使用之前先將數(shù)據(jù)直接寫入存儲(chǔ)設(shè)備再更新索引節(jié)點(diǎn)表的做法,而是先將文件的更改寫入到臨時(shí)文件(稱作日志,journal)中

在數(shù)據(jù)成功寫到存儲(chǔ)設(shè)備和索引節(jié)點(diǎn)表之后,再刪除對(duì)應(yīng)的日志條目。如果系統(tǒng)在數(shù)據(jù)被寫入存儲(chǔ)設(shè)備之前崩潰或斷電了,日志文件系統(tǒng)下次會(huì)讀取日志文件并處理上次留下的未寫入的數(shù)據(jù)

  • ext3

2001年,ext3文件系統(tǒng)被引入Linux內(nèi)核中,直到最近都是幾乎所有Linux發(fā)行版默認(rèn)的文件系統(tǒng)。它采用和ext2文件系統(tǒng)相同的索引節(jié)點(diǎn)表結(jié)構(gòu),但給每個(gè)存儲(chǔ)設(shè)備增加了一個(gè)日志文件,以將準(zhǔn)備寫入存儲(chǔ)設(shè)備的數(shù)據(jù)先記入日志。

  • ext4

ext4文件系統(tǒng)在 2008 年受到Linux內(nèi)核官方支持,現(xiàn)在已是大多數(shù)流行的Linux發(fā)行版采用的默認(rèn)文件系統(tǒng)

除了支持?jǐn)?shù)據(jù)壓縮和加密,ext4文件系統(tǒng)還支持一個(gè)稱作區(qū)段(extent)的特性。區(qū)段在存儲(chǔ)設(shè)備上按塊分配空間,但在索引節(jié)點(diǎn)表中只保存起始?jí)K的位置。由于無需列出所有用來存儲(chǔ)文件中數(shù)據(jù)的數(shù)據(jù)塊,它可以在索引節(jié)點(diǎn)表中節(jié)省一些空間。

ext4還引入了塊預(yù)分配技術(shù)(block  preallocation)。如果你想在存儲(chǔ)設(shè)備上給一個(gè)你知道要變大的文件預(yù)留空間,ext4文件系統(tǒng)可以為文件分配所有需要用到的塊,而不僅僅是那些現(xiàn)在已經(jīng)用到的塊。ext4文件系統(tǒng)用  0 填滿預(yù)留的數(shù)據(jù)塊,不會(huì)將它們分配給其他文件

Linux 中的 LVM

Linux LVM是由Heinz  Mauelshagen開發(fā)的,于1998年發(fā)布到了Linux社區(qū)。它允許你在Linux上用簡單的命令行命令管理一個(gè)完整的邏輯卷管理環(huán)境

  • LVM1

最初的LVM包于1998年發(fā)布,只能用于Linux內(nèi)核2.4版本。它僅提供了基本的邏

  • LVM2

LVM的更新版本,可用于Linux內(nèi)核2.6版本。它在標(biāo)準(zhǔn)的LVM1功能外提供了額外的功能。

  • 快照

最初的Linux  LVM允許你在邏輯卷在線的狀態(tài)下將其復(fù)制到另一個(gè)設(shè)備。這個(gè)功能叫作快照。在備份由于高可靠性需求而無法鎖定的重要數(shù)據(jù)時(shí),快照功能非常給力。傳統(tǒng)的備份方法在將文件復(fù)制到備份媒體上時(shí)通常要將文件鎖定??煺赵试S你在復(fù)制的同時(shí),保證運(yùn)行關(guān)鍵任務(wù)的Web服務(wù)器或數(shù)據(jù)庫服務(wù)器繼續(xù)工作。遺憾的是,LVM1只允許你創(chuàng)建只讀快照。一旦創(chuàng)建了快照,就不能再寫入東西了

LVM2允許你創(chuàng)建在線邏輯卷的可讀寫快照。有了可讀寫的快照,就可以刪除原先的邏輯卷,然后將快照作為替代掛載上。這個(gè)功能對(duì)快速故障轉(zhuǎn)移或涉及修改數(shù)據(jù)的程序試驗(yàn)(如果失敗,需要恢復(fù)修改過的數(shù)據(jù))非常有用。

  • 條帶化

LVM2提供的另一個(gè)引人注目的功能是條帶化(striping)。有了條帶化,可跨多個(gè)物理硬盤創(chuàng)建邏輯卷。當(dāng)Linux  LVM將文件寫入邏輯卷時(shí),文件中的數(shù)據(jù)塊會(huì)被分散到多個(gè)硬盤上。每個(gè)后繼數(shù)據(jù)塊會(huì)被寫到下一個(gè)硬盤上。條帶化有助于提高硬盤的性能,因?yàn)長inux可以將一個(gè)文件的多個(gè)數(shù)據(jù)塊同時(shí)寫入多個(gè)硬盤,而無需等待單個(gè)硬盤移動(dòng)讀寫磁頭到多個(gè)不同位置。這個(gè)改進(jìn)同樣適用于讀取順序訪問的文件,因?yàn)長VM可同時(shí)從多個(gè)硬盤讀取數(shù)據(jù)。

  • 鏡像

通過LVM安裝文件系統(tǒng)并不意味著文件系統(tǒng)就不會(huì)再出問題。和物理分區(qū)一樣,LVM邏輯卷也容易受到斷電和磁盤故障的影響。一旦文件系統(tǒng)損壞,就有可能再也無法恢復(fù)。

LVM快照功能提供了一些安慰,你可以隨時(shí)創(chuàng)建邏輯卷的備份副本,但對(duì)有些環(huán)境來說可能還不夠。對(duì)于涉及大量數(shù)據(jù)變動(dòng)的系統(tǒng),比如數(shù)據(jù)庫服務(wù)器,自上次快照之后可能要存儲(chǔ)成百上千條記錄。

這個(gè)問題的一個(gè)解決辦法就是LVM鏡像。鏡像是一個(gè)實(shí)時(shí)更新的邏輯卷的完整副本。當(dāng)你創(chuàng)建鏡像邏輯卷時(shí),LVM會(huì)將原始邏輯卷同步到鏡像副本中。根據(jù)原始邏輯卷的大小,這可能需要一些時(shí)間才能完成。

一旦原始同步完成,LVM會(huì)為文件系統(tǒng)的每次寫操作執(zhí)行兩次寫入——一次寫入到主邏輯卷,一次寫入到鏡像副本??梢韵氲?這個(gè)過程會(huì)降低系統(tǒng)的寫入性能。就算原始邏輯卷因?yàn)槟承┰驌p壞了,你手頭也已經(jīng)有了一個(gè)完整的***副本!

感謝各位的閱讀,以上就是“Linux的內(nèi)核和文件權(quán)限介紹”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Linux的內(nèi)核和文件權(quán)限介紹這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI