- 從實踐中學嵌入式Linux操作系統(tǒng)
- 華清遠見嵌入式學院 曹忠明 程姚根編著
- 1902字
- 2018-12-27 02:32:02
1.6 Linux文件及文件系統(tǒng)
在安裝完Linux之后,首先對Linux中一些非常重要的概念進行簡要介紹,以便進一步學習使用Linux。
1.6.1 文件類型及文件屬性
1.文件類型
Linux中的文件類型與Windows有顯著的區(qū)別,其中最顯著的區(qū)別在于Linux對目錄和設(shè)備都當做文件進行處理,這樣就簡化了對各種不同類型設(shè)備的處理,提高了效率。Linux中主要的文件類型分為4種:普通文件、目錄文件、鏈接文件和設(shè)備文件。
1)普通文件
普通文件如同Windows中的文件一樣,是用戶日常使用最多的文件,包括文本文件、Shell腳本、二進制的可執(zhí)行程序和各種類型的數(shù)據(jù)。
2)目錄文件
在Linux中,目錄也是文件,它們包含文件名和子目錄名及指向那些文件和子目錄的指針。目錄文件是Linux中存儲文件名的唯一地方,當把文件和目錄相對應(yīng)起來時,也就是用指針將其鏈接起來之后,就構(gòu)成了目錄文件。因此,在對目錄文件進行操作時,一般不涉及對文件內(nèi)容的操作,而只是對目錄名和文件名的對應(yīng)關(guān)系進行了操作。
另外,在Linux系統(tǒng)中的每個文件都被賦予一個唯一的數(shù)值,而這個數(shù)值被稱作索引節(jié)點。索引節(jié)點存儲在一個稱作索引節(jié)點表(Inode Table)中,該表在磁盤格式化時被分配。每個實際的磁盤或分區(qū)都有其自己的索引節(jié)點表。一個索引節(jié)點包含文件的所有信息,包括磁盤上數(shù)據(jù)的地址和文件類型。
Linux文件系統(tǒng)把索引節(jié)點號1賦給根目錄,這就是Linux的根目錄文件在磁盤上的地址。根目錄文件包括文件名、目錄名及它們各自的索引節(jié)點號的列表,Linux可以通過查找從根目錄開始的一個目錄鏈來找到系統(tǒng)中的任何文件。
Linux通過上下鏈接目錄文件系統(tǒng)來實現(xiàn)對整個文件系統(tǒng)的操作。例如,把文件從一個磁盤目錄移到另一個磁盤的目錄時(實際上是通過讀取索引節(jié)點表來檢測這種行動),這時,原先文件的磁盤索引號刪除,而在新磁盤上建立相應(yīng)的索引節(jié)點。它們之間的相應(yīng)關(guān)系如圖1.22所示。

圖1.22 目錄文件與索引節(jié)點的關(guān)系
3)鏈接文件
鏈接文件類似于Windows中的“快捷方式”,但是它的功能更為強大。它可以實現(xiàn)對不同的目錄、文件系統(tǒng)甚至是不同的機器上的文件直接訪問,并且不必重新占用磁盤空間。
4)設(shè)備文件
Linux把設(shè)備都當做文件一樣來進行操作,這樣就大大方便了用戶的使用(在后面的Linux編程中可以更為明顯地看出)。在Linux下,與設(shè)備相關(guān)的文件一般都在/dev目錄下,它包括兩種,一種是塊設(shè)備文件,另一種是字符設(shè)備文件。
- 塊設(shè)備文件是指數(shù)據(jù)的讀/寫設(shè)備,它們是以塊(如由柱面和扇區(qū)編址的塊)為單位的設(shè)備,最簡單的如硬盤(/dev/hda1)等。
- 字符設(shè)備主要是指串行端口的接口設(shè)備。
2.文件屬性
Linux中的文件屬性如圖1.23所示。

