




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第六章第六章 UNIX文件系统文件系统可从两个角度观察文件系统的性能:用户是否便捷易用且文件访问效率高;内部结构是否组织合理,可扩展,易实现。6.1 UNIX文件概念一般文件是字节序列,无结构约束;特殊文件对硬件设备、管道、链接进行描述。系统用同样的管理机制管理各种文件。6.2 UNIX的文件类型1. 普通文件以字节为单位的数据流,包括: 文本文件、源码文件、数据文件、可执行文件。文件名。文件索引号。字节数。最后访问时间。文件存取权限。属主名。属组名文件属性约40项,与使用有关的主要内容:UNIX普通文件命名规则普通文件命名规则 命名规则随意 扩展名没有硬性规定如可以指定: filea.exe
2、 为文档文件; fileb.text为可执行文件UNIX文件解释交给应用程序文件解释交给应用程序Unix文件系统不对文件内容做标注和解释文件系统管理任务比较简单、清晰对同一文件可以有多种解释结果目录称为“目录文件”,其中包括了目录中的文件名和文件描述信息。每个目录项包括: . 目录/文件名 . 索引节点号InodeFile name其中Inode通常为4字节指针,是磁盘中一个数组的索引号。该数组对应一个文件的属性信息结构,每个文件有唯一的inode及属性信息结构。UNIX目树仅有一个根,除了可以创建目录树外,还可以通过安装和卸载命令构成或修改目录树。目录树及目录文件目录树是UNIX文件系统的组
3、成部分;有关目录树的命令很多,原则上目录树的深度无限制。/usrdevsbinhomeetctmpbinteam1team2binlibmanlocalzhangwangliliuzhao一个典型的unix目录树结构/usr 可共享的操作系统命令,库,和文档。/sbin 引导系统和安装其它文件系统的最少需要的命令/opt 应用程序/etc 系统配置文件,不再包含可执行文件/dev 设备文件/var 动态信息例如日志,脱机打印缓冲文件/mnt 本地装载的文件系统/tmp 操作系统临时文件/stand 内核和引导加载器。/home 用户目录第六章第六章 UNIX文件系统文件系统 /usr目录的更详
4、细的内容/usr目录包含操作系统的大部分,包括命令,库,和文档。/usr文件系统包含操作系统的文件,例如可执行文件和ASCII文档。/usr目录下标准的子目录在如下定义;/usr/bin 操作系统的用户命令/usr/conf 内核配置文件/usr/contrib 发布的软件/usr/lbin 其它命令文件/usr/local 用户自己安装的软件/usr/newconfig 默认的操作系统配置数据文件/usr/sbin 系统管理命令/usr/share 独立结构的共享文件/usr/share/man 操作系统帮助手册/usr/share/doc 技术相关的白皮书第六章第六章 UNIX文件系统文件
5、系统 /var目录的详细内容/var目录中保存各种日志,临时文件,中间文件,和打印缓冲文件。任何应用程序或者命令在运行时候创建的文件,对操作系统来说不是关键性的数据,通常都会被放在/var目录的下面。例如,/var/adm中会包含于系统管理相关的日志和其它运行时创建的文件。第六章第六章 UNIX文件系统文件系统 /var下面包含的文件有: /var/adm 普通的管理文件和日志文件/var/adm/crash 内核的dump文件/var/mail 收到的邮件/var/opt/ 应用运行时产生的文件(例如日志,临时文件)。每一个应用程序有自己的目录/var/spool 操作系统子系统,例如lp(
6、打印),cron等系统的缓冲文件/var/tmp /usr目录下的命令产生的临时文件第六章第六章 UNIX文件系统文件系统 应用程序的目录每一个应用程序会在/opt,/etc/opt,/var/opt下面有自己的子目录。而应用程序的可共享的,或者静态的部分在它们自己的/opt/application目录下,这个目录的结构同操作系统文件系统的结构类似:/opt/application/bin 用户命令/opt/application/share/man 帮助手册/opt/application/lib 库/opt/application/lbin 后台命令/opt/application/new
7、config 配置文件的主拷贝第六章第六章 UNIX文件系统文件系统 帮助你定位的命令find 在文件系统层次结构中查找文件whereis 定位源程序,二进制代码,和帮助手册的位置Which 在你的PATH中定位一个可执行文件file 判断文件的类型第六章第六章 UNIX文件系统文件系统 使用例子查找属于用户grep的所有文件# find / -user grep在/tmp目录下查找7天都没有存取的文件# find /tmp -type f -atime +7删除core文件# find / -name core -exec rm ;whereis命令whereis 命令在你收到“没有发现”错
8、误信息的时候十分有用。它会搜索一个预定义的目录列表。默认的情况下,whereis会去搜索源程序,二进制文件,和帮助手册。你可以使用-b选项来限制它只搜索二进制代码。例子:# whereis -b lsls: /usr/bin/ls /sbin/ls第六章第六章 UNIX文件系统文件系统 which 命令which命令在在判断将要使用命令的哪一个版本时有用。一些命令有多个home。你到底是执行的哪一个版本,是由你PATH变量中指定的目录的顺序决定的。file命令file命令对文件作一系列的测试,然后会试图对文件归类。这个命令在判断一个命令是一个shell脚本还是一个二进制的可执行文件时有用。例子
9、:# file /sbin/shutdown/sbin/shutdown : s800 shared executeable# file /sbin/rc/sbin/rc: ascii textstrings 命令strings命令可以找出一个二进制文件中的可用信息,它会在屏幕上显示出文件中的任何可以打印的字符。对目录操作及文件操作的命令有:对目录操作及文件操作的命令有: 目录: mkdir; cd; pwd; mv; rmdir 文件:cp; cat; ln; rm; mv 目录树:ls; chmod; du; find. UNIX特殊文件UNIX将I/O设备也看成特殊文件,用对文件管理的方
10、式管理设备,其优点是:1) 文件与设备的输入输出尽量统一2) 命令解释过程简单3) 设备和文件在操作系统内处于同等保护机制下特殊文件又可分为:。块设备文件文件类型记为b。字符设备文件文件类型记为c. 管道文件(FIFO)管道文件主要用于进程间通信;用于进程间通信的方式有“管道”、“有名管道”或“sockets”。 “管道”是一片核心存储区,允许两个有关进程通过它进行通信,尤其是父子进程间的通信。 “有名管道”可当作文件使用,通信的两个进程在同一机器中,但可能相互无关,文件类型记为 p。 Socket是一个核心存储中的数据结构,用于管理存在于网络中的进程通信。典型应用是管道线命令方式:ls l
11、| sort n +4. 链接文件使用链接可以建立文件间的共享,这种关联在UNIX中也作为一种文件管理。符号链接文件是一种链接指针,它允许指向一个已存在的文件,可以共享该文件但不复制其文件内容。符号链接形成的link文件类型记为“l”。6.3 UNIX文件系统文件系统1. 文件组织及命名文件组织及命名常见文件组织结构: 堆 顺序文件 索引文件(UNIX采用方式) 散列文件UNIX文件命名方式: 简单,随意。用 ls -l命令输出有:-rwxr-xr-x 1 chr seis 4630 Feb 2 08:51 a.out-rw-r- -r - 1 chr seis 732 Feb 2 08:50
12、 abc.c (1) (2) (3) (4) (5) (6) (7)其中(1)项表示文件许可机制:。第一位判断文件类型 (- , d , b , c, l, p)。后9位构成 u, g, o用户对文件的使用权限2. 文件许可机制文件许可机制用户对文件及目录拥有的权限: 权限 文件 目录 r 读权 读,列出目录内容 w 写权 修改,增删改目录 x 执行 在查寻路径名中使用可用umask命令设置默认许可机制意义: 777-“需要访问机制”= “默认许可机制设置值”用 chomd 命令修改许可机制。系统默认许可机制:。对一般文件: rw- r- r-。对可执行文件及目录文件:rwx r-x r-x第
13、六章第六章 UNIX文件系统文件系统 文件、目录的所有者和权限第六章第六章 UNIX文件系统文件系统 第六章第六章 UNIX文件系统文件系统 第六章第六章 UNIX文件系统文件系统 第六章第六章 UNIX文件系统文件系统 第六章第六章 UNIX文件系统文件系统 第六章第六章 UNIX文件系统文件系统 g第六章第六章 UNIX文件系统文件系统 第六章第六章 UNIX文件系统文件系统 3. 文件系统功能及结构 对辅存空间的管理 文件按名访问构建与存储介质无关的文件逻辑结构 确立文件存储结构确定不同介质的物理存放格式 执行对文件的操作读、写、打开、关闭 提供文件保护和共享机制一般文件系统完成的工作
14、一般文件管理系统结构堆文件顺序文件索引顺序文件索引文件散列文件逻辑输入/输出管理层基本输入/输出管理层基本文件系统字符设备驱动块设备驱动顶层二层三层四层五层4. 系统中的一些特殊目录 /dev 逻辑设备目录 /bin, /usr/bin 用户命令目录 /sbin,/usr/sbin 系统命令 /lib, /usr/lib 用户库或系统库 /etc 系统管理命令 /home 用户注册目录 /tmp 临时文件目录5. 文件系统安装与拆卸 安装文件系统命令 mount mount option filesystem mountpoint说明:option可取: -h -输出该命令帮助信息 -V-输出
15、该命令版本号 -a - 按fstab文件所指位置安装所有文件系统 -F-为设备生成一个安装点 -r-安装只读文件 -w-安装文件可读可写filesystem :是要安装的文件系统,通常是/dev/devicemountppint: 是安装点的描述信息,应已存在且不是/系统文件/etc/fstab是自动安装文件系统时读取的信息文件,用以下格式列出每个要安装文件系统情况:/dev/device /dir/to/mount ftype parameters fs_freq fs_passno /dev/device:需安装设备,如/dev/hda4 /dir/to/mount: 文件系统安装点 ft
16、ype: 文件系统类型,如minix、 vfat、ext2、ntfs等 Parameters:在-o选项后使用的参数 fs_freq:决定该文件系统是否使用垃圾箱 fs_passno:确定引导时检查磁盘的顺序 卸载文件系统 umountumountoption filesystemoption可取: -a-对所有在/etc/mtab中描述的文件卸载 -h-输出帮助信息并退出 -n-卸载时不写/etc/mtab -r-当卸载失败时,重装成只读文件系统 -V-输出umount版本号1. 物理卷与逻辑卷概念 物理卷每个独立硬盘称物理卷,使用时须分配一个特定的逻辑名,放在/dev中。例: /dev/h
17、disk0 /dev/hdisk1 物理分区在物理卷中划分成同样大小的块是物理分区,可以是512-4KB 逻辑卷和逻辑分区逻辑卷是多个物理卷中部分物理分区的集合,逻辑卷由逻辑分区构成,且逻辑分区与物理分区相对应。 卷组由物理卷和逻辑卷构成,其中物理分区相同6.4 UNIX文件系统内部存储文件系统内部存储这些结构的相互关联关系如下:这些数据是IBM R600的AIX管理参数 逻辑卷的管理每个卷组的物理结构:卷组描述卷组状态数据存储块逻辑卷控制块逻辑存储块每个逻辑卷的结构:磁盘是文件系统的主要载体,也是系统一种设备,UNIX文件系统实现对该设备的多层抽象处理。第一层抽象:从磁盘到分区 磁盘可划分成
18、分区,使得在大实体内创建独立区域,每个分区可看成独立磁盘。第二层抽象:从分区到块序列 扇区是基本存储单元,对其编号使系统能计算磁盘中的每个块,可将磁盘视为一系列块的组合。第三层抽象:从块序列到四个部分的划分 文件系统中包括文件内容、文件属性、目录,UNIX将每个独立的磁盘分成4个部分:数据区、i-node table、超级块、引导块。2. 文件系统存储结构文件系统存储结构UNIX文件系统由四部分构成:1243引导块=0#块超级块=1#块索引节点表=2-k#块数据区=k+1-n#块 引导块(引导块(bootblock):存放操作系统引导和启动代码,只有一个文件系统中具有引导代码,其余的引导块为空
19、。超级块(超级块( superblock):存放文件系统及管理资源的描述信息:文件系统状态、索引节点信息、存储块信息。系统中有冗余备份。索引节点表(索引节点表( I_node table):存放本文件系统中每个文件的描述信息项,是BFD 表结构数据区(数据区(data are):包含的文件数据及目录文件数据,空闲区块。继续3. 索引节点和目录文件的作用索引节点和目录文件的作用1)文件文件i-node中包括中包括:。文件类型。文件许可机制。文件的uid ,gid。文件被访问时间。链接数。文件长度。文件数据块指针2)目录文件主要包括文件名和对应文件索引节点号.传统UNIX 目录文件登记项:索引号
20、文件名 2字节 14字节修改后的登记项: 4字节 255字节索引号本记录长文件名长文件名4. 多重索引存储结构用直接寻址指针和间接寻址指针构成多重索引结构,便于文件访问。索引结构图设: 每物理盘块=512字节 每地址指针用4个字节表示可知:一个文件占据的最大容量为: 10+128+1282 +1283 =2113674块继续返回索引节点属性信息7123450681091112.直接寻址数据块一次间接二次间接三次间接6.5 UNIX6.5 UNIX文件系统动态管理文件系统动态管理通过逻辑卷识别多种文件系统通过逻辑卷识别多种文件系统unix可支持多种文件系统,其实现机制有两种: 在系统内核中支持不
21、同文件系统 用活动的内核加载方式实现无论怎样都需要将文件的逻辑卷与设备物理卷之间建立关联,查阅系统中这些关联关系时可用df命令。UNIX文件系统按文件卷(volume)进行构造,文件卷与目录结构或物理设备对应,用 % df -k 可看到:filesystem kbytes used avail capacity mounted on/dev/dsk/cot3dos0 144951 89757 40706 69% /dev/dsk/cot3dos6 625262 554204 7538 99% /usr/dev/dsk/cot0dos2 195257 166310 9422 80% /home注
22、意:一个在df命令中查阅到的文件卷才是一个可用的文件系统,这个文件系统一定与一个物理存介质相对应。查看文件卷与物理设备之间的关系在内存建立一个解释文件系统的抽象软件VFS用建立物理设备与文件系统服务的接口对每个文件系统细节进行抽象,使不同的文件系统在系统内部被管理进程看成相似的文件系统系统启动时建立,系统关闭时消失 2.2.用虚拟文件系统实现多种文件系统识别用虚拟文件系统实现多种文件系统识别实现主要功能:记录可用文件系统类型; 建立设备与文件系统的关联; 实现面向文件级的通用性操作; 将对特定文件系统的操作影射到物理文件系统中。VFSMINIX FSEXT FSEXT2 FSMSDOSFS缓冲
23、存储区I/O驱动VFS inode 缓存VFS目录缓存虚拟文件系统实际文件系统与实际文件系统的逻辑关系与实际文件系统的逻辑关系VFS工作机理:工作机理:1)所有对文件的访问须经过VFS,完成过滤和分派处理;2)VFS与所有可识别的文件系统建立接口,如iso9660 、FAT、ext2等;3)VFS目录缓存作用:对所有访问到的目录做缓存,以减少对目录检索次数,加快对目录的访问;4)VFS Inode 缓存作用:因UNIX对文件访问是通过 Inode实现的,对它做缓存也可提升访问效率。3. 文件数据结构在系统内部的动态管理文件数据结构在系统内部的动态管理UNIX通过对数据结构(如:超级块、索引节点
24、、目录记录项等)操作实现对文件系统的管理,但在实现中还要建立一些动态数据结构。内存超级块。活动索引节点表。用户打开文件表。系统打开文件表。安装表动态数据结构与静态描述结构关联图继续返回4. UNIX检索文件的流程以访问文件“./a/b”为例,说明文件的内部检索过程.1)检索当前目录的索引节点2)通过当前目录找到当前目录文件查出.节点3)检索.索引节点4)通过.文件找到.文件查出a的索引节点号5)检索a的索引节点号6)找到a的目录文件,查出b的索引节点号7)检索b,找到b的文件位置8)访问文件 b5. unix对文件共享的管理UNIX中有多种文件共享需求:。不同用户的不同级别共享:通过文件访问权
25、限实现。父子进程对文件的共享:通过修改文件访问计数实现。文件的链接共享使用硬链接及符号链接的命令:% ln abc.c xyz.c% ln -s xyz.c def.c(查看结构)。通过管道线的文件共享 管道文件的大小限定及访问特性继续硬连接及符号链接原理图硬连接及符号链接原理图返回6.6 6.6 使用系统调用管理文件的方法使用系统调用管理文件的方法1. 文件管理有关知识1)文件描述符高级语言中的输入/输出库函数是对FILE类型的指针操作,c语言处理中自动打开stdin,stdout,stderr三个文件。操作系统中用一个整形数描述打开的文件,它就是文件描述符 文件描述符与文件名之间有唯一对应
26、关系。2)再谈文件访问权限文件访问权限构成文件访问权限构成已知当创建一个新文件或目录时,依据umask命令参数完成.umask命令设置访问权限屏蔽位;通常是:缺省权限&(屏蔽位数)=最终访问权限例如: 若可执行文件缺省权为777, 又执行了 $ umask 777则新建文件权限为 777&777=000 umask缺省值通常放在系统文件“.profile”或“.login”中. 文件的特殊访问位文件的特殊访问位除了文件访问权限外还有文件特殊访问位,它与文件访问权限紧密相关。文件访问权限中的9位三个组数分别对应:属主,属组,其它. 它们在内部对应着三个特殊访问位的描述: set-
27、user-ID(SUID) set-group-ID(SGID) sticky SUID位可解决用户修改自己密码问题。因文件按权限控制,写权限就意味着修改权。但/etc/passwd权限为 : -rw-r- -r- - 1 root root 894 Jun 20 19:17 /etc/passwd希望做到:普通用户无写权但应能写, 但这个写权只限于写自己的口令。解决办法:给passwd命令一个特殊的权限,使用该命令的文件所有者临时成为root,通过特殊属性控制达到对有效用户ID进行控制.SUID可用chmod命令设置:chmod 4* file-list 或chmod u+s file-li
28、st如: $ ls -l cp.new-rwx-x- 1 sarwar faculty 12 may 08 20:00 cp.new$ chmode 4710 cp.new$ ls -l cp.new-rws-x- 1 . 用户执行位变为s$ chmod u-s cp.new$ chmod u-x cp.new 用户执行权被取消 $ chmod u+s cp.new 用户执行位显示S SGID位用于指明组的执行权设定.Chmod 2* file-list 或chmod g+s file-list如:$ chmod 2751 cp.new $ ls -l cp.new-rwxr-s-x 1 若原
29、组执行位未设置时,则为 大写“S”,否则为“s”。sticky 位对文件:将该文件存放在交换区,为了支持交换技术用。对目录:主要用于控制共享目录被多个用户拥有的权限,例如/tmp目录管理, sticky 位使目录中的文件只能被创建者删除。 chmod 1* file-listchmod +t file-list如:$ chmod 1751 cp.new$ ls -l cp.new-rwxr-x-t 1 .-rwxr-x-T 1 (当“其他用户”执行位未被设置时)小结:chmod 命令中使用的文件访问保护位:SUIDSGIDStickyOwnerGroupOther1471011121)crea
30、t系统调用creat 创建一个空文件或将已有文件截为空文件调用格式:fd=creat(name,pmode)这里pmode指定新建文件许可位;例如: fd=creat(“newfile”,0744);表示指定新建文件许可位为:rwxr- - r - -而若前面已做了umask(022);则核心程序做:( 022)&0744=07442. 文件管理系统调用文件管理系统调用2)link 建立文件的连接调用格式:status=link(name1,name2)status可以为0,-1系统的全局变量errno记录着出错代码3)unlink 删除连接文件调用格式为:status=unlink(
31、name)状态与上条类似。作用是:从目录文件中删除一个登记项4)open/ close系统调用。Open 打开文件调用格式:fd=open(name,rw-mode,pmode)正常fd=3,表示打开文件的描述符;rw-mode是读写方式:0,1,2或O_RDONLY ,O_WRONLY O_RDWR;Pmode是指用open创建一个新文件时的访问权限。close 关闭文件调用格式:status=close(fd)用fd指明欲关闭的文件。5) read/ write系统调用完成对文件的读写操作。调用格式:n=read(fd,buffer,size);n=write(fd,buffer,size
32、);它们与高级语言中库函数很相似:n=fread(buffer,byte,record,fp);n=fwrite(buffer,byte,record,fp); 区别:1)前者是对文件描述符fd操作,后者对指针fp操作2)前者没有记录的概念,后者有3)前者是底层服务,后者是高层服务,提供缓冲机制。系统调用举例:写一段c程序,完成下列命令的功能:% cp file1 file2无论文件是何种类型(字符可见、二进制不可见)。注意:对文件的读/写中使用不同的size值,其访问速度会受到影响,请编写程序感受这一点。Main( argc,argv)int argc;char *argv ; int fd
33、1,fd2, n; char buf512,ch=nif (argc0) write(fd2,buf,n);close(fd1);close(fd2);编写一个简单的cp命令程序:6.7 6.7 文件随机存取技术文件随机存取技术1.改变文件指针位置lseek 系统调用,调用格式:newpos=lseek(fd,offset,origin);fd: 打开文件描述符offset: 从指定位置开始的位移量Origin:是offset参数的基点。2. 获取当前文件指针位置系统调用tell可报告当前文件指针位置调用格式: pos=tell(fd)pos: 长整数,文件指针位置fd: 文件描述符tell与
34、lseek连用可对文件中的内容做随即访问,举例说明如下:#include#includechar buf1=the is test text;char buf2=12345;main( ) int fid;if(fid=creat(Test,0644)0)printf(creat file errorn);exit(1);elseif(write(fid,buf1,16)=-1) printf(buf1 write errorn);exit(1); post=tell(fid); printf(“file postis_1:%d”,post);if(lseek(fid,30,SEEK_SET)= =-1)printf(lseek errorn);exit(2);if(write(fid,buf2,5)!=5) printf(buf2 write errorn); exit(3); post=tell(fid); printf(“file postis_2:%d”,post); close(fid); exit(0);1.记录锁定技术的描述Unix允许多个用户同时打开一个文件进行读写操作,使用部分记录锁定方法保证多个用户间的同步操作.6.8 6.8 文件记录管理文件记录管理系统调用loc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年户外广告牌制作与安装合同
- 2025家具类标准长期供货合同
- 2025新版私人汽车租赁合同范本
- 杭州租房合同书协议书范例二零二五年
- 土方工程施工承包协议
- 家装设计合同书范例
- 班组劳务用工合同书
- 二零二五版试用期计件制劳动合同书
- 2025四川合同范本
- 2025销售代表劳动合同
- 2025年职业院校技能大赛“健身指导”赛项考试题库(含答案)
- 2025成都店铺租赁合同范本
- TCECS24-2020钢结构防火涂料应用技术规程
- 2025年上海市虹口区二模生物试卷
- (二模)台州市2025届高三第二次教学质量评估试题 地理试卷(含答案)
- 社会心理学(西安交通大学)智慧树知到期末考试答案2024年
- 契税补贴申请表
- 西山煤电集团白家庄矿煤层开采初步设计
- 鲁班奖迎检分工细化
- 最新金属软管设计制造新工艺新技术及性能测试实用手册
- 渠道项目报备管理规定
评论
0/150
提交评论