Linux操作系统-文件管理_第1页
Linux操作系统-文件管理_第2页
Linux操作系统-文件管理_第3页
Linux操作系统-文件管理_第4页
Linux操作系统-文件管理_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

19.1Linux文件系统的特点与文件类别9.2Linux的虚拟文件系统VFS9.4文件系统调用9.3进程的文件管理第9章Linux文件系统29.1Linux文件系统的特点与文件类别树型结构无结构的字符流式文件文件可以动态地增长或减少拥有者可设置相应的访问权限保护文件外部设备被看作文件9.1.1特点3与DOS文件系统的区别Linux文件系统

单个目录树的结构根是根目录“/”往下连接各个分支DOS文件系统每个分区为树根多个分区,形成了多个树并列

Linux文件系统的结构4Linux文件系统结构〔1〕以文件的“目的”为依据,对文件进行分组,相同目的命令都放在同一子目录,完成系统的特定功能系统子目录中文件的作用:保证系统的正常运行……5/bin:二进制可执行命令/dev:设备特殊文件/etc:系统管理和配置文件/etc/rc.d:启动的配置文件和脚本/home:用户主目录的基点,比方用户user的主目录就 是/home/user/root:系统管理员的主目录/proc:虚拟的目录,是系统内存的映射。可直接访问, 获取系统信息。Linux文件系统结构〔2〕6/usr最庞大的目录,要用到的应用程序和文件几乎都在这个目录。/usr/X11R6:存放Xwindow的目录

/usr/bin:众多的应用程序

/usr/sbin:超级用户的一些管理程序/usr/doc:linux文档/usr/include:linux下开发和编译应用程序所需要的头文件/usr/lib:常用的动态链接库和软件包的配置文件/usr/man:帮助文档/usr/src:源代码,linux内核的源代码就放在/usr/src/linux里

Linux文件系统结构〔3〕7Linux文件分为6种普通文件、目录文件、设备文件、连接、有名管道、UNIX套接字。9.1.3文件类型和权限8文件的详细信息文件类型链接个数文件的权限文件上次修改的日期和时间文件名文件属主名用户分组名文件长度-rw-r—r--1chris

weather

207Jul2011:55mydata

第1个字符:文件类型。横线:非目录文件。d:目录。第2-10个字符:文件权限。三个平安级别:所有者、组、其他用户三种权限:r:读w:写x:可执行。9所有者一般是文件的创立者。文件被创立时,自动拥有对该文件的读、写和可执行权限。设置权限的命令chmod:重新设定不同的访问权限。chown:更改所有者。仅超级用户使用chgrp:更改用户组。文件的属主或超级用户使用。

10Whou:“用户〔user〕”,即文件或目录的所有者。g:“同组〔group〕用户”,即与文件属主有相同组ID的 所有用户。o:“其他〔others〕用户”。a:“所有〔all〕用户”。系统默认值。操作符号:+:添加。-:取消。=:赋予给定权限并取消其他权限文件名:要改变权限的文件列表,支持通配符。mode文字设定法数字设定法chmodchmod[who][+|-|=][mode]文件名11chmodg+rexample

使同组用户对文件example有读权限。文字设定法

r:可读。w

:可写。x:可执行。目标文件或目录。chmodugo–wmm

将文件mm的写权限删除,它设定的对象为所有使用者。chmodchmod[who][+|-|=][mode]文件名12数字设定法0:没有权限,1:可执行权限,2:可写权限,4:可读权限,然后将其相加。格式3个从0到7的八进制数$chmod644mm

$ls–l

-rw-r--r--1ininusers1155Nov511:22mm$chmod650wch

$ls–l

-rw-r-x---1ininusers44137Nov129:22wchchmodchmod[who][+|-|=][mode]文件名13ln命令对一个已经存在的文件再建立一个新的链接,而不复制文件的内容。文件在磁盘中只有一个拷贝,节省硬盘空间。符号链接硬链接9.1.4文件的链接14硬链接原文件名和连接文件名指向相同的物理地址。目录不能有硬连接。不能跨越文件系统〔不能跨越不同的分区〕可以防止不必要的误删除。删除文件要在同一个索引节点属于唯一的连接时才能成功文件的链接15硬链接〔HardLink〕[root@localhostlink]#ls-ltotal1-rw-r--r--1rootroot667Oct1513:39a[root@localhostlink]#lnab[root@localhostlink]#ls-ltotal2-rw-r--r--2rootroot667Oct1513:39a-rw-r--r--2rootroot667Oct1513:39b[root@localhostlink]#rmarm:remove`a'?y[root@localhostlink]#ls-ltotal1-rw-r--r--1rootroot667Oct1513:39binode/root/linkab16符号链接:ln–slinux特殊文件的一种,它的数据是它所连接的文件的路径名。删除操作删除连接文件:对源文件无影响。删除源文件:可以保存连接文件,但连接文件就会找不到要指向的文件类似windows下的快捷方式。可以对目录进行软连接。没有防止误删除功能。符号链接〔SymbolicLink〕17符号链接〔Symboliclink〕[root@localhostsymlink]#ls-ltotal1-rw-r--r--1rootroot667Oct1513:39a[root@localhostsymlink]#ln-sab[root@localhostsymlink]#ls-ltotal1-rw-r--r--1rootroot667Oct1513:39alrwxrwxrwx1rootroot1Oct1514:20b->a[root@localhostyy]#rmarm:remove`a'?y[root@localhostsymlink]#ls-ltotal0lrwxrwxrwx1rootroot1Oct1514:20b->a[root@localhostsymlink]#catbcat:b:Nosuchfileordirectory

