亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 1376 | 回復(fù): 0
打印 上一主題 下一主題

[linux] 文件系統(tǒng) [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2009-12-30 12:52 |只看該作者 |倒序?yàn)g覽
不同的文件系統(tǒng)有不同的實(shí)現(xiàn),但和VFS的接口都是通過一個file_operation數(shù)據(jù)結(jié)構(gòu)
(include/linux/fs.h),作為函數(shù)跳轉(zhuǎn)表。

struct file_operation{
   struct module *owner;
   .. llseek()
   .. read()
   .. write()
   .. readdir()
   .. ioctl()
   .. mmap()
   .. open()
   .. flush()
   .. fsync()
   .. lock()
}

用戶進(jìn)程只和VFS交互。

-----------------------------------------
task_struct中的兩個相關(guān)結(jié)構(gòu)體

struct task_struct {

  /*
    struct fs_struct{
        atomic_t  count;
        rwlock_t  lock;
        int umask;

        /*
             文件的屬性,如文件名、訪問權(quán)限
             root  本進(jìn)程的根目錄,即用戶登錄時看到的根目錄
             pwd   進(jìn)程當(dāng)前所在目錄
             altroot  用戶設(shè)置的“替換根目錄” -- 再議

             dentry結(jié)構(gòu)中有一個d_inode(struct inode)指針,指向記錄著文件在
                   存儲介質(zhì)上的位置和分布信息的inode結(jié)構(gòu)體
                   dentry 是邏輯文件
                   inode  是物理文件     所以多個dentry指向一個inode
         */
        struct dentry *root, *pwd, *altroot;


        /*
             對應(yīng)著上三個結(jié)構(gòu)
         */
        struct vfsmount *rootmnt, *pwdmnt, *altrootmnt;
     }

   */
   struct fs_struct *fs;//文件系統(tǒng)信息,全局的,與具體文件無關(guān)
   
   /*
       files_struct 主體是一個file結(jié)構(gòu)數(shù)組
       每打開一個文件,進(jìn)程就通過一個fid訪問,fid實(shí)際是相應(yīng)file 結(jié)構(gòu)在數(shù)組中的下標(biāo)
       每個file結(jié)構(gòu)中
          f_op   指向該文件所屬文件系統(tǒng)的file_operation
          f_dentry  指向該文件的dentry
   */
   struct files_struct *files;//已打開的文件的信息
}


---------------------

inode結(jié)構(gòu)體


每個inode都有
       一個“i節(jié)點(diǎn)號”i_ino,同一文件系統(tǒng)中唯一
       一個“文件主”,為創(chuàng)建文件的用戶,可改變 -- 系統(tǒng)每個用戶都有一個uid標(biāo)識,都屬于一個組gid,所以inode也有兩個對應(yīng)i_uid、i_gid字段
       兩個設(shè)備號  i_dev  除特殊文件外,一個索引節(jié)點(diǎn)總需存在在某個設(shè)備上,即i_dev
                 i_rdev  若索引節(jié)點(diǎn)達(dá)標(biāo)的是某個設(shè)備(即不是常規(guī)文件),則需另一個設(shè)備號i_rdev
                (主設(shè)備號、次設(shè)備號)
       i_link  文件鏈接數(shù),即文件別名數(shù)
       i_count [動態(tài)]文件共享計(jì)數(shù)

本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u3/109164/showart_2135331.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP