版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Chapter11FileSystemsInterfaceFileConcept(文件概念)AccessMethods(存取方法)DirectoryStructure(目录结构)FileSystemMounting(文件系统挂载)FileSharing(文件共享)Protection(保护)Unix/Linux文件系统概述WhyafilesystemThereisageneralneedforlong-termandshareddatastorage:FilesmeettheserequirementsThefilemanagerorfilesystemwithintheOSfilesystem文件系统是操作系统中负责管理和存取文件信息的软件机构,它是由管理文件所需的数据结构和相应的管理软件以及访问文件的一组操作组成。从系统的角度看:文件系统是一个负责文件存储空间管理的机构。从用户的角度看:文件系统是用户在计算机上存储信息、和使用信息的接口。FileConceptAbstractionpresentedtotheuser文件是具有符号名的记录的集合.FilenamemayencodethefiletypefileextensionsinUNIXandWindowsCommonexamplesofFiletypesRegularfiles,directoriesExecutablefilesspecialfiles(blockandcharacter)ArchivesFileStructureNone-sequenceofwords,bytesSimplerecordstructureLines,Fixedlength,VariablelengthComplexStructuresFormatteddocument,multi-mediadocuments Whodecides:OperatingsystemApplication“Middleware”DBMSFileAttributesName
–onlyinformationkeptinhuman-readableform.Type
–neededforsystemsthatsupportdifferenttypes.Location
–pointertofilelocationondevice.Size
–currentfilesize.Protection
–controlswhocandoreading,writing,executing.Time,date,anduseridentification
–dataforprotection,security,andusagemonitoring.Informationaboutfilesarekeptinthedirectorystructure,whichismaintainedonthedisk.FileTypes–name,extensionCasestudy–unixfileUNIX系统文件分类方法:1、普通文件普通文件是无结构的字符的集合。2、目录文件目录文件是由文件的目录项组成的文件。3、特别文件特别文件就是设备。FileTypes–name,extensionUNIX系统中的文件名:文件名是一个不大于14个字符的字符串。并且区分英文字母的大小写。例如:unixlinuxll.ca.outaaAA注意:在UNIX系统中文件名就是一个字符串,没有文件名和文件扩展名之分,文件的类型由用户命名时确定UNIX系统中文件属性:-普通文件d目录文件p管道文件c字符型设备文件b块设备文件FileOperationscreatewritereadrepositionwithinfile–fileseekdeletetruncateopen(Fi)
–searchthedirectorystructureondiskforentryFi,andmovethecontentofentrytomemory.close(Fi)
–movethecontentofentryFiinmemorytodirectorystructureondisk.AccessMethodsSequentialAccess-readnextwritenextresetnoreadafterlastwrite(rewrite)DirectAccess:n=relativeblocknumberreadnwritenpositiontonreadnextwritenextrewritenSequential-accessFileSimulationofSequentialAccessonaDirect-accessFileExampleofIndexandRelativeFilesDirectoryStructureAcollectionofnodescontaininginformationaboutallfiles.F1F2F3F4FnDirectoryFilesBoththedirectorystructureandthefilesresideondisk.Backupsofthesetwostructuresarekeptontapes.ATypicalFile-systemOrganizationInformationinaDeviceDirectoryNameTypeAddressCurrentlengthMaximumlengthDatelastaccessed(forarchival)Datelastupdated(fordump)OwnerID(whopays)Protectioninformation(discusslater)OperationsPerformedonDirectorySearchforafileCreateafileDeleteafileListadirectoryRenameafileTraversethefilesystemOrganizetheDirectory(Logically)Efficiency
–locatingafilequickly.Naming
–convenienttousers.Twouserscanhavesamenamefordifferentfiles.Thesamefilecanhaveseveraldifferentnames.Grouping
–logicalgroupingoffilesbyproperties,(e.g.,allPascalprograms,allgames,…)Single-LevelDirectoryAsingledirectoryforallusers.Namingproblem:主要问题是"重名"问题GroupingproblemTwo-LevelDirectorySeparatedirectoryforeachuser.PathnameCanhavethesamefilenamefordifferentuserEfficientsearchingNogroupingcapabilityTree-StructuredDirectoriesTree-StructuredDirectoriesAbsoluteorrelativepathnameCreatinganewfileisdoneincurrentdirectory.Deleteafile
rm<file-name>Creatinganewsubdirectoryisdoneincurrentdirectory.
mkdir<dir-name> Example:ifincurrentdirectory/spell/mail
mkdircountEfficientsearchingGroupingCapabilityCurrentdirectory(workingdirectory)cd/spell/mail/progtypelistmailprogcopyprtexpcountDeletingmaildeletingtheentiresubtreerootedby‘mail’Tree-LevelDirectory路径名:一个文件的路径名是由根目录到该文件的通路上所有目录文件名和该文件的符号名组成的。DOSWINDOWS系统中文件路径名\A\R\T\B\IU\I\D\B\PNIX系统中文件路径名/A/R/T/B/IU/I/D/B/PTree-LevelDirectoryAcyclic-GraphDirectoriesHavesharedsubdirectoriesandfiles.Acyclic-GraphDirectoriesTwodifferentnames(aliasing)Ifdictdeletesall
danglingpointer. Solutions:Backpointers,sowecandeleteallpointers.
Variablesizerecordsaproblem.Backpointersusingadaisychainorganization.Entry-hold-countsolution.GeneralGraphDirectoryGeneralGraphDirectory(Cont.)Howdoweguaranteenocycles?Allowonlylinkstofilenotsubdirectories.Garbagecollection.EverytimeanewlinkisaddeduseacycledetectionalgorithmtodeterminewhetheritisOK.FileSystemMountingAfilesystemmustbemountedbeforeitcanbeaccessed.Aunmountedfilesystem(I.e.Fig.11-11(b))ismountedatamountpoint.(a)Existing.(b)UnmountedPartitionMountPointFileSharingSharingoffilesonmulti-usersystemsisdesirable.
Sharingmaybedonethroughaprotectionscheme.
Ondistributedsystems,filesmaybesharedacrossanetwork.
NetworkFileSystem(NFS)isacommondistributedfile-sharingmethod.ProtectionFileowner/creatorshouldbeabletocontrol:whatcanbedonebywhomTypesofaccessReadWriteExecuteAppendDeleteListAccessListsandGroupsModeofaccess:read,write,executeThreeclassesofusers
RWX
a)owneraccess 7 111
RWX
b)groupsaccess 6 110
RWX
c)publicaccess 1 001Askmanagertocreateagroup(uniquename),sayG,andaddsomeuserstothegroup.Forparticularfileorsubdirectory,defineanappropriateaccess.ownergrouppublicchmod761gameAttachagrouptoafilechgrp
GgameLinux文件系统概述Linux文件系统是在内核内存和外部存储器中管理文件系统目录的一个内核子系统Linux内部认为,一个文件就是一个可以存储在辅助存储系统上的有名字节流:该字节流细分成一组块,这些块是按某一种文件系统类型所选取的策略存储在辅助存储系统上的Linux支持多种文件系统类型每一种类型是一种不同的文件系统实现通常每一种类型都在一个可装载模块中一些重要的文件类型编译到了内核中Linux支持多种文件系统实例每一个实例是一个安装(mounted)了的文件系统每一个Linux系统有一个根文件系统文件系统的软件体系结构Linux文件系统类型基于实际设备的文件系统建立在块设备(磁盘等)之上,例:ext、ext2、ext3
、VFAT、msdos、umsdos、vfat、ntfs、iso9660、minix、xia、sysv、其它,如swap、NFS等。网络文件系统处理网络协议的特殊模块,例:NFS、SMB虚拟/特别文件系统/proc、/dev(devfs)等Linux的VFS虚拟文件系统也叫虚拟文件系统转换(virtualfilesystemswitch),其数据结构都是随时建立和删除的,在盘上并不永久存在,只能放在内存中目的给用户模态进程提供统一的文件管理接口为各种不同的文件系统类型提供内核抽象功能提供与文件和文件系统相关的系统调用的服务管理所有与文件和文件系统相关的数据结构提供进行有效查找和遍历文件系统的例程与特定的文件系统模块进行交互VFS的四个基本数据结构superblock:用于一个文件系统每一个安装了的文件系统都有一个superblock对象inode:用于一个特定的文件(相当于Unix的vnode)每一个文件由磁盘上的一条inode记录表示有些作为inode对象装载到了内核内存dentry:用于目录树结构一个目录中的每一个入口都由一个dentry表示用于pathname到inode的映射file:用于一个打开的文件句柄每一个进程都通过文件句柄跟踪打开的文件VFS对象的关系dentry和inodedentry只驻留在内核内存中inode驻留在磁盘上,但是为了访问被装载到内存中file和inode之间存在一一映射一个file(inode)可能有多个dentry一些双向链表通过structlist_head*的一个域链接同一类型的所有对象表头是另一类型对象的一个变量或者一个域VFS对象的抽象视图文件系统的安装常用术语安装点安装了的文件系统的根目录根文件系统要使用一个文件系统首先必须注册,然后必须进行安装在安装Linux时,磁盘上已经有一个分区安装了EXT2文件系统,它被用来作为根文件系统,根文件系统在系统启动时自动安装安装一个文件系统文件系统安装每一个文件系统实例是一棵树安装:将一个文件系统的树根嫁接到另一个文件系统的叶子,形成一个更大的树数据结构:structvfsmount代表一个安装了的文件系统实例Linux文件系统的装卸文件系统的使用UNIX文件系统只有一个根目录(/)mount(安装、挂载)操作
建立文件系统与目录(mountpoint)的联系:mount/dev/hdb1/homemount-tmsdos/dev/fd0/mnt/floppymount-t-iso9660/dev/cdrom/mnt/cdrommount-tvfat-ocodepage=936,iocharset=cp936/dev/hda5/mnt/dumount(卸载)操作 切断文件系统与目录的联系。
umount/mnt/floppyUNIX/Linux的文件系统结构1.UNIX文件系统结构 (硬盘分区上)引导块(bootstrap)超级块(专用块、superblock) 记录fs的整体信息,管理和控制文件卷的资源。内容包括fs的名称、状态;fs的大小,总盘块数、已用、空闲;空闲盘块索引;空闲i-node数、索引;封锁标记、修改标记;……UNIX/Linux的文件系统结构索引节点表(i-nodetable)
描述文件的重要信息。数据区 存放文件的内容。UNIX/Linux的文件系统结构
ext2文件系统结构一个文件系统只有一个引导块;只有“/”放引导程序;将块划分块组,每个块组重复保存fs的信息 (优点:安全、高效:崩溃时易于恢复;i-node和data近,操作快)超级块是fs的信息,块组描述符是块组的信息(后4项)UNIX/Linux的文件系统结构ext2超级块
文件系统的大小、形状等信息。幻数(magicnumber)。安装时确认是ext2的超级块;文件系统的版本号(主版本号、次版本号);mount计数和最大mount数;本超级块的块组号码;数据块大小(单位);数据块数目;空闲块数目;空闲i-node数目;fs中第1个inode的号码。UNIX/Linux的文件系统结构目录和索引节点(i-nodei:information)目录文件目录本身也是文件;UNIX/Linux的文件系统结构UNIX/Linux的文件系统结构目录文件包含的信息:一般OS:目录中包括关于文件的信息,如文件名、属主、权限、文件长度、文件的创建、访问、修改时间等。UNIX:目录项主要只有2项:文件名、i-node号。关于文件的信息放在i-node中。 一个目录中至少有2个登记项.和..。Linux和后期的UNIX的扩展目录项变长;有的系统(ext2、BSD)补足4的整数倍;UNIX/Linux的文件系统结构例:/usr/include/linux/ext2_fs.h中的定义/**Structureofadirectoryentry*/#defineEXT2_NAME_LEN255structext2_dir_entry{ __u32 inode; /*索引节点号*/ __u16 rec_len; /*目录项长度*/ __u16 name_len; /*文件名长度*/
char name[EXT2_NAME_LEN]; /*文件名*/};UNIX/Linux的文件系统结构文件的多重索引结构Linux缺省块大小为1k字节,每指针4字节1024/4=256个指针/块(块大小可以在fs创建时指定)文件的容量=10+256+256^2+256^3=10+256+64MB+16GBLinux是32位OS,故4GB。访问速度:当文件<260K时快。虚拟文件系统(vfs)本节内容:1.虚拟文件系统(vfs)结构2.
vfs主要数据结构(4类:超级块、索引节点、目录项、文件及相互关系)3.vfs的注册、mount和umount4.高速缓存(块高速缓存、索引节点高速缓存、目录高速缓存)虚拟文件系统(vfs)1.vfs系统结构(支持多种文件系统的统一接口)虚拟文件系统(vfs)虚拟文件系统(vfs)vfs系统是一个内核中的通用的文件子系统。vfs系统作用:对具体文件系统,vfs是管理者;对内核各子系统,vfs是使用接口。具体作用: 1)接受用户层的系统调用,如read、write、open、link等。 2)接受内核其它子系统(特别是内存管理子系统)的操作请求。 3)对具体的fs进行抽象,以统一的数据结构(file_operation)进行管理。 4)支持多种具体的fs之间的相互访问。
虚拟文件系统(vfs)2.vfs主要数据结构(4类)超级块(superblock):系统中已mount的fs的信息;索引节点(i-node):具体文件的属性信息;目录项(dentry):存放目录项与对应文件的链接信息;文件(file):打开的文件与进程进行交互的信息。共同特点:充分考虑多种文件系统的兼容性;只存在于内存,是“虚”的(虚拟的、假的)。虚拟文件系统(vfs)(1)超级块vfs超级块只存在于内存;在mount时建立,在umount时删除。(vfs超级块structsuper_block由/usr/include/linux/fs.h定义)数据结构super_block的主要内容:描述具体文件系统的整体信息:具体文件系统的块设备标识符;fs中数据块的大小;一个块大小占的位数(如1024--10);文件的最大长度幻数(magicnumber,区别不同的具体fs)虚拟文件系统(vfs)数据结构super_block的主要内容(续)用于管理超级块的域;指向超级块链表的指针;锁标志位,置位时其他进程不能对该超级块操作;对超级块读写时进行同步;超级块的修改位;具体fsmount的目录;超级块使用计数;索引节点链表虚拟文件系统(vfs)super_block的主要内容(续)和具体fs相联系的域指向fs数据结构的指针指向某特定的具体fs的用于超级块操作的函数集合指向某特定的具体fs的用于限额操作的函数集合union,成员是各种fs的sb_info的数据结构虚拟文件系统(vfs)(2)vfs索引节点每个文件或目录有一个且仅有一个vfs索引节点;
vfs索引节点需要时保存在系统内存或缓存(动态);(vfs索引节点structinode由/usr/include/linux/fs.h定义)vfs索引节点内容:描述文件信息:所在设备标识符、i-node号、类型及permissions、uid、时间、数据块大小等;索引节点高速缓存信息:hash链表指针、索引节点链表指针、目录项链表指针;描述索引节点操作信息:索引节点操作、指向文件操作的指针、锁定状态、同步信号量、等待队列指针、索引节点修改指针等;与内存页面管理有关的信息;其它信息:各种指针及状态标志等。虚拟文件系统(vfs)(vfs索引节点包含文件的大多数信息,但不包含路径相关的信息及文件名)(3)目录项(dentry)每一文件有一个dentry;dentry描述文件的逻辑属性,在磁盘上没有对应的映象;
i-node描述文件的物理属性,对于具体的fs,有对应的映象;一个i-node可能对应多个dentry。dentry内容dentry标志、引用计数;对应的vfsi-node结构;队列d_alias、d_hash、d_lru(链表);队列d_vfsmnt、d_child、d_subdir(树)虚拟文件系统(vfs)(4)与进程相关的文件结构 主要有:file结构、files_struct结构和fs_struct结构文件(file结构)文件描述符fd(每个进程最多能同时使用的文件数) 由fs.h的NR_OPEN定义;文件指针Linux定义数据结构file,描述打开文件的文件指针(why:同一文件可被不同的进程打开,也可被同一进程多次打开)file结构形成系统打开文件表,表长由NR_FILE定义。 系统创建2个file双向循环链表,file在其一:“正使用”文件链表(inuse_filps);“未使用”文件链表(free_filps);虚拟文件系统(vfs)
4.高速缓存思想:减少块设备操作的次数以提高系统性能;尽可能重复利用块设备操作的结果。有:块高速缓存、索引节点高速缓存和目录高速缓存。(1)块高速缓存(Buffercache)文件系统以块为单位组织文件;文件以块为单位访问,故以块为单位调入内存;块的唯一性:一个块在内存只有一个buffer;存在时间:避免频繁调用;buffer的管理机制:创建、使用、查找、回收Linux的buffercache:缓冲区首部(buffer_head):记录与buffer管理相关的信息;缓冲区内容(data)虚拟文件系统(vfs)(2)索引节点高速缓存索引节点链表hash表:hash值由超级块指针和inode号获得in-usedirtyunused(3)目录高速缓存目录项状态: 空闲、未使用、正使用、负状态(磁盘d_inode已删除)目录项高速缓存数据结构hash表未使用、正使用、负状态的目录项文件类型、链接及访问权限1.文件类型2.链接(link)3.文件类型和file命令5.文件访问权限和进程的用户标识文件类型、链接及访问权限1.文件类型%ls-lt.txt-rw-rw-r-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论