inode/root/linkab18Linux内核中的一个软件层功能:支持多种不同的文件系统向Linux内核和运行的进程提供了一个处理各种物理文件系统的公共接口,隐藏了各种硬件的细节,使得不同的物理文件系统在内核看来都是相同的。Linux支持的文件系统基于磁盘的文件系统、基于网络的文件系统、特殊的文件系统。minix

、ext、ext2、ext3、msdos、proc、fat、vfat

9.2Linux的虚拟文件系统19VirtualFileSystemExt2Ext3...BufferCacheDeviceDriverProcessControlSubsystemSystemCallInterfaceUserProgramsInter-processcommunicationSchedulerMemorymanagementHardware9.2.1虚拟文件系统VFS框架20从物理介质读数据的过程21磁盘分区和文件系统磁盘文件系统引导块超级块分区分区分区inode节点表i节点i节点12k……..目录和文件的数据块数据块超级块(super-block)文件系统的信息:状态、类型、大小、区块数、索引节点数等。操作系统启动后,内核把其中内容复制到内存中,并周期性的利用内存里的最新内容去更新硬盘上的超级块中的内容。引导块:系统启动时所需的信息索引节点表所有索引节点的一个线性表,并统一进行编号;0、1号一般不用,根目录“/”:2号索引节点索引节点:存储一个文件的属性信息(除文件名)22passwd20shadow31……2/820etc8bin11……etc…/根目录文件etc目录文件passwd文件Inode节点表数据区passwdbootBlocksuperBlock路径名的解析过程目录文件存储该目录下文件的文件名与其inode节点对应关系磁盘上的文件两局部数据块:实际存放文件数据的磁盘块索引节点inode/etc/passwd23文件路径名解析实例目录项结构查找/user/ast/mbox的过程根目录6号i-node结点/user目录内容26号i-node结点/user/ast目录内容24超级块super-block存放已挂接文件系统的有关信息索引节点inode存放一个具体文件的一般信息目录项dentry保存目录项与相应文件进行链接的信息文件file(系统翻开文件链表中的一个结点〕存放翻开文件与进程之间进行交互的有关信息9.2.2VFS的数据结构25各种具体文件系统在安装时建立的。在inculde/Linux/fs.h中定义structsuper_block{

structlist_head

s_list;

/*指向超级块链表的指针*/

unsignedlong

s_blocksize;/*数据块的大小〔字节〕*/

structlist_heads_inodes;/*所有索引节点的链表*/

structlist_head

s_files;

/*所有文件对象链表*/……

文件系统中总块数〔文件系统大小〕、数据块的数目

柱面组的数目、空闲块的个数、可用的空闲块表(free[]);

索引节点的数目、空闲的索引节点的个数、空闲索引节点表…...}VFS超级块26索引节点inodestructinode{……

unsignedlong

i_ino;

/*索引节点号*/

atomic_t

i_count;

/*引用计数器*/

kdev_t

i_dev;

/*设备标识号*/

uid_t

i_uid;

/*文件拥有者标识号*/

gid_t

i_gid;

/*文件拥有者所在组的标识号*/

time_t

i_atime;

/*文件的最后访问时间*/

time_t

i_mtime;

/*文件的最后修改时间*/

unsignedlong

i_blocks;

/*该文件所占块数*/

文件类型(i_mode)、文件访问权限(i_mode)

链接数(i_nlink)、文件所在物理块号表(索引表i_addr[])

文件长度

(i_size)……}一个结构,包含文件的长度、创立及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。索引节点号:节点在数组中的索引号。在/includ/fs/fs.h中定义27在磁盘上没有对应的映象。目录项dentrystructdentry{

unsignedintd_flags;

/*目录项标志*/

structinode

*d_inode;

/*与文件名关联的索引节点*/

structdentry*d_parent;

/*父目录的目录项*/

structlist_headd_hash;

/*目录项形成的哈希表*/

structlist_headd_child;

/*父目录的子目录项所形成的链表*/

structlist_headd_subdirs;

/*目录项的子目录所形成的链表*/

structlist_headd_alias;

/*索引节点别名的链表*/

structqstrd_name;

/*目录项名〔可快速查找〕*/

structsuper_block*d_sb;

/*目录项树的根〔即文件的超级块〕*/structqstrd_name/*文件名*/

……

};28引入目录项的目的:方便查找文件。一个路径的各个组成局部。不管是目录还是普通的文件,都是一个目录项对象。如,在路径/home/source/test.c中,目录/,home,source和文件test.c都对应一个目录项对象。没有对应的磁盘数据结构,VFS在遍历路径名的过程中现场将它们逐个地解析成目录项对象。目录项dentry29系统翻开文件链表一个双向链表:Linux系统内核把所有进程翻开的文件集中管理。全局变量first_file指向其表头。每个节点是一个file结构。存放一个已翻开文件的管理控制信息进程访问文件前调用open(),建立一个file结构体,已翻开的文件在内存中的表示。建立进程和磁盘上的文件的对应关系,用户只需与文件对象打交道,而无须关心超级块,索引节点或目录项。30系统翻开文件链表中的结点filestructfile{structlist_head

f_list;

/*所有翻开的文件形成一个链表*/

structdentry

*f_dentry;

/*指向相关目录项的指针*/

structvfsmount

*f_vfsmnt;/*指向VFS安装点的指针*/

structfile_operations

*f_op;

/*指向文件操作表的指针*/

atomic_t

f_count;

/*文件对象的引用计数器*/

unsignedint

f_flags;

/*翻开文件时所指定的标志*/

mode_t

f_mode;

/*文件的翻开模式*/

loff_t

f_pos;

/*文件的当前位置*/structinode*f_inode;/*指向文件对应的inode*//*预读标志、要预读的最多页面数、上次预读后的文件指针、预读的字节数以及预读的页面数*/……};f_mode:文件创立或翻开时指定的文件属性,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论