• 主页
  • 相册
  • 随笔
  • 目录
  • 存档
Total 244
Search AboutMe

  • 主页
  • 相册
  • 随笔
  • 目录
  • 存档

linux文件系统笔记

2020-09-11

例如,read 函数调用可以从指定的文件描述符读取一定数量的字节。read 函数不了解文件系统的类型,比如 ext3 或 NFS。它也不了解文件系统所在的存储媒体,比如 AT Attachment Packet Interface(ATAPI)磁盘、Serial-Attached SCSI(SAS)磁盘或 Serial Advanced Technology Attachment(SATA)磁盘。但是,当通过调用 read 函数读取一个文件时,数据会正常返回

1. 基本概念

1.1. 文件系统

一个存储设备上的数据和元数据进行组织的机制


元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能

1.2. 挂装

在 Linux 中将一个文件系统与一个存储设备关联起来的过程称为挂装(mount)。使用 mount 命令将一个文件系统附着到当前文件系统层次结构中(根)

1.3. 用户态(用户空间)与内核态

VFS 是底层文件系统的主要接口。这个组件导出一组接口,然后将它们抽象到各个文件系统,各个文件系统的行为可能差异很大。有两个针对文件系统对象的缓存(inode 和 dentry)

每个文件系统实现(比如 ext2、JFS 等等)导出一组通用接口,供 VFS 使用

1.4. 虚拟文件系统层

内核保存当前支持的文件系统的列表,可以通过 /proc 文件系统在用户空间中查看这个列表

1
2
3
4
5
6
7
cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev tmpfs
...

2. 目录结构

分类原则

  • 可分享的/不可分享的
  • 可变动的/不变的

根目录

根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动作有关。 由于系统开机时需要特定的开机软件、核心文件、开机所需程序、 函式库等等文件数据,若系统出现错误时,根目录也必须要包含有能够修复文件系统的程序才行。 因为根目录是这么的重要,所以在FHS的要求方面,他希望根目录不要放在非常大的分区, 因为越大的分区内你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会。

3. 参考

  • Linux 文件系统剖析
  • Linux中的文件和目录结构详解 - 记忆流年 - 博客园
  • Operating System
  • Linux
  • Notes
安全工具笔记
系统小知识-1
  1. 1. 1. 基本概念
    1. 1.1. 1.1. 文件系统
    2. 1.2. 1.2. 挂装
    3. 1.3. 1.3. 用户态(用户空间)与内核态
    4. 1.4. 1.4. 虚拟文件系统层
  2. 2. 2. 目录结构
  3. 3. 3. 参考
© 2024 何决云 载入天数...