文件系统和网络系统

上传人:j****9 文档编号:54900679 上传时间:2018-09-21 格式:PPT 页数:45 大小:374KB
返回 下载 相关 举报
文件系统和网络系统_第1页
第1页 / 共45页
文件系统和网络系统_第2页
第2页 / 共45页
文件系统和网络系统_第3页
第3页 / 共45页
文件系统和网络系统_第4页
第4页 / 共45页
文件系统和网络系统_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《文件系统和网络系统》由会员分享,可在线阅读,更多相关《文件系统和网络系统(45页珍藏版)》请在金锄头文库上搜索。

1、1,文件系统和网络系统,2,文件,文件类型 普通文件 文本文件,可执行文件,数据文件,. 目录 设备文件 块设备 字符设备 符号链接 管道 .,3,drwxr-xr-x 20 root root 118784 May 8 14:22 dev,brw-rw- 1 root disk 3, 0 Jan 30 2003 hda,crw- 1 root root 4, 1 Apr 2 12:25 tty1,-rw-r-r- 1 liyi users 20471 Mar 14 2003 Makefile,lrwxrwxrwx 1 root root 4 Jan 29 2005 sh - bash,prw

2、-r-r- 1 liyi users 0 Apr 2 16:59 myfifo,普通文件,目录,设备文件,符号链接,管道,Linux系统上的各种形式的文件,4,文件系统,文件系统基本概念 一种特定的文件存储格式 ext2, ext3, vfat, jffs, yaffs, cramfs, iso9660, ntfs, . 按特定的存储格式格式化好的一块介质 硬盘,flash,内存,文件,. 操作系统中用来管理文件系统以及对文件进行操作的机制及其实现 Linux文件系统结构 树形结构 根目录 文件 子目录,5,ext2文件系统,系统结构 超级块(super block) 块组描述符表(block

3、 group descriptor table) 块位图(block bitmap) 索引节点位图(inode bitmap) 索引节点表(inode table) 数据块(data block),6,磁盘上的ext2文件系统结构示意图,文件系统管理的空间,7,块(block)和块组(block group),块 ext2文件系统将磁盘分成固定大小的块 1k,2k,4k,8k,. 文件系统以块为基本单位使用磁盘空间 块组 ext2文件系统将磁盘块组成块组进行管理 每个块组大小一致 块位图大小 X 1个字节的位数 X 块大小 块位图只占用1个块 例:1块 = 4k,1个块组 = 4k x 8 x

4、 4k = 128M 每个块组中都有用于管理的元数据(metadata)和文件数据(data) 位图,索引节点表 数据块,8,超级块(super block),大小 1k 主要内容(struct ext2_super_block) s_inodes_count:总索引节点数 s_blocks_count:以块为单位的文件系统大小 s_log_block_size:块大小(2n表示,以1k为单位) s_blocks_per_group:一个块组中块的数目 s_mtime:最后一次挂载的时间 s_mnt_count, s_max_mnt_count:当前挂载次数和最大挂载次数 s_magic:文件

5、系统的魔数 s_lastcheck, s_checkinterval:最后一次系统检查的时间和检查时间间隔 s_creator_os:创建文件系统使用的操作系统 s_def_resuid, s_def_resgid:保留块的用户ID和组ID s_inode_size:磁盘上索引节点用数据结构的大小 s_volume_name:卷标 .,9,位图和索引节点表,块位图 只占用1块的空间 每一位表示一个块的使用情况 索引节点位图 只占用1块的空间 每一位表示一个索引节点的使用情况 索引节点表 块组中的索引节点数组,数组中的每个元素为一个索引节点 索引节点数量的选取与文件平均大小有关,10,索引节点(

6、inode),索引节点是ext2文件系统管理文件的基本结构,ext2文件系统上的每个文件对应一个索引节点。 ext2文件系统的索引节点大小为128字节 struct ext2_inode 例:一个4k的块可以保存32个索引节点 每个索引节点有一个唯一的编号:索引节点号 索引节点中保存文件的基本信息 文件属性,存取权限等。 各种时间戳和状态标志 文件存储的位置信息,11,索引节点的结构,12,索引磁盘数据块,索引节点中保存指向文件使用的数据块的指针 include/linux/ext2_fs.h i_blockEXT2_N_BLOCKS,. #define EXT2_NDIR_BLOCKS 12

