你的位置:首页 > 软件开发 > 操作系统 > 磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]

磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]

发布时间:2015-05-23 00:00:14
1、磁盘基础知识 1.1 物理结构硬盘的物理结构一般由磁头与碟片、电动机、主控芯片与排线等部件组成;当主电动机带动碟片旋转时,副电动机带动一组(磁头)到相对应的碟片上并确定读取正面还是反面的碟面,磁头悬浮在碟面上画出一个与碟片同心的圆形轨道(磁轨或称柱面),这时由磁头的磁感线 ...

磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]

1、磁盘基础知识 

当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道(Track)。信息以脉冲串的形式记录在这些轨迹中,这些同心圆不是连续记录数据,而是被划分成一段段的圆弧(扇区),这些圆弧 的角速度一样。 磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System] 磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]
  • 方案一: 255个盘面,C盘是0-100盘面, D盘是101-200个盘面,……
  • 方案二:3263个柱面,C盘0-1000个柱面,D盘1001-20001个柱面,……

2.2 分区命名 

所谓的磁盘分区指的是告诉操作系统『我这颗磁盘在此分割槽可以存取的区域是由 A 磁柱到 B 磁柱之间的区块』, 如此一来操作系统就能够知道他可以在所指定的区块内进行文件数据的读/写/搜寻等动作了。 也就是说,磁盘分区意即指定分割槽的启始与结束磁柱就是了。分区是用设备名称加数字命名的。例如 hda1 代表hda这个硬盘设备上的第一个分区。 每个硬盘可以最多有四个主分区,作用是 1-4 命名硬盘的主分区。多个主分区中只能有一个active 主分区作为启动分区。逻辑分区是从5开始的,每多一个分区,每个磁盘上最多可以有 24个扩展分区。 磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System] 分多个区有以下几个目的: mkfs.ext2   /dev/sdb1 //格式化分区成 ext2磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System] 文件系统是对一个存储设备上的数据和元数据进行组织的机制。它的最终目的是把大量数据有组织的放入持久性(persistant)的存储设备中,比如硬盘和磁盘。文件系统(file system)是就是文件在逻辑上组织形式,它以一种更加清晰的方式来存放各个文件。数据被存入到某个分区中。一个典型的Linux分区(partition)包含有下面各个部分:磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System] 磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System] 磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]因此,当我们读取一个文件时,实际上是在目录中找到了这个文件的inode编号,然后根据inode的指针,把数据块组合起来,放入内存供进一步的处理。当我们创建一个文件时,是分配一个空白 inode 给该文件,将其 inode 编号记入该文件所属的目录,然后选取空白的数据块,让 inode 的指针指向这些数据块,并放入内存中的数据。

3.3 文件系统的结构

磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]

磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]用户空间包含一些应用程序(例如,文件系统的使用者)和 GNU C 库(glibc),它们为文件系统调用(打开、读取、写和关闭)提供用户接口。系统调用接口的作用就像是交换器,它将系统调用从用户空间发送到内核空间中的适当端点。

3.4 VFS (虚拟文件系统)  

Linux 中允许众多不同的文件系统共存,如 ext2, ext3, vfat 等。通过使用同一套文件 I/O 系统调用即可对 Linux 中的任意文件进行操作而无需考虑其所在的具体文件系统格式;更进一步,对文件的 操作可以跨文件系统而执行。如下图所示,我们可以使用 cp 命令从 vfat 文件系统格式的硬盘拷贝数据到 ext3 文件系统格式的硬盘;而这样的操作涉及到两个不同的文件系统。 过程:VFS调用 vfat 的读文件方法将 a.txt 的数据读入内存;再将 a.txt 在内存中的数据映射到b.txt对应的内存空间后,VFS调用ext3的写文件方法将b.txt写入磁盘;从而实现了最终的跨文件系统的复制操作。磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]

3.5 Linux 文件系统类型 

3.5.1 ReiserFS

ReiserFS 是一种文件系统格式。Linux内核从2.4.1版本开始支持ReiserFS。ReiserFS原先是Novell公司的SuSE Linux Enterprise采用的默认文件系统,直到2006年10月12日其宣称将在未来的版本改采 ext3 为默认。和同样在 Linux Kernel 2.4 版本下的 ext2 及 ext3 相比较,处理 4KB 以下的小文件时(tail packing enable),ReiserFS 的速度快了 10 到 15 倍[3]。但是,有些目录的操作在 ReiserFS 上面并不同步,(包括像 unlink(2)),可能会导致一些重度依赖文件锁(file-based lock)机制的应用程序上面数据的毁损。ReiserFS 在一个单一复合B+树中存储文件的亚数据信息(stat item)、目录文件信息(directory items)、索引节点中的块列表(indirect items),这些信息都有唯一的标识号作为B+树的索引值。

3.5.5 vfat 文件系统

http://djt.qq.com/article/view/620

原标题:磁盘、分区及Linux文件系统 [Disk, Partition, Linux File System]

关键词:linux

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录