当前位置: 首页 > news >正文

美妆企业网站模板企业网站模板官网

美妆企业网站模板,企业网站模板官网,营销方案设计,网站建设主要业务流程设定目录 1.认识磁盘、 1.1 理论 1.2 磁盘的物理结构 CHS 寻址 1.3 磁盘的逻辑抽象结构 2. inode 结构 1.Boot Block 启动块 2.Super Block#xff08;超级块#xff09; 3.Group Descriptor Block#xff08;块组描述符#xff09; 4.Data Blocks (数据块) 5.Inode…目录 1.认识磁盘、 1.1 理论 1.2 磁盘的物理结构 CHS 寻址 1.3 磁盘的逻辑抽象结构 2. inode 结构 1.Boot Block 启动块 2.Super Block超级块 3.Group Descriptor Block块组描述符 4.Data Blocks (数据块) 5.Inode Table (inode表) stat 示例 6.Bitmap 位图 思考 3.文件系统 3.1 增/删/查/改 一个文件 3.2 理解目录 dentry 缓存 Preface: 文件系统是一种用于在存储设备上组织数据的方法。Ext2是Linux操作系统中使用的一种文件系统全称是Second Extended File System第二扩展文件系统 尽管Ext2在许多现代Linux系统中已被更新版本的文件系统如Ext3和Ext4所取代它仍然在某些场景下被使用尤其是在需要快速读写性能且不介意缺少日志功能的场合。 由于Ext2不支持日志功能因此在系统崩溃时可能会丢失数据或在恢复时需要更长时间。现在Ext4文件系统已经成为大多数Linux发行版的默认文件系统因为它提供了更好的性能和更多的功能。 前面我们学习到了一个被打开的文件那如果一个文件没有被打开呢 我们可以知道它将在磁盘中进行存储可以通过如下角度进行思考 路径问题存储问题获取的问题属性文件内容效率 引出了我们的学习路线 认识硬件--磁盘对硬件进行抽象理解文件系统 1.认识磁盘 1.1 理论 磁盘上存储文件属性内容 文件的内容--数据块文件属性--inode sum: Linux 文件在磁盘中存储是将属性和内容分开存的 当下磁盘存储的运用场景 1.现在电脑上装的都是SSD了 SSD代表固态硬盘Solid State Drive是一种使用闪存芯片作为存储介质的电脑存储设备。目前个人电脑或工作站等设备普遍采用SSD作为主要的存储介质。SSD相比传统的机械硬盘HDDHard Disk Drive有更快的读写速度、更低的功耗和更小的噪音同时因为没有机械运动部件所 以更耐震动故障率也相对较低。 2.公司服务器长时间存储还是使用磁盘进行存储分级冷热分离 在公司或企业的服务器存储解决方案中尽管SSD在性能上有明显优势但出于成本和容量考虑长时间存储大量数据通常还是使用机械硬盘HDD。HDD的成本较低存储容量较大适合用来存储那些不经常访问但需要长期保存的数据。存储分级这是指根据数据的访问频率和重要性将存储分为不同的级别。通常分为热存储hot storage和冷存储cold storage。 热存储用于存储经常访问的数据这些数据需要快速访问因此通常使用SSD或快速的磁盘阵列。冷存储用于存储不经常访问的数据这些数据可以存储在成本更低的存储介质上如大容量HDD或更便宜的云存储服务。 意义优化了成本和性能确保经常访问的数据能够快速访问而不常用的数据则以较低的成本进行存储 机械硬盘在计算机系统中的两个特点它是一种包含机械运动部件的设备同时也是连接到计算机主机的外部硬件设备 磁盘是一个机械设备 这里的“磁盘”通常指的是机械硬盘HDDHard Disk Drive它是由多个机械部件组成的存储设备。在个人电脑或服务器中尽管还有其他可能包含机械部件的设备如光盘驱动器、软盘驱动器等但在现代计算机系统中机械硬盘往往是唯一的主要机械存储设备。这是因为其他类型的存储设备如固态硬盘SSD、内存条RAM、U盘等都不包含机械运动部件。 也是一个外设 “外设”是外部设备的简称指的是连接到计算机主机的硬件设备用于扩展计算机的功能。磁盘如HDD作为存储设备通常被视为计算机的外设因为它位于计算机主机的机箱外部或者至少是可分离的并通过数据传输接口如SATA、SAS等与主板连接。尽管它是计算机运行所必需的组成部分但它并不直接集成在主板上因此被分类为外设。 1.2 磁盘的物理结构 可以先根据下面的图片有一个直观的感受 最后一张图的磁盘类似于三张两面都光的光盘 磁盘作为计算机中唯一的机械部件通常由一个或多个旋转的盘片组成每个盘片有两个面每个面上有一层磁性材料。通过主轴连接磁盘上附有磁头。数据存储的基本单位是扇区(Sector)传统上每个扇区大小为512字节但近年来逐渐过渡到4096字节的大扇区。 主轴下面有马达一秒钟两万转都有可能 物理结构 磁头是一面一个左右摆动两个整体移动的有磁头停靠点磁头和盘面不接触所以物理上不适用于笔记本开机状态移来移去磁头刮花了磁盘属于硬件问题机械磁盘要在无尘环境下灰尘落上去就像一座大山可能会把数据都磨没了 磁盘存储 所有的数据都在盘片上以二进制存储磁头通过充放电写入内存掉电易失设备磁盘永久性存储介质通过充放电/强弱/波在磁盘上写入 01 数据像吸铁石的 N S 级高温消磁大型互联网公司淘汰磁盘国家规定不能数据泄露磁盘擦除并不完全局部数据的残留也可以被恢复磁盘上的影子数据也挺危险的解决方法和厂商协商调用接口去除~ 磁盘的存储构成 磁盘被访问的最基本单元是扇区---大小有可能 512 字节/ 4KB我们可以把磁盘看作由无数个扇区构成的存储介质 3. 第一步定位一个扇区哪一面哪个磁头哪一个磁道纵向上形成柱面哪一个扇区 4. 磁头摆动定位磁道和柱面的过程 盘片转动定位扇区的过程 5. 软件寻址相关内容还是尽量放在一起因为运动越少效率越高 CHS 寻址 三个参数Cylinder(柱面Header(磁头Sector(扇区》CHS 寻址方式 1.3 磁盘的逻辑抽象结构 我们可以类比于磁带将扇区线性来看 将一个圆延展开来进行扇形分区struct 来实现存储 LBA 信息 随着技术发展出现了逻辑块地址(LBA)的概念它可以解决CHS寻址的局限性。LBA将磁盘上的所有扇区视为一个线性序列操作系统可以通过LBA直接定位到扇区而无需关心具体的磁头、柱面和扇区信息。 可以借助上图了解基于对磁盘的理解建模的过程 磁盘对扇区一视同仁的划分管理好了 10 G 的一个扇形就能管理好 800 G--分治的思想 化大为小 2. inode 结构 1.Boot Block 启动块 文件系统不仅需要存储文件内容还需要存储文件的元数据如文件大小、所有者、权限等。这些元数据存储在索引节点(inode)中。 结合上部分先来看一下这个 10G 的分区 在Linux文件系统中Boot Block启动块是一个非常重要的组成部分尤其是在传统的磁盘驱动器中。Boot Block位于磁盘的最前端通常是磁盘的第一个扇区也被称作主引导记录Master Boot Record, MBR。 Boot Block的功能 引导加载当计算机启动时BIOS会读取磁盘的第一个扇区即Boot Block并将控制权传递给该扇区中的主引导程序。分区检测主引导程序会检查分区表确定启动分区的位置。操作系统加载主引导程序会根据分区表中的信息选择一个活动分区并加载该分区上的引导加载程序如GRUB或LILO。 Boot Block的示例 对于一个传统的MBR分区布局Boot Block即MBR的结构如下主引导程序占据MBR的前446字节。分区表接下来的64字节每个分区条目16字节共4个。引导签名最后两个字节0xAA55。 对于现代系统的变化 对于使用GUID分区表GPT的现代系统Boot Block的概念略有不同。在GPT分区方案中磁盘的第一个扇区通常称为保护MBR通常包含一个简单的MBR用于兼容旧版BIOS系统。真正的引导加载程序和GPT分区表位于磁盘的其他位置。 如何查看Boot Block 尽管查看Boot Block的内容通常不是日常管理任务的一部分但如果需要可以使用特定的工具来进行。例如使用dd命令可以从磁盘复制第一个扇区 sudo dd if/dev/sda ofmbr bs512 count1 这将把磁盘/dev/sda的第一个扇区即Boot Block复制到文件mbr中。随后可以使用十六进制编辑器或特定的工具来查看该扇区的内容。 总结 Boot Block是磁盘上非常重要的一个区域它包含了启动系统所需的关键信息。无论是传统的MBR还是现代的GPTBoot Block都扮演着启动过程中的关键角色。 2.Super Block超级块 超级块是文件系统中的一种特殊的数据结构它包含了整个文件系统的全局信息。这些信息包括但不限于 文件系统类型如ext2、ext3、ext4等。文件系统块大小例如1024字节、2048字节或4096字节。文件系统的总块数和可用块数。文件系统的总inode数和可用inode数。文件系统的挂载时间、上次写入时间、上次检查时间等。文件系统的特征标志例如是否有日志功能等。 超级块对于文件系统的正确操作至关重要。如果超级块损坏可能导致文件系统无法被识别或挂载。大多数文件系统都会在不同的位置保存多个超级块副本以防止单点故障。 3.Group Descriptor Block块组描述符 在某些文件系统中如ext2、ext3和ext4文件系统被分割成多个块组以提高性能和简化管理。每个块组都包含一个块组描述符该描述符包含了该块组的一些重要信息例如 该块组内的数据块总数。该块组内的可用数据块数量。该块组内的inode总数。该块组内的可用inode数量。该块组的块位图和inode位图的位置。该块组的inode表的位置。 块组描述符使得文件系统能够快速访问每个块组的状态信息而无需每次都访问超级块。这对于大型文件系统尤其有用因为它减少了对超级块的访问频率提高了性能。 总结一下 Super Block包含整个文件系统的全局信息如总块数、总inode数等。Group Descriptor Block针对文件系统中的每个块组包含该块组内的数据块和inode的数量和位置等信息。 这些信息对于文件系统的管理和维护至关重要确保了文件系统能够正确地处理文件和目录的存储、检索和删除等操作。 4.Data Blocks (数据块) 数据块是文件系统中用于存储文件实际内容的基本单位。每个文件的内容都分布在磁盘上的一个或多个数据块中。数据块的大小取决于文件系统的配置通常为1024字节、2048字节或4096字节等。 特点 可变大小数据块的大小在文件系统创建时被定义并且在整个文件系统的生命周期中保持不变。非连续存储文件的内容不一定存储在连续的数据块中而是可以分散在磁盘的不同位置。间接寻址文件的内容通过inode中的指针来间接寻址这些指针指向文件的数据块。 用途 存储文件内容每个文件的实际内容如文本、图像、音频等都存储在数据块中。高效利用磁盘空间通过允许文件内容分散存储文件系统可以更高效地利用磁盘空间。 5.Inode Table (inode表) inode是文件系统中的一个数据结构用于存储文件的元数据。每个文件都有一个与之对应的inode。inode表则是inode的集合它包含了文件系统中所有inode的列表。 特点 固定大小每个inode的大小通常是固定的通常是128字节或256字节。元数据存储inode中存储了文件的元数据包括文件的大小、创建时间、修改时间、权限、所有者等。文件内容的指针inode中包含指向文件数据块的指针这些指针告诉系统文件内容存储在哪里。 用途 存储文件元数据inode存储了文件的重要属性如权限、所有者、大小等。文件内容的间接寻址inode通过指针间接指向文件的内容这意味着文件名和文件内容是分离的。inode与文件名的关联文件名不在inode中存储而是存储在目录项中。目录项将文件名与inode编号关联起来以便通过文件名找到对应的inode。 stat 用法查看文件具体信息 stat [OPTION]... FILE... FILE可以是一个文件名或目录名。OPTION可以是多个选项用于定制输出信息。 选项 -c 或 --format指定输出格式可以使用特定的格式化字符串来自定义输出结果。-f 或 --file-system显示文件所在文件系统的统计信息而不是文件本身的统计信息。-L递归地显示符号链接的目标的统计信息。-l显示符号链接本身的统计信息而不是链接的目标。-t 或 --timeWORD指定输出的时间戳类型WORD 可以是 atime、mtime 或 ctime。-h 或 --human-readable以人类易读的格式显示文件大小例如1K 234M 2G 等。 使用场景 文件调试当需要了解文件的具体信息时比如权限、所有者等。脚本编写在编写 shell 脚本时可以利用 stat 获取文件的详细信息进行条件判断或动态生成文件列表。系统监控监控文件的访问、修改或状态改变时间用于安全审计或性能分析。 stat 命令是 Linux 系统管理员和开发者不可或缺的工具之一它提供了文件系统的深入视图有助于更好地理解和管理文件和文件系统。 会显示 acm时间戳 下面解释一下文件的三个时间 Access 最后访问时间Modify 文件内容最后修改时间Change 属性最后修改时间 示例 实现操作的融会贯通 1. 查看文件example.txt的inode信息 stat example.txt 这个命令将显示文件example.txt的inode信息包括inode编号、文件大小、权限等。 2. 查找文件example.txt的inode编号 回顾ls -l 做的就是读取存储在磁盘上的文件信息然后把它们显示出来 ls -i example.txt 这个命令将显示文件example.txt的inode编号。 3. 查看文件example.txt的内容 cat example.txt 这个命令将输出文件example.txt的内容到标准输出。 4. 假设需要直接访问数据块200通常不建议这样做因为它绕过了文件系统 首先需要确定文件系统的设备文件比如/dev/sda1。然后使用dd命令读取数据块。以下是一个示例命令假设每个数据块大小为4096字节数据块200的偏移量计算方式为200 * 4096。 dd if/dev/sda1 bs4096 skip200 count1 ofdata_block_200.bin 这里 if 指定输入文件文件系统设备。bs 设置块大小这里为4096字节。skip 指定跳过的块数这里为200。count 指定复制的块数这里为1。of 指定输出文件这里将数据块内容输出到data_block_200.bin。 5. 假设需要修改文件权限 chmod 644 example.txt 这个命令将设置文件example.txt的权限使得所有者有读写权限组和其他用户只有读权限。 6. 假设需要修改文件所有者 chown user:group example.txt 这个命令将更改文件example.txt的所有者为user所属组为group。 注意 直接访问数据块的操作通常不应该在正常操作中进行因为它可能破坏文件系统结构。在执行这些操作之前请确保备份重要数据避免数据丢失。这些命令可能需要root权限才能执行。文件系统的具体实现可能会有所不同上述命令是在一般情况下的示例。 总结 Data Blocks存储文件的实际内容。Inode Table存储各种文件各自的 inode 元数据包括文件内容所在的数据块的指针。 通过这种方式文件系统可以有效地管理文件的内容和元数据同时也提供了灵活的方式来处理文件的存储和检索。 6.Bitmap 位图 inode Bitmap 属性位图 比特位的内容 inode 是否有效的 Block Bitmap 文件内容位图 和块号联系起来申请和释放有关内容块是否存在 思考 删一个文件的时候用不用把块内容清空呢                                                                  不用清空原始数据直接把管理 位图清零 即可inode 理论上连续的但是还存在删除后的加入搜索到空位就添加inode 和 data block 都有对应的编号可以找到对应的扇区super block 整个文件的基本信息不是每个块组都存有零零星星的存在确立了稳健性❗格式化 每一个分区在被使用之前都必须提前先将部分文件系统的属性信息提前设置进对应的分区中方便我们后续使用这个分区或者分组所以格式化就是把前四个重新设置后面两个清空 3.文件系统 3.1 增/删/查/改 一个文件 系统做了些什么 ❗ 思路 Linux 系统中一个文件一个 inode ,每个 inode 都有自己的编号不能跨分区文件名不属于 inode 内的文件属性 通过路径能确定 200G 存到 10G 的块里面了找组后在 inode map 里面找空的块 把文件误删了是把位图删了删除允许被覆盖 ✔️ 步骤 系统会执行一系列底层操作来完成这些任务。下面是每个操作涉及的主要步骤 新建文件 创建一个新文件操作系统主要会做如下四个操作 ① 存储属性内核找到一个空闲的结点 (这里是 263466)内核把文件信息记录到其中。 ② 存储数据该文件需要存储在三个磁盘块内核找到了三个空闲块300,500,800。将内核缓冲区的第一块数据复制到 300下一块复制到 500最后复制到 800…… ③ 记录分配情况文件内容按顺序 300,500,800 存放内核在 inode 上的磁盘分布区记录了上述块列表。 ④ 添加文件名到目录新的文件名 abc。Linux 在当前目录中记录该文件通过内核将入口 (263466, abc) 添加到目录文件文件名和 inode 之间的对应关系将文件名和文件的内容及属性链接起来。 删除文件 查找 inode通过文件名找到对应的 inode。释放 inode 引用减少 inode 的链接计数。删除目录项从父目录中删除指向该 inode 的条目。回收资源如果 inode 的链接计数降为 0则回收 inode 和其关联的数据块。更新文件系统元数据更新文件系统的其他元数据比如文件系统的块使用情况。 我怎么知道一个文件的 inode 编号 ls -i 可查看but 使用者基本不关心 inode ,用的是文件名 3.2 理解目录 目录也是文件也有自己的 inode 目录也要有自己的属性 目录有内容吗要不要有数据块里面放什么呢 要该目录下文件的文件名 和 对应文件的 inode 的映射关系 ❗ 所以我们现在就能解释 为什么同一个目录下不能有同名文件 ll 查看时先找到目录的 inode, 目录内容中存储了文件的 inode找到对应文件的 inode就可以访问文件内容啦例如说删除文件实际上是删除文件名与 inode 的关联也就是从目录项中移除该文件名。这个操作需要对目录进行写操作因为目录项包含文件名存储在磁盘上并且需要被修改。但是我们限制了这一操作 目录下没有 w 我们无法删除文件没有 r我们无法查看文件是为什么 因为想读取目录不让读拿什么查找到 inode还有没有 x 无法 cd都是通过对目录中 对文件 inode 的访问设置来管理的 目录是文件也有 inode 编号那么是如何管理的呢 往上会一直访问到根目录相当于是一个递归的实现 dentry 缓存 目录项对象dentry代表文件系统中的一个目录项即一个文件或目录的名称与其inode索引节点之间的关联。路径解析当用户或程序请求访问一个文件或目录时文件系统需要解析路径名dentry缓存可以快速地定位到对应的inode从而避免了每次都从磁盘读取目录信息 有绝对路径的话不就可以从根目录往下拿到对应的 inode 了为什么还要递归 递归是我们从内部讲起的就说要一路找上去实际拿着文件路径从左到右解析就行因为我们的任何一个文件在进程内部都有路径按照路径应用层是知道文件和路径的
http://www.tj-hxxt.cn/news/141752.html

