第10章 Linux文件系統(tǒng)_第1頁
第10章 Linux文件系統(tǒng)_第2頁
第10章 Linux文件系統(tǒng)_第3頁
第10章 Linux文件系統(tǒng)_第4頁
第10章 Linux文件系統(tǒng)_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 2 10.1.1 linux10.1.1 linux文件系統(tǒng)的特點(diǎn)文件系統(tǒng)的特點(diǎn) 本章通過本章通過linuxlinux的文件系統(tǒng)來進(jìn)一步深入了解的文件系統(tǒng)來進(jìn)一步深入了解操操 作系統(tǒng)與操作系統(tǒng)其他部分的關(guān)系作系統(tǒng)與操作系統(tǒng)其他部分的關(guān)系以及以及文件系統(tǒng)文件系統(tǒng) 的設(shè)計(jì)方法的設(shè)計(jì)方法。 10.1.1 linux10.1.1 linux文件系統(tǒng)的特點(diǎn)文件系統(tǒng)的特點(diǎn) 在在linuxlinux系統(tǒng)中,所有的文件被組織到一個(gè)統(tǒng)一系統(tǒng)中,所有的文件被組織到一個(gè)統(tǒng)一 的的樹形目錄結(jié)構(gòu)樹形目錄結(jié)構(gòu)中。中。 / / /bin/bin/sbin/sbin /dev/dev/usr/usr/etc/etc/lib

2、/lib binbinlocallocallrclrc binbin / / /bin/bin /boot/boot /dev/dev/usr/usr/etc/etc/lib/lib/media/media/mnt/mnt/proc/proc /root/root/sys/sys/tmp/tmp/home/home/sbin/sbin/var/var /etc/etc /games/games /include/include /lib/lib /local/local /man/man/sbin/sbin/share/share/x11r6/x11r6/bin/bin/doc/doc/src

3、/src q linux文件系統(tǒng)的結(jié)構(gòu)與文件系統(tǒng)的結(jié)構(gòu)與windows的區(qū)別的區(qū)別 u windows 以分區(qū)為樹根,有多個(gè)分區(qū)時(shí)形成多個(gè)樹并列:以分區(qū)為樹根,有多個(gè)分區(qū)時(shí)形成多個(gè)樹并列: 文件系統(tǒng)結(jié)構(gòu) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c:d:e: u linux 所有文件系統(tǒng)都安裝在一個(gè)所有文件系統(tǒng)都安裝在一個(gè)樹根樹根上。進(jìn)行分區(qū)時(shí)上。進(jìn)行分區(qū)時(shí) 必須必須先劃分一個(gè)根分區(qū)先劃分一個(gè)根分區(qū),然后,然后將其它的分區(qū)都掛載到這個(gè)將其它的分區(qū)都掛載到這個(gè) 根目錄下根目錄下 10.1.1

4、 linux10.1.1 linux文件系統(tǒng)的特點(diǎn)文件系統(tǒng)的特點(diǎn) linuxlinux文件系統(tǒng)有一個(gè)文件系統(tǒng)有一個(gè)“根根”,然后在根上分杈,然后在根上分杈 ( (目錄目錄) ),任何一個(gè)分杈上都可以再分杈,杈上也,任何一個(gè)分杈上都可以再分杈,杈上也 可以長出可以長出“葉子葉子”( (文件文件) )。根和杈在。根和杈在linuxlinux中被中被 稱為是稱為是“目錄目錄”或或“文件夾文件夾”。而葉子則是一個(gè)。而葉子則是一個(gè) 個(gè)的文件。這樣不論底層存在設(shè)備是什么,展現(xiàn)個(gè)的文件。這樣不論底層存在設(shè)備是什么,展現(xiàn) 在用戶面前的均是一個(gè)統(tǒng)一的文件系統(tǒng)視圖。在用戶面前的均是一個(gè)統(tǒng)一的文件系統(tǒng)視圖。 q 路

