首页 > 系统相关 >【Linux】文件系统

【Linux】文件系统

时间:2023-05-01 21:33:31浏览次数:35  
标签:文件 文件系统 节点 Linux inode 链接

1  前言

这节我们来简单看一下Linux系统的磁盘、目录、文件。

2  Linux 文件系统

在 Linux 操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出 设备、普通文件或是目录都被看作是一个文件。

也就是说在 Linux 系统中有一个重要的概念:一切都是文件。其实这是 Unix 哲学的一个体现,而 Linux 是重写 Unix 而来,所以这个概念也就传承了下来。在 Unix 系统中,把一切资源都看作是 文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就 可以用读写文件的方式实现对硬件的访问。

Linux 支持 5 种文件类型,如下图所示:

3  Linux 的目录结构

Linux 文件系统的结构层次鲜明,就像一棵倒立的树,最顶层是其根目录:

常见目录说明:

4  什么是 inode

首先inode 是一个重要概念,是理解 Unix/Linux 文件系统和硬 盘储存的基础。

  • 理解inode,要从文件储存说起。
  • 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于 0.5KB)。
  • 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇 区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单 位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
  • 文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的 创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名 为"索引节点"。
  • 每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

那么Linux 文件系统通过 inode 节点把文件的逻辑结构和物理结构转换的工作过程:

Linux 通过 inode 节点表将文件的逻辑结构和物理结构进行转换。

  • inode 节点是一个 64 字节长的表,表中包含了文件的相关信息,其中有文件的大小、文件所 有者、文件的存取许可方式以及文件的类型等重要信息。在 inode 节点表中最重要的内容是 磁盘地址表。在磁盘地址表中有 13 个块号,文件将以块号在磁盘地址表中出现的顺序依次读 取相应的块。
  • Linux 文件系统通过把 inode 节点和文件名进行连接,当需要读取该文件时,文件系统在当 前目录表中查找该文件名对应的项,由此得到该文件相对应的 inode 节点号,通过该 inode 节点的磁盘地址表把分散存放的文件物理块连接成文件的逻辑结构。

4  什么是硬链接和软链接?

  • 硬链接:由于Linux 下文件是通过索引节点(inode)来识别文件,硬链接可以认为是一个指针, 指向文件索引节点指针,系统并不为它重新分配inode 。每添加一个一个硬链接,文件的链接 数就加 1 。
    • 硬链接不足:1. 不可以在不同文件系统的文件间建立链接;2. 只有超级用户才可以为目录创建硬链接。
  • 软链接:软链接克服了硬链接的不足,没有任何文件系统的限制,任何用户可以创建指向目录的符 号链接。因而现在更为广泛使用,它具有更大的灵活性,甚至可以跨越不同机器、不同网络对文件 进行链接。
    • 软链接不足:因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录 中,再访问链接文件,系统就找不到了,而硬链接就没有这个缺陷,你想怎么移就怎么移; 还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径。
  • 实际场景下,基本是使用软链接。总结区别如下:
    • 硬链接不可以跨分区,软件链可以跨分区。
    • 硬链接指向一个 inode 节点,而软链接则是创建一个新的 inode 节点。
    • 删除硬链接文件,不会删除原文件,删除软链接文件,会把原文件删除。

5  小结

好了,这节主要熟悉下Linux的文件以及目录,回忆一下知识点哈,有理解不对的地方欢迎指正哈。

标签:文件,文件系统,节点,Linux,inode,链接
From: https://www.cnblogs.com/kukuxjx/p/17367015.html

相关文章

  • linux进程的管理与调度
     进程的管理与调度是所有操作系统的核心功能。从内核的角度来看,进程是内核分配资源(CPU,Memory)的重要单元,是计算机用来管理这些资源的一种抽象。进程状态1、TASK_RUNNING表示进程要么正在执行,要么准备执行,等待cpu时间片的调度2、TASK_INTERRUPTIBLE表示进程被挂起(睡眠),直到......
  • LINUX C、QT上位机间串口传输数据库文件
    在串口传输文件时,我们通常希望以二进制形式将文件发送出去,因为这样可以避免文件内容被解释为ASCII码,并且可以减少数据传输的时间和数据量。在QT上位机中可以使用以下方式将文件读取并发送出去://读取本地SQLite3数据库文件QStringfilename="wifi_UAV.db";QFilefil......
  • LINUX 串口设备行规程——回车检测机制
    做项目时调用串口,遇到了只有存在回车时才能read到数据的情况,这是设置了行规程的结果。禁用行规程即可取消按行读取机制,如下:(建议大部分情况下都禁用)newtio.c_lflag&=~ICANON;......
  • linux 内核 工作队列
    简介工作队列是将操作延期执行的另一种手段。因为它们是通过守护进程在用户上下文执行,函数可以睡眠任意长的时间。对每个工作队列来说,内核都会创建一个新的内核守护线程。新的工作队列通过调用 create_workqueue 或 create_workqueue_singlethread 函数来创建。前一个函数在......
  • linux 常用命令
    ssh登录:[email protected]上传文件:scp-P11022/d/tmp/[email protected]:/home/program如是windowsscp-P11022 d:/tmp/[email protected]:/home/program下载文件:scp-P11022 [email protected]:/home/program /d/tmp/sim.data如是win......
  • linux cpufreq framework(5)_ARM big Little driver
    1.前言也许大家会觉得奇怪:为什么Linuxkernel把对ARMbig·Lttile的支持放到了cpufreq的框架中?众所周知,ARM的big·Little架构,也称作HMP(具体可参考“LinuxCPUcore的电源管理(2)_cputopology”中相关的介绍),通过在一个chip中封装两种不同类型的ARMcore的方式,达到性能和功耗的......
  • 关于Linux系统-sshd服务-AllowUsers与AllowGroups-选项的安全加固配置
    在一些Linux系统-sshd服务,的主配置文件,/etc/ssh/sshd_config 我们可能会看到配置有AllowUsers与AllowGroups的安全加固选项,关于两个选项的说明如下:从选项名称上就可以知道这两个是选项,是属于白名单选项的,在安全中,如果能使用白名单模式,肯定是更安全的这里我们先说一下 AllowU......
  • 关于Linux系统-sshd服务-PasswordAuthentication-选项的加固配置
    关于sshd服务的主配置文件,/etc/ssh/sshd_config 有一个选项叫做PasswordAuthentication,根据单词意思、就知道此选项是与密码相关的即可以知道此值默认为yes,即使不写或者注释,代表是允许用户通过密码进行ssh登录有时我们可以在加固的操作系统中看到,此值会被配置为noPasswordAu......
  • 电脑上的linux是什么文件夹,Windows中现在有独立的Linux文件夹系统
    三月中旬,微软曾通过博客宣布,WSL2将在Windows102004版本中正式进入普遍可用(GA,GenerallyAvailable)状态。与此同时,微软表示对WSL2所依赖的 Linux 内核的提供方式也会进行一些改进。随着Windows10InsiderBuilt19603版本(即Windows102004预览版)的到来,微软又为......
  • linux下安装redis
    1.安装gccyuminstall-ygcc-c++2.下载安装包https://download.redis.io/releases/redis-6.2.0.tar.gz3.解压tar-zxvfredis-6.2.0.tar.gz4.编译安装cdredis-6.2.0make##/home/redis为安装目录##makeinstallPREFIX=/home/redis5.拷贝配置文件并授权mkdir-......