知道nand flash吧,就是存储数据的介质,里面都是一个个的存储单元,如果你想从nand上读取数据,就要熟悉nand的读写时序,然后一页一页地读存储在nand上面的数据。很不方便是不是?因为这些数据都是二进制的,到底存储的是什么,是一个图片,还是一部电影,我们很难直观地看出来。如果你的数据存储在硬盘上,你想读取数据,也要熟悉硬盘的读写方式,然后从一个个扇区里去读,这些物理底层的操作很麻烦,不同的设备由不同的读写方式,很不方便。那怎么办?

文件系统

,可以看作管理这些存储单元的一个程序。就像管理耕地一样,当我们格式化一个硬盘、磁盘或nand时,你要使用一种具体的文件系统,它就相当于把这块耕地划分成块,然后编号,统一管理,通过目录/文件的形式来管理,跟存储在磁盘上的数据一一对应。同时也屏蔽了底层操作的细节,留给用户的是统一的read/write

接口,非常方便。

以前我们从nand或硬盘上读数据,要知道具体的地址,读写时序,然后从具体的地址取读取数据。现在不用了,可以直接通过文件名

进行读写就可以了。因为有了文件系统的管理,各种目录、文件名跟在磁盘上实际存储的数据是一一对应、一一映射的。也就是说,文件系统简化了我们读写存储单元的方式,由以前的通过具体地址、读写时序,转换为通过目录、文件名来去读写。

什么是挂载?

文件系统是有目录的,目录是什么东西呢,我们可以理解为存储单元的一个标号,代表某一块存储单元。当我们把某块存储分区挂载到这个目录点上时,这个目录就跟这块存储分区产生了关联,我们读这个目录下面的文件,就是读取这个分区上的文件。当你把另外一个分区挂载到这个目录上,再去读写这么目录时,就相当于读写另外一个分区了。当我们删除了某个文件,就是关掉这个目录、文件名跟某块存储分区的关联。这里注意,这里仅仅是断了这种映射关系,并没有真正的删除数据。想想冠希哥,以为把电脑上的视频删了就没有了,其实这些数据还是存储在你的磁盘上的,还是可以恢复的,除非你格式化这个磁盘。所以这也是艳照门

产生的根本原因。

那什么是根文件系统呢?既然我们文件系统有目录,有路径,肯定要有一个根目录、根节点。Linux内核在初始化时,会创建一个“/”根节点,提供给文件系统挂载。当我们的文件系统挂载到这个根节点上时,这个文件系统就是根文件系统。根文件系统里面存放了基本的linux命令、系统配置文件、启动脚本等跟系统相关的一些文件,是系统启动过程中必需的。根文件系统一般不是很大,在嵌入式系统中,一般也就是nand的一个分区而已,主要用来存放重要的系统文件、配置文件。除此之外,nand还有一些其它分区,用来存放电影、图片等数据。这些分区被文件系统格式化后,可以直接mount到根文件系统的某个目录下面。然后你对这个目录的读写,就是对你挂载的分区的读写。

文件系统类型很多,有ROM版的、有RAM版的,有些文件系统只在系统启动运行时,存在于内存总,这些叫RAM文件系统,速度快。有些是用来管理存储的,用来管理磁盘、硬盘、U盘、SD卡等存储设备,读写速度较慢。当我们的嵌入式系统添加不同的存储设备时,都可以将这个设备挂载到我们的根文件系统上,通过目录+文件名的方式来访问,灵活方便。

