Linux文件系统和FLASH

一、基本知识

1.1、NOR Flash、NAND Flash和EMMC Flash

1、NAND一般以存储数据为主,晶片容量大,容量可以达到2Gb甚至更大,NAND的读取是以一次读取一块的形式来进行的,通常一次读取512个字节,采用这种技术的Flash比较廉价。

2、NOR采用内存的随机读取技术,允许随机寻址,不需要纠错以及较高的每比特成本。如果我们只是利用闪存来存储小量代码,那无疑NOR是非常合适的。NOR 的传输效率(注意是效率,并不是速度)很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能(因为NOR和内存一样基本存储单元是字节)。NOR的一大特点是应用程序可以直接在Flash闪存内运行,不必再把代码读到系统RAM中。

3、EMMC = NAND + 控制器 + 标准封装接口。功能包括存储以及取代NOR Flash的开机功能,不需要处理NAND Flash相容性和管理问题。

1.2、文件系统

     在LINUX系统中有一个重要的概念:一切都是文件。目前大多Linux发行版本默认使用的文件系统一般是ext4,另外,新一代的btrfs也呼之欲出。

用户层(目录树)

内核层(虚拟文件系统-》常见文件系统)

底层驱动(MTD字符设备、MTD块设备-》MTD设备驱动)

硬件层(NOR FLASH、NAND FLASH、RAM)

1.3、虚拟文件系统(VFS)

     VFS就把这些不同的文件系统做一个抽象,提供统一的API访问接口,这样,用户空间就不用关心不同文件系统中不一样的API了。VFS所提供的这些统一的API,再经过System Call包装一下,用户空间就可以经过SCI的系统调用来操作不同的文件系统。

二、文件系统

Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统。

2.1、 基于FLASH  

       不同的文件系统类型有不同的特点,因而根据存储设备的硬件特性、系统需求等有不同的应用场合。在嵌入式Linux应用中,主要的存储设备为RAM(DRAM, SDRAM)和ROM(常采用FLASH存储器),常用的基于存储设备的文件系统类型包括:jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs等。

2.1.1 一般文件系统   

 1、JFFS文件系统主要用于NOR型闪存

     2、yaffs/yaffs2自带NAND芯片的驱动

     3、Cramfs一种只读的压缩文件系统。

2.1.2、UBIFS文件系统

       UBIFS是UBI file system的简称,用于裸的flash设备,作为jffs2的后继文件系统之一。UBIFS通过UBI子系统处理与MTD设备之间动作。UBIFS文件系统更适合MLCNAND FLASH。需要注意的是UBIFS并不是为SSD,MMC,SD,Compact Flash等之类的基于flash的存储设备,其是针对于裸flash设备。

       UBIFS通过子系统UBI 处理与MTD device之间的动作。与JFFS2 一样,UBIFS 建构于MTD device 之上,而与一般的block device不兼容。它在设计与性能上均较YAFFS2、JFFS2更能适用于MLC NAND FLASH上面。

1、配置内核支持UBIFS

2、将一个MTD分区4挂载为UBIFS格式 
● flash_eraseall /dev/mtd4 //擦除mtd4 
● ubiattach /dev/ubi_ctrl -m 4 //和mtd4关联 
● ubimkvol /dev/ubi0 -N rootfs -s 100MiB //设定volume 大小(不是固定值,可以用工具改变)及名称 
● mount -t ubifs ubi0_0 /mnt/ubi或mount -t ubifs ubi0:rootfs /mnt/ubi 

2.2、基于RAM

Ramdisk、ramfs/tmpfs。

2.3、NFS

NFS是由Sun开发并发展起来的一项在不同机器、不同操作系统之间通过网络共享文件的技术。

三、常见命令

3.1、df命令

管理磁盘分区时经常会使用 df (disk free) 命令,df -k 命令可以用来查看磁盘空间的使用情况(以千字节计)。

3.2、挂载文件系统

查看当前系统所挂载的硬件设备可以使用 mount 命令。例如,

mount -t file_system_type device_to_mount directory_to_mount_to

可以通过 umount 命令来卸载文件系统。

3.3、软链接和硬链接

ln命令:创建硬链接。ln -s命令可以创建软链接

四、参考网址

https://blog.csdn.net/wc_wc_8613/article/details/86636830

https://www.cnblogs.com/alantu2018/p/8461749.html

https://blog.csdn.net/kunkliu/article/details/78464205

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Table of Contents 1 Introduction ...................................................................................................... 4 1.1 Scope ................................................................................................................... 4 1.2 Background ......................................................................................................... 4 1.3 Overview ............................................................................................................. 4 1.4 Implemented File Functionality ......................................................................... 5 1.4.1 Basic ............................................................................................................................... 5 1.4.2 Access Attributes ............................................................................................................ 5 1.4.3 Protective Mode .............................................................................................................. 7 1.4.4 Access Monitor ............................................................................................................... 7 1.5 Disk Usage Saturation ........................................................................................ 7 2 Application Programming Interfaces (APIs) .................................................. 9 2.1 The TFFS Protection Application Programming Interface (TP-API) ................ 9 2.1.1 TFFS Usage Protection .................................................................................................. 9 2.1.1.1 Pseudo Code Example .......................................................................................... 9 2.1.1.2 Posix Code Example ............................................................................................ 10 2.1.1.3 sig_semRead ....................................................................................................... 11 2.1.1.4 sig_semWrite ....................................................................................................... 11 2.1.1.5 wai_semRead ...................................................................................................... 11 2.1.1.6 wai_semWrite....................................................................................................... 11 2.1.2 Protective Mode Application Programming Interface ................................................... 11 2.1.3 Monitor Protection Application Programming Interface ................................................ 11 2.2 The TFFS User Application Programming Interface (TU-API) ....................... 13 2.2.1 tffsChange .................................................................................................................... 13 2.2.2 tffsChdir ........................................................................................................................ 14 2.2.3 tffsClearerr .................................................................................................................... 14 2.2.4 tffsDelete ....................................................................................................................... 15 2.2.5 tffsDiagMode ................................................................................................................. 15 2.2.6 tffsExists ....................................................................................................................... 16 2.2.7 tffsFclose ...................................................................................................................... 16 2.2.8 tffsFeof .......................................................................................................................... 17 2.2.9 tffsFerror ....................................................................................................................... 17 2.2.10 tffsFflush ....................................................................................................................... 17 2.2.11 tffsFopen ....................................................................................................................... 18 2.2.12 tffsFormat ...................................................................................................................... 19 2.2.13 tffsFread ........................................................................................................................ 20 2.2.14 tffsFseek ....................................................................................................................... 20 2.2.15 tffsFwrite ....................................................................................................................... 21 2.2.16 tffsGetBlockInfo ............................................................................................................ 21 2.2.17 tffsGetPath .................................................................................................................... 22 2.2.18 tffsGetRoot .................................................................................................................... 22 2.2.19 tffsInit ............................................................................................................................ 22 2.2.20 tffsLsdir ......................................................................................................................... 23 2.2.21 tffsMkdir ........................................................................................................................ 24 2.2.22 tffsMonitorAdd ............................................................................................................... 25 2.2.23 tffsMonitorRemove ........................................................................................................ 26 2.2.24 tffsMount ....................................................................................................................... 27 2.2.25 tffsReclaim .................................................................................................................... 28 2.2.26 tffsResize ...................................................................................................................... 29 2.2.27 tffsRewind ..................................................................................................................... 29 2.2.28 tffsTruncate ................................................................................................................... 30 2.2.29 tffsUnmount .................................................................................................................. 30

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值