19 组织文件
Posted xuan01
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19 组织文件相关的知识,希望对你有一定的参考价值。
文件系统:
把许多文件存储在某一种储存设备上;方便对各种文件执行打开关闭、读写等操作;FAT32、NTFS、Ext4、Btrfs、ZFS、HPFS 等,这些都是不同的文件系统建立的文件系统格式。
文件系统是一个设备:
文件系统的实现:写好了硬盘驱动程序,也可以让文件系统设备驱动程序处理好了数据,然后发送给硬盘设备驱动程序,让其写入到硬盘中去;
文件格式与储存块:
类Unix和Windows系统中,文件就是一个可以动态增加、减少的线性字节数组;
文件系统把文件数据定义为一个动态的线性字节数组,又分成一个个数据块,又因为不同的储存设备的物理存储块大小不一样,我们把数据块定义为文件系统逻辑块,大小为4096字节;
组织文件:
采用目录组织文件,树状结构;
文件系统的数据结构:
文件系统元数据:文件系统本身的一些数据结构;
设计超级块:
文件系统的超级块/文件系统描述块:文件系统标识、版本、状态、存储介质大小、文件系统逻辑存储块大小、位图所在存储块等包含这些数据结构;
rfssublk_t 结构,包含rfsdir_t 目录结构,超级块保存在储存设备的第一个4KB大小的逻辑存储块中;
位图:
利用一块储存空间中所有位的状态,达到映射储存块状态(是否已分配)的目的,
文件目录:
rfsdir_t 结构表示目录数据结构,包含一个文件数据管理头的块号,按块访问;
文件管理头:
fimgrhd_t 结构表示一个文件管理头,包含文件的详细信息,其中filblks_t 结构类型的 fmd_fleblk数组表示 文件占用逻辑储存块的数组,每个元素保存一片连续的逻辑储存块;
同时,可以通过类似链表的形式动态增加fimgrhd_t 结构;
android Makefile 组织结构
参考技术A 通过前面的分析引入soong后编译流程变成,所有的Android.bp文件被扫描(具体的列表在out/.module_paths/Android.bp.list)生成build.ninja和Android-aosp_arm.mk文件,kati扫描main.mk组织所有的makefile文件生成out/build-aosp_arm.ninja文件,最后将两个ninja文件合成一个combined-aosp_arm.ninja由于soong在运行扫描所有的module,最后建立module之间的依赖关系,因此android.bp之间的先后顺序不影响后续的ninja文件生成。各个makefile之间的引用顺序如下图
在我们日常配置的AndroidProduct.mk和Boardconfig.mk文件在build/core/envsetup.mk中顺序引用,还有所有的Andriod.mk文件扫描产生的Android.mk.list在out/.module_paths下,其中这个文件的列表中包含了AndroidBoard.mk
以上是关于19 组织文件的主要内容,如果未能解决你的问题,请参考以下文章