linux 的文件系统(1)

首先介绍两个名词吧, 用户空间 ,内核空间

我们知道每个进程都有一个自己的生存空间,进程的空间分为两种:

           用户空间         ,              内核空间  

操作系统通过将程序状态寄存器等设置成不同的运行模式,即用户模式和系

统模式来限制用户进程和系统进程对系统资源的访问权限。 

用户模式工作于用户空间,系统模式工作于内核空间。

在用户空间下只能运行用户指令,只能访问指定的寄存器和内存区,

但是在内核空间下进程可以运行系统的所有指令。

要想跟硬件打交道必须转入内核模式。

一个内核所提供的功能都是通过系统调用提供的。(如 打开文件 ,读文件 等)

Linux 中有众多的文件系统,每个文件系统都提供了自己的系统调用或者说接口,为了解决这个问题。

为了解决这个问题有了 VFS 。

VFS :Virtual FileSystem (虚拟文件系统)

虚拟文件系统也是内核的功能。

有了 VFS 用户只需要调用 VFS 提供的接口,而不用关心在磁盘中要访问的分区是

哪一种文件系统。将由虚拟文件系统完成转换工作。

记住  : 要想跟硬件打交道必须转入内核模式。

一般不加区分内核模式和内核空间 或者用户模式和用户空间。

技术分享


说一下文件系统类型 :

  ext3 , ext4 , ext2 (扩展的文件系统)

  reiserfs

  iso9660(光盘),swap (交换分区) ,cifs (window 网络文件系统) , nfs(Linux 网络文件系统)

  xfs , jfs

  ocfs2(集群文件系统), fgs2

  fat32  , ntfs 


说一下 常见的 block 大小,

block size : 1024(即 1 K), 2048 ,4096 byte

说一下磁盘空间吧:

磁盘中分为一个个的块组 :

技术分享

超级块:super block (存储信息: 有多少个组,每个快组包含多少块,块大小,空闲磁盘块,

空闲 inode , 引用 inode )

GDT(块组描述符表) : 每个块组从哪里开始 ,结束 ,块组名等。

一个分区的第0块为Boot Block 这个块不能被使用,里面可以存放BootLoader.

不是每个块组中都含有Super Block

默认找第 0 个块组的 Super Block 。

MBR 不属于任何分区


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。