相关文章:

  • 金山网站建设关键词排名网站app封装怎么做
  • 做网站一般要多钱邢台做移动网站的地方
  • 苏州市住房城乡建设局网站免费h5游戏制作平台
  • 怎么做网站和注册域名打开网站弹出广告代码
  • 国外免费建购物网站wordpress 4.8.2漏洞
  • 坪山附近公司做网站建设哪家效益快2018钓鱼网站建设
  • 免费无广告建站北京php培训网站建设
  • 宠物网站开发文档网站做文件检查
  • 网站关键词越多越好吗建设网站需要下载神呢软件吗
  • tk域名官方网站合肥建设网站的公司
  • 中国空间站vr全景郑州公司网站建设
  • .天津网站建设自助商城网站建设
  • 国外炫酷网站欣赏wordpress 侧边导航
  • 培训教育行业网站建设方案微信公众号怎么做链接网站
  • 费县网站建设如何修改wordpress的字体大小
  • cnzz网站建设教学黄龙云 加强网站建设
  • 网站建设流程是什么编程scratch
  • 网站从建设到上线流程如何做网站效果更好
  • 福建平潭建设局网站搭建网站知识
  • 免费网站推广渠道网络营销主要做什么
  • 重庆选科网站app网站的优点
  • 网站建设公司十大怎么做租号网站
  • 仓储设备东莞网站建设阿里云可以几个网站
  • 昆山便宜做网站无锡网站建设哪家做的比较好
  • 网站建设置顶形象墙在线设计网站
  • 什么网站都可以进入的浏览器网站制作的动画怎么做的
  • 电商网站规划昆明网站建设推广公司哪家好
  • 百度建设网站的目的5000元可注册劳务公司吗
  • 河北省承德市建设局网站上不去有哪些做二手的网站
  • 4免费网站建站网站搭建好有什么内容可以修改