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中
软连接文件特点
- 软链接文件(文件前为l),本质上是原文件创建的一个快捷方式,可以通过其操作原文件;
- 删除原文件而不删软链接文件,再次对软链接文件进行一些操作时,操作系统会自动生成新的原文件,并且inode号也和旧原文件相同;
- 所以在删除软链接对应的原文件时,要将两个文件都删除
硬链接:
通过ln 1.txt 1.txtln命令生成,比软链接命令少-s
- 硬链接文件是一个普通文件,用ll –I 命令查看时,inode节点号相同,硬链接文件是原文件的一个拷贝
删除其中一个文件时,删除方法引用计数:
- inode里也有引用计数,创建一个硬链接文件时,就会+1,第一次删除原文件或者硬链接文件,系统都不真正删除,只是给引用计数-1
- 最后,软链接应用较多
- C++中解决浅拷贝的方式一样:
- 计算指向同一动态内存的指针数目,调用一次free就对引用计数减1,如果结果>0则不真正释放,=0才释放
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!



