導航:首頁 > 操作系統 > 實現linux文件系統

實現linux文件系統

發布時間:2023-04-17 07:15:23

㈠ 如何在linux上實現文件系統的自動檢查和修復

我在本教程中將介紹如何藉助fsck工具,實現文件系統的自動檢查。 系統一啟動,就觸發文件系統自動檢查機制 如果你希望系統一啟動,就自動觸發fsck,那麼有一些方法可以設置在啟動過程中實現無人值守的fschk,這些方法具體取決於特定的Linux發行版。 在Debian、Ubuntu或Linux Mint上,編輯/etc/default/rcS,如下所示。 $ sudo vi /etc/default/rcS # 啟動過程中,自動修復出現不一致性的文件系統 FSCKFIX=yes 在CentOS上,使用下列內容,編輯/etc/sysconfig/autofsck(要是它沒有,就創建)。 $ sudo vi /etc/sysconfig/autofsck AUTOFSCK_DEF_CHECK=yes 強制定期檢查文件系統 如果文件系統很龐大,你可以強制定期檢查文件系統,而不是每次系統啟動時檢查文件系統。為了實現這個操作,先要藉助tune2fs命令,找到文件系統配置。下面這個命令行顯示了文件系統相關參數的當前值。請注意:/dev/sda1是文件系統超級塊所在的分區。 $ sudo tune2fs -l /dev/sda1 從tune2fs的輸出結果中,我們不僅可以看到文件系統的狀態(干凈與否),還可以看到與文件系統檢查有關的一些參數。"Maximum mount count"(最大掛載次數)這個參數是指文件系統檢查被觸發後的掛載次數。"Check interval"(檢查時間間隔)這個參數顯示了兩次文件系統檢查之間的最長時間。在大多數Linux發行版上,這些參數並不是默認情況下被設置的,這意味著並不進行任何定期的文件系統檢查。 如果想強制每隔30次掛載就檢查文件系統,請運行下面這個命令。 $ sudo tune2fs -c 30 /dev/sda1 如果想強制每隔3個月就檢查文件系統,請使用下面這個命令。 $ sudo tune2fs -i 3m /dev/sda1 現在確認剛添加上去的文件系統檢查條件已正確設置。 $ sudo tune2fs -l /dev/sda1 . . . Last mount time: n/a Last write time: Fri Mar 14 22:29:24 2014 Mount count: 20 Maximum mount count: 30 Last checked: Mon Mar 3 20:55:08 2014 Check interval: 7776000 (3 months) Next check after: Sun Jun 1 21:55:08 2014 強制下一次系統重啟時,進行一次性的文件系統檢查 如果你想在下一次系統重啟時觸發一次性的文件系統檢查,可以使用這個命令。 $ sudo touch /forcefsck 一旦你在類似上面的頂層目錄(/)中創建了一個名為forcefsck的空文件,它就會在你下一次重啟時,強制進行文件系統檢查。系統成功啟動後,/forcefsck則會自動被清除。

㈡ 如何實現Windows與Linux文件系統互訪的解決辦法

實現Windows與Linux文件系統互訪枝譽的解決辦法:

1、按照Alt+F2 打開快捷窗口

㈢ linux支持的文件系統有哪些

比如Btrfs、JFS、ReiserFS、ext、ext2、ext3、ext4、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、SMB、SysV、PROC等。

Linux操作系統使用虛擬文件系統(VFS)向上和用戶進程文件訪問系統調用介面,向下和具體不同文件系統的實現介面。VFS屏蔽了具體文件的實現細節,向上提供統一的操作介面。通過VFS可以實現任意的文件系統,這些文件系統通過文件訪問系統調用都可以訪問。所以Linux系統核心可以支持十多種文件系統類型。

(3)實現linux文件系統擴展閱讀:

EXT是皮睜延滲衫伸文件系統(英語:Extended file system,縮寫為 ext或 ext1),也譯為擴展文件系統,一種文件系統,於1992年4月發表,是為linux核心所做的第叢握腔一個文件系統。採用Unix文件系統(UFS)的元數據結構,以克服MINIX文件系統性能不佳的問題。它是在linux上,第一個利用虛擬文件系統實現出的文件系統,在linux核心0.96c版中首次加入支持,最大可支持2GB的文件系統

