首页
学习
活动
专区
工具
TVP
发布

Linux】理解文件系统——软硬链接

没有被打开的文件在磁盘上,所以磁盘上有大量的文件,这些文件要被静态管理起来,方便我们随时打开,而做这部分工作的我们称为文件系统。...Super Block保存在不同的分组里意味着备份,如果某个Super Block损坏,便可以通过拷贝其他分组的Super Block。...Linux的文件=内容+属性,而Linux的文件内容是属性是分批存储的。保存文件属性的是inode,inode块的大小是固定的,为128字节。...如果在Linux中误删除一个文件,还是能恢复的,但是前提必须是inode和data block没有被占用,所以当误删除一个文件时,最好的办法就是什么都不做。...所以硬链接数为3 四、总结 我们大致了解磁盘的物理结构、存储结构、逻辑结构;然后就是文件系统与inode的认识。

25340

Linux】磁盘结构文件系统软硬链接动静态库

链接的作用 Linux 中每个目录下都存在两个隐藏目录 . 和 …,其中 ....(拷贝) 到可执行文件中,程序运行的时候将不再需要静态库。...,如果依赖的库中有一部分不只有静态库,有一部分库有动态库,那么形成的可执行程序整体是动态链接的,但其中只有静态库的地方也只能拷贝; 3、这里的现象和第二点一样,mymath 的形成不仅仅依赖一个库...(使用了 C 语言库函数),且Linux存在C语言动态库,所以这里是使用动态链接的,我们自己的库 libmymath.a 以静态的方式进行链接。...而静态链接是在多个可重定向文件进行链接时直接将静态库中的代码拷贝到代码段中,最终形成可执行程序;那么后面程序运行时将对应数据加载到虚拟内存的对应区域、建立页表映射、执行代码等系列过程与静态库就完全无关了

1.2K00
您找到你想要的搜索结果了吗?
是的
没有找到

文件系统和软硬链接

4.1.ext文件系统 注意:Boot Block是启动块,大小为1kb,由pc标准规定的,用来存储磁盘分区信息和启动信息,任何文件系统都不能操作该块。...、最近一次写入数据的时间、最近一次检验磁盘的时间等其他文件系统的相关信息,主要包括Date Block和inode的总量。...(大文件占用的数据块多,小文件占用数据块少) 通过上面的信息我们要知道这些: 1.格式化就是重写文件系统,而文件系统的恢复就是用其他没有被损害的Super Block去恢复被损坏了Super Block...在Linux权限学习时提到要在一个目录中创建新文件必须要有写入权限,这是因为在目录下创建新文件就要在该目录对应的数据块中写入新文件和其inode对应的映射关系。...软链接的使用场景 软链接相当于Windows下的快捷方式: 删除软链接并不会影响源文件,但源文件一旦被删除以后软链接就失效了 硬链接的建立和删除 观察发现,硬链接文件的inode和源文件相同

34530

Linux拷贝和Netty零拷贝

,write()返回 零拷贝实现方式 在Linux中零拷贝的实现方式主要有: 用户态直接 I/O、减少数据拷贝次数以及写时复制技术。...减少数据拷贝次数:在数据传输过程中,避免数据在用户空间缓冲区和系统内核空间缓冲区之间的CPU拷贝,以及数据在系统内核空间内的CPU拷贝,这也是当前主流零拷贝技术的实现思路。...内存映射(mmap+write) mmap 是 Linux 提供的一种内存映射文件方法,即将一个进程的地址空间中的一段虚拟地址映射到磁盘文件地址。...sendfile 只适用于把数据从磁盘中读出来往 socket buffer 发送的场景 sendfile+DMA scatter/gather Linux2.4内核版本之后对sendfile做了进一步优化...零拷贝的理解 深入Linux IO原理和几种零拷贝

3.1K30

linux文件系统

Linux是一个基于Unix的操作系统,具有强大的文件系统功能。Linux文件系统是在硬盘上组织和存储数据的一种结构,通过文件系统可以管理文件、目录、权限等信息。...在Linux中,文件系统被组织成一个树形结构,称为文件系统层次结构(Filesystem Hierarchy Standard,FHS),该标准规定了Linux操作系统中各级目录的名称和用途,使得Linux.../proc /proc目录是Linux系统中一个特殊的目录,用于提供进程和系统信息的虚拟文件系统。.../lib /lib目录是Linux系统中用于存放共享库文件的目录,这些库文件用于支持用户程序和系统程序的运行。在/lib目录中,通常包括动态链接库文件(.so文件)和静态链接库文件(.a文件)。.../mnt /mnt目录是Linux系统中用于挂载文件系统的目录,通过挂载可以将其他文件系统的内容挂载到/mnt目录下,使得这些文件系统可以被访问。

8.7K00

Linux拷贝_Linux开发教程

