请选择 进入手机版 | 继续访问电脑版

[LINUX] Linux内核与根文件体系 的关系详解

[复制链接]
查看106 | 回复8 | 2021-9-5 03:05:45 | 显示全部楼层 |阅读模式

Linux内核与根文件体系 的关系 开篇题外话:对于Linux初学者来说,这是一个很纠结的题目 ,但这也是一个很关键的题目 !

一语破天机: “只管 内核是 Linux 的核心,但文件却是用户与操作体系 交互所采用的紧张 工具。这对 Linux 来说尤其云云 ,这是由于 在 UNIX 传统中,它使用 文件 I/O 机制管理硬件装备 和数据文件。”

一.什么是文件体系

文件体系 指文件存在的物理空间,linux体系 中每个分区都是一个文件体系 ,都有本身 的目次 层次布局 。

Linux文件体系 中的文件是数据的集合,文件体系 不仅包含着文件中的数据而且还有文件体系 的布局 ,全部 Linux 用户和程序看到的文件、目次 、软毗连 及文件保护信息等都存储在此中 。这种机制有利于用户和操作体系 的交互。

每个实际 文件体系 从操作体系 和体系 服务中分离出来,它们之间通过一个接口层:假造 文件体系 或VFS来通讯。VFS使得Linux可以支持多个不同的文件体系 ,每个表示一个VFS 的通用接口。由于软件将Linux 文件体系 的全部 细节举行 了转换,以是 Linux核心的别的 部分及体系 中运行的程序将看到同一 的文件体系 。Linux 的假造 文件体系 答应 用户同时能透明地安装很多 不同的文件体系 。

在Linux文件体系 中,EXT2文件体系 、假造 文件体系 、/proc文件体系 是三个具有代表性的文件体系 。

二.什么是根文件体系

根文件体系 起首 是一种文件体系 ,该文件体系 不仅具有平凡 文件体系 的存储数据文件的功能,但是相对于平凡 的文件体系 ,它的特殊 之处在于,它是内核启动时所挂载(mount)的第一个文件体系 ,内核代码的映像文件保存在根文件体系 中,体系 引导启动程序会在根文件体系 挂载之后从中把一些初始化脚本(如rcS,inittab)和服务加载到内存中去运行。我们要明确 文件体系 和内核是完全独立的两个部分。在嵌入式中移植的内核下载到开辟 板上,是没有办法真正的启动Linux操作体系 的,会出现无法加载文件体系 的错误。

那么根文件体系 在体系 启动中到底是什么时间 挂载的呢?先将/dev/ram0挂载,而后实验 /linuxrc.等着实 行 完后。切换根目次 ,再挂载具体 的根文件体系 .根文件体系 实验 完之后,也就是到了Start_kernel()函数的末了 ,实验 init的历程 ,也就第一个用户历程 。对体系 举行 各种初始化的操作。

根文件体系 之以是 在前面加一个”根“,阐明 它是加载别的 文件体系 的”根“,既然是根的话,那么假如 没有这个根,别的 的文件体系 也就没有办法举行 加载的。它包含体系 引导和使其他文件体系 得以挂载(mount)所必要的文件。根文件体系 包括Linux启动时所必须的目次 和关键性的文件,比方 Linux启动时都必要 有init目次 下的干系 文件,在 Linux挂载分区时Linux肯定 会找/etc/fstab这个挂载文件等,根文件体系 中还包括了很多 的应用程序bin目次 等,任何包括这些Linux 体系 启动所必须的文件都可以成为根文件体系 。Linux启动时,第一个必须挂载的是根文件体系 ;若体系 不能从指定装备 上挂载根文件体系 ,则体系 会出错而退出启动。成功之后可以自动 或手动挂载其他的文件体系 。因此,一个体系 中可以同时存在不同的文件体系 。在 Linux 中将一个文件体系 与一个存储装备 关联起来的过程称为挂载(mount)。使用 mount 下令 将一个文件体系 附着到当前文件体系 层次布局 中(根)。在实验 挂装时,要提供文件体系 范例 、文件体系 和一个挂装点。根文件体系 被挂载到根目次 下“/”上后,在根目次 下就有根文件体系 的各个目次 ,文件:/bin /sbin /mnt等,再将其他分区挂接到/mnt目次 上,/mnt目次 下就有这个分区的各个目次 ,文件。

