4.1 文件
1.扩展名:UNIX中是一种约定,Windows则是可以在操作系统中注册;
2.文件结构:1.文件看成字节序列;2.记录序列;3.树;
3.文件类型:普通文件、目录文件、字符特殊文件、块特殊文件;
普通文件:ASCII文件和二进制文件;
4.文件操作:open:把文件属性和磁盘地址装进内存;
4.2 目录
1.绝对路径和相对路径:从根目录到文件的路径组成、从当前目录开始;
2.软链接:产生新文件,新建iNode和datablock,datablock的内容是源文件的路径和文件名;
3.硬链接:与普通文件一样,都是指向磁盘上同样位置,inode相同;
原文件删除,iNode还在,软链接找不到了;
由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:
- 文件有相同的 inode 及 data block;
- 只能对已存在的文件进行创建;
- 不能交叉文件系统进行硬链接的创建;
- 不能对目录进行创建,只可对文件创建;
- 删除一个硬链接文件并不影响其他有相同 inode 号的文件。
软链接与硬链接不同,若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。因此软链接的创建与使用没有类似硬链接的诸多限制:
- 软链接有自己的文件属性及权限等;
- 可对不存在的文件或目录创建软链接;
- 软链接可交叉文件系统;
- 软链接可对文件或目录创建;
- 创建软链接时,链接计数 i_nlink 不会增加;
- 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)。
详解:http://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/
3.文件结构:1.文件看成字节序列;2.记录序列;3.树;
4.3 文件系统的实现
1.磁盘的0号扇区:主引导记录(MBR),MBR结尾是分区表。
引导时,BIOS读入并执行MBR,确定活动分区,读取活动分区的第一个块,称引导块,引导块,装载操作系统;
2.实现
1.连续分配:实现简单、读操作性能好;产生磁盘碎片
2.链表分配:每个块的第一个字指向下一块的指针;
随机读取速度慢;
3.内存采用表的链表分配:FAT(文件分配表),每个磁盘的指针字放在内存里,加速随机存储;
4.i节点:对应文件打开时,i节点才存储到内存中;占用内存空间小;
3.目录实现:文件属性存放在i节点(UNIX),存放在目录里(Windows)
4.日子结构文件系统LFS:i节点分散存储到整个磁盘中,需要维护;写操作缓冲到内存中,每隔一段时间放到一个独立的段,写到日志末尾;
5.日志文件系统:NTFS和ext:保持记录文件系统下一步要做什么;
4.4 文件系统优化
1.块大小
大块:空间利用率低;
小块:多次寻道和旋转,速度慢;