何为文件系统,何为根文件系统?相关推荐

  1. 文件系统-- 安装根文件系统阶段(安装rootfs文件系统)

    文件系统注册了之后,当我们需要使用的时候,就可以挂载了. 在安装普通文件系统之前,必须先挂载根文件系统.根文件系统首先是一种文件系统,但是相对于普通的文件系统,它的特殊之处在于,它是内核启动时所mou ...

  2. 十九.Linux开发之根文件系统移植——根文件系统的原理

    有道云笔记地址: 详情看这里链接,记录太多,就不一一排版了. http://note.youdao.com/noteshare?id=f9c7c1b589233d7b6ed661c3749f1ce8& ...

  3. linux文件系统实验原理,根文件系统原理

    1.1.根文件系统概述 1.为什么需要根文件系统 (1)init进程的应用程序在根文件系统上 (2)根文件系统提供了根目录/ (3)内核启动后的应用层配置(etc目录)在根文件系统上 (4)shell ...

  4. Linux之文件系统和根文件系统

    在学习Linux的过程中,会遇到"文件系统"和"根文件系统"两个概念,这两个概念容易混淆,总觉得为什么Linux需要这么多的文件系统,这两种系统的各自作用是什么 ...

  5. android 根文件系统,Android根文件系统相关应用介绍

    我们将会针对Android根文件系统的相关目录结构等方面的问题进行一个详细的讲解,以帮助大家快速掌握这方面的知识. 我们曾经在一篇文章中为大家详细介绍过Android文件系统的一些基本概念,相信大家已 ...

  6. linux ramdisk根文件系统,ramdisk 根文件系统制作

    隐逸桃源说:1.ramdisk是一个最小的linux rootfs系统,它包含了除内核以外的所有linux系统在引导和管理时需要的工具,包含如下目录:bin,dev,etc,home,lib,mnt, ...

  7. linux下的文件系统,Linux根文件系统(“/”文件系统)下的目录介绍

    Linux下的文件存储与Windows完全不同,Windows将系统文件存储在系统盘(比如说C:\下) Linux根本没有盘符到概念只有一个根文件系/,各个磁盘分区挂载在/media/下(或者/mnt ...

  8. Linux根文件系统学习总结

    一.什么是根文件系统 根文件系统首先是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中 ...

  9. 构建根文件系统之busybox(四)完善

    目录 busybox(四)完善 proc挂载 手动挂载 proc解析 使用脚本自动挂载 使用mount-a挂载 udev/mdev 挂载 使用jffs2 文件系统格式 安装zlib 安装jffs2 生 ...

  10. Hi3516A开发--根文件系统

    下面的指令  注意检查 - ,应该为英文的,而不是中文的. 例如: mkfs.jffs2 –d ./rootbox -l –e 0x20000 -o jffs2-root.img 应为 -d,而非 – ...

最新文章

  1. 成为顶级CIO ,应该怎么做?
  2. Eclipse CDT中EOF输入的解决方法
  3. 玩转OpenVswitch:简介
  4. mysql crash_Mysql 无故crash
  5. CSDN:借助工具对【本博客访问来源】进行数据图表可视化(网友主要来自美国、新加坡、日本、英德加澳等)——记录数据来源截止日期20200718晚上22点
  6. aspose 换行写_aspose.word 换行符 aspose.words换行符
  7. 百度java的线程技术_自我提升(基础技术篇)——java线程简介
  8. 玩转iOS开发:iOS 8 新特性《UIVisualEffect》
  9. 大型网站架构系列:缓存在分布式系统中的应用
  10. windows server 2016安装网卡驱动【引用】
  11. leetcode347——前K个高频元素——java实现
  12. java 提交mac地址栏_Mac系统快捷键大全 - 米扑博客
  13. 牛客:爬塔(STL)
  14. 官网下载Eclipse(包含历史版本及该版本的子版本)
  15. 华为设备三层交换机与路由器对接上网
  16. Xmas snow for Mac(圣诞桌面装饰软件)
  17. 服务器找不到存储服务器,Alfresco社区版“在此服务器上找不到Alfresco存储库”...
  18. 抑制剧毒弧菌的新型噬菌体被发现
  19. Advanced Archive Password Recovery下载
  20. 用inception_v3提取图片的特征向量

热门文章

  1. 九、MySQL数据库之HAVING与子查询
  2. Android中高级面试题
  3. android手机邮件客户端,安卓手机邮件客户端ProfiMail Go
  4. Introduction to Reinforcement Learning notes
  5. “隐藏高手” 胰腺癌的新出路——微生物
  6. 山东理工ACM【1239】水仙花数
  7. party_bid_core三种数据结构总结
  8. linux:挂载、rpm、yum、scp、ssh、crontab、时钟同步
  9. C#如何在Windows上接入蓝牙设备
  10. Vue的一些知识汇总---希望对你有用