针对操作系统中的设备驱动程序、文件系统以及网络协议堆栈而出现的各种零拷贝技术极大地提升了特定应用程序的性能,并且使得这些应用程序可以更加有效地利用系统资源。...对于超过 1 Gbit/s 的网络链接来说,零拷贝技术在超级计算机集群以及大型的商业数据中心中都有所应用。...为了支持 splice 这种机制,Linux 在用于设备和文件系统的 file_operations 结构中增加了下边这两个定义: ssize_t (*splice_write)(struct inode...Linux 文件系统已经实现了具有上述功能并且可以使用的操作,而且还实现了一个 generic_splice_sendpage() 函数用于和 socket 之间的接合。...I/O 子系统(设备驱动程序,文件系统等)可以分配 fbufs,并将到达的数据直接放到这些 fbuf 里边。这样,缓冲区之间的拷贝操作就可以避免。

3.3K30

Linux文件系统

文件系统 磁盘 磁盘的物理结构 磁盘的储存结构 磁盘的逻辑结构 文件系统 分治 inode与数据块 软硬链接 什么是软硬连接 文件与引用计数 文件的三大时间 动静态库 什么是库 库的使用 静态库...inode与数据块 文件 = 内容 + 属性 Linux中,文件的属性和内容是分批存储的。 保存文件属性的叫inode块:具体大小跟文件系统的版本有关,我的是ext3,128字节。...并且,只要有一个动态库,那么就要用动态链接! 显示动态库是因为默认用的是C的库,所以gcc只能把静态库拷贝到代码里面。...如果不想再当前路径下搞软链接,也可以再/lib64路径下进行软链接,也可以将这个库拷贝到/usr/lib路径下。 那么如何使用别人的第三方库呢? 只要下载好了,用gcc只需要告诉库名字即可。...静态库在程序进入内存之前就被拷贝进了我们的程序内部,进入内存,在虚拟地址空间中也是在代码区里面,这样是很浪费空间的。

12.6K00

LINUX链接和硬链接

1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。...在Linux文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索 引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。...软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。...[oracle@Linux]$ echo "I am f1 file" >>f1 [oracle@Linux]$ cat f1 I am f1 file [oracle@Linux]$ cat f2 I...am f1 file [oracle@Linux]$ cat f3 I am f1 file [oracle@Linux]$ rm -f f1 [oracle@Linux]$ cat f2 I am

8K51

Linux修炼】14.磁盘结构文件系统软硬链接动静态库

磁盘结构/文件系统/软硬链接/动静态库 前言 一.磁盘结构 1.1 磁盘的物理结构 1.2 磁盘的存储结构 1.3 磁盘的逻辑结构 二.理解文件系统 2.1 对IO单位的优化 2.2 磁盘分区与分组...---- 如果想给目录主动建立硬链接呢? 我们发现,这是不被允许的,那Linux为什么不允许普通用户给目录硬链接呢?...和..的硬链接是OS自己建立的。 当然,目录可以建立软链接,因为只是一个快捷方式。 四.动态库和静态库 注:在Linux第六篇:gcc/g++及Makefile中提到过。...二、Linux能够编写C语言的原因 那为什么我们能够在Linux中编写C语言,实际上也是同样的道理,我们发现Linux中同样存在着编写的库和相应的头文件,正是通过这些库,我们在C语言编写代码时通过#include...当静态库链接的时候,实际上是将代码(printf)拷贝进程序中,所以后面程序运行的时候就不再依赖于静态库。 而一旦有很多程序,静态库就会拷贝大量重复的代码分给不同的程序。

1K00

Linux文件系统

Linux文件系统Linux系统中所有的设备都统称为文件,所以同样必须要去学习下linux文件系统到底是何物??? 进入系统后我们使用命令ls -ll 就可以查看根目录下所有文件的信息 ?...5、s套接字文件(特殊文件scokt) 6、l链接文件 ?...二:文件的扩展名 同样linux系统中的文件也有扩展名,不过意义不大,只是为了区分不同的文件 linux中常见的扩展名类型有以下几种: 1、.tar .tar.gz .tgz .zip 这类表示压缩文件...三:文件属性信息 每一个文件都有自己的属性信息,它的属性信息包括:索引节点、文件类型、权限信息、所有者、所属组、最近修改时间、大小、文件名或目录名、硬链接数量 ?...Inode:索引节点,linux中存储设备或分区被格式化为文件系统后,一般都会分成二个部分,第一部分就是inode,第二部分为block,inode存储的是文件的属性信息,我们可以使用ls -i查看Inode

9.7K40

linux文件系统

Linux 文件系统Linux 操作系统中的重要组成部分,它是文件和目录的组织方式,为用户提供了一个良好的管理和访问文件的方式。...Linux 文件系统具有以下特点:一切皆文件:在 Linux 文件系统中,一切都被视为文件,包括硬件设备、目录、文件、管道等等。这种一切皆文件的思想使得 Linux 文件系统非常灵活。...Linux 文件系统层次结构Linux 文件系统层次结构定义了一组标准目录和文件,使得用户和程序员可以更容易地找到和管理文件。这些目录和文件通常被存储在根目录下。...Linux 文件系统格式Linux 文件系统可以使用多种格式来存储数据,包括 ext2、ext3、ext4、ReiserFS、XFS等。...以下是一些常见的 Linux 文件系统格式:ext2:是 Linux 文件系统的最早版本,它是一个简单的文件系统,不支持日志和数据恢复功能。

8.6K40

Linux链接与软链接

链接与软链接链接是通过inode进行的链接。...一般情况下,文件名和inode号码是“一一对应”关系,每个inode号码对应一个文件名,但是Unix/Linux系统允许多个文件名指向同一个inode号码,这意味着,可以用不同的文件名访问同样的内容,但是...硬链接只能在同一个文件系统的文件中间进行链接,不能对目录进行创建。如果删除硬链接对应的源文件,则硬链接文件仍然存在,而且保存了原有的内容,这样可以防止因为误操作而删除文件的作用。...可以使用ln 源文件 新文件 命令建立硬链接或者使用ln -d 源文件 新文件 命令建立硬链接。 通过上面的操作印证了前述关于硬链接的相关内容。...这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode链接数不会因此发生变化。可以使用ln -s 源文件或目录 目标文件或目录 命令建立软链接

8.7K30

linux文件系统

Linux 文件系统 操作系统中,用来管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。...RAW RAW文件系统是一种磁盘未经处理或者未格式化产生的文件系统。...一般来说有这几种可能造成正常文件系统变成RAW文件系统: 没有格式化 格式化中途取消 硬盘出现坏道 硬盘出现不可预知的错误 EXT EXT是扩展文件系统,目前最新的版本是5.0....HFS(+) 苹果电脑上的文件系统Linux里的文件系统 不同于Windows系统有盘符的概念(C盘、D盘等),Linux里只有一个盘符,是从 " / " 开始的,只有它是没有上级目录的。.../media Linux系统自动识别的一些设备,比如U盘、光驱等,当识别后,linux会把识别的设备挂载到这个目录下。

7.3K30

Linux链接与硬链接

创建软链接链接是一个指向另一个文件或目录的引用,类似于Windows系统中的快捷方式。...ln -s [目标文件路径] [链接文件名]例如,要在当前目录下创建一个名为link_file的软链接,指向/home/user/desktop/link,可以执行以下命令ln -s /home/user...删除软链接rm [软链接文件名]软链接与硬链接区别软链接就像是创建了一个快捷方式,指向另一个文件或目录。如果原始文件被删除或移动,软链接失效,因为它只是一个路径的引用。...可以跨越不同文件系统,例如/home/user,另一个在/mnt/data有一个特殊的标志,表示它是一个软链接文件。硬链接就像是创建了原始文件的副本,但实际上它们都指向相同的数据块。...如果原始文件被删除,硬链接仍然有效,因为它们共享相同的数据块。只能在同一个文件系统中创建。看起来像独立的文件,没有特殊的标志。

16210

linux链接和硬链接

修改其中一个,硬连接指向的是节点(inode),而软连接指向的是路径(path) 软链接文件 软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。...硬链接文件 硬链接文件有两个限制: 1、不允许给目录创建硬链接; 2、只有在同一文件系统中的文件之间才能创建链接。 对硬链接文件进行读写和删除操作时候,结果和软链接相同。...       adm          34890 10月 31 00:57 httpd.conf (连接数变为2) 可以看到,使用ls -li,软连接只产生了10字节的快捷而已,硬连接却实实在在的的拷贝...1 软链接文件          软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。    ...在Linux文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。     在Linux中,多个文件名指向同一索引节点是存在的。

8.6K50

Linux链接与软链接

Linux中,连接文件有两种,一种类似于Windows的快捷方式,可以让你快速地链接到目标文件(或目录),这种称为软链接(soft link),也叫作符号链接(symbolic link);另一种则是通过文件系统的...但是,Unix/Linux系统,允许多个文件名指向同一个inode号码。...可见,硬链接本质上是文件的一个别名。 1.3硬链接注意事项 硬链接有两个限制: (1)不能跨文件系统;硬链接只是文件的别名,而非独立的文件,因此仅能在单一文件系统上面进行,所以不能跨文件系统。...---- 参考文献 [1]鸟哥.鸟哥的私房菜基础学习篇第三版[M].北京:人民邮电出版社,2010.P183-P190 [2]linux 索引节点 inode 详解 [3]Why hard links...not allowed to directories in UNIX/Linux.StckOverflow

23.3K20
领券