![文件系统和网络系统.ppt_第1页](http://file1.renrendoc.com/fileroot2/2020-1/12/27046223-e628-413d-9e5a-ccc4cc0d3b0a/27046223-e628-413d-9e5a-ccc4cc0d3b0a1.gif)
![文件系统和网络系统.ppt_第2页](http://file1.renrendoc.com/fileroot2/2020-1/12/27046223-e628-413d-9e5a-ccc4cc0d3b0a/27046223-e628-413d-9e5a-ccc4cc0d3b0a2.gif)
![文件系统和网络系统.ppt_第3页](http://file1.renrendoc.com/fileroot2/2020-1/12/27046223-e628-413d-9e5a-ccc4cc0d3b0a/27046223-e628-413d-9e5a-ccc4cc0d3b0a3.gif)
![文件系统和网络系统.ppt_第4页](http://file1.renrendoc.com/fileroot2/2020-1/12/27046223-e628-413d-9e5a-ccc4cc0d3b0a/27046223-e628-413d-9e5a-ccc4cc0d3b0a4.gif)
![文件系统和网络系统.ppt_第5页](http://file1.renrendoc.com/fileroot2/2020-1/12/27046223-e628-413d-9e5a-ccc4cc0d3b0a/27046223-e628-413d-9e5a-ccc4cc0d3b0a5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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_BLOCKS12
7、#define EXT2_IND_BLOCKEXT2_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 . _u32i_blockEXT2_N_BLOCKS; . ,include/linux/ext2_fs.h:,13,直接索引,0,1,2,11,12,13,14,一重间接索引,二重间接索引,三重间接索引,i_bloc
8、k,磁盘数据块的索引,磁盘数据块,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 OS
9、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 group Writing inode tables: done Writing superblocks and filesystem
10、accounting information: done This 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 Files
12、ystem magic number: 0 xEF53 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 _u32inode;/* Inode number */ _u16rec_len;/* Directory entry length */ _u8name_len;/* Name length */ _
14、u8file_type; charnameEXT2_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内核中
16、的一个软件层,处理与具体文件系统相关的系统调用。1986年首先在SunOS提出和实现。 Linux系统可支持多种具体的文件系统 ext2,ext3,msdos,yaffs,nfs,proc,. 虚拟文件系统支持的文件系统分类 磁盘文件系统 ext2,ext3,msdos,yaffs,iso9660,. 网络文件系统 nfs,coda,afs,. 特殊文件系统(虚文件系统) /proc,23,例3:不同文件系统间文件拷贝,24,通用文件模型,不同文件系统对文件的定义和使用方式不同 如:FAT文件系统中的目录不属于文件 通用文件模型包括如下几种对象 超级块对象 索引节点对象 文件对象 目录项对象
17、虚拟文件系统将所有文件用一个统一的数据结构表示,struct file数据结构。,25,文件对象,struct file struct list_head f_list; struct dentry *f_dentry; struct vfsmount *f_vfsmnt; struct file_operations *f_op; atomic_t f_count; unsigned int f_flags; mode_t f_mode; loff_t f_pos; unsigned long f_reada, f_ramax, f_raend, f_ralen, f_rawin; stru
18、ct fown_struct f_owner; unsigned int f_uid, f_gid; int f_error; unsigned long f_version; /* needed for tty driver, and maybe others */ void *private_data; /* preallocated helper kiobuf to speedup O_DIRECT */ struct kiobuf *f_iobuf; long f_iobuf_lock; ;,include/linux/fs.h:,26,struct file_operations,s
19、truct file_operations struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char *, size_t, loff_t *); ssize_t (*write) (struct file *, const char *, size_t, loff_t *); int (*readdir) (struct file *, void *, filldir_t); unsigned int (*poll) (struct file
20、 *, struct poll_table_struct *); int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long); int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *); int (*release) (struct inode *, struct file *); int (*fsync) (s
21、truct file *, struct dentry *, int datasync); int (*fasync) (int, struct file *, int); int (*lock) (struct file *, int, struct file_lock *); ssize_t (*readv) (struct file *, const struct iovec *, unsigned long, loff_t *); ssize_t (*writev) (struct file *, const struct iovec *, unsigned long, loff_t
22、*); ssize_t (*sendpage) (struct file *, struct page *, int, size_t, loff_t *, int); unsigned long (*get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); ;,include/linux/fs.h:,27,索引节点对象,struct inode struct list_headi_hash; struct list_headi_list; struct list_
23、headi_dentry; struct list_headi_dirty_buffers; struct list_headi_dirty_data_buffers; unsigned longi_ino; atomic_ti_count; kdev_ti_dev; umode_ti_mode; unsigned inti_nlink; uid_ti_uid; gid_ti_gid; kdev_ti_rdev; loff_ti_size; time_ti_atime; . union struct minix_inode_infominix_i; struct ext2_inode_info
24、ext2_i; . u; ;,include/linux/fs.h:,28,各种特殊文件系统,none:表示没有挂载点 any:表示可由用户随意挂载到任何位置,29,proc文件系统,启用ip转发 $ echo 1 /proc/sys/net/ipv4/ip_forward 查看系统上使用的文件系统 $ cd /proc $ more filesystems,例:使用proc文件系统。,proc文件系统是一个虚文件系统,其中的内容也是虚文件和虚目录。 proc文件系统提供了运行时的内核信息,并提供了对内核信息读取和修改的易用方式。 用户可通过proc文件系统对运行时的内核进行配置。 如:sys
25、ctl命令。,30,根文件系统,Linux系统的运行需要一个根文件系统 文件系统的根:/,根目录,根节点。 根文件系统可以存在于多种地方 磁盘,网络,内存中。 根文件系统可以在系统启动运行后改变。 原则上,根文件系统可以只提供一个根节点,但实际应用中根文件系统中需要提供各种库和系统应用程序及配置文件等。 只有在根文件系统加载后才能加载其它文件系统。 根文件系统不能象其它文件系统那样卸载。,31,文件系统的挂载,mount, umount, /etc/fstab 挂载点 一个文件系统被多次挂载到不同挂载点上 一个挂载点上多次挂载不同文件系统,$ mount -t vfat /dev/sda1 /
26、mnt/usbdisk $ $ umount /mnt/usbdisk $,例:将Windows下格式化好的usb盘在Linux系统上的挂载和卸载。,32,网络系统,Linux支持多种网络系统结构 802,atm,appletalk,ax25,ipv4/6,ipx,. Linux支持多种网络功能 路由,防火墙,内核网页服务器,. 分层的网络系统结构 开放系统互连(OSI)模型 网络系统构成 硬件接口设备 并没有文件系统中对应的设备文件 协议 TCP/IP协议栈 应用层协议:HTTP,ftp,smtp,. 套接口(socket),33,TCP/IP协议,TCP协议 TCP和UDP TCP: Tr
27、ansmission Control Protocol,传输控制协议 有连接通讯协议,用于提供可靠的通信连接。 需要多次握手,可靠但效率不高。 UDP: User Datagram Protocol,用户数据报协议 非连接通讯协议,提供不可靠的通信连接。 不需握手,不可靠但传输效率高。 端口(port) 对应各种应用 IP协议 IP: Internet Protocol,网际协议,互联网协议,网间网协议 用于实现基本的网络数据传输报文,34,OSI七层参考模型,35,TCP和UDP数据报文格式,报头,31,0,(bit),31,0,(bit),TCP,UDP,36,IP数据报文格式,报头,31
28、,0,(bit),37,ip地址(ipv4),组成 4个字节(ipv4),xxx.xxx.xxx.xxx。xxx: 0-255 分类 A,B,C类:单播地址 D类:多播地址 E类:保留 私有地址 A类:-55 B类:-55 C类:-55,38,.,.,.,.,.,.,A类地址,0,B类地址,0,1,.,.,.,C类地址,1,1,0,.,.,.,D类地址,1,1,1,.,.,.,E类地址,1,1,0,1,1,范围: - 55,
29、范围: - 55,范围: - 55,范围: - 55,范围: - 55,ip地址分类及其地址范围,/assignments/ipv4-address-space,39,套接口(socket,套接字),套接口是用户使用网络系统的端点 一个网络系统上的套接口类似于一个文件系统上的文件 用户可以创建套接口用于数据传输 一个传输通道需要2个套接口,数据从一个套接口送出,通过网络和网络系统,在另
30、一个套接口上被接收。 Linux使用BSD socket 一个套接口作为特殊文件系统sockfs上的文件 一个套接口是一个socket型的数据结构 inode ops close, connect,sendmsg, recvmsg, bind,. .,40,例4:互联网编程,说明:一个简单的网络客户端,它可以向某个网页服务器发送请求,并将返回结果显示出来。,#include #include #include #include #include #include #define PROTOCOL tcp #define REQUEST GET / HTTP/1.0nn int main(int argc, char *
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《车辆分离光栅》课件
- 微机原理扩展实验:单片机制作模拟电梯
- 银行业务运营报告模板
- 2025年汽车车身、挂车项目合作计划书
- 小学纪念澳门回归活动方案
- 学前教育创新方法以及误区研究论文
- 离校培训申请书
- 滑坡房申请书
- 音乐与小学教育
- 成语的世界模板
- 八年级数学下册 第1章 单元综合测试卷(北师版 2025年春)
- 商业银行的风险审计与内部控制
- 2024项目管理人员安全培训考试题及参考答案AB卷
- 2025年与商场合作协议样本(5篇)
- 2024年12月青少年机器人技术等级考试理论综合试卷(真题及答案)
- 网络与社交媒体管理制度
- 2025年春新外研版(三起)英语三年级下册课件 Unit1第1课时Startup
- 2025广东珠海高新区科技产业局招聘专员1人历年高频重点提升(共500题)附带答案详解
- 数学-福建省泉州市2024-2025学年高三上学期质量监测(二)试卷和答案(泉州二模)
- 润滑油、润滑脂培训课件
- 寒假综合实践活动作业展示
评论
0/150
提交评论