第10章 Linux文件系统_第1页
第10章 Linux文件系统_第2页
第10章 Linux文件系统_第3页
第10章 Linux文件系统_第4页
第10章 Linux文件系统_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 2 10.1.1 linux10.1.1 linux文件系统的特点文件系统的特点 本章通过本章通过linuxlinux的文件系统来进一步深入了解的文件系统来进一步深入了解操操 作系统与操作系统其他部分的关系作系统与操作系统其他部分的关系以及以及文件系统文件系统 的设计方法的设计方法。 10.1.1 linux10.1.1 linux文件系统的特点文件系统的特点 在在linuxlinux系统中,所有的文件被组织到一个统一系统中,所有的文件被组织到一个统一 的的树形目录结构树形目录结构中。中。 / / /bin/bin/sbin/sbin /dev/dev/usr/usr/etc/etc/lib

2、/lib binbinlocallocallrclrc binbin / / /bin/bin /boot/boot /dev/dev/usr/usr/etc/etc/lib/lib/media/media/mnt/mnt/proc/proc /root/root/sys/sys/tmp/tmp/home/home/sbin/sbin/var/var /etc/etc /games/games /include/include /lib/lib /local/local /man/man/sbin/sbin/share/share/x11r6/x11r6/bin/bin/doc/doc/src

3、/src q linux文件系统的结构与文件系统的结构与windows的区别的区别 u windows 以分区为树根,有多个分区时形成多个树并列:以分区为树根,有多个分区时形成多个树并列: 文件系统结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . c:d:e: u linux 所有文件系统都安装在一个所有文件系统都安装在一个树根树根上。进行分区时上。进行分区时 必须必须先划分一个根分区先划分一个根分区,然后,然后将其它的分区都挂载到这个将其它的分区都挂载到这个 根目录下根目录下 10.1.1

4、 linux10.1.1 linux文件系统的特点文件系统的特点 linuxlinux文件系统有一个文件系统有一个“根根”,然后在根上分杈,然后在根上分杈 ( (目录目录) ),任何一个分杈上都可以再分杈,杈上也,任何一个分杈上都可以再分杈,杈上也 可以长出可以长出“叶子叶子”( (文件文件) )。根和杈在。根和杈在linuxlinux中被中被 称为是称为是“目录目录”或或“文件夹文件夹”。而叶子则是一个。而叶子则是一个 个的文件。这样不论底层存在设备是什么,展现个的文件。这样不论底层存在设备是什么,展现 在用户面前的均是一个统一的文件系统视图。在用户面前的均是一个统一的文件系统视图。 q 路

