嵌入式Linux中基于MTD的文件系统的结构框架图

简介: 转载时请注明原文出处(http://blog.sina.com.cn/wyw1976)及作者邮箱(wyw1976@gmail.com)         闪存在嵌入式系统中充当硬盘的角色,一般有NAND, OneNand, Nor等种类。
转载时请注明原文出处( http://blog.sina.com.cn/wyw1976 )及作者邮箱( wyw1976@gmail.com )
 
 
    闪存在嵌入式系统中充当硬盘的角色,一般有NAND, OneNand, Nor等种类。主要的闪存厂商有三星,东芝等。有关不同闪存的区别可以参考http://www.linux-mtd.infradead.org/doc/onenand.html
   
    MTD(Memory Technology Devices)是一个软件抽象层,为了屏蔽不同种类和不同厂商的闪存,从而为上层的文件系统提供统一的接口。
 
    嵌入式的文件系统主要有YAFFS, JFFS,UBIFS等。
 
    闪存,MTD及文件系统之间的关系,如下图所示:
   
 
嵌入式Linux中基于MTD的文件系统的结构框架图
 
说明:
  (1)对于JFFS2或YAFFS2来说,它看到的是统一的mtd接口,而不论上面的硬件是NAND或ONENand, 厂商是三星还是东芝。这些接口包括mtd->read, mtd->write, mtd->erase等,参见include/linux/mtd.h
   (2) 内核中有一个分区表来统一系统中所有的nand, 例如下面就是一个分区表的例子:
    static struct mtd_partition partitions[] = { \
                [0] = { \
                        .name        = "Bootloader", \
                        .offset      = 0, \
                        .size        = 0x100000, \
                }, \
                [1] = { \
                        .name        = "MassStorage0", \
                        .offset      = 0x100000, \
                        .size        = MTDPART_SIZ_FULL, \
                }, \
        }
 
  分区表中,指定了每个mtd分区的名称,起始地址,大小及读写属性(例如有的系统分区会被写保护)
  (3)UBIFS特殊的一点是,他不是直接构建在MTD层上,而是构建在ubi volume上,而ubi volume是基于mtd分区的,具体可参考 http://blog.sina.com.cn/s/blog_5d9051c00100ejvj.html
  (4)上层用户除了可以通过文件系统读写mtd外,还可以通过mtd设备节点直接操作mtd。而每个mtd分区都会对应两种节点:
     /dev/mtdxx      ----------->字符设备节点
     /dev/mtdblockxx ----------->块设备节点
例如 "dd if=/dev/urandom of=/dev/mtdblock1 bs=1024 count=1024",就是跳过文件系统直接访问MTD设备
相关文章
|
4天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
29 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
10天前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
32 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
|
13天前
|
安全 Linux 数据安全/隐私保护
深入Linux操作系统:文件系统和权限管理
在数字世界的海洋中,操作系统是连接用户与硬件的桥梁,而Linux作为其中的佼佼者,其文件系统和权限管理则是这座桥梁上不可或缺的结构。本文将带你探索Linux的文件系统结构,理解文件权限的重要性,并通过实际案例揭示如何有效地管理和控制这些权限。我们将一起航行在Linux的命令行海洋中,解锁文件系统的奥秘,并学习如何保护你的数据免受不必要的访问。
|
1月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
71 8
|
1月前
|
Linux 调度
Linux系统结构
内核是操作系统的核心组件,负责管理系统资源和硬件设备。它提供了硬件抽象层,使得应用程序不必直接操作硬件。内核的主要功能包括: 进程管理:创建、调度和终止进程。 内存管理:分配和回收内存,提供虚拟内存功能。 设备管理:控制硬件设备的访问。 文件系统管理:管理文件和目录结构。 系统调用接口:提供系统调用,使应用程序能够与操作系统交互。
40 8
|
1月前
|
存储 Linux 文件存储
Linux文件系统
Linux文件系统 一切皆文件 在Linux中,“一切皆文件”的概念意味着系统中的所有资源,包括硬件设备、目录及进程等,均被视为文件。这种设计简化了操作和管理,具体包括: 普通文件:存储数据的常规文件。 目录文件:包含其他文件和子目录的文件。 进程文件:在/proc目录下代表系统中运行的进程。 设备文件:位于/dev目录,代表硬件设备。 网络字节流套接字文件:用于网络通信的数据流。 链接文件:指向另一个文件的符号链接或硬链接。 管道文件:用于进程间通信的文件。
51 7
|
3月前
|
存储 Linux 索引
Linux 下最主流的文件系统格式——ext
【9月更文挑战第8天】硬盘被划分为若干相同大小的块(Block),默认大小为4K,便于灵活管理文件数据。文件数据分散存放于这些块中,提高了数据添加、删除和插入的便利性。
|
4月前
|
编解码 Linux 程序员
深度探索Linux操作系统 —— 构建根文件系统2
深度探索Linux操作系统 —— 构建根文件系统
49 12
|
4月前
|
Linux Shell 网络安全
深度探索Linux操作系统 —— 构建根文件系统1
深度探索Linux操作系统 —— 构建根文件系统
60 6
|
4月前
|
存储 人工智能 数据管理
深入理解Linux操作系统之文件系统管理探索人工智能:从理论到实践的旅程
【8月更文挑战第30天】在探索Linux的无限可能时,我们不可避免地会遇到文件系统管理这一核心话题。本文将深入浅出地介绍Linux文件系统的基础知识、操作命令及高级技巧,帮助你更有效地管理和维护你的系统。从基础概念到实践应用,我们将一步步揭开Linux文件系统的神秘面纱。