摄影网站建设论文,WordPress小工具是什么,c 可以做网站吗,网站上线后想修改目录
如何理解Linux系统上一切皆文件
1.物理角度认识磁盘
2.对磁盘的存储进行逻辑抽象
磁盘寻址
3.磁盘中的寄存器 如何理解Linux系统上一切皆文件
计算机中包含大量外设#xff0c;操作系统想要管理好这些外设#xff0c;就必须对这些外设进行先描述再组织#xff0c…目录
如何理解Linux系统上一切皆文件
1.物理角度认识磁盘
2.对磁盘的存储进行逻辑抽象
磁盘寻址
3.磁盘中的寄存器 如何理解Linux系统上一切皆文件
计算机中包含大量外设操作系统想要管理好这些外设就必须对这些外设进行先描述再组织描述就是将每个外设抽象出一个结构体每个结构体内部包含写方法、读方法等如果某个外设没有所对应方法就把变量置为NULL 不同的外设接口抽象出的结构体可能会存在差异操作系统通过再一层封装将不同外设抽象成相同的存储结构便于上层的调用 如果某个进程需要访问外设就会先创建一个struct file该struct file中存储对于的opration_func当某个进程需要操作该外设时则只需要访问存储该外设的operation_func的struct file并找到它的对应方法即可对外设做操作
对于上层的保存着operation_func的struct file的集合我们将其称之为虚拟文件系统。该文件系统存储格式是文件上层用户看来Linux中外设也是文件 1.物理角度认识磁盘
磁盘在冯诺伊曼体系中是外设磁盘是计算机的一个组成很早以前的计算机的存储设备是磁盘现在为了轻便大部分计算机采用固态硬盘SSD替代了磁盘我们这里只讨论磁盘磁盘是通过磁盘的磁性N/S级存储0或1属于永久性存储介质
磁盘的物理结构指的是存储数据的磁盘介质本身的物理组成部分。这些组成部分共同工作以存储和检索数据。以下是磁盘物理结构的主要部分
磁头是磁盘上最显著的组件之一负责在磁盘表面读取和写入数据。磁头通过一个称为“磁头臂”的机械装置移动该装置连接到磁盘的驱动器部分。磁头在移动时会非常接近磁盘表面有时甚至只有几微米因此磁头的设计必须非常精确。
磁盘表面是磁头在上面读写数据的平面。磁盘表面通常由多个圆盘组成每个圆盘都围绕一个中心轴旋转。这些圆盘被称为磁盘片简称盘片它们通常是铝或玻璃并且涂有磁性材料。
磁盘片是磁盘表面上的物理盘片它们通常由多层涂有磁性材料的铝或玻璃制成。磁盘片围绕中心轴旋转以一定的速度称为转速旋转
磁盘驱动器是磁盘的机械部分它包含磁头臂、电机和控制器。磁头臂是连接到磁头的金属臂它可以在磁盘表面移动。电机用于驱动磁盘片旋转而控制器负责协调磁头和电机的动作以确保数据读写操作的正确执行。
磁道是磁盘表面上的圆环每个磁盘片上有多个磁道。磁头沿着这些磁道移动以读取或写入数据。磁道的数量和布局取决于磁盘的大小和设计。
扇区是磁道上的一个存储单元它是一个圆周上的一个固定大小的区域。每个扇区都有一个唯一的编号用于标识其在磁盘上的位置。扇区的大小通常为512字节但最新的硬盘可能使用更大的扇区大小如4KB。
控制器是磁盘驱动器中的电子部分负责管理磁头、电机和磁盘片之间的交互。控制器接收来自主机的命令并将其转换为磁头和电机的动作指令。控制器还负责错误检测和纠正以及数据传输的同步
磁盘接口是连接磁盘驱动器与计算机主板的部分它定义了数据传输的协议和速度。常见的接口包括SATA、SAS、SCSI、NVMe等。 在磁盘中定位某个扇区的方法是①找到指定的磁头Head②找到指定的磁道Cylinde③找到指定的扇区Sector。这种方法简称为CHSCylinder、Header、Sector
【示例】读取指定位置的数据 所以文件其实就是在磁盘中占有几个扇区的问题
2.对磁盘的存储进行逻辑抽象
磁盘寻址
在我们小学的时候听英语听力我们使用磁带。将磁带插入播放机中播放机既可以进行播放听力。磁带里有一条很长很长的塑料袋上面涂有一层磁性材料通常是氧化铁或磁性颗粒的混合物。这些材料在磁场的作用下可以被磁化形成代表数据的磁化模式。磁带里也有磁头用于读取和写入磁带的物理组件。 当我们把磁带拉出来可以发现它存储数据是线性存储的我们也把磁盘看作线性结构即将磁道上的扇区按照某种规则给予线性顺序编号如下图所示从左向右依次是盘面1、盘面2、盘面3......每个盘面内从左向右分别是该盘面不同的磁道每个磁道又由多个扇区组成这里我们假设每个磁道的扇区个数相同 【示例】假设有一个磁盘它的每个盘面有50个磁道每个磁道有400个扇区即每个盘面有20000个扇区。如果某个文件存放在18888号扇区那么它属于哪个盘面的哪个磁道的哪个扇区呢
盘面号 18888 / 20000 0号盘面磁道号 18888 / 400 47号扇区号 18888 % 400 88号扇区
综上所述18888号扇区属于第0个盘面的第47个磁道的第88个扇区。
像上述示例中寻找扇区的方式称为LBA寻址方式又称为逻辑寻址方式。
3.磁盘中的寄存器
不仅CPU中包含寄存器其他外部设备中也存在寄存器。
当某个进程需要向磁盘中写入数据时以下步骤通常会发生
设置读写控制寄存器 进程通过操作系统和相应的设备驱动程序首先会将磁盘的读写控制寄存器设置为写状态。这通常涉及到向命令寄存器写入一个特定的命令代码比如 “写命令”。
将数据放入数据寄存器 接着进程会将要写入的数据放入数据寄存器中。数据寄存器是磁盘控制器的一部分用于暂存数据这些数据随后会被写入磁盘的指定位置。
写入地址信息 然后进程需要将要写入数据的目标地址信息放入地址寄存器。这通常包括磁道号、磁头号和扇区号。这些信息告诉磁盘控制器数据应该被写入磁盘的哪个位置。
启动磁盘操作 一旦所有的寄存器都被正确设置磁盘控制器会开始执行写入操作。这个过程可能涉及到磁盘的寻道和旋转以便磁头能够定位到正确的磁道和扇区。
监控状态寄存器 在写入操作进行时状态寄存器会显示磁盘的状态。例如它可能会被设置为 “正在写入” 状态表示磁盘正在执行写操作。 操作系统或设备驱动程序会定期检查状态寄存器以监控操作进度和任何可能发生的错误。
操作完成 当磁盘完成写入操作后它会更新状态寄存器。如果操作成功完成状态寄存器会设置为 “写入成功”如果操作失败状态寄存器会设置为 “写入失败”并且可能会在错误寄存器中提供错误代码以便于诊断问题。
响应操作结果 操作系统根据状态寄存器的信息来决定下一步操作。如果写入成功它可能会继续执行其他任务或响应用户请求。如果写入失败它可能会重试写入操作、记录错误、通知用户或采取其他错误恢复措施。