圖1.23 Linux文件屬性表示方法
首先,Linux中文件的擁有者可以把文件的訪問屬性設(shè)成3種不同的訪問權(quán)限:可讀(r)、可寫(w)和可執(zhí)行(x)。文件又有3個不同的用戶級別:文件擁有者(u)、所屬的用戶組(g)和系統(tǒng)中的其他用戶(o)。
第一個字符顯示文件的類型如下:
- “-”表示普通文件。
- “d”表示目錄文件。
- “l(fā)”表示鏈接文件。
- “c”表示字符設(shè)備。
- “b”表示塊設(shè)備。
- “p”表示命名管道,如FIFO(First In First Out,先進先出)文件。
- “f”表示堆棧文件,如LIFO(Last In First Out,后進先出)文件。第一個字符之后有3個三位字符組:
- 第一個三位字符組表示文件擁有者(u)對該文件的權(quán)限。
- 第二個三位字符組表示文件用戶組(g)對該文件的權(quán)限。
- 第三個三位字符組表示系統(tǒng)其他用戶(o)對該文件的權(quán)限。
- 若該用戶組對此沒有權(quán)限,一般顯示“-”字符。
1.6.2 文件系統(tǒng)類型介紹
1.Ext2和Ext3
Ext3是現(xiàn)在Linux(包括Red Hat,Mandrake下)常見的默認文件系統(tǒng),它是Ext2的升級版本。正如Red Hat公司的首席核心開發(fā)人員Michael K.Johnson所說,從Ext2轉(zhuǎn)換到Ext3主要有以下4個理由:可用性、數(shù)據(jù)完整性、速度及易于轉(zhuǎn)化。Ext3中采用了日志式的管理機制,它使文件系統(tǒng)具有很強的快速恢復能力,并且由于從Ext2轉(zhuǎn)換到Ext3無須進行格式化,因此,更加推進了Ext3文件系統(tǒng)的推廣。
2.SWAP文件系統(tǒng)
該文件系統(tǒng)是Linux中作為交換分區(qū)使用的。在安裝Linux時,交換分區(qū)是必須建立的,并且它所采用的文件系統(tǒng)類型必須是SWAP而沒有其他選擇。
3.VFAT文件系統(tǒng)
Linux中,把DOS中采用的FAT文件系統(tǒng)(包括FAT12、FAT16和FAT32)都稱為VFAT文件系統(tǒng)。
4.NFS文件系統(tǒng)
NFS文件系統(tǒng)是指網(wǎng)絡(luò)文件系統(tǒng),這種文件系統(tǒng)也是Linux的獨到之處。它可以很方便地在局域網(wǎng)內(nèi)實現(xiàn)文件共享,并且使多臺主機共享同一主機上的文件系統(tǒng)。而且NFS文件系統(tǒng)訪問速度快、穩(wěn)定性高,已經(jīng)得到了廣泛的應(yīng)用,尤其是在嵌入式領(lǐng)域,使用NFS文件系統(tǒng)可以很方便地實現(xiàn)文件本地修改,從而免去了一次次讀/寫Flash的憂慮。
5.ISO 9660文件系統(tǒng)
這是光盤所使用的文件系統(tǒng),在Linux中對光盤已有了很好的支持,它不僅可以提供對光盤的讀/寫,還可以實現(xiàn)對光盤的刻錄。
1.6.3 Linux目錄結(jié)構(gòu)
Linux的目錄結(jié)構(gòu)如圖1.24所示。下面以Red Hat Enterprise 4 AS為例,詳細列出了Linux文件系統(tǒng)中各主要目錄的存放內(nèi)容,如表1.1所示。
表1.1 Linux文件系統(tǒng)目錄結(jié)構(gòu)

圖1.24 Linux目錄結(jié)構(gòu)
- Word 2003、Excel 2003、PowerPoint 2003上機指導與練習
- Clojure Data Analysis Cookbook
- 大數(shù)據(jù)專業(yè)英語
- Hands-On Neural Networks with Keras
- Blockchain Quick Start Guide
- Learning Apache Cassandra(Second Edition)
- 自主研拋機器人技術(shù)
- 永磁同步電動機變頻調(diào)速系統(tǒng)及其控制(第2版)
- 新編計算機組裝與維修
- 單片機C語言程序設(shè)計完全自學手冊
- 新編計算機圖形學
- Oracle 11g Anti-hacker's Cookbook
- 從零開始學ASP.NET
- 實戰(zhàn)突擊
- 人工智能基礎(chǔ)