5、徑(路徑(path) u 路徑分為路徑分為“絕對路徑絕對路徑”和和“相對路相對路 徑徑”l 絕對路徑絕對路徑:從根目錄開始的完整的路徑:從根目錄開始的完整的路徑 l 相對路徑相對路徑:相當(dāng)于當(dāng)前工作目錄的路徑:相當(dāng)于當(dāng)前工作目錄的路徑 u 任何不以任何不以 / 和和 開始的路徑均為相對路徑開始的路徑均為相對路徑 路徑 (path) u 文件或目錄在文件系統(tǒng)中所處的位置文件或目錄在文件系統(tǒng)中所處的位置 舉舉 例例 設(shè)用戶當(dāng)前所在的目錄為:設(shè)用戶當(dāng)前所在的目錄為:/home/jypan/teaching/ 則該目錄的子目錄則該目錄的子目錄 paracomp/ 中的文件中的文件 lect01.ppt

6、 的絕對路徑為的絕對路徑為 /home/jypan/teaching/paracomp/ 相對路徑為相對路徑為 ./paracomp/ 20 軟鏈接和硬鏈接軟鏈接和硬鏈接 軟鏈接和硬鏈接軟鏈接和硬鏈接 23 用戶程序(進(jìn)程)用戶程序(進(jìn)程) vfs minixfat設(shè)備文件設(shè)備文件ext2 文件系統(tǒng)操作的系統(tǒng)文件系統(tǒng)操作的系統(tǒng) 調(diào)用界面,包括調(diào)用界面,包括 read(),write(),open(), close()等等 struct super_block struct super_block kdev_t s_dev; / kdev_t s_dev; /* *具體文件系統(tǒng)的塊設(shè)備標(biāo)識(shí)符具體

7、文件系統(tǒng)的塊設(shè)備標(biāo)識(shí)符* */ / unsigned long s_blocksize; / unsigned long s_blocksize; /* *以字節(jié)為單位數(shù)據(jù)塊的大小以字節(jié)為單位數(shù)據(jù)塊的大小* */ / unsigned char s_blocksize_bits; / unsigned char s_blocksize_bits; /* *塊大小的值占用的位數(shù)塊大小的值占用的位數(shù)* */ / struct list_head s_list; / struct list_head s_list; /* *指向超級(jí)塊鏈表的指針指向超級(jí)塊鏈表的指針* */ / struct file

8、_system_type struct file_system_type * *s_type; s_type; / /* *指向文件系統(tǒng)的指向文件系統(tǒng)的file_system_type file_system_type 數(shù)據(jù)結(jié)構(gòu)的指針數(shù)據(jù)結(jié)構(gòu)的指針 * */ / struct super_operations struct super_operations * *s_op; s_op; / /* *指向具體文件系統(tǒng)的用于超級(jí)塊操作的函數(shù)集合指向具體文件系統(tǒng)的用于超級(jí)塊操作的函數(shù)集合 * */ / u; / u; /* *一個(gè)共用體,其成員是各種文件系統(tǒng)的一個(gè)共用體,其成員是各種文件系統(tǒng)的 fs

9、name_sb_infofsname_sb_info數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) * */ / 33 注意,注意,filefile對象在磁盤上沒有相應(yīng)的映像,故對象在磁盤上沒有相應(yīng)的映像,故filefile結(jié)構(gòu)中結(jié)構(gòu)中 無無“臟臟”域表示文件對象是否被修改。域表示文件對象是否被修改。 r:readr:read w:writew:write x:executex:execute usrusr grpgrp othoth 例例1 1 使用使用open()open()創(chuàng)建一個(gè)可讀可寫的文件,文件名為創(chuàng)建一個(gè)可讀可寫的文件,文件名為 file1file1 open(file1,o_rdwr|o_creta);op

10、en(file1,o_rdwr|o_creta); 例例2 2 使用使用open()open()創(chuàng)建一個(gè)可讀可寫的文件,文件名為創(chuàng)建一個(gè)可讀可寫的文件,文件名為file2file2,其,其 權(quán)限為文件主可讀可寫可執(zhí)行,用戶組可讀可寫,其他可執(zhí)行。權(quán)限為文件主可讀可寫可執(zhí)行,用戶組可讀可寫,其他可執(zhí)行。 #define mode 0751#define mode 0751/ / 等價(jià)于等價(jià)于s_irwxu|s_irgrp|s_iwgrp|s_ixoths_irwxu|s_irgrp|s_iwgrp|s_ixoth open(file2,o_wronly|o_creta|o_excl,mode);

11、open(file2,o_wronly|o_creta|o_excl,mode); 例例3 3 使用使用open()open()創(chuàng)建一個(gè)可讀可寫的文件,文件名為創(chuàng)建一個(gè)可讀可寫的文件,文件名為file3file3, 其權(quán)限為文件主可讀可寫可執(zhí)行,用戶組可讀,其他可執(zhí)行其權(quán)限為文件主可讀可寫可執(zhí)行,用戶組可讀,其他可執(zhí)行 。 #define mode 0741#define mode 0741/ / 等價(jià)于等價(jià)于s_irwxu|s_irgrp|s_ixoths_irwxu|s_irgrp|s_ixoth open(file3,o_wronly|o_creta|o_excl,mode);open(

12、file3,o_wronly|o_creta|o_excl,mode); 例例6 6 程序如下程序如下 #include #include #include #include main()main() char buffer128;char buffer128; int num;int num; num=read(0,buffer,128);num=read(0,buffer,128); if(write(1,buffer,num)!=num)if(write(1,buffer,num)!=num) write(2, a write error has occurredn,27);write(

13、2, a write error has occurredn,27); exit(0);exit(0); 例例7 read,write7 read,write和和lseeklseek函數(shù)使用實(shí)例。函數(shù)使用實(shí)例。 例例7 7 假設(shè)當(dāng)前目錄下有文件假設(shè)當(dāng)前目錄下有文件filefile,其內(nèi)容是,其內(nèi)容是 2626個(gè)英文字母。編程序移動(dòng)指針到第個(gè)英文字母。編程序移動(dòng)指針到第1010 個(gè)字符,使其從第個(gè)字符,使其從第1111個(gè)字符開始輸出,直個(gè)字符開始輸出,直 到最后一個(gè)字符。到最后一個(gè)字符。 例例8 8 使用使用fcntlfcntl系統(tǒng)調(diào)用給文件上鎖并檢測鎖的信息。系統(tǒng)調(diào)用給文件上鎖并檢測鎖的信息。 例例9 9 設(shè)當(dāng)前目錄下有一個(gè)文件設(shè)當(dāng)前目錄下有一個(gè)文件f1f1,將其權(quán)限修改為只有,將其權(quán)限修改為只有 用戶主可讀,其余用戶無權(quán)限的只讀文件。用戶主可讀,其余用戶無權(quán)限的只讀文件。 77 86 90 ext2ext2文件系統(tǒng)的磁盤邏輯結(jié)構(gòu)如下圖。文件系統(tǒng)的磁盤邏輯結(jié)構(gòu)如下圖。 其中第其中第0#0#塊是引導(dǎo)塊塊是引導(dǎo)塊(boot block)(boot block)。其中裝有引導(dǎo)或初啟操作系。其中裝有引導(dǎo)或初啟操作系 統(tǒng)的引導(dǎo)代碼。統(tǒng)的引導(dǎo)代碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論