EXT3是第三代擴展文件系統(英語:Third extended filesystem,縮寫為ext3),是一個日誌文件系統,常用於Linux操作系統。它是很多Linux發行版的默認文件系統。Stephen Tweedie在1999年2月的內核郵件列表中,最早顯示了他使用擴展的ext2,該文件系統從2.4.15版本的內核開始,合並到內核主線中。

㈣ 300來行代碼帶你實現一個能跑的最小Linux文件系統

Linux作為一個類UNIX系統,其文件系統保留了原始UNIX文件系統的表象形式,它看起來是這個樣子:

它其實是一棵目錄樹(沒有畫全):

然而,雖然所有的UNIX系統以及類UNIX系統的文件系統看起來一樣,但是它們的實現卻是不盡相同。

作為普通用戶,了解文件系統的基本操作就夠了;作為應用開發人員,了解文件系統的POSIX介面足矣,但是作為一個對操作系統有著濃厚興趣的愛好者而言,自己可能就是一個新的文件系統的潛在實現者,所以必須一窺究竟,看看如此外觀的文件系統到底是如何實現的。

網上已經有了很多關於UNIX/Linux文件系統實現的資源,但是無一例外,都太復雜了,除了整體的源碼分析外,幾乎就是針對某個特定文件系統的詳解了,如此復雜的這些對於初涉該領域的滿腔熱情者無疑是一盆冷水,很多人因此望而卻步。

幾乎所有的關於Linux文件系統實現的資源都在用不同的語言解釋上面的這些問題,這很容易陷入細節的泥潭。

本文以Linux內核為例,用一種稍微不同的方式去描述文件系統的實現。嗯,我會分3個部分來介紹Linux內核的文件系統:

本文中,我會通過一個實實在在的文件系統實現的例子,試圖闡述 實現一個文件系統,哪些是必須的,哪些不是必須的。 這是一個任務驅動的過程,從簡單的例子開始。

讀過本文之後,相信會對Linux文件系統的實現有一個總體上的宏觀把握,然後再去反復推敲上述的細節問題,重讀網上的那些經典資源,相信會事半功倍。

當然,在給出最簡單的tinyfs實現之前,還是會有一個總體的介紹。

如果我們把本文最初描述的那個在幾乎所有UNIX/類UNIX系統中長的一模一樣的文件系統表面刨開,在Linux內核中,文初的那棵樹其實它長下面的樣子(其實在大多數類UNIX系統中,它們長得都差不多):

【這張圖基於我一張手繪圖修改而成】

我們看到,Linux系統的文件目錄樹就是靠上圖中的這一系列的鏈表穿針引線給串在一起的,就像縫制一件衣服一樣,最終的成衣就是我們看到的Linux系統目錄樹,而縫制這件成衣的線以及指導走線的規則便是VFS本身了。

現在只要記住兩個重要鏈表:

然後讀完本文之後再去結合代碼深入分析它們是如何串起整個文件系統的。

VFS之所有可以將機制大相徑庭的完全不同的文件系統對外統一成一個樣子,完全就是依靠了它的統一的對POSIX文件調用的介面,該介面的結構看上去是下面的樣子:

注意上圖最下面的那個橢圓,如果要實現一個文件系統,這個橢圓里的東西是關鍵,它完成了穿針引線的大部分工作。

現在讓我們縱向地看一下一個完整的文件系統實現都包括什麼,我指的是從POSIX系統調用開始,一直到數據落盤。Linux內核關於文件系統IO,完整的視圖如下所示:

注意VFS提供的三類介面:

一個文件系統如果能實現上面三類介面,那它就是個完整的文件系統了。

我們恰好可以從設計並實現一個最基本的這樣的文件系統開始。一個基本的文件系統,其著重點在於上圖中紅色的部分,而其它部分則不是必不可少的,但是卻是讓該文件系統變得優秀(而不僅僅是可用)所必須的。

為什麼要實現這么一個文件系統,難道沒人已經做了這個工作嗎?做這個工作的意義何在?

原因如下:

