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