三.什么是内核

Linux内核就像人的心脏,魂魄 ,指挥中心 。内核是一个操作体系 的核心,它负责管理体系 的历程 ,内存,装备 驱动程序,文件和网络体系 ,决定着体系 的性能和稳固 性。内核以独占的方式实验 最底层任务 ,保证体系 正常运行。和谐 多个并发历程 ,管理历程 使用 的内存,使它们相互之间不产生冲突,满足 历程 访问磁盘的哀求 等.

操作体系 是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支持 软件。一个计算机体系 是一个硬件和软件的共生体,它们互相依赖 ,不可分割。计算机的硬件,含有外围装备 、处理器、内存、硬盘和其他的电子装备 构成 计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作体系 ,在Linux的术语中被称为“内核”,也可以称为“核心”。Linux内核的紧张 模块(或组件)分以下几个部分:存储管理、CPU和历程 管理、文件体系 、装备 管理和驱动、网络通讯 ,以及体系 的初始化(引导)、体系 调用等。

四.内核与文件体系 的关系

技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件体系 控制、多任务 等功能的体系 软件。一个内核不是一套完备 的操作体系 。一套基于Linux内核的完备 操作体系 叫作Linux操作体系 ,或是GNU/Linux。

文件体系 是kernel的一部分。文件体系 实现了体系 上存储介质和其他资源的交互。kernel tree中的fs目次 都是关于文件体系 的,可以说它是kernel的一个大子体系 。

嵌入式体系 在flash中分配了存放内核、根文件体系 的地区 。bootloader加载了内核,内核启动,加载文件体系 ,进入Linux体系 。

整个嵌入式体系 而言,可以分为三个部分1.uboot 2.kernel 3.文件体系 。此中 kernel中以VFS去支持各种文件体系 ,如yaffs,ext3,cramfs等等。yaffs/yaffs2是专为嵌入式体系 使用 NAND型闪存而计划 的一种日志 型文件体系 。在内核中以VFS来屏蔽各种文件体系 的接口不同,以VFS向kernel提供一个同一 的接口。如打开一个文件时同一 使用 open,写时采用write,而不用去思量 是那种文件体系 ,也不用去思量 文件体系 是怎样 将数据写入物理介质的。此中 kernel中的设置 ,只是让VFS支持这种接口。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

avatar 樱花283 | 2021-9-15 22:16:07 | 显示全部楼层
哥回复的不是帖子,是寂寞!
回复

使用道具 举报

avatar 陌上人如玉__ | 2021-9-19 01:35:14 | 显示全部楼层
知识就是力量啊!
回复

使用道具 举报

avatar 武汉嘉瑞 | 2021-9-21 05:25:37 | 显示全部楼层
你觉得该怎么做呢?
回复

使用道具 举报

avatar auqsio7413820 | 2021-10-15 20:33:18 | 显示全部楼层
东方不败外加灭绝师太啊!
回复

使用道具 举报

avatar 123457399 | 2021-10-17 04:00:01 | 显示全部楼层
支持一下,下面的保持队形!
回复

使用道具 举报

avatar vvvvvvyb | 2021-10-17 04:00:04 | 显示全部楼层
admin楼主,我告诉你一个你不知道的的秘密,有一个牛逼的源码论坛他的站点都是商业源码,还是免费下载的那种!特别好用。访问地址:http://www.mxswl.com 猫先森网络
回复

使用道具 举报

avatar 喜欢头像那女纸 | 2021-10-19 04:49:09 | 显示全部楼层
强,我和我的小伙伴们都惊呆了!
回复

使用道具 举报

avatar 成功源于创新蠢 | 2021-10-19 04:49:13 | 显示全部楼层
以后要跟admin楼主好好学习学习!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则