然而確實,我沒有找到簡單的 最小文件系統 實現,也許你會說Linux內核自帶的ramfs難道不就是一個現成的嗎?的確算一個,但它有兩個問題導致你無法領略實現一個文件系統的全過程,注意,我說的可是全過程:

為了 追求完整, 如果你把如何組織一塊內核作為ramfs的底層介質這部分代碼全部看完,如果你把libfs.c里的庫實現全部看完,我想ramfs也就不算一個 足夠簡單 的文件系統實例了。

看到了么?要想代碼簡單,你就不得不使用libfs.c里的現成的常式,這將損失你實現一個文件系統的完整性體驗,反之,要想完整實現一個文件系統,你可能不得不自己寫大量的代碼,這卻並不簡單。

如何既完備,又足夠簡單呢?

對於我這種編程水平渣渣的內核愛好者而言,如何在堵車的一個多小時內完成一個可以編譯通過的文件系統(我承認完全能跑是我回到家後又調試了一個多小時才完成的...),這對於我而言,是一個挑戰,但我要試一試,沒想到就成功了。所以才有了今天的分享。

我從最底層的介質結構的設計開始。

我並沒有真實的硬體介質,也並不打算編寫專門的 格式化程序 去格式化一塊內存區域,所以我直接用大數組定義一塊內存,它便是我的模擬介質了,我的tinyfs的文件格式如下:

這個文件系統的格式非常的Low:

之所以這么Low是因為它只是一個開始, 當這個文件系統實現並且能跑之後,你會發現它因為Low而帶來的不足和一些代價,而彌補這些不足正好是優化的動機,帶著你逐步實現一個更加不Low的文件系統,在實現的過程中,你會窺見並掌握Linux內核文件系統的全貌和細節。 完美的學習過程,OK!

下面是代碼:

review代碼後,你可能已經發現了幾個問題:

嗯,其實這些問題目前而言還都不是問題,它們並不阻礙這個文件系統的真實性,它用起來是那麼的真實。

沒有任何規范規定一個文件系統存儲格式必須有什麼或者必須沒有什麼,文件系統格式只是一個 看上去還可以的信息持久化記錄格式 ,只要下次能根據某些信息將文件讀取出來,任何格式都是OK的。

之所以很多人會認為一個文件系統的格式必須要符合某種規范,完全是因為人們看的最多的那些文件系統ext3,ext4,ntfs等恰好是那樣做的罷了。不過事實證明,那樣做確實是很好的。在可用的玩具完成之後,就要考慮 性能,健壯性,可擴展性 等這些工程因素了。而ext3/4,ntfs,xfs則充分考慮了這些。

逐漸的,權威變成了規范,至少成了一種範式或者模式,這是計算機領域常有的事,見怪不怪。

我們來使用下這個文件系統:

OK,掛載成功。

這里又有疑問了,為什麼是none掛載,而不是一個塊設備,比如/dev/sda1之類的。

這是因為我根本沒有將介質(其實是一塊連續的內存)抽象成塊設備,如果引入塊設備抽象,勢必要導出device層操作介面,這樣做並不困難,但卻太麻煩,且塊設備抽象和文件系統的實現核心無關。本文不是講塊設備的,加之班車上的堵車時間有限,故不做抽象。

好了,現在讓我們來折騰下/mnt目錄,該目錄就是我的tinyfs的掛載目錄了,在其下讀寫文件,就是在tinyfs的內存介質上讀寫文件:

除了最後一個刪除目錄的操作,其它的都OK,這也是預期之中,畢竟刪除目錄是TODO嘛。

一共300來行的代碼(省去了很多異常判斷和處理,真實情況下,這些要佔據80%的代碼量),非常容易讀懂,你會發現這個文件系統實現是如此之low,然而卻能看起來像真的一樣。

這意味著完成和完美真的是兩回事!

很多最終看起來很大型的東西,都是都這種剛剛完成可以用開始的。

很明顯,這個代碼沒有使用塊層來和底層介質通信,而是直接操作了底層介質,也就是那塊連續的內存。因為我用內存模擬介質,尚且OK,如果底層真的有一個類似磁碟那樣的慢速介質,每次操作直接讀寫block將是不可接受的。但如果你想獲得性能上的提升,就必須使用塊層的緩存機制,以及pagecache機制。

