对Linux文件系统以及内核结构的基础认知

本文介绍了文件系统的基本概念,包括Linux和Windows的文件系统类型,如NTFS、EXT和FAT。讲解了Linux的分区方式,强调根目录并不等同于分区,并详细阐述了Linux的目录结构,如/bin、/etc和/home等。此外,还解释了虚拟文件系统(VFS)的作用,它是如何为不同文件系统提供统一接口的。最后,简要概述了Linux内核和shell在系统操作中的角色。
摘要由CSDN通过智能技术生成

1. 什么是文件系统?
常规认知: 文件系统即根目录,严格意义上讲根目录其实不能完完全全代表文件系统,但这样认为其实也能接受。
在这里插入图片描述
文件系统:文件系统是操作系统用于明确存储设备组织文件的方法,该方法就是文件管理系统(程序),简称文件系统。也可以说是操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。

2. 文件系统(文件管理系统的方法)的种类有哪些?
FAT 、VFAT 、NTFS、EXT1/2/3/4 、HFS …
在这里插入图片描述对于Windows而言,它的文件系统是NTFS,那Linux的文件系统又有那么些格式呢?我们可以通过df -T指令查看树莓派上文件系统分类:
在这里插入图片描述vfat : boot(bootloader, kernel)
ext4 : 根目录
tmpfs : 内存文件系统

3. 什么是分区?
windows: 随意(面向普通用户PC),目录即分区:C(装系统的位置)也可以随意在C盘存放文件,D盘(用户随意发挥)。
Linux: 按照功能来分区,每个分区严格存放文件(开发者),嵌入式系统可以分为4个区,分别是:
bootloader:启动代码
para:启动代码向内核传递参数的位置
kernel:内核分区
根分区等 :文件系统结构
**PS:**对于Windows来说,在一个文件夹目录路径下里的所有文件,要么是C盘的,要么是D盘的。但在linux系统中,一个目录下的文件可能是会来自不同的分区
在这里插入图片描述因为我们无法通过肉眼的方式看到bootloader这些磁盘方式,所以Windows 与Linux有着巨大的不同,操作系统的不同导致文件管理方式也不同。
在这里插入图片描述这个图就是对“PS”的一个很好的解释,对于/dev/shm分区的文件系统是tmpfs类型,但/run分区的文件系统也是tmpfs类型,同时/目录是来ext4分区,/boot目录又是来自vfat分区的。

4. 什么是文件系统目录结构?
文件目录结构是从根目录开始的,用/表示文件名称区分大小写( 大小写敏感还需要看具体的文件系统格式 ),以.开头的为隐藏文件,路径用/来进行分割(windows中使用\来分割),文件有两个种类:元数据与数据本身.在操作linux系统时,通常会遵循以下的分层结构规则:LSB (Linux Standard Base) / FHS(Filesystem Hierarchy Standard)

/:根目录

/root:超级用户登录时的主目录(sudo passwd是切换超级用户指令,输入预设密码后,再通过su指令进入超级用户模式,最后通过exit 退出超级用户模式,注意该模式慎用,一旦删除某些重要文件,会导致系统崩溃)
在这里插入图片描述以超级用户模式进入/root发现,里面其实什么都没有,超级用户模式界面好比你的老板的工作界面

/home:linux系统默认的用户工作根目录,对于每一个用户,都会有一个自己的主目录,一般是以帐号名作为主目录名,比如用户gcc的主目录就是/home/gcc

/bin:/esr/bin binary的缩写,存放linux常用的操作命令的执行文件,如ls,rm,touch,cat等

/boot:操作系统启动时所需要用到的程序,包括一些核心文件和镜像文件

/dev:存放linux下的设备文件,在linux中访问设备和访问文件是一样的,访问该目录下的哪个文件就是访问哪个设备接口

/etc :系统配置文件,包括网络配置文件(netinterfaces NetManager),文件系统,X系统配置文件 ,设备配置信息,设置用户信息等,比如cd /etc/init后,可以看到这些配置文件:
在这里插入图片描述再打开bootmisc.sh.conf文件,即vi bootmisc.sh.conf
在这里插入图片描述我们就可以在这里把我们想要一开机就执行的操作指令放进去,但通常情况下,我们是不会在这里直接修改的,一般是多做一份配置或者直接vi etc/rc.local修改里面的内容,如下:
在这里插入图片描述比如在做智能家居的时候,或者智能小车的时候,你把板子都插到车里面了,已经不方便接电脑了,这时就可以把一些想要一上电就要启动的功能放在这里面

/lib:/usr/lib /usr/local/lib 存放系统最基本的动态链接共享库,类似于windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库。

/media:光驱和软驱的挂载点 linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

/mnt:光驱,软驱,硬盘的挂载点,也可以临时将别的文件系统挂载到此目录下

/proc:放置系统核心与执行程序所需要的一些信息,此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间(cat /proc/cpuinfo 查看cpu型号,核数以及其它信息):
在这里插入图片描述处理器四核,cpu型号为BCM2835,通过cat /proc/meminfo查看内存信息
在这里插入图片描述
/sbin:超级用户管理员常用的系统管理程序

/usr:用户的应用程序和文件都在这里存放,类似windows下的program files

/sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

/var:很多重要服务的日志信息都在此存放

/usr/src:内核源码默认放置目录

/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。

最后,强调一下:根目录,不是分区,和windows不同

**5. 什么虚拟文件系统?
参考文章:https://www.cnblogs.com/feng9exe/p/8383950.html https://linux.cn/article-10884-1.html
虚拟文件系统:Virtual File System,简称VFS。简单来说,虚拟文件系统vfs就是对各种文件系统的一个抽象,它为各种文件系统提供了一个通用的接口,实现对跨文件系统的文件进行操作。VFS 是著名的类 Unix 系统中 “一切皆文件” 概念的基础。

6. 虚拟文件系统有什么作用?
简化应用程序员的开发,不管是什么文件类型,不管文件是磁盘还是设备,都只用open read write进行统一操作。

7. Linux内核结构介绍
参考文章:https://blog.csdn.net/qq_23942213/article/details/119976040
在这里插入图片描述在这里插入图片描述
shell则提供了一个用户界面,并让我们可以利用shell的语法编写脚本,以整合程序。对于shell而言,可以通过一个例子对其进行说明。一个shell对应一个终端 (terminal),曾经来说,终端是一个硬件设备,用来输入并显示输出。如今,由于图形化界面的普及,终端往往就像上图一样,是一个图形化的窗口。你可以通过这个窗口输入或者输出文本。这个文本直接传递给shell进行分析解释,然后执行。shell也是一个应用程序,它提供给用户去操作内核的工具。比如之前有提到在树莓派终端界面上输入df -T指令并回车。敲入指令时,shell并没有执行,而是在回车时,就会启动shell即终端调用shell,让shell去分析指令,即shell会将df -T发给内核,然会内核再去进行系统调用、库函数调用等一系列操作。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值