嵌入式操作系统第2章LINUX操作系统的使用5.链接文件6.文档打包及比较7.LINUX磁盘命令8.LINUX文件搜索及进程管理9.LINUX环境变量、管道及重定向磁盘分区完毕后,需要进行格式化(format)才能使用,为什么?每种操作系统所所设定的文件属性/权限并不相同,为了存放这些文件所需的数据,需要将分区进行格式化,以成为操作系统能够利用的“文件系统格式(filesystem)”磁盘的格式化文件系统:是对物理存储介质上数据和元数据的组织方式。物理存储介质:磁盘,U盘等。数据:文件本身的数据。元数据:文件的权限,创建者,创建组等文件的信息数据。组织方式:文件,目录,有了这两个抽象,我们就能组织出层次的结构。这一套管理及组织方式需要用软件程序来实现,操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。文件系统从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等文件系统文件系统代码不同的操作系统支持不同的文件系统WIN98之前:FAT、FAT16,单个文件不超过4GbyteWIN2000以来:FAT32、NTFS,单个文件超过4GbyteLINUX:EXT2、EXT3、EXT4、ISO9660、FAT、NTFS、vfat等文件系统类型双系统(WIN+LINUX)硬盘整体结构MBR:主引导记录(MainBootRecord)。位于磁盘0磁道1扇区,记录了启动操作系统的引导位置和分区表。每个磁盘都会有MBR在整个硬盘上安装了WINDOWS和LINUX双系统,C/D/E分区被格式化成NTFS文件系统,C盘是WINDOWS的启动盘。LINUX所在分区被格式化成EXT4文件系统LINUX支持多种文件系统,可以在NTFS文件系统和EXT文件系统之间任意的复制、删除文件(跨文件系统操作),用户根本感觉不到这两种文件系统之间的任何差别,这在LINUX中是如何做到的?(WINDOWS无法识别EXT文件系统的)LINUX下通过虚拟文件系统(VFS:VirtualFileSystem)机制来实现上述功能。LINUX的虚拟文件系统VFS:是用户应用程序与具体文件系统之间的抽象层,处于文件系统的使用者与具体的文件系统之间,将两者隔离开来为各种类型的实际的文件系统提供一个通用的、统一的接口,达到支持多种实际文件系统的目的。虚拟文件系统VFSVFS位置VFS比如从NTFS文件系统复制一个文件到EXT4文件系统,这个步骤是如何实现的?跨文件系统的复制(cp命令)实际上是NTFS按照它的方式将数据读出来组织成VFS识别的数据结构传递给VFS,然后VFS再将数据结构写入ext4,ext4再按照自己对数据的组织方式将数据保存。正是因为有VFS这一层,Linux才真正实现了支持多种文件系统。VFS是一种机制,需要用程序来实现。跨文件系统操作inode和bolck:当硬件分区被格式化成EXT文件系统时,整个硬盘就被分成了inode区和block区1.文件内容的存放是以block为单位,block是磁盘可以记录的最小单位,是由数个sector所组成的,大小通常为n*512bytes(4k=512*8)2.Block是记录“文件内容数据”的区域,每个block都会有个block号码进行标记3.inode也是一块区域,一个inode节点用来记录“该文件的属性、及该文件放置在哪一个Block之内”的信息4.每个文件占用一个inode节点EXT文件系统的inode和blockinode和block数据存取示意inode区block区索引式,一次读出所有的blockExt文件系统在格式化时,每个分区由多个区块群组(blockgroup)组成,每个区块群组都有独立的inode/block/superblock系统。便于管理。该分区最前面有一个启动扇区(bootsector),这个启动扇区安装开机管理程序。区块群组:BlockGroupbootsectorBlockGroup每个block都有编号,以方便inode的记录,一个block大小为1k、2k、4k如果文件大于block的大小,则一个文件会占用多个block数量;若文件小于block,则该block的剩余容量就不能够再被使用了(磁盘空间会浪费)inode的内容在记录文件的属性以及该文件实际数据是放置在几号block内该文件的权限(read/write/excute);该文件的拥有者及群组(owner/group);该文件的大小等每个inode大小均固定为128bytes;每个文件都仅会占用一个inode;因此文件系统能够建立的文件数量与inode的数量有关;系统读取文件时需要先找到inode,并分析inode所记录的权限与用户是否符合,若符合才能够开始实际读取block的内容。超级块,它记录的是整个文件系统的信息,文件系统的类型,inode数量,block数量,文件系统各种时间等,是对文件系统整个进行把握block与inode的大小(block为1,2,4K,inode为128bytes);FilesystemDescription(文件系统描述说明)描述每个blockgroup的开始与结束的block号码,可用dumpe2fs查看blockbitmap(区块对照表)用bit位记录了每一个block目前的状态,如果有数据就置为1,没有数据置为0。如果需要分配block,那么就找目前状态为0的。inodebitmap(inode对照表)inodebitmap则是记录使用与未使用inode号码查看每个区段与superblock的信息dumpe2fs-h分区名-h:仅列出superblock的内容,其他区段不列出dumpe2fsls-ifilename查看所占用的inode目录是如何存储的?1.目录的inode,记录目录属性及目录数据所在的block号码;2.目录的block,记录该目录下的文件名及该文件占用的inode目录的inode和block目录block的内容读/etc/passwd文件的流程读取文件的流程2inode区block区“/”的block:262148-----etc262148“/etc”的block:276779-----passwd276779passwd的block:passwd文件的内容硬链接hardlink262302inode区block区“~”的block:276404---linkfile276404linkfile/linkfile.hard的block:文件内容262150/home的block:276404---linkfile.hard多个文件名对应到同一个inode号码不论编辑哪个文件,其结果是一样的增加硬链接文件,不会额外占用inode和block,只是在相应目录的block内增加一条“文件名和inode的记录”而已硬链接可以用来实现文件的备份,即删除一个,另一个还可以继续使用。建立硬链接后,用ls–l指令查看,可以看到“链接”字段变为2,“链接”字段是指该inode链接的文件数硬链接软连接文件linkfile.soft有自己的inode软链接实际上只是一段文字,里面包含着它所指向的文件的名字,系统看到软链接后自动跳到对应的文件位置处进行处理软连接/符号链接(symboliclink)符号链接268593inode区block区“linkfile.soft”的block:“linkfile”276404linkfile的block:文件内容软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针。所以删除连接文件对源文件无影响,当修改软连接文件的时候,源文件会做同步的修改。删除源文件,软连接文件就会找不到要指向的文件。软链接有自己的inode,并在磁盘上有一小片空间存放路径名.软连接可以做目录的链接软连接后,“链接”字段还是1符号链接创建链接文件ln使用ln命令创建软链接或硬链接。语法格式如下-26-ln[-s]sourcefilenewfile使用选项“-s”,则是创建软链接,否则是创建硬链接:sourcefile,源文件名newfile,新创建的链接文件名由于软链接指向的是源文件的路径,因此,在创建软链接时,源文件名最好使用带有路径的文件名链接文件【任务描述】创建链接文件,具体步骤如下:1)、在用户目录下创建lntest目录-27-$mkdirlntest链接文件【任务描述】创建链接文件,具体步骤如下:2)、在lntest目录内创建软链接和硬链接-28-$ln–s~/abn.tlntest/sl.t$lnabn.tlntest/hl.t链接文件【任务描述】创建链接文件,具体步骤如下:3)、查看创建的链接文件-29-$ls–llntest链接文件的读写无论是软链接还是硬链接,对其进行读写,都将操作源文件。-30-链接文件的读写【任务描述】演示链接文件的读写。具体步骤如下:1)、查看abn.t、hl.t和sl.t文件内容-31-$catabn.t$catlntest/hl.t$catlntest/sl.t链接文件读写【任务描述】演示链接文件的读写。具体步骤如下:2)、修改硬链接文件的内容-32-链接文件删除删除链接文件可以像删除普通文件一样直接使用rm命令示例3-24:删除上例中创建的两个链接文件可以使用以下命令-33-$rmlntest/sl.tlntest/hl.t建立目录链接软、硬链接的区别-35-比较项硬链接软链接内容指向在磁盘上创建与指向文件内容一样的文件,但是与源文件共享同一个文件inode在磁盘上创建了一个新文件,有自己的inode和文件内容,其内容就是源文件的路径(包括文件名)大小和源文件大小一致内容就是源文件的路径(包括文件名),与源文件大小不一致创建命令使用不带选项的ln命令使用“-s”选项的ln命令创建限制不能给目录创建硬链接,不能跨分区创建硬链接可以给目录做软链接,也可跨分区删除源文件删除源文件后硬链接继续有效,因此有防止误删除文件的功能删除源文件后,软链接失效第2章LINUX操作系统的使用5.链接文件6.文档打包及比较7.LINUX磁盘命令8.LINUX文件搜索及进程管理9.LINUX环境变量、管道及重定向在windows下我们接触最多的压缩文件就是.rar格式的了。但在linux下这样的格式是不能识别的,它有自己所特有的压缩工具。在linux下最常见的压缩文件通常都是以.tar.gz为结尾的,除此之外还有.tar,.gz,.bz2,.zip等等。linux系统中的后缀名其实要不要无所谓,但是对于压缩文件来讲必须要带上。这是为了判断压缩文件是由哪种压缩工具所压缩,而后才能去正确的解压缩这个文件。文档压缩与打包.gz:gzip压缩工具压缩的文件.bz2:bzip2压缩工具压缩的文件.tar:tar打包程序打包的文件(tar并没有压缩功能,只是把一个目录合并成一个文件).tar.gz:可以理解为先用tar打包,然后再gzip压缩.tar.bz2:同上,先用tar打包,然后再bzip2压缩LINUX下压缩文件常见后缀zip命令用于将一个文件或多个文件压缩成单一的压缩文件。unzip命令用于将zip压缩文件进行解压。zip命令符号模式的一般语法格式为:ZIP/UNZIP命令zip[-m|-r|-j|k|-n|-t|-x|-y|-num]zipfilefilelist其中,zipfile表示压缩后的压缩文件名,扩展名为.zip。filelist表示要压缩的文件名列表。ZIP命令常用选项选项描述-m在压缩文件之后,删除原文件-r递归地将要压缩的文件夹下所有内容全部压缩,包括子目录及其文件-j不要压缩的