所以,方向很明確,我們有了一個todolist:

這些todo完成,意味著對Linux內核文件系統實現原理的徹底掌握,從一個簡單的剛剛可用的tinyfs開始(這花不了多少時間),到整理出一份todolist,到完成這些todo,這便是一個任務驅動的學習過程。

回過頭來看Linux文件系統IO的縱向視圖:

這次注意藍色部分,我們的TODO就是要補充這部分的實現。

好了,換一個視角看VFS。

我們把Linux內核內存中的VFS看作是磁碟等慢速介質中特定文件系統的緩存,這是一個典型的 分級存儲結構, 就好像CPU cache和內存的關系一樣。

在這個視角下,如何完成上圖藍色框框中的部分,可參考的現成範式就太多了。但無論如何都要解決的是:

Linux內核已經給了我們一個現成的答案:

當然,如果你覺得這些不夠好,你也可以設計你自己的。總之,這是一塊非常獨立的工作,正如我圖中所示,這部分工作的目標是,在文件系統剛好可以工作後, 讓事情變得更加完美有趣!

㈤ Linux支持的文件系統有哪些Linux基礎課程

Linux支持的文件系統有哪些?主要包括:EXT、EXT2、EXT3、EXT4、JFS、Btrfs等,下面為大家重點介紹一下文件系統的特點,快跟著我來看看吧。

Linux文件系統中的文件是數據的集合,文件系統不僅包含著文件中的數據而且還有文件系統的結構,所有Linux

用戶和程序看到的文件、目錄、軟連接及文件保護信息等都存儲在其中。

1、EXT:專門為Linux核心做的第一個文件系統,單個文件最大限制:未知,該文件系統最大支持2GB的容量。

2、EXT2:由Remy

Card設計,用以代替ext,是Linux內核所用的文件系統,單個文件最大限制2TB,該文件系統最大支持32TB的容量。

3、EXT3:一個日誌文件系統,單個文件最大限制16TB,該文件系統最大支持32TB的容量。

4、EXT4:Theodore

Tso領導的開發團隊實現,Linux系統下的日誌文件系統,單個文件最大限制和敬16TB,該文件系統最大支持1EB的容量。

5、JFS2:一個櫻棚肢位元組級日誌文件系統,該文件系統主要是為滿足伺服器脊世的高吞吐量和可靠性需求而設計、開發的,單個文件最大限制16TB,該文件系統最大支持1PB的容量。

㈥ 如何在 Linux下實現一個文件系統

linux系統下也有開發C的很多開發工具的,一般工程可用make文件但最簡單的直接用命令行編譯就可以了gcc -o 你的執行文件名 main.c func1.c func2.c fun3.c就可以直接用你的4個C源文件生成你要的執行文件了

㈦ 如何實現Windows與Linux文件系統互訪的解決辦法

在Windows系統之間,可以通過共享目錄的方式,讓遠程系統直接訪問。其實這里是Windows提供一種遠程文件系統機制,NAS協議的一種——CIFS協議。如果是Linux系統呢,同樣有另外一種NAS協議——NFS協議來實現遠程訪問。那麼這兩種NAS協議能否互通呢?答案是否定的。雖然二者不能互通,但是,在Linux系統上面已經有了CIFS協議的服務端和客戶端的實現,這樣,無論是Linux給Windows共享還是Windows給Linux共享都可以藉助這些已有的實現來做到了。
相反的,Windows上面有沒有NFS的客戶端或者服務端,也有,但是不常用,這里就不詳細介紹了。
這里主要圍繞著Linux上面使用CIFS協議來闡述如何實現兩個系統之間的跨文件系統,跨操作系統共享。按照上面的描述,有兩種方式來實現共享。Linux分別作為CIFS的服務端和客戶端。下面分別就這兩種方式來說明操作步驟和簡單的原理介紹:
一、Samba軟體實現共享Linux文件系統給Windows用戶
Samba軟體被譽為10大最有價值的開源軟體之第五位。其獲取方式非常容易,配置使用也非常簡單。下面以fedora系統為例,先看一下本地是否已經安裝好samba,如果/etc/init.d/smb 文件存在,則說明已經安裝好了samba軟體,否則使用如下命令安裝:

復制內容到剪貼板
yum install samba

安裝完成後,修改配置文件,打開:/etc/samba/smb.conf,在文件末尾加上如下配置:

復制內容到剪貼板
[root]

comment = root

path = /

creat mask = 64

writeable = yes

browseable = yes

valid users = root

這個配置的意思是,創建一個名為root的共享,將根文件目錄「/」共享襲銷給用戶。允許登錄的用戶名是root。
然後給samba系統添加root用戶,使用如下命令:

復制內容到剪碰彎貼板
smbpasswd -a root

按照提示設置root用戶的密碼。
重新啟動samba服務。

復制內容到剪貼板
service smb restart

檢查smb進程是否已經運行:
復制內容到剪貼板
root 1787 0.0 0.4 33068 4784 ? Ss 21:51 0:00 smbd

root 1788 0.0 0.2 33068 2580 ? S 21:51 0:00 \_ smbd

在需要訪問該Linux系統的Windows客戶機上面,打開Windows的資源管理器,在地址欄輸入:\\192.168.1.110
會發現,提示有一個共享root,雙擊訪問時,提示輸入用戶名和密碼,輸入此前配置的root用戶和密碼即可訪問。這里就是Samba軟體實現了CIFS的服務端,Windows資源管理作為客戶端訪問遠程的共享文件系統。為了更為方便的使用該文件系統,還可以將該共享映射成一個本地的盤符,讓Windows上面的各種工具像使用本地磁碟一樣使用該目錄。所有在Windows上面對該共享做的操作都會實時同步到Linux系統上面。
二、Linux訪問Windows的共享
上面的藉助於Samba的方式是大家常用的。還有一種,Windows系統天然就是一個CIFS的服務端和客戶端,既然Windows系統可以給Windows系統共享目錄,那麼Linux系統能否訪問這些共享呢?答案是肯定的,由於有強大的VFS支撐,Linux支持掛載和訪問各種文件系統。mount工具支持掛在CIFS甚至NTFS的文件系統。如果是Windows本機上面的Linux虛擬機,那麼可以直接通過虛擬機管理軟體,如Vmware直接共享本地的磁碟分區給Linux系統,Linux系統根據Windows的磁碟分區的文件系統類型掛載即可。這里不詳述該方案。
進入本段的正題,首先我們需要共享一個Windows的拍吵游目錄:

下面以Windows XP為例,Windows 7未做驗證,應該類似。在共享之前,首先需要確保Windows系統的server服務處於啟動狀態,如下圖:


選擇需要共享的目錄,右鍵,屬性,選擇「共享」頁,如下圖:
配置共享
選擇在網路上共享這個文件夾,並指定共享名。根據需要選擇是否允許遠程用戶修改該文件夾。這樣這個文件夾就被共享給遠程訪問了。

在Linux系統下掛載該共享:

復制內容到剪貼板
[root@f2 ~]# mount -t cifs -o username="Test" //192.168.1.100/sourcecode /root/sourcecode
Password for Test@//192.168.1.100/sourcecode:

按照要求輸入指定用戶的密碼即可。
此時,Windows的共享sourcecode目錄就已經掛載到Linux系統上面了,Linux系統可以像訪問本地目錄一樣訪問該目錄了。
這種方法應該是更好的訪問方式,因為一般而言,我們操作的文件和工作空間都是在Windows上面的,只有少數時候,需要在Linux上面進行編譯,調試。但是用起來稍顯麻煩。注意,此前曾遇到過Windows系統與虛擬出來的Linux系統之間無法傳輸數據的問題,原因是Windows系統的防火牆未開啟。
通過以上兩種方法解決如何實現Windows與Linux文件系統互訪的問題,希望能幫到大家,謝謝閱讀。

㈧ 如何實現Windows與Linux文件系統互訪的解決辦法

