计算机操作系统教程-第四版-(张尧学著)-清华大学出版社-第10章_第1页
计算机操作系统教程-第四版-(张尧学著)-清华大学出版社-第10章_第2页
计算机操作系统教程-第四版-(张尧学著)-清华大学出版社-第10章_第3页
计算机操作系统教程-第四版-(张尧学著)-清华大学出版社-第10章_第4页
计算机操作系统教程-第四版-(张尧学著)-清华大学出版社-第10章_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、第10章Linux文件系统,10.1Linux文件系统的特点与文件类别10.1.1特点10.1.2文件类型,10.2Linux的虚拟文件系统10.2.1虚拟文件系统VFS框架,VFS,MINIX,EXT2,MSDOS,进程管理、内存管理子系统,VFS是一种软件机制,也许称它为Linux的文件系统管理者更确切点,与它相关的数据结构只存在于物理内存当中。所以在每次系统初始化期间,Linux都首先要在内存当中构造一棵VFS的目录树(在Linux的源代码里称之为namespace),实际上便是在内存中建立相应的数据结构。VFS目录树在Linux的文件系统模块中是个很重要的概念,希望读者不要将其与实际文

2、件系统目录树混淆,VFS中的各目录其主要用途是用来提供实际文件系统的挂载点,当然在VFS中也会涉及到文件级的操作,本文不阐述这种情况。一种可能的目录树在内存中的影像:,10.2.2Linux虚拟文件系统的数据结构1.VFS的超级块super_block,2.索引节点inode,3.文件file,4.目录项dentry,10.2.3VFS的系统调用,10.3文件系统的注册和挂装10.3.1文件系统注册这里的文件系统是指可能会被挂载到目录树中的各个实际文件系统,所谓实际文件系统,即是指VFS中的实际操作最终要通过它们来完成而已,并不意味着它们一定要存在于某种特定的存储设备上。比如在笔者的Linux

3、机器下就注册有“rootfs”、“proc”、“ext2”、“sockfs”等十几种文件系统。数据结构在Linux源代码中,每种实际的文件系统用以下的数据结构表示:,10.3.2已挂装文件系统描述符链表,10.3.3挂装根文件系统注册rootfs文件系统在众多的实际文件系统中,之所以单独介绍rootfs文件系统的注册过程,实在是因为该文件系统VFS的关系太过密切,如果说ext2/ext3是Linux的本土文件系统,那么rootfs文件系统则是VFS存在的基础。一般文件系统的注册都是通过module_init宏以及do_initcalls()函数来完成(读者可通过阅读module_init宏的声

4、明及archi386vmlinux.lds文件来理解这一过程),但是rootfs的注册却是通过init_rootfs()这一初始化函数来完成,这意味着rootfs的注册过程是Linux内核初始化阶段不可分割的一部分。init_rootfs()通过调用register_filesystem(rwlock_tlock;intumask;structdentry*root,*pwd,*altroot;structvfsmount*rootmnt,*pwdmnt,*altrootmnt;,10.5ext2文件系统,10.5.1ext2文件系统的存储结构,图10.1Ext2逻辑磁盘结构,10.5.2ex

5、t2文件系统主要的磁盘数据结构,2.ext2的块组描述符,3.块位图和索引节点位图4.ext2文件系统的磁盘索引节点ext2_inode,10.5.3ext2文件系统的内存数据结构1.ext2的内存超级块2.ext2的内存索引节点,10.5.4数据块寻址,10.6.1设备配置mknod/dev/tty1c41我们再来看下什么是主次设备号。我们在使用设备是是通过/dev下的设备文件来使用文件,例如,我们要从第一个硬盘中读取一个扇区的字节,我们首先就会调用open打开/dev/hda,然后用read来读取,但我们的系统可不是通过设备名来操做的,我们的系统是通过主次设备号来认识和操作我们的设备的。,

6、10.6块设备驱动,系统有两个sata的硬盘和两个sata的usb移动硬盘,在/dev/目录下,运行ls-l来查看我们的设备,大家可以看到我的sda的主设备号是8,次设备号是0,而sdb、sdc和sdd的硬盘的主次设备号分别是8:16,8:32和8:48,而sda1是分区,主次设备号是8:1。为什么会有这样的主次设备号呢,这又是怎么定义的呢。各种设备的主次设备号,应该说都是由LinuxAssignedNamesAndNumbersAuthority(LANANA)来定义的。当前最新的定义在这里网址上(/docs/device-list/devices-2

7、.6+.txt)。大家可以下下来看,这是09年4月最新的。我们来看这张表,查找到第8项,看看下面的内容,我贴出来(为了方便,以后我就叫这张为定义表):8blockSCSIdiskdevices(0-15)0=/dev/sdaFirstSCSIdiskwholedisk16=/dev/sdbSecondSCSIdiskwholedisk32=/dev/sdcThirdSCSIdiskwholedisk.240=/dev/sdpSixteenthSCSIdiskwholedisk,10.6.2设备驱动程序的接口,图10.3驱动程序及其接口,10.7字符设备驱动,内核驱动模块编程,最简单的内核模块,某个磁盘系统采用最短寻道优先(SSTF)磁盘调度算法,假设有一个请求柱面读写的磁盘请求队列如下:27,136,58,100,72,40,当前的磁头位置是80柱面。请按最短寻道优先算法画出其进行调度的示意图,并求出移臂总

温馨提示

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

评论

0/150

提交评论