Linux:软硬链接文件

标题

    • 磁盘的物理结构
    • 磁盘的存储结构
    • 如何管理磁盘的数据
    • 软链接:
      • 软连接文件特点
    • 硬链接:

之前的文件都是文件加载到内存后的操作
磁盘也要管理文件

磁盘的物理结构

磁盘是存储结构中唯一的机械设备
目前电脑已经不用磁盘了,而是固态硬盘,服务器一般都是磁盘

磁盘的存储结构

  • 磁盘是一摞磁片构成的,每个片的两面都能存储数据
  • 使用磁头改变磁面上的NS磁极来存储数据
  • 每张磁片是由很多同心圆(一个圆圈就是一个磁道)组成,一摞磁片相同大小的圆的集合叫柱面
  • 把磁道划分成同等小块,这一块就是一个扇区

如何管理磁盘的数据

磁盘的基本单位是 扇区(512字节)
文件系统访问磁盘的基本单位大小是 4kb

以磁盘中一个磁盘的圆环为研究对象,这个圆环上有很多的扇区,每个扇区有自己的编号,可以看成一个连续的数组空间
每个元素空间大小是4kb

磁盘现在可以存储500GB数据,每个小空间大小是4kb,所以需要对这个很大的数组进行管理
尽量不要让硬件直接和OS进行交互,这样资源消耗是非常大的

将这500GB空间进行划分,划分成5组,只需要管理其中一个组,其余组照搬管理方式即可,也就是电脑上的C盘D盘之类
再对其中一个组划分,成多个小分区,管理好一个小分区,其余小分区的管理方式照搬
再将小分区划分成很多,只需对这个一个组管理就行

Linux是将内容和属性这两种数据分开存储的

  • 将内容放入块中存储
    大小是4kb
    内容的块是不断增多的
  • 将属性放入inode中存储
    inode也是磁盘上的空间
    大小是128kb
    属性的大小是固定
Data blocks以块为单位对文件内容保存
inode table里面有大量的inode空间,保存文件的属性
inode bitmap用位图的方式表示文件有哪些属性
block map用位图的方式表示块中哪些块中有内容

为了表示文件的唯一性,inode的属性中有一个inode编号

软链接:

通过ln -s命令生成软链接文件

  • 先创建一个普通文件1.txt,内容是hahaha;
  • 使用命令ln –s 1.txt 1.txtln 给1.txt文件创建一个软连接文件;
    在这里插入图片描述

查看文件特征:

  • 使用ll –i命令,前面会有一串inode节点号;
  • 原文件和软链接的inode号不同,但是这两个节点号里面的内容一样
    在这里插入图片描述
    inode本质上对应的是文件系统当中的概念,inode是描述文件在磁盘里的存储位置;
    文件在存储时不是连续存储,而是分成不同的block进行存储,inode节点描述了当前文件存在磁盘中哪些block中

软连接文件特点

  1. 软链接文件(文件前为l),本质上是原文件创建的一个快捷方式,可以通过其操作原文件;
  2. 删除原文件而不删软链接文件,再次对软链接文件进行一些操作时,操作系统会自动生成新的原文件,并且inode号也和旧原文件相同;
  • 所以在删除软链接对应的原文件时,要将两个文件都删除
    在这里插入图片描述

硬链接:

通过ln 1.txt 1.txtln命令生成,比软链接命令少-s

  • 硬链接文件是一个普通文件,用ll –I 命令查看时,inode节点号相同,硬链接文件是原文件的一个拷贝
    在这里插入图片描述

删除其中一个文件时,删除方法引用计数:

  • inode里也有引用计数,创建一个硬链接文件时,就会+1,第一次删除原文件或者硬链接文件,系统都不真正删除,只是给引用计数-1
  • 最后,软链接应用较多
  • C++中解决浅拷贝的方式一样:
  • 计算指向同一动态内存的指针数目,调用一次free就对引用计数减1,如果结果>0则不真正释放,=0才释放


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部