1. 可以通過ssh:在linux上安裝openssh或者ssh包,如果發起者是windows,需要安裝xshell軟體。
linux只見可以通過肢行ssh ipaddress port的格式發起訪問;可以用察喊scp user_name@ipaddr:/dir/filename . 將文件拷貝到本地,或者反過來將文件拷貝到遠歷沒嘩程:scp /dir/filename username@ipaddr:/dir2/
從windows到linux:windows上安裝lrzsz包,用xshell建立ssh連接(22埠),建立遠程終端。在命令行輸入rz或者sz,來傳輸文件。
2. ftp方式
可以在linux上安裝ftp服務端,比如vsftpd包。從windows發起ftp訪問。
3. samba方式
在linux上安裝samba,簡單的設置/etc/samba/smb.conf就可以從windows上以共享文件的方式訪問linux文件系統了。

㈨ 如何在Linux上實現文件系統的自動檢查和修復

我在本教程中將介紹如何藉助fsck工具,實現文件系統的自動檢查。

系統一啟動,就觸發文件系統自動檢查機制

如果你希望系統一啟動,就自動觸發fsck,那麼有一些方法可以設置在啟動過程中實現無人值守的fschk,這些方法具體取決於特定的Linux發行版。

在Debian、Ubuntu或Linux Mint上,編輯/etc/default/rcS,如下所示。

$ sudo vi /etc/default/rcS
# 啟動過程中,自動修復出現不一致性的文件系統

FSCKFIX=yes
在CentOS上,使用下列內容,編輯/etc/sysconfig/autofsck(要是它沒有,就創建)。

$ sudo vi /etc/sysconfig/autofsck
AUTOFSCK_DEF_CHECK=yes
強制定期檢查文件系統

如果文件系統很龐大,你可以強制定期檢查文件系統,而不是每次系統啟動時檢查文件系統。為了實現這個操作,先要藉助tune2fs命令,找到文件系統配置。下面這個命令行顯示了文件系統相關參數的當前值。請注意:/dev/sda1是文件系統超級塊所在的分區。

$ sudo tune2fs -l /dev/sda1

從tune2fs的輸出結果中,我們不僅可以看到文件系統的狀態(干凈與否),還可以看到與文件系統檢查有關的一些參數。"Maximum mount count"(最大掛載次數)這個參數是指文件系統檢查被觸發後的掛載次數。"Check interval"(檢查時間間隔)這個參數顯示了兩次文件系統檢查之間的最長時間。在大多數Linux發行版上,這些參數並不是默認情況下被設置的,這意味著並不進行任何定期的文件系統檢查。

如果想強制每隔30次掛載就檢查文件系統,請運行下面這個命令。

$ sudo tune2fs -c 30 /dev/sda1
如果想強制每隔3個月就檢查文件系統,請使用下面這個命令。

$ sudo tune2fs -i 3m /dev/sda1
現在確認剛添加上去的文件系統檢查條件已正確設置。

$ sudo tune2fs -l /dev/sda1
. . .
Last mount time: n/a
Last write time: Fri Mar 14 22:29:24 2014
Mount count: 20
Maximum mount count: 30
Last checked: Mon Mar 3 20:55:08 2014
Check interval: (3 months)
Next check after: Sun Jun 1 21:55:08 2014
強制下一次系統重啟時,進行一次性的文件系統檢查

如果你想在下一次系統重啟時觸發一次性的文件系統檢查,可以使用這個命令。

$ sudo touch /forcefsck
一旦你在類似上面的頂層目錄(/)中創建了一個名為forcefsck的空文件,它就會在你下一次重啟時,強制進行文件系統檢查。系統成功啟動後,/forcefsck則會自動被清除。

㈩ Linux 文件系統管理

3.1Linux 文件系統類型

不同的操作系統使用不同類型的文件系統,為了與其他的操作系統兼容,以相互交換數據,

通常,每種操作系統都支持多種類型的文件系統。

Linux 中保存數據的磁碟分區通常採用EXT2/EXT3 文件系統,而實現虛擬存儲的swap 分區

採用swap 文件系統,同時Linux 內核支持十多種不同的文件系統。

1. EXT2 和EXT3 文件系統

EXT(Extended File System,擴展文件系統)是專為Linux 設計的文件系統。在Linux 發展

