- 13
- 0
- 约5.7万字
- 约 52页
- 2018-01-08 发布于江西
- 举报
0906第六章Linux的文件系统设计与编程实现.doc
第六章 Linux文件系统与编程
6.1 文件系统概述 1
6.1.1文件系统的目录树 2
6.1.2文件系统的结构 3
6.1.3 Ext2文件系统 3
6.1.4 VFS 7
6.2 设备文件 8
6.2.1 设备文件概述 8
6.2.2 设备驱动程序 9
6.2.3 中断处理 9
6.2.4 设备驱动程序的框架 9
6.3 文件的系统调用 9
6.3.1 文件的创建和读写 10
6.3.2 文件的各个属性 12
6.3.3 目录文件的操作 13
6.4 文件系统的设计与实现 14
技巧与提示
思考与练习
6.1 文件系统概述
Linux文件系统对用户而言只有一个文件树,它不是由设备标识符如设备号或设备名称来表示的。该树的根在顶部,称为根目录(root),以“/”表示,所有的文件和外部设备都以文件的形式挂接在这棵树上,包括硬盘、软盘、光驱、调制解调器等,这和以驱动器盘符为基础的Windows系统完全不同。当磁盘分区之一被“mount”到文件树中称为安装点(mount point)的目录上时,就成为了该目录树的一个组成部分。
当windows的C:盘未被安装时,/mnt/winc是根文件系统中的一个普通子目录(格式可能是Linux EXT2/3等),里面可以存放任何数据。而FAT32、NTFS等格式的C盘上的数据独立于Linux系统,不能被Linux系统读取。
6.1.1文件系统的目录树
通常的Linux发行版的根目录下大都包含以下目录:
/bin /etc /lost+found /sbin /var /boot /root
/home /mnt /tmp /dev /lib /proc /usr
这些目录的基本性质在下面进行了简要的介绍,以便读者能够快速掌握其用法:
1./bin和/sbin
这两个目录中都包含串bin,是因为其中的程序都是二进制(binary files)的可执行程序文件,用于维护Linux系统的大部分基本程序。
/bin目录下通常存放如login、shell等系统处理或文件操作实用程序、系统实用程序、压缩工具。
/sbin目录下通常存放基本的系统和系统维护程序,如:fsck、fdisk、mkfs、shutdown、lilo、init等。存放在/sbin中的程序只能由管理员root来执行。
2./etc
该目录一般用来存放程序所需的系统配置文件,如passwd、shadow、fstab、host、motd、profile、shells、services、lilo.conf。
3./lost+found
该目录用来存放在系统非正常关机后重启系统时,无处存放的中间文件。
4./boot
该目录中存放着和系统启动有关系的各种文件,包括系统的引导程序和系统核心部分。
5./root
该目录是系统管理员root的主目录。
6./home
系统中所有用户的主目录都存放在/home中,它包含实际用户的主目录和其他用户的主目录。Linux同UNIX的不同之处是,Linux中root用户的主目录通常是在/root或/home/root下,而UNIX通常是在根目录下。
7./mnt
这是CD-ROM、软盘、Zip盘或Jaz等可移动介质的安装目录,其中的每个子目录就是某种设备类型的一个安装点,如/cdrom、/floppy、/zip。如果要使用这些设备,还需要用mount命令从/dev目录中将外部设备挂接上。
8./tmp和/var
这两个目录用来存放临时文件和经常变动的文件。
9./dev
该目录存放各种外部设备的镜像文件。如第一个软盘驱动器的名字是fd0,第一个硬盘的名字是hda,硬盘中的第一个分区是hda1,第二个分区是hda2;第一个光驱的名字是hdc等,以此类推。
10./usr
该目录用来存放与系统的用户直接相关的程序或文件,这里面有每一个系统用户的主目录,相对于用户的根目录“/”。
11./proc
该目录是当前系统中运行的进程的虚拟镜像,在这里可以看到由当前运行的进程号组成的一些目录,还有一个记录当前内存内容的kernel文件。
6.1.2文件系统的结构
文件系统上的所有文件在计算机里都是数据的集合。一个文件系统不仅包括所有文件的内容,还包括文件系统的结构、用户与程序开发人员可能用到的关于文件、目录连接和文件权限等信息。一个成功的文件系统必须安全可靠地保存这些信息,一个操作系统最基本的一致性和完整性首先依赖于文件系统的可靠性。图6.1描述了一个文件系统的视图。
图6.1 文件系统视图
其中,引导块的作用是在文件系统启动时,将操作系统核心程序从磁盘装入内存,然后由该核心程
原创力文档

文档评论(0)