7、 #define EXT2_IND_BLOCK EXT2_NDIR_BLOCKS #define EXT2_DIND_BLOCK (EXT2_IND_BLOCK + 1) #define EXT2_TIND_BLOCK (EXT2_DIND_BLOCK + 1) #define EXT2_N_BLOCKS (EXT2_TIND_BLOCK + 1) . struct ext2_inode ._u32 i_blockEXT2_N_BLOCKS;. ,include/linux/ext2_fs.h:,13,直接索引,0,1,2,11,12,13,14,一重间接索引,二重间接索引,三重间接索引,i_

8、block,磁盘数据块的索引,磁盘数据块,14,文件大小上限,15,例1:建立一个ext2文件系统,创建基于文件的ext2文件系统,$ dd if=/dev/zero of=myfile bs=1K count=4K 4096+0 records in 4096+0 records out $ $ $ file myfile myfile: data $,第一步,创建一个指定大小的普通文件 myfile,16,$ mke2fs myfile -b 4096 -m 0 -L mylable -F mke2fs 1.32 (09-Nov-2002) Filesystem label=mylable

9、 OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 1024 inodes, 1024 blocks 0 blocks (0.00%) reserved for the super user First data block=0 1 block group 32768 blocks per group, 32768 fragments per group 1024 inodes per groupWriting inode tables: done Writing superblocks and filesyst

10、em accounting information: doneThis filesystem will be automatically checked every 29 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. $ $ $ file myfile myfile: Linux rev 1.0 ext2 filesystem data $,第二步,将普通文件myfile制作成一个ext2文件系统,17,$ mount -t ext2 -o loop myfile /mnt/mymnt

11、$ $ mount /dev/hda3 on / type ext3 (rw) none on /proc type proc (rw) . /home/liyi/temp/myfile on /mnt/mymnt type ext2 (rw,loop=/dev/loop0) $ $ $ tune2fs -l /dev/loop0 tune2fs 1.32 (09-Nov-2002) Filesystem volume name: mylable Last mounted on: Filesystem UUID: 60a84a03-5315-4dad-82a3-b56777d275d7 Fil

12、esystem magic number: 0xEF53 Filesystem revision #: 1 (dynamic) Filesystem features: filetype sparse_super Default mount options: (none) Filesystem state: not clean Errors behavior: Continue Filesystem OS type: Linux Inode count: 1024 Block count: 1024 .,第三步,将上述文件系统挂载到系统上,18,目录、目录项、文件,ext2文件系统为一个统一的

13、目录结构 目录是ext2文件系统上的一种特殊文件 所有文件都保存在目录下 整个文件系统有一个唯一的起点,即根目录。 根目录在系统启动时建立 只能有一个根目录 目录作为一种特殊的文件,它的内容即为目录项。 目录项作为目录文件的内容,保存在磁盘上的数据块中。,19,ext2文件系统目录项的基本结构,#define EXT2_NAME_LEN 255 . struct ext2_dir_entry_2 _u32 inode; /* Inode number */_u16 rec_len; /* Directory entry length */_u8 name_len; /* Name length

14、 */_u8 file_type;char nameEXT2_NAME_LEN; /* File name */ ;,include/linux/ext2_fs.h:,20,例2:在ext2文件系统上定位文件,我们要使用/home/liyi/spioc.c文件,在ext2文件系统上如何找到呢?,根目录,查找/home,得到 索引节点6,索引节点号6用于/home目录,索引节点6表示/home在块122中,/home/liyi对应索引节点23,索引节点23用于/home/liyi,索引节点23表示/home/liyi在块1768中,块122用于/home目录,/home/liyi/spioc.c

15、对应于索引节点81,块1768为目录/home/liyi,因为每个索引节点号对应磁盘的固定位置,因此根据索引节点号找到索引节点是很直接的。找到文件spioc.c的索引节点即找到了文件的内容在磁盘上的存储位置。,21,创建特殊文件,创建目录 $ mkdir mydir创建设备文件 $ mknod mycdev c 234 0 $ mknod mybdev b 125 1创建管道 $ mkfifo mypipe $ mknod mypipe p创建符号链接 $ ln -s afile mylink,例:创建目录、设备文件、命名管道、符号链接。,22,虚拟文件系统(VFS),虚拟文件系统是Linux内核中的一个软件层,处理与具体文件系统相关的系统调用。1986年首先在SunOS提出和实现。 Linux系统可支持多种具体的文件系统 ext2,ext3,msdos,yaffs,nfs,proc,. 虚拟文件系统支持的文件系统分类 磁盘文件系统 ext2,ext3,msdos,yaffs,iso9660,. 网络文件系统 nfs,coda,afs,. 特殊文件系统(虚文件系统) /proc,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号