早起,起到重要中用,但在穩定性、速度和兼容性方面存在缺陷。

EXT2 是為解決EXT 系統存在的缺陷而設計的可擴展、高性能的文件系統。

EXT3 是EXT2 的增強版本,在EXT2 的基礎上,增加了文件系統的日誌管理功能。

EXT3 文件系統具有的特點:

(1) 高效性:當系統因為異常斷電或系統崩潰,重新啟動時不需要檢查文件系統的一致

性,只需要根據文件系統的日誌,快速檢測並恢復文件系統到正常狀態。

(2) 數據的完整性:可以保持數據域文件系統狀態的高度一致性,避免意外關機對文件

系統造成的破壞。

(3) 數據的存取速度更快:EXT3 文件系統的日誌功能對磁碟驅動器的讀/寫進行優化,

使讀/寫系統的速度更快。

(4) 數據易於轉換

2. swap 文件系統

用於Linux 的交換分區。在Linux 中,使用整個交換分區來提供虛擬內存。

3. VFAT 文件系統

VFAT 是Linux 對DOS、Windows 系統下的FAT 文件系統的統稱。

4. NFS 文件系統

NFS 即網路文件系統,用在UNIX 或Linux 系統間通過網路進行文件共享。

5. SMB 文件系統

SMB 是Samba 的縮寫,是另一種網路文件系統,用於在Windows 和Linux 系統之間共享文

件和列印機。

6. ISO9660 文件系統

CD-ROM使用的標准文件系統。

此外,Linux 支持的文件系統還有minix、msdos、ncpfs、hpfs、umsdos 等。

3.2 Linux 的目錄和文件

1.Linux 系統的目錄結構

Linux 文件系統由文件和目錄組成,文件是專門用來存儲數據的對象,目錄是一種用來組織

文件和其他目錄的容器。Linux 和DOS、Windows 系統一樣,使用樹形目錄結構來組織和管

理文件。

1. / 文件系統的入口,最高一級目錄;

2. /bin 基礎系統所需要的命令位於此目錄,是最小系統所需要的命令,如:ls, cp, mkdir等。

這個目錄中的文件都是可執行的,一般的用戶都可以使用。

3. /boot 包含Linux內核及系統引導程序所需要的文件,比如vmlinuz initrd.img文件都位於這個目錄中。在一般情況下,GRUB或LILO系統引導管理器也位於這個目錄;

4. /dev 設備驅動程序文件存儲目錄,比如音效卡、磁碟等,是Linux文件系統的一個閃亮的特性-所有對象都是文件或目錄。仔細觀察這個目錄你會發現hda1, hda2等,它們代表系統主硬碟的不同分區。

5. /etc 存放系統程序或者一般工具的配置文件。

如安裝了apache2之後,配置文件在/etc/apache2/目錄下。

/etc/init.d這個目錄是用來存放系統或伺服器以System V模式啟動的腳本,這在以System V模式啟動或初始化的系統中常見。

6. /home 普通用戶默認存放目錄Linux是多用戶環境,所以每一個用戶都有一個只有自己可以訪問的目錄(當然管理員也可以訪問)。它們以/home/username的方式存在。這個目錄也保存一些應用對於這個用戶的配置,比如IRC, X等。

7. /lib 庫文件存放目錄這里包含了系統程序所需要的所有共享庫文件,類似於Windows的共享庫DLL文件。

8. /var 這個目錄的內容是經常變動,因為存儲的文件,如資料庫,數據文件大小是在不斷的增大。

/var/log這是用來存放系統日誌的目錄。

/var/www目錄是定義Apache伺服器站點存放目錄;/var/lib用來存放一些庫文件,比如MySQL的,以及MySQL資料庫的的存放地;

/var/log系統日誌存放,分析日誌要看這個目錄的東西;

/var/spool列印機、郵件、代理伺服器等假離線目錄;

9. /lost+found 在ext2或ext3文件系統中,當系統意外崩潰或機器意外關機,而產生一些文件碎片放在這里。當系統啟動的過程中fsck工具會檢查這里,並修復已經損壞的文件系統。 有時系統發生問題,有很多的文件被移到這個目錄中,可能會用手工的方式來修復,或移到文件到原來的位置上。

