国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

Linux的內核和文件權限介紹

發(fā)布時(shí)間:2021-09-14 18:13 來(lái)源:億速云 閱讀:0 作者:chen 欄目: 服務(wù)器 歡迎投稿:712375056

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

 

什么是 Linux ?

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

  1. ? Linux內核

  2. ? GNU工具鏈

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

  4. ? 應用軟件 ...

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

一. Linux 內核

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

  • 系統內存管理

  • 應用程序管理

  • 硬件設備管理

  • 文件系統管理

1. 系統內存管理

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

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

  • Linux系統內存映射

|---------|             ----------- |         |             | 物理內存 | |         |             /---------- |         |    --------- | 虛擬內存 | —— |  內核  | |         |    --------- |         |             \----------  |         |             | 交換空間 | |---------|             -----------

2. 應用程序管理

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

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

  • Linux操作系統有5個(gè)啟動(dòng)運行級

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

    • 標準的啟動(dòng)運行級是3。在這個(gè)運行級上,大多數應用軟件,比如網(wǎng)絡(luò )支持程序,都會(huì )啟動(dòng)。

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

3. 硬件設備管理

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

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

  • 可插入內核的設備驅動(dòng)模塊

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

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

Linux系統將硬件設備當成特殊的文件,稱(chēng)為設備文件。設備文件有3種分類(lèi):

字符型設備文件

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

塊設備文件

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

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

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

Linux為系統上的每個(gè)設備都創(chuàng )建一種稱(chēng)為節點(diǎn)的特殊文件。與設備的所有通信都通過(guò)設備節點(diǎn)完成。每個(gè)節點(diǎn)都有唯一的數值對供Linux內核標識它。數值對包括一個(gè)主設備號和一個(gè)次設備號。類(lèi)的設備被劃分到同樣的主設備號下。次設備號用于標識主設備組下的某個(gè)特定設備。

4. 文件系統管理

不同于其他一些操作系統,Linux內核支持通過(guò)不同類(lèi)型的文件系統從硬盤(pán)中讀寫(xiě)數據。除

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

系統中讀寫(xiě)數據。內核必須在編譯時(shí)就加入對所有可能用到的文件系統的支持。表1-1列出了

Linux系統用來(lái)讀寫(xiě)數據的標準文件系統。

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

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

2. GNU工具鏈

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

開(kāi)源軟件理念允許程序員開(kāi)發(fā)軟件,并將其免費發(fā)布。任何人都可以使用、修改該軟件,或將該軟件集成進(jìn)自己的系統,無(wú)需支付任何授權費用。將Linus的Linux內核和GNU操作系統工具整合起來(lái),就產(chǎn)生了一款完整的、功能豐富的免費操作系統。

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

核心GNU工具

GNU coreutils軟件包由三部分構成:

  • 用以處理文件的工具

  • 用以操作文本的工具

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

Shell

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

  • 我們在命令行中輸入的命令都是GNU工具鏈提供,而非Linux內核

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

  • Linux中常見(jiàn)的幾種不同 shell

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

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

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

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

  • X Window系統

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

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

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

Linux 發(fā)行版

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

核心 Linux 發(fā)行版

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

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

系統目錄

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

文件權限-權限符

  • 命令行執行: ls -l

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

文件系統

  • ext

Linux操作系統中引入的最早的文件系統叫作擴展文件系統 (extended  filesystem,簡(jiǎn)記為ext)。它為L(cháng)inux提供了一個(gè)基本的類(lèi)Unix文件系統:使用虛擬目錄來(lái)操作硬件設備,在物理設備上按定長(cháng)的塊來(lái)存儲數據。

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

- 文件名 - 文件大小 - 文件的屬主 - 文件的屬組 - 文件的訪(fǎng)問(wèn)權限 - 指向存有文件數據的每個(gè)硬盤(pán)塊的指針

Linux通過(guò)唯一的數值(稱(chēng)作索引節點(diǎn)號)來(lái)引用索引節點(diǎn)表中的每個(gè)索引節點(diǎn),這個(gè)值是創(chuàng )建文件時(shí)由文件系統分配的。文件系統通過(guò)索引節點(diǎn)號而不是文件全名及路徑來(lái)標識文件。

  • ext2

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

日志文件系統

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

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

  • ext3

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

  • ext4

ext4文件系統在 2008 年受到Linux內核官方支持,現在已是大多數流行的Linux發(fā)行版采用的默認文件系統

除了支持數據壓縮和加密,ext4文件系統還支持一個(gè)稱(chēng)作區段(extent)的特性。區段在存儲設備上按塊分配空間,但在索引節點(diǎn)表中只保存起始塊的位置。由于無(wú)需列出所有用來(lái)存儲文件中數據的數據塊,它可以在索引節點(diǎn)表中節省一些空間。

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

Linux 中的 LVM

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

  • LVM1

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

  • LVM2

LVM的更新版本,可用于Linux內核2.6版本。它在標準的LVM1功能外提供了額外的功能。

  • 快照

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

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

  • 條帶化

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

  • 鏡像

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

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

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

一旦原始同步完成,LVM會(huì )為文件系統的每次寫(xiě)操作執行兩次寫(xiě)入——一次寫(xiě)入到主邏輯卷,一次寫(xiě)入到鏡像副本??梢韵氲?這個(gè)過(guò)程會(huì )降低系統的寫(xiě)入性能。就算原始邏輯卷因為某些原因損壞了,你手頭也已經(jīng)有了一個(gè)完整的***副本!

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

久久精品国产亚洲AV麻豆色欲| 精品国产AV色欲果冻传媒| 狠狠色综合网久久久久久| 国产情侣作爱视频免费观看| 黄 色 成 年 人免费观看| 国产成人精品人人|