Linux根文件系统制作

来自华清远见研发中心
FarSight讨论 | 贡献2021年3月22日 (一) 09:53的版本 磁盘的物理组织

跳转至: 导航搜索

实验原理

文件是计算机系统的软件资源,操作系统本身和大量的用户程序、数据都是以文件形式组织和存放的,对这些资源的有效管理和充分利用是操作系统的重要任务之一。本章介绍文件和文件系统的概念,并对操作系统的文件管理功能给予简要说明。

磁盘的物理组织

文件系统主要完成对磁盘上的数据和程序进行管理,所以首先需要了解磁盘(硬盘)的结构。
磁盘又叫硬盘,由一组盘片组成。每个盘片的上下两面都涂有磁粉,磁化后可以存储信息数据。每个盘片的上下两面都安装有磁头。磁头被安装在梳状的可以做直线运动的小车上以便寻道。每个盘面被格式化成有若干条同心圆的磁道,并规定最外面的磁道是0磁道,次外层是1磁道。每个磁道又被分成若干个扇区,并顺序排为1号扇区、2号扇区,等等。通常,一个扇区可以储存512字节的二进制信息位。这也是CPU进行磁盘I/O操作时能够读出和写入的最小单位。每个盘面上的同号磁道组成一个柱面,也就是说每个盘面的0号磁道组成0号柱面,所有的1号磁道组成1号柱面,等等。硬盘的结构如图所示。


54-1-1-(1).png

在Linux操作系统中,内核采用的方法是把物理磁盘抽象为逻辑磁盘来管理文件系统。所谓逻辑磁盘是把物理磁盘按照磁头号、磁道号、扇区号以及盘面号划分成磁盘块的线性数组,也叫线性序列。例如:把1号盘面0号磁道的0号扇区定义为0号磁盘块;把1号盘面0号磁道的1号扇区定义为1号磁盘块等等;当然一个磁盘块可以包含多个扇区,一般扇区数是2的整次幂。显然,当把实际的磁盘看成是磁盘块的线性数组时,就把物理磁盘存储数据的实际地址(即磁道号、扇区号以及盘面号)隐藏起来。因此呈现在系统高层面前的已经不是物理磁盘,而是一个经过加工以后的逻辑磁盘。图8.2给出了逻辑磁盘的结构示意图,它比物理硬盘的结构要简单的多。当系统执行磁盘I/O操作时,系统给出试图访问的逻辑磁盘块号。由设备驱动程序根据该块号计算出物理磁盘的磁道号、磁头号以及扇区号,然后启动硬盘把磁头向前或向后移动到相应的柱面,这就是所谓的寻道。寻道是磁盘I/O操作中最为耗时的一个操作。一旦磁头找到磁道,并且相应的扇区转到磁头下面,数据传输就开始。

文件和目录

文件的分类

目录

文件系统

虚拟文件系统

虚拟文件系统概述

根文件系统开发实验

制作根文件系统镜像