本文章为本人在学习野火开发板时的笔记记录。
在Linux系统中有一个重要的概念:一切皆文件,它把一切资源都看作是文件,包括硬件设备,通常称为设备文件。前面我们也尝试过通过脚本读写文件的方式,实现了对硬件的访问。所以如果不了解Linux的文件操作,那想要点亮开发板的LED灯都费劲!
本章通过C标准库及系统调用的方式操作文件,揭示用户应用程序、C标准库与系统调用之间的关系。
本章的示例代码目录为:base_code/linux_app/file_io。
1. 存储设备文件系统
提到文件系统时,我们首先想到的通常是Windows下的FAT32、NTFS、exFAT以及Linux下常用的ext2、ext3和ext4的类型格式。这些文件系统都是为了解决如何高效管理存储器空间的问题而诞生的。
从EEPROM、Nor FLASH、NAND FLASH、eMMC到机械硬盘,各种各样的存储器本质就是具有多个能够 存储0和1数据单元的设备,存储内容时,程序需要直接访问这些存储单元的物理地址来保存内容。这样直接 存储数据会带来极大的不便,如难以记录有效数据的位置,难以确定存储介质的剩余空间,以及应以何 种格式来解读数据。就如同一个巨大的图书馆无人管理,杂乱无章地堆放着各种书籍,难以查找。
为了高效地存储和管理数据,文件系统在存储介质上建立了一种组织结构,这些结构包括操作系 统引导区、目录和文件,就如同图书馆给不同类的书籍进行分类、编号,放在不同的书架上。不同的管理 理念引出了不同的文件系统标准,上述的 FAT32、 NTFS、 exFAT、ext2/3/4就是指不同类型的 标准,除此之外,还有专门针对NAND类型设备 的文件系统jffs2、yaffs2等等。
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



