8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
Linux连接概念
linux的链接分为两种,一种被称为硬链接(Hard Linx),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。
什么是链接
链接简单说是一种文档共享的方式,是POSIX中的概念,主流文档系统都支持连接文档。
链接的作用
链接可以简单的理解为windows中常见的快捷方式,
Linux中常用它来解决一些库版本的问题,通常也会将一些目录层次较深的文档链接到一个更加容易访问的目录中。在这些用途上,我们通常会使用软链接(也成为符号链接)。
inode定义
inode指的是Linux系统中用作数据索引的标识符。
inode指示了一个文档的基本信息:inode编号,修改时间,文档位置等。
如同同一本书的目录,会直接告诉你想看的章节在第几页。Linux和书不同的是,Linux文档访问是以块为单位的。
操作系统在读取硬盘时,会一次性读取一个块,而inode就告诉了文档位于哪个块,于是系统就会从这个块开始读取内容,我们就可以看出这个文档的内容。
在系统内部,打开一个文档分为三步:系统找到文档名对应的inode号
通过inode号,获取inode信息
根据inode信息,找到文档数据所在的块,读取内容。
inode内容
基本信息:文档字节数
inode编号
文档拥有者Uid
文档所属group的Gid
文档的读,写,执行权限
文档的时间戳:change:上次变动时间
modify:文档内容上一次变动时间
access:文档上一次打开的时间
链接数量:即有多少文档名指向这个inode
文档数据块的位置
硬链接
硬链接通过索引节点来进行连接。在Linux的文档系统中,保存在磁盘分区中的文档不管什么类型都分配一个inode。
Linux中,多个文档名指向同一个索引节点是存在的,比如:A是B的硬链接,则A的目录项的inode节点号与B的目录项的inode节点号相同。即一个inode节点对应两个不同的文档名,两个文档名指向同一个文档。A和B对文档系统来说是完全平等的,删除任何一个不会影响另一个访问。
硬连接的作用是允许一个文档拥有多个有效路径名,这样用户就可以建立硬连接到重要文档,以防止“误删”的功能。
只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文档的数据块及目录的连接才会被释放。也就是说,文档真正删除的条件是与之相关的所有硬连接文档均被删除。
软链接
另外一种链接称为符号链接,也叫软链接,类似于Windows的快捷方式。实际上是特殊的文档,在符号链接中,文档实际上是一个文本文档,包含另一个文档的位置信息。比如A是B的软链接,A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文档),但指向的是一个无效的链接。
软硬链接的不同本质不同:硬连接指向同一个文档,而软连接指向的不是同一个文档
删除时:硬连接不受影响,软连接失效
创建链接时:创建硬链接链接数加1,创建软链接连接数不变
跨分区:硬链接不可以跨分区,软链接可以跨分区
目录是否可以创建链接:硬链接不可以对目录创建,软链接可以对目录创建
硬连接的inode号相同,软链接inode号不同
参考文献