公司注册网上申请网站,成都小程序推广企业,如何做产品展示网站,一般可以建些什么种类的网站开篇题外话#xff1a;对于Linux初学者来说#xff0c;这是一个很纠结的问题#xff0c;但这也是一个很关键的问题#xff01; 一语破天机#xff1a;“尽管内核是 Linux 的核心#xff0c;但文件却是用户与操作系统交互所采用的主要工具。这对 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去支持各种文件系统如yaffsext3cramfs等等。yaffs/yaffs2是专为嵌入式系统使用NAND型闪存而设计的一种日志型文件系统。在内核中以VFS来屏蔽各种文件系统的接口不同以VFS向kernel提供一个统一的接口。如打开一个文件时统一使用open写时采用write而不用去考虑是那种文件系统也不用去考虑文件系统是如何将数据写入物理介质的。其中 kernel中的配置只是让VFS支持这种接口#五.多任务系统就需要文件系统吗答案肯定不是的应该很多人都有接触过freertos这也是一个实时的多任务系统但是默认是没有文件系统的。因为是运行在比较低端的硬件平台上内存空间比较小FLASH也比较小安装一个文件系统需要消耗比较大的资源。但是没有文件系统一样是可以完成它的任务的比如进程线程调度定时器的等等。文件系统是为了给应用做一个统一的接口应用需要访问底层的东西都需要用open,read,write操作来完成没有了文件系统就只能面向函数简单直接效率也更高。 回复「 篮球的大肚子」进入技术群聊回复「1024」获取1000G学习资料