Linux文件系统讲解!

一、Linux文件系统历史

        1、在早期的时候Linux各种不同发行版拥有自己各自自定义的文件系统层级结构。

        2、当我用Red hat转向玩Debian时,我进入/etc我都是懵的。

        3、后来Linux社区做了一个标准、FHS(文件系统标准层次结构)。来帮助Linux系统的使用者门能找到他们需要的内容。

        4、但不是所有发行版都严格遵守,至少在关键的目录中是一致的。(下面会提到)

即:关键层次目录截之博主:

ByteByteGo

二、Linux关键目录以及作用说明

        2.1 二进制文件存放目录

/bin 包含核心操作系统程序,在引导时安装/usr之前必须可以访问这些程序。例如:mount,ls,cd在这里。

/usr/bin 是二进制文件的主要存放位置,不是操作系统本身的一部分,大部分用户的程序放在这里,比如git等,有趣的人 /usr 不是代表User用户而是Unix System Resources。

/usr/local/bin 保存由管理员安装的可执行文件,通常是从源码构建他们后放入的。

这样使得本地编辑保持独立,以避免覆盖系统的二进制文件。

/sbin 包含需要root权限访问的系统管理实用程序,例如iptabls,sshd等

当多个目录中存在相同的二进制文件时,你可以重新排序PATH变量中目录的优先级来制定默认值。

  2.2 /lib

 /lib包含/bin和/sbin二进制文件正常运行所必需的共享库文件。

在安装/usr之前,需要在引导过程的早起访问这些库,

提供核心功能,glibbe(C库例程)和libstdc++(编译器运行时),

/usr/lib 包含/usr 二进制文件的库,这些库对于早期系统初始化并不重要。里面包含GTK,Qt等UI库以及Python等语言的运行时。

也可以通过LD——LIBRARY_PATH调整库搜索顺序。

2.3 /etc

        配置文件之家,例如fastb,ssh_config等

2.4 /home

        媒体、代码项目

2.5 /root

        管理员之家

2.6 /var

        日志和缓存等快速变化的数据存放在这里,里面数据总是充满活动。

2.7/var/log

        存放硬件、安全、性能问题的日志记录。

2.8 /run

        包含运行时信息,例如systemd详细信息,用户会话和日志守护进程。

        系统通过/run下的套接字与程序持续通信,例如mysql.sock.

2.9 /proc 以及/sys

        /proc打开通信通道检查整个操作系统状态-我们可以通过cpuinfo检查高级指标,查看文件系统安装情况,并可以使用lsof、strace、pmap等工具深入研究。

        /sys公开较低级别的内核和硬件对象,允许通过虚拟文件对设备、模块、网络堆栈等组件镜像精细监控和配置。

/proc加\sys提供了系统层面的可视化

/proc面向进程、运行时统计信息,

/sys提供组件/硬件

 

 

 

  

         

 

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本文将简单讲解Linux内核中的ext4文件系统源码。 ext4是Linux中常用的文件系统之一,它的源码位于fs/ext4目录下。在这个目录中,我们可以看到很多文件和子目录,其中比较重要的有: 1. balloc.c:块分配器。 2. dir.c:目录处理程序。 3. file.c:文件处理程序。 4. inode.c:inode处理程序。 5. super.c:超级块处理程序。 这些文件和子目录中的代码实现了ext4文件系统的各个方面,下面我们简单介绍一下每个文件的作用。 balloc.c balloc.c文件实现了ext4文件系统的块分配器,主要负责分配和释放数据块。它包括多个函数,其中比较重要的有: - ext4_new_blocks:分配一个或多个数据块。 - ext4_free_blocks:释放一个或多个数据块。 dir.c dir.c文件实现了ext4文件系统的目录处理程序,主要负责处理目录项的添加、查找和删除等操作。它包括多个函数,其中比较重要的有: - ext4_add_entry:添加一个目录项。 - ext4_delete_entry:删除一个目录项。 - ext4_find_entry:查找一个目录项。 file.c file.c文件实现了ext4文件系统文件处理程序,主要负责文件的读写操作。它包括多个函数,其中比较重要的有: - ext4_file_read:读取一个文件。 - ext4_file_write:写入一个文件。 inode.c inode.c文件实现了ext4文件系统的inode处理程序,主要负责inode的创建、删除和修改等操作。它包括多个函数,其中比较重要的有: - ext4_new_inode:创建一个inode。 - ext4_delete_inode:删除一个inode。 - ext4_set_inode_flags:修改一个inode的标志位。 super.c super.c文件实现了ext4文件系统的超级块处理程序,主要负责文件系统的初始化和挂载等操作。它包括多个函数,其中比较重要的有: - ext4_fill_super:初始化一个文件系统。 - ext4_mount:挂载一个文件系统。 除了以上这些文件之外,ext4文件系统还包括了很多其他的源码文件,比如block_validity.c、ext4_jbd2.c、ext4_xattr.c等等,它们实现了文件系统的不同功能。如果想深入了解ext4文件系统的源码,可以阅读这些文件的代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值