精华内容
下载资源
问答
  • 内核和文件系统关系

    千次阅读 2017-09-30 22:54:29
    Linux内核与根文件系统关系 开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题! 一语破天机: “尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具。这...

    http://tieba.baidu.com/p/2852126057

    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支持这种接口。
    展开全文
  • linux内核和文件系统关系

    千次阅读 2013-03-03 21:04:09
    个人比较菜:没搞明白linux内核和文件系统的存储关系。下面这句话有帮助。 内核映像文件可以以两种方式存在,一种就是文件的形式,既然是文件形式当然是放在根文件系统中的。 另外一种就是以映像的形式存在,自然...

    个人比较菜:没搞明白linux内核和文件系统的存储关系。下面这句话有帮助。

    内核映像文件可以以两种方式存在,一种就是文件的形式,既然是文件形式当然是放在根文件系统中的。

    另外一种就是以映像的形式存在,自然和根文件系统是各自分开的映像布局。

    估计在嵌入式中一般是将内核映像和文件系统分开的,要分两次烧写到flash中,这样又有问题了,

    如果分开烧录了。内核如何知道在什么位置加载文件系统的。?

    展开全文
  • 内核文件系统

    千次阅读 2016-08-05 09:26:58
    1.存储介质和文件系统关系 2.文件系统是什么 3.文件系统和文件系统的区别 4.kernel文件系统关系

    内核与文件系统

    1.存储介质和文件系统的关系

    • mmc设备专门有一个扇区用来描述块设备的分区信息的,称之为MBR,对于SD卡来说,MBR在扇区0。U-boot中有一个命令fdisk -c 0时就进行了分区,分区表在固化在了U-boot源码中。kernel直接读取MBR就知道了分区。所以在U-boot和kernel之间mmc设备的分区信息是靠MBR传递的
    • 不同分区存放了不同类别的文件,比如bootloader区存放了u-boot.bin、kernel区存放了zImage.bin,但是只有rootfs区才具有文件系统(如xxxx.ext3)

    2.文件系统是什么

    • 文件系统一般指的是某类镜像文件(如xxxx.ext3),一个分区只能烧录一个,也就是说一个分区只能存在一个文件系统。这个镜像文件记录了该分区所有的1.文件内容 2.文件系统的类别3.文件部署和分布,而kernel负责对该文件系统和分区的具体操作。可以类比为文件系统是本子,而kernel是写字的人
    • 存储介质上可以有多个含有文件系统的分区,并且类别也可以不同

    3.文件系统和根文件系统的区别

    • 文件系统和根文件系统是两个概念。当kernel启动时,会根据U-boot传递的参数来确定rootfs区的位置,然后去加载rootfs区内的镜像(如xxxx.ext3),并将其作为根文件系统
    • 如果存储介质内有多个文件系统,那么就要靠U-boot传参决定谁能作为根文件系统了,参数详见U-boot引导内核流程分析 文末。当某个文件系统成为了根文件系统后,那么其他的文件系统就可以挂载到根文件系统内,被kernel统一管理
      这里写图片描述
    • 其实文件系统和根文件系统就好比员工和主管,员工之所以能够成为主管,是由于大领导U-boot的钦定,但是主管的本质还是公司的一名员工

    4.kernel和根文件系统的关系

    • 在内核中以VFS来屏蔽各种文件系统的接口不同,以VFS向kernel提供一个统一的接口。如打开一个文件时统一使用open,写时采用write,而不用去考虑是那种文件系统,也不用去考虑文件系统是如何将数据写入物理介质的。其中 kernel中的配置,只是让VFS支持这种接口
      这里写图片描述
    展开全文
  • 1、Linux内核和文件系统之间,什么关系?没有文件系统,Linux能运行不能运行? 可以有也可以没有,Linux这个操作系统,很奇怪!必须要挂一个文件系统!像有些操作系统,比如Vxworks就不需要,uCos也不需要,但是,...

    根据大牛的对话整理,仅用于参考学习:

    1、Linux 内核和文件系统 之间,什么关系?没有文件系统,Linux能运行不能运行?

            可以有也可以没有,Linux这个操作系统,很奇怪!必须要挂一个文件系统!像有些操作系统,比如Vxworks就不需要,uCos也不需要,但是,Linux必须要挂个文件系统!!

    2、Linux什么时候挂载文件系统呢?是在一开始就挂载呢,还是最后才挂载?

            Linux是在运行的最后才挂载文件系统!Linux启动到最后,等所有驱动初始化完成以后,最后一步才挂载文件系统,而这个文件系统就是Android系统!QT和Android系统一样,都算是个文件系统,而QT和Android的底层都是 Linux内核。ubuntu也是这样,也只是linux内核起来以后挂载的一个文件系统!几套系统底层全是Linux内核,而这几套系统又都是Linux内核起来以后挂载的文件系统。

    3、开发板一开机以后先运行什么?

          uboot,就是bootloader,uboot的运行,大家在串口终端里会看到打印这样的信息:

    从打印信息可以看到UBOOT检测内存,存储等设备,并且设置处理器等设备的时钟等等,uboot到最后干什么事情呢?它在等待你敲击任何键,让他停下来,如果你不敲击,就干什么呢,它就开始引导内核,也就是把zImage 那个文件拷贝到内存,并去运行,接着看内核的打印信息:

    你会看到内核不断的打印出各种外部设备的信息,说明它在对各种外设进行 驱动初始化,比如SPI、蓝牙、以太网等等,所有的驱动都在里面!最后干什么了呢?是的,就是挂载文件系统。

    4、那么什么是文件系统?

    文件系统玩过电脑的人都知道,就是类似windows的文件管理器

    Linux挂载的文件系统和这个一样吗,是的!!这个时候问题来了,zImage,也就是Linux内核,它执行到最后,挂载一个文件系统,就能变出Android系统?实际上,Linux内核最后挂载那个文件系统,不仅仅是挂载,还要做什么呢,执行文件系统里的应用程序!执行着 。。。执行着。。。。执行了一个又一个应用程序。。。。Android的界面出来了!!实际上,你真的可以把Android看做Linux上面跑的一个应用程序!的确是,Android就是一个在Linux内核上跑的一个巨大应用程序!Android这个应用程序,就放在了Linux内核最后挂载的那个文件系统里面。

     

    展开全文
  • Linux内核与根文件系统关系详解

    千次阅读 2018-09-14 06:41:16
    Linux内核与根文件系统关系 开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题! 一语破天机: “尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具。这...
  • Linux内核与根文件系统关系

    万次阅读 2014-07-13 23:09:27
    Linux内核与根文件系统关系 开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题! 一语破天机: “尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具。这...
  • 今天把开发板自带的boot loader,Linux 内核文件系统都按说明烧写的一遍,顺带学习了这几部分的关系。 从软件的角度看,一个嵌入式Linux的系统通常可分为四个层次。自下而上依次是: 1、引导加载程序。包括固化...
  • 以三星的四核处理器Exynos4412为例,该开发板属于armv7架构,contexA9系列,32bit,...4412在上电以后,MMU是关闭的,也就是说这个时候其实单片机差不多,可以直接跑裸机程序(裸机程序,就是直接对CPU进行编程)...
  • Linux内核文件系统

    千次阅读 2019-04-19 14:32:08
    Linux 内核文件系统 概述 文件系统这一词在不同上下文时有不同的含义: 指一种具体的文件格式。例如Linux的文件系统是Ext2,MSDOS的文件系统是FAT16,而Windows NT的文件系统是NTFS或FAT32 指按特定格式进行了...
  • Linux 内核配置和文件系统的构建

    千次阅读 2011-11-23 00:34:34
    一、 实验目的 1.了解嵌入式系统的开发环境、内核的下载启动...3.了解嵌入式操作系统中文件系统的类型作用,了解JFFS2文件系统的优点及其在嵌入式系统中的作用,掌握利用BusyBox软件制作嵌入式文件系统的方法,
  • linux内核分析之文件系统

    千次阅读 2016-04-22 00:00:44
    linux内核分析之文件系统linux内核分析之文件系统文件系统的安装卸载分析 1 文件系统的安装 11 总领提纲 12 代码分析 13 实例考察path_walk 2 文件系统的卸载 21 提纲 22 代码分析 二问答归纳 1 问题 2 回答 三...
  • 但是Linux 什么时候挂载文件系统呢?是一开始就挂载还是最后才挂载呢? 其实,是在Linux是在运行的最后才挂载文件系统的!这个最后是指开机初始化的最后。 所有的驱动都是内核里面 内核就是硬件层上层的抽象层,...
  • 内核文件系统看文件读写过程

    千次阅读 2015-07-21 00:58:51
    内核文件系统看文件读写过程 http://www.cnblogs.com/huxiao-tee/p/4657851.html 阅读目录 系统调用虚拟文件系统I/O 缓冲区Page CacheAddress Space文件读写基本流程 回到...
  • Android的linux内核和文件系统的编译器可以一样吗? 对于这个问题,首先得清楚Android源码是自动了一个集成的交叉编译器的,低版本在prebuilt/tool,4以上放在了prebulits/gcc下面的。   对于交叉编译器来说,在于...
  • Linux内核移植文件系统制作

    千次阅读 2010-12-18 22:19:00
    第一章移植内核1.1 Linux内核基础知识1.1.1 Linux版本1.1.2 什么是标准...内核和文件系统准备工作1.3.2 修改Linux源码中参数1.3.3 配置Linux内核1.3.4、编译内核第二章制作根文件系统2.1 根文件系统预备知识2.2...
  • Linux内核文件系统分析

    千次阅读 2016-08-18 15:45:29
    1、Linux内核源代码目录结构 arch:包含硬件体系结构相关的代码,每种平台占一个相应的目录,如i386、arm...Documentation:内核各部分的通用解释注释。drivers:设备驱动程序,每个不同的驱动占用一个子目录,如
  • 操作系统内核和操作系统的区别

    千次阅读 2019-07-29 18:32:28
    内核指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。内核是一个操作系统的核心,是操作系统最基本的部分。它负责管理系统的进程、内存、设备驱动程序、文件网络系统等,决定着系统的性能...
  • 【Linux 内核文件系统(结构篇)

    千次阅读 2015-11-02 09:46:54
    在前面的概念篇有说到,Linux支持大多数文件系统,可以预料到Linux文件系统接口实现为分层的体系结构,从而将用户接口层、文件系统实现操作存储设备的驱动程序分隔开。Linux源码(Linux/fs文件夹下)下会有Linux...
  • 对于计算机来说,I/O代表了计算机与外界的交互,交互的对象...许多操作系统都将各种具有输入输出该鸟的实体—包括设备,磁盘文件,命令行等统称为文件. C语言文件操作通过一个FILE结构的指针来进行.fopen()函数返回一
  • /proc文件系统是Linux内核的一个虚拟文件系统,说它虚拟,是因为磁盘分区上的文件系统不同,它只有在内核启动以后,工作起来的时候才会被动态创建。 /proc下面的内容会随着内核的配置工作的状态在变化,比如/...
  • 第一章移植内核 1.1 Linux内核基础知识 1.1.1 Linux版本 ...1.1.2 什么是标准内核 ...1.1.3 Linux操作系统的分类 ...1.1.4 linux内核的选择 ...1.2 Linux内核启动过程概述 ...1.3 Linux内核移植 ...1.3.1 移植内核和根文
  • 【Linux 内核文件系统(概念篇)

    千次阅读 2015-11-01 12:04:46
    一、开篇Linux下的文件系统为树形结构,入口为/(根目录)树形结构下的文件目录,Linux发行版本之间的差别很少,差别主要表现在系统管理的特色工具以及软件包管理方式的不痛,目录结构基本上是一样的。Windows的文件...
  • Linux内核移植文件系统制作

    千次阅读 2009-08-31 17:05:00
    第一章 移植内核 1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本分类说起。 1.1.1 Linux版本 Linux内核的版本号可以从源代码的顶层目录下的...
  • Android系统和linux内核关系详解

    千次阅读 2014-01-18 20:55:24
    Android系统和linux内核关系详解 大家都知道Android是基于Linux内核的操作系统,也曾经Linux基金会因为内核问题产生过分歧( 可以参考本文 后面的“参考阅读”)。这里主要对androidlinux的关系进行...
  • linux 内核移植文件系统的制作

    千次阅读 2015-08-12 15:58:47
    镜像文件:就是类似打包的文件,把所有的东西打包在一起,方便下载使用。类似tar -zcvf a.tar.gz xxxx a.tar.gz就可以叫做是镜像文件。 镜像文件的格式有:bin、iso、zImage...文件系统的镜像文件:一般都压缩成为-
  • Linux 内核/sys 文件系统介绍

    千次阅读 2015-06-01 13:40:06
    sysfs 是 Linux 内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似,但除了与 proc 相同的具有查看设定内核参数功能之外,还有为 Linux 统一设备模型作为管理之用。相比于 proc 文件...
  • linux内核VFS虚拟文件系统总结

    千次阅读 2013-07-21 11:34:19
    最近手里有一个项目需要写一个简单的文件系统,利用周末时间把深入理解linux内核书第十二章虚拟文件系统学习了一下,加深了对vfs的理解,这里也做一下总结,以备后查。  linux成功的关键因素之一就是它与其他操作...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 213,710
精华内容 85,484
关键字:

内核和文件系统的关系