您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 05_Linux文件系统_201110180936
1第五章Linux文件系统概述ext2和ext3文件系统Linux虚拟文件系统superblockinodedentryfile与进程相关的VFS数据结构files_structfs_struct与文件相关的常用Shell命令2概述(1)文件系统(FileSystem)文件系统负责组织和管理系统中的文件,为用户提供使用文件的操作接口•filestructure,manipulation,andprotection•providesauserinterfacetodatastorageandtransparentlymanipulatesthephysicaldatafromtheexternaldrives归纳起来,文件系统的功能包括以下几项:管理外存的存储空间•实施存储空间分区、分配、回收与重组实现文件的“按名存取”•按名建立、读/写、检索、修改、删除文件等操作实现对文件的共享、保密和保护措施提供文件访问接口3概述(2)文件(File)文件是一组相关信息的有序集合,一般存放在外部存储器中•InLinux,afileisalinearstreamofbytes.文件是可以长久保存的信息形式•文件的存储空间是具有长久记忆特性的外部存储器(如磁盘、磁带等)•所有需要在系统关机后仍能保留的信息都应以文件的形式存在文件名是文件的标识•常见文件名命名规则:FileName+FilenameExtension–*.h,*.c–Linux中,文件名可以没有后缀,不能从文件名判断文件的类型文件的属性(元数据):类型、属主、大小、创建时间文件的内容:程序、数据、图片、视频等4概述(3)目录(directory)文件系统采用目录来组织文件目录好比一个文件夹,包含相关的文件。目录可包含子目录。目录的信息是需要长久保存的,目录以文件的形式存在Adirectoryisafilethatmaintainsthehierarchicalstructureofthefilesystemcd(changedirectory).../tree树形目录结构路径名(pathname)absolutepathnamepwd(printnameofworkingdirectory)relativepathname区分:目录vs路径分量(目录项dentry)概述(4)通过ls命令查看文件的常见属性文件类型(FileType)普通文件(regularfile)(-)•ASCIIfiles/binaryfiles/data目录(directory)连接(link)设备(devicefile)•blockdevicesvs.characterdevicessocket,andpipe•formsofInterprocessCommunication(IPC)6概述(5)属主与权限User,group,otherread,write,andexecute表2-3文件和访问权限及表示访问权限字符表示含义读权限r可读取其内容写权限w可修改其内容执行权限x可执行其内容无权限-不能做相应的操作rwxrwxrwx-u的权限g的权限o的权限文件类型7对文件的操作(FileOperation)实质上通过对文件的数据结构的操作来实现图形操作命令•mkdir(makedirectory)•rmdir(removedirectory)•mv(move)•cat(concatenateanddisplayfiles)•more•less•cp(copy)•touch系统调用函数•chgrp•chmod•chown•wc(wordcount)•sort•file•umask•find•grep8概述(7)文件描述符(FileDescriptor,fd)thesystemusesittoidentifyanopenfileanintdatatype–intopen(constchar*pathname,intflags);–intopen(constchar*pathname,intflags,mode_tmode);–intcreat(constchar*pathname,mode_tmode);进程•filedescriptorarray9概述(8)文件的物理结构与存储方式文件的物理结构与存储介质的物理特性有关•磁带、磁盘、闪存、光盘磁盘(harddisk)的物理构造•Head(磁头)•Mechanicalarm(机械臂)•Track(磁道)•Cylinder(柱面)•Sector(扇区)512B•Sector是磁盘存储的最小物理单位旋转移动磁头扇区磁道柱面10第五章Linux文件系统概述ext2和ext3文件系统Linux虚拟文件系统superblockinodedentryfile与进程相关的VFS数据结构files_structfs_struct与文件相关的常用Shell命令11ext2和ext3文件系统(1)Ext2(Extended-2)是专为Linux系统设计的一种文件系统运行稳定,存取效率较高,可支持最大4TB磁盘分区弱点:Ext2是一个非日志文件系统。•日志文件系统可以在系统发生断电或者其他系统故障时保证文件数据的完整性。近年来,Ext2已逐渐被Ext3取代。•Ext3是一个基于Ext2开发的日志(journaling)文件系统。具有健全的日志功能,可靠性很高。•在非正常关机后,文件系统可在数十秒钟内自行修复•Ext3可以支持最大32TB的文件系统和最大2TB的文件。•目前Ext3已被许多Linux发行版作为默认安装的文件系统。Ext4正处于试用阶段。改进了支持文件和文件系统的大小。•Ext4文件系统的容量达到1024 PB(1P=1024T),而文件大小则可达到16TB。12分区与格式化分区(Partitioning)记录每个分区的起始和终止柱面分区表存放在MBR(masterbootrecorder)中,0磁道MBR仅最多能记录4个分区:•主分区Primaryvs.扩展分区Extension(逻辑分区logical)格式化(Formatting)将分区format为操作系统能够识别和支持的文件系统类型传统上,每个分区只能对应一个文件系统。随着新技术的使用,一个分区可格式化后支持多个文件系统;或者,多个分区支持一个文件系统。块(block)块(block)块(block)由若干个相邻的扇区组成,它是对存储空间的逻辑划分块是分区格式化时指定的“最小存储单位”•Sblock=2kSsector•1024,2048,4096B文件系统在读/写磁盘时不是以扇区为单位,而是以块为单位的在文件系统看来,磁盘的存储空间是由许多在逻辑上连续的块组成的每个块都有编号:0到n编号14inodeinode记录文件的属性(大小、rwx、所有者等)以及文件放在哪个block上•Afilecanrefertoasregularfile,directory,device,andpipe.inodeobjectsexistforthefulllifetimeofthefile4123456789101112131415创建文件(或目录)时分配inode和block创建目录创建一个目录时,分配一个inode和至少一个block给该目录•inode记录目录的属性,并指向block•block记录:与该目录相关的子目录或文件的inode信息创建文件创建一个文件时,分配一个inode和与文件大小对应的数个block•inode记录文件的属性,并指向存放文件内容的block•多个block用来存放文件的内容16通过inode查找block,读取文件内容/etc/crontab读取流程目录的inode文件的inode17SuperblockSuperblock文件系统所在的分区的最前面有一个启动扇区(bootsector)•这个扇区可以安装一个本地bootloader。(回忆:多重引导系统)Superblock用来存放文件系统的相关信息Blockgroup1Blockgroup2Blockgroup3Blockgroup4superblockBlockbitmapinodebitmapinodetableDataBlock启动扇区文件系统描述信息18第五章Linux文件系统概述ext2和ext3文件系统Linux虚拟文件系统superblockinodedentryfile与进程相关的VFS数据结构files_structfs_struct与文件相关的常用Shell命令19Linux支持的部分文件系统VFS:VirtualFilesystem想一想:为什么需要VFS?21virtualfilesystem(VFS)22virtualfilesystem(VFS)VFS不直接操作文件,所有对文件的实际操作都要通过实际作用于某个介质的文件系统来完成引入VFS的目的是为了屏蔽各种文件系统的差异VFS对实际文件系统进行抽像,采用统一的数据结构在内存中描述所有实际的文件系统,向用户提供一组标准的文件操作函数。VFS负责将标准文件操作映射到实际文件系统的操作。正是这种抽像和映射,保证了Linux系统可以支持多种介质的不同文件系统,使所有文件系统都具有基本相同的外部表现23virtualfilesystem(VFS)VFS通过一组统一的数据结构和操作函数接口实现抽象数据结构的建立结构体的数据由实际文件系统的相应的数据来填充各个数据结构的对象存在于内存操作函数操作函数由实际的文件系统实现VFS依据这些对象提供的信息和操作函数来完成将用户的文件请求映射到实际文件系统的操作24VFS的四个主要数据结构superblockStoresinformationrelatingtoaspecificmountedfilesysteminodeStoresinformationrelatingtoaspecificfile(metadata)目录也是一种文件dentryStoresinformationrelatedtoasinglecomponentofapath目录项是路径的一个组成部分,不是代表一个目录fileStoresinformationrelatedtofilesopenedbyaprocessNote:adirectoryisthesameasafile,butdentryisnotthesameasadirectory.文件的内容与inode有关,文件名与dentry有关在路径中,包括普通文件在内,每一个部分都是目录项对象Superblock(1)每个文件系统都有自己的superblock结构体superblock结构体用来存储文件系统的相关信息•设备标识符、文件系统标志、数据块大小、文件系统的特殊信息、文件系统的使用信息、超级块操作集指针superblock又叫做filesystemsuperblock或者filesystemcontrolblocksuperblock和文件系统一一对应,代表一个实际的文件系统superblock在文件系统挂装时建立,在文件系统卸载后撤销Superblock(2)include/linux/fs.hL75427Superblock(3)structlist_heads_list;•Superblock结构体构成的双向循环链表unsignedchars_dirt;•是否需要(superblock中字段的值)与(磁盘上superblock的属性)同步unsignedlonglongs_maxbytes;•Maxfilesizeallowedinthefilesystemstructsuper_oper
本文标题:05_Linux文件系统_201110180936
链接地址:https://www.777doc.com/doc-3703913 .html