5、径(路径(path) u 路径分为路径分为“绝对路径绝对路径”和和“相对路相对路 径径”l 绝对路径绝对路径:从根目录开始的完整的路径:从根目录开始的完整的路径 l 相对路径相对路径:相当于当前工作目录的路径:相当于当前工作目录的路径 u 任何不以任何不以 / 和和 开始的路径均为相对路径开始的路径均为相对路径 路径 (path) u 文件或目录在文件系统中所处的位置文件或目录在文件系统中所处的位置 举举 例例 设用户当前所在的目录为:设用户当前所在的目录为:/home/jypan/teaching/ 则该目录的子目录则该目录的子目录 paracomp/ 中的文件中的文件 lect01.ppt

6、 的绝对路径为的绝对路径为 /home/jypan/teaching/paracomp/ 相对路径为相对路径为 ./paracomp/ 20 软链接和硬链接软链接和硬链接 软链接和硬链接软链接和硬链接 23 用户程序(进程)用户程序(进程) vfs minixfat设备文件设备文件ext2 文件系统操作的系统文件系统操作的系统 调用界面,包括调用界面,包括 read(),write(),open(), close()等等 struct super_block struct super_block kdev_t s_dev; / kdev_t s_dev; /* *具体文件系统的块设备标识符具体

7、文件系统的块设备标识符* */ / unsigned long s_blocksize; / unsigned long s_blocksize; /* *以字节为单位数据块的大小以字节为单位数据块的大小* */ / unsigned char s_blocksize_bits; / unsigned char s_blocksize_bits; /* *块大小的值占用的位数块大小的值占用的位数* */ / struct list_head s_list; / struct list_head s_list; /* *指向超级块链表的指针指向超级块链表的指针* */ / struct file

8、_system_type struct file_system_type * *s_type; s_type; / /* *指向文件系统的指向文件系统的file_system_type file_system_type 数据结构的指针数据结构的指针 * */ / struct super_operations struct super_operations * *s_op; s_op; / /* *指向具体文件系统的用于超级块操作的函数集合指向具体文件系统的用于超级块操作的函数集合 * */ / u; / u; /* *一个共用体,其成员是各种文件系统的一个共用体,其成员是各种文件系统的 fs

9、name_sb_infofsname_sb_info数据结构数据结构 * */ / 33 注意,注意,filefile对象在磁盘上没有相应的映像,故对象在磁盘上没有相应的映像,故filefile结构中结构中 无无“脏脏”域表示文件对象是否被修改。域表示文件对象是否被修改。 r:readr:read w:writew:write x:executex:execute usrusr grpgrp othoth 例例1 1 使用使用open()open()创建一个可读可写的文件,文件名为创建一个可读可写的文件,文件名为 file1file1 open(file1,o_rdwr|o_creta);op

10、en(file1,o_rdwr|o_creta); 例例2 2 使用使用open()open()创建一个可读可写的文件,文件名为创建一个可读可写的文件,文件名为file2file2,其,其 权限为文件主可读可写可执行,用户组可读可写,其他可执行。权限为文件主可读可写可执行,用户组可读可写,其他可执行。 #define mode 0751#define mode 0751/ / 等价于等价于s_irwxu|s_irgrp|s_iwgrp|s_ixoths_irwxu|s_irgrp|s_iwgrp|s_ixoth open(file2,o_wronly|o_creta|o_excl,mode);

11、open(file2,o_wronly|o_creta|o_excl,mode); 例例3 3 使用使用open()open()创建一个可读可写的文件,文件名为创建一个可读可写的文件,文件名为file3file3, 其权限为文件主可读可写可执行,用户组可读,其他可执行其权限为文件主可读可写可执行,用户组可读,其他可执行 。 #define mode 0741#define mode 0741/ / 等价于等价于s_irwxu|s_irgrp|s_ixoths_irwxu|s_irgrp|s_ixoth open(file3,o_wronly|o_creta|o_excl,mode);open(

12、file3,o_wronly|o_creta|o_excl,mode); 例例6 6 程序如下程序如下 #include #include #include #include main()main() char buffer128;char buffer128; int num;int num; num=read(0,buffer,128);num=read(0,buffer,128); if(write(1,buffer,num)!=num)if(write(1,buffer,num)!=num) write(2, a write error has occurredn,27);write(

13、2, a write error has occurredn,27); exit(0);exit(0); 例例7 read,write7 read,write和和lseeklseek函数使用实例。函数使用实例。 例例7 7 假设当前目录下有文件假设当前目录下有文件filefile,其内容是,其内容是 2626个英文字母。编程序移动指针到第个英文字母。编程序移动指针到第1010 个字符,使其从第个字符,使其从第1111个字符开始输出,直个字符开始输出,直 到最后一个字符。到最后一个字符。 例例8 8 使用使用fcntlfcntl系统调用给文件上锁并检测锁的信息。系统调用给文件上锁并检测锁的信息。 例例9 9 设当前目录下有一个文件设当前目录下有一个文件f1f1,将其权限修改为只有,将其权限修改为只有 用户主可读,其余用户无权限的只读文件。用户主可读,其余用户无权限的只读文件。 77 86 90 ext2ext2文件系统的磁盘逻辑结构如下图。文件系统的磁盘逻辑结构如下图。 其中第其中第0#0#块是引导块块是引导块(boot block)(boot block)。其中装有引导或初启操作系。其中装有引导或初启操作系 统的引导代码。统的引导代码

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论