摘要:
1,如何区别FAT12 FAT16和FAT32区分FAT12,FAT16,FAT32的主要依据是该分区上cluster的个数(注意:第一个cluster是以cluster2开始计数的)。FAT32的RootDirSectors大小始终为0TotSec=BPB_TotSec32DataSec = To... 阅读全文
摘要:
1,基本概念fat32 specFAT的全称是File Allocation Table,FAT是在1980s年代初由微软开发的,主要有FAT12,FAT16,FAT32三种,分为这三种的主要原因是FAT12的FAT entry有12bits,FAT16的FAT entry有16bits,FAT32... 阅读全文
摘要:
1,mount exampleMount (/dev/hdb1 to /home/xpl)a.要mount一个新的设备必须先创造一个superblock。利用要mount的文件系统的file_system_type,调用其get_sb()來创造新的super blockb.创建vfsmountfor... 阅读全文
摘要:
1,在一个系统上,比如smartphone平台,有很多分区,比如/data和/system分区都是ext4文件系统,但是系统中还是只有一个file_system_type的成员,不过每个分区对应的ext4文件系统对应不同的super_block,fs_supers就是将这些相同文件系统不同的supe... 阅读全文
摘要:
一:根文件系统(rootfs)1,rootfs文件系统的注册在linux kernel初始化阶段会调用int __init init_rootfs(void)向内核注册rootfs文件系统,init_rootfs()的核心的函数为register_filesystem();这个函数将结构file_s... 阅读全文
摘要:
一,mount系统调用--相关代码源码位置:kernel/fs/Namespace.c文件的do_mount()函数,[cpp]view plaincopylongdo_mount(char*dev_name,char*dir_name,char*type_page,unsignedlongflag... 阅读全文
摘要:
三:代码流程1,path_lookupat()函数首先调用path_init()函数,path_init()函数主要是初始化查询,将nd实例的mnt和dentry成员设置为根目录或者工作目录的对应项 a,绝对路径(以/开始),获得根目录的dentry。它存储在task_struct中fs指向的fs... 阅读全文
摘要:
path_lookup函数path_walk函数一:基本概念:path_lookup函数的适用场景:open() stat() 等函数传进去的字符串的路径在内核里面都要转换成相应的inode节点和dentry结构体,执行这一任务的标准过程就是分析路径名并把它拆分成一个文件名序列。除了最后一个文件名以... 阅读全文
摘要:
1,mount命令各个参数的含义mount命令各个参数含义2,mount系统调用中flag参数的含义#define MS_RDONLY 1 /* Mount read-only */#define MS_NOSUID 2 /* Ignore suid and sgid bits */#define ... 阅读全文
摘要:
1,基本数据结构:file_system_type每种文件系统对应一个文件系统类型结构,注册之后形成单链表,链表表头为file_systems(全局变量).Superblock反应文件系统整体的控制信息,超级块以多种方式存在。(磁盘超级快、内存超级块、VFS超级块)Inode反应了某个文件系统对象的... 阅读全文