Linux應該正確的關機。但有時你的系統也可能崩潰掉或突然斷電使系統意外關機。那麼啟動的時候fsck將會進行長時間的文件系統檢查。Fsck會檢測並試圖恢復所發現的'不正確的文件。被恢復的文件會放置在這個目錄中。所恢復的文件也許並不完整或並不合理,但畢竟提供了一些恢復數據的機會。

10. /media 即插即用型存儲設備的掛載點自動在這個目錄下創建,比如USB盤系統自動掛載後,會在這個目錄下產生一個目錄 ;CDROM/DVD自動掛載後,也會在這個目錄中創建一個目錄,類似cdrom的目錄。這個只有在最新的發行套件上才有. 10. /mnt /mnt這個目錄一般是用於存放掛載儲存設備的掛載目錄的,比如有cdrom等目錄。有時我們可以把讓系統開機自動掛載文件系統,把掛載點放在這里也是可以的。比如光碟機可以掛載到/mnt/cdrom。

11. /opt 表示的是可選擇的意思,有些軟體包也會被安裝在這里,也就是自定義軟體包,比如在Fedora Core 5.0中,OpenOffice就是安裝在這里。有些我們自己編譯的軟體包,就可以安裝在這個目錄中;通過源碼包安裝的軟體,可以通過./configure --prefix=/opt/,將軟體安裝到opt目錄。

這個目錄包含所有默認系統安裝之外的軟體和添加的包。

12. /proc 操作系統運行時,進程(正在運行中的程序)信息及內核信息(比如cpu、硬碟分區、內存信息等)存放在這里。/proc目錄是偽裝的文件系統proc的掛載目錄,proc並不是真正的文件系統。

這是系統中極為特殊的一個目錄,實際上任何分區上都不存在這個目錄。它實際是個實時的、駐留在內存中的文件系統。

13. /root Linux超級許可權用戶root的家目錄;

14. /sbin 大多是涉及系統管理的命令的存放,是超級許可權用戶root的可執行命令存放地,普通用戶無許可權執行這個目錄下的命令;

這個目錄和

/usr/sbin;/usr/X11R6/sbin或/usr/local/sbin目錄是相似的; 我們記住就行了,凡是目錄sbin中包含的都是root許可權才能執行的。

15. /tmp 臨時文件目錄,有時用戶運行程序的時候,會產生臨時文件。/tmp就用來存放臨時文件的。/var/tmp目錄和這個目錄相似。

許多程序在這里建立lock文件和存儲臨時數據。有些系統會在啟動或關機時清空此目錄。

16. /usr 這個是系統存放程序的目錄,比如命令、幫助文件等。

這個目錄下有很多的文件和目錄。

當我們安裝一個Linux發行版官方提供的軟體包時,大多安裝在這里。

如果有涉及伺服器配置文件的,會把配置文件安裝在/etc目錄中。

閱讀全文

與實現linux文件系統相關的資料

熱點內容
兩位數乘兩位數的快速運演算法 瀏覽:907
正版我的世界如何進伺服器地址 瀏覽:660
雲文檔怎樣加密 瀏覽:294
ip協議的遠程登錄命令 瀏覽:286
阿里雲伺服器可以幫別人備案嗎 瀏覽:391
臟數據java 瀏覽:290
游戲解壓怎麼設置 瀏覽:782
會聲會影如何壓縮視頻 瀏覽:57
閱讀app小說怎麼轉換成txt 瀏覽:65
c語言編程數字變時間 瀏覽:655
迷你編程第五天初級寶箱怎麼弄 瀏覽:839
刺激體驗服如何更新伺服器 瀏覽:934
怎麼把照片做成新的文件夾 瀏覽:466
安卓手機沒有聲音均衡器怎麼辦 瀏覽:506
吃雞國際服為什麼會伺服器匆忙 瀏覽:248
微信中如何打開定位伺服器 瀏覽:203
java並發編程書籍 瀏覽:280
android601源碼 瀏覽:788
程序員離職了還能幹嘛 瀏覽:156
少林功法pdf 瀏覽:471