动态库和静态库

解耦合:就是让软件和硬件的相关性降低。
文件 = 内存 + 属性 – 都是数据 --都需要存储而linux采取的是将内容(block中)和属性数据(inode中磁盘上的另外一份空间,保存文件属性并且属性不会变化)分开存储的方案!

Data blocks:以块为单位,进行文件内容的保存。
inode table:以128字节为单位,进行inode属性的保存。
(补:inode属性里有一个inode编号。
一般而言,一个文件一个inode
)通过ll - i查inode编号。
Block Bitmap:(块 位图)判断占没占
inode Bitmap: inode块是否被占用。通过比特位1与0判断是否被占用。inode bitmap表示inode的使用情况。
super block进行记录文件。就是备份文件一个组有多个super block。这样做是防止断电后文件丢失无法恢复文件。
linux下没有文件名,底层通过inode编号标识文件的。
操作系统创建文件的时候做了什么?
文件名、inode编号->找到自己所处的目录->根据目录的inode,找到目录的datablock->将文件名和inode编号的映射关系写入到目录的数据块中。
删除一个文件,操作系统坐了什么?
文件名、inode编号->找到自己所处的目录->根据目录的inode,找到目录的datablock->将文件名和inode编号的映射到的目录数据块由1置零。(标记该文件的属性和数据块的相关位图结构由1置0就完成了删除);最后在将inode和映射关系去掉。

如何创建软硬链接

ln -s my.txt my.txt.soft//创建软链接
动态库和静态库_第1张图片

ln my.txt my.txt.hard//创建硬链接

动态库和静态库_第2张图片
在这里插入图片描述

删除链接unlink也可以删除文件

动态库和静态库_第3张图片

图中2为硬链接数,inode属性中的一个计算器count。表示有几个文件名和我的inode建立了映射关系。就是有几个文件指向我的inode(文件本身).
在这里插入图片描述

为啥目录的链接数是2,目录本身对应一个inode。而目录有.和…而.代码当前路径,当前路径对应有个inode所以整个链接数为2。…代表上级目录。而我们cd …返回上级目录靠的就是这个。

软链接文件是一个独立的文件有自己的inode节点,文件中保存了源文件路径,通过数据中保存的源文件路径访问源文件
硬链接是文件的一个目录项,与源文件共用同一个inode节点,直接通过自己的inode节点访问源文件(其实本质上来说与源文件没区别)

你可能感兴趣的:(linux,服务器)