首页 > 其他分享 >5.3.1 文件系统的布局-操作系统设计与实现(第三版)5.1-5.2

5.3.1 文件系统的布局-操作系统设计与实现(第三版)5.1-5.2

时间:2022-12-12 20:44:51浏览次数:35  
标签:5.1 5.2 5.3 引导 分区 文件系统 扇区 分区表 代码

第5章 文件系统

5.1.2 三种类型的文件

字节序列、记录序列、树

5.1.3 可执行文件

一个可执行文件有五个段:文件头、代码、数据、重定位位和符号表。文件头以所谓的魔数(magic number)开始,表名该文件是一个可执行文件。接下来是文件的各个部分的长度、执行的起始地址和一些标志位。在文件头之后就是程序本身的代码和数据,在它们被转载到内存中时,使用重定位位来进行定位。符号表则用于调试。

5.3.1 文件系统的布局

BIOS:在计算机启动后,BIOS会读入并执行MBR中的代码。

主引导记录(Master Boot Record,MBR):磁盘的第0个扇区,主要用来启动计算机。或被称为 初始化程序装载器(Initial Program Loader,IPL)、卷引导代码(Volume Boot Code)、主引导(master boot)。

(主)分区表(partition table):MBR的末尾有一个分区表,里面记录了每一个分区的起始地址和结束地址。

活动分区:分区表中有一个是活动分区。

引导块(boot block):活动分区中的第一个磁盘块,被MBR读入内存,然后执行它。引导块中的代码就会把保存在该分区中的操作系统读取出来,装入内存运行。为了保持一致性,每一个分区都以一个引导块开头,即使在该分区中并没有包含一个可引导的操作系统。

在PC兼容的系统上。
主要分区(primary partition):主要分区的个数最多不能超过4个,因为在主引导记录和第1个512字节的扇区末尾之间,仅能容纳4个数组元素,来存放分区的描述符。最初的启动必须从主分区开始,由它来装入代码,管理各个逻辑分区。

扩展分区(extend partition):有些操作系统允许将分区表中的某一项作为一个扩展分区,指向逻辑分区链表。

逻辑分区(logic partition):多个逻辑分区由链表连接。

在MINIX3中。
子分区表(sub partition table):针对扩展分区,它允许在一个分区中,包含有一个子分区表。这样做好处是,可以使用管理主分区表的代码来管理子分区表,因为它们的结构是一样的。子分区的可能的用途是:针对根设备、交换区、系统二进制文件和用户文件,可以使用不同的子分区。这样一来,在一个字分区中发生的问题不会传播到另一个子分区。

其他。
不是所有的磁盘都需要分区,软盘的引导块通常从第一个扇区开始(第0个扇区为MBR?)。
BIOS读入磁盘的第一个扇区,然后查找一个魔数(?????不是可直接执行的二进制的机器指令吗?),标明它是有效的可执行代码。主引导记录和引导块使用的是相同的魔数,因而可执行代码可能是两者之一(???)。
Flash存储器通常会使用部分的存储容量来模拟一个磁盘。

一种可能的文件系统布局

超级块(superblock):包含了关于文件系统的所有关键参数。当计算机被启动或文件系统被首次接触时(被挂载吗?),超级块的内容被装入内存。

空闲空间管理:关于文件系统中空闲物理块的管理信息。

索引节点:一组数据结构,一个文件对应一个,描述了文件的所有属性信息和它在磁盘上的存储位置。

根目录:文件系统数的根结点。

标签:5.1,5.2,5.3,引导,分区,文件系统,扇区,分区表,代码
From: https://www.cnblogs.com/zkx98/p/16976906.html

相关文章

  • ArgoDB 5.1 正式发布:多模融合、实时分析和数据安全多重升级
    TranswarpArgoDB是星环科技自主研发的高性能分布式分析型数据库,在PB级数据量上提供极致的数据分析能力。ArgoDB支持标准SQL语法和分布式事务,提供高并发高速数据......
  • PS/LR滤镜插件套装 Nik Collection v5.3.0 Win/Mac
    NikCollection4,其包含了八款PS插件,可提供近200种高质量的创意效果以及一系列创新的图像编辑工具,只需单击一下即可使用,同时为您提供无损编辑以实现全面控制。功能涵盖修图......
  • MAUI新生5.2-样式外观:控件状态样式VisualState
    (当前版本V7.0.94,VisualState有bug)控件状态指控件当前处于什么使用状态,如禁用、聚焦、鼠标悬停等等,当控件进入到某种状态时,可以通过【附加属性】【VisualStateManager.Visu......
  • hello qt!(qt版本:5.12.12)
    如果你准备看我的学习笔记,默认你的c++已经入门了#include<QApplication>#include<qpushbutton.h>intmain(intargc,char*argv[]){QApplicationa(argc,arg......
  • Photoshop 2022 for Mac永久使用(ps 2022) v23.5.2激活版
    Photoshop2022中文版是一款专业图像处理软件,ps2022此次更新软件可选择项目云服务生成更准确和高质量的图像;PS软件界面也有了新的中性UI颜色模式,视觉效果更加高级;对神经滤波......
  • centos 7 python2.7.5升级到3.5.2
    下载python3.5.2wgethttps://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz安装解压:tar-zxvfPython-3.5.2.tgz进入解压目录:cdPython-3.5.2创建安装目录:mkdir/us......
  • 5.2.1、SSAS-维度-雪花维度
    维度-雪花维度的建立  1          雪花维度 当事实表有多个维度但不是所有维度都直接与事实表进行关联时,我们称之为雪花维度。比如,产品维度直接关联事实表,但是......
  • 5.2.2、SSAS-维度-父子维度
    维度-父子维度的建立  1          父子维度 当维度表为自引用结构时,可以建立父子维度。自引用结构可以反映不限制层级深度的多叉树结构。 2        ......
  • 最新CentOS 8.5.2111 安装 docker
    安装docker官网安装参考手册:https://docs.docker.com/install/linux/docker-ce/centos/检测CentOS版本:7以上[root@localhost~]#cat/etc/redhat-releaseCentOSLinu......
  • 015.3MyBatis动态SQL(多条件复合查询)
    1.goods.xml<selectid="dynamicSQL"parameterType="java.util.Map"resultType="com.imooc.mybatis.entity.Goods">select*fromt_goods<where>......