
linux文件系统
知了112
记录自己成长每一步。加油!
展开
-
[文件系统]文件系统学习笔记(九)---rootfs
一:根文件系统(rootfs)1,rootfs文件系统的注册在linux kernel初始化阶段会调用int __init init_rootfs(void)向内核注册rootfs文件系统,init_rootfs()的核心的函数为register_filesystem();这个函数将结构file_system_type?注册在内核一 个单链表中,307 int __init ini原创 2014-07-21 17:46:48 · 1240 阅读 · 0 评论 -
[文件系统]read系统调用剖析(二)
在vfs_read()函数中有如下几句代码:291 if (file->f_op->read)292 ret = file->f_op->read(file, buf, count, pos);293 else294 ret原创 2014-09-25 16:41:42 · 874 阅读 · 0 评论 -
[文件系统]read系统调用剖析(一)
一:read系统调用剖析1,kernel层的read系统调用的入口函数是在kernel/fs/Read_write.c文件中,如下所示:fget_light(fd, &fput_needed)函数的作用是根据用户层的文件描述符fd根据当前进程的current->files->fdt->fd[fd]中找到内核中的struct file结构体。file_pos_read(fil原创 2014-09-23 11:27:11 · 1377 阅读 · 0 评论 -
[文件系统]文件系统学习笔记(七)----pathwalk(2)
三:代码流程原创 2014-07-10 17:35:37 · 955 阅读 · 0 评论 -
[文件系统]EXT文件系统学习笔记(二)——数据结构
1,ext2超级块结构原创 2014-10-09 16:13:23 · 616 阅读 · 0 评论 -
[文件系统]EXT文件系统学习笔记(一)——概念
1,超级块组描述符数据位图Inode位图Inode表数据块原创 2014-10-09 14:53:12 · 786 阅读 · 0 评论 -
[文件系统]EXT文件系统学习笔记(三)——日志文件系统
1,日志文件系统概念原创 2014-10-10 10:01:57 · 1034 阅读 · 0 评论 -
[文件系统]——系统IO
一,FIO工具测试IO perfermance的工具 FIO原创 2014-11-12 14:26:35 · 587 阅读 · 0 评论 -
[文件系统]文件系统学习笔记(十一)——mount系统调用(其它)
1,mount examplea.要 mount 一个新的设备必须先创造一个superblock。利用要mount 的文件系统的file_system_type,调用其get_sb() 來创造新的super blockb.创建vfsmountfor /dev/hdb1 and add to current system3.新的 vfsmount:-mount原创 2014-08-07 09:16:57 · 708 阅读 · 0 评论 -
[文件系统]文件系统学习笔记(三)---目录项缓存dentry
目录项缓存---dentrylinux使用目录项缓存(dentry缓存)来快速访问此前的查找操作的结果,struct dentry { atomic_t d_count; unsigned int d_flags; /* protected by d_lock */ spinlock_t d_lock; /* per dentry lock */ struct inode *d_i原创 2014-07-02 14:45:32 · 1977 阅读 · 0 评论 -
如何使用ram作虚拟硬盘
1,如何使用RAM作为虚拟硬盘原创 2014-08-14 20:28:45 · 1662 阅读 · 0 评论 -
回环设备(loop)
1,回环设备的概念原创 2014-08-21 20:50:24 · 1082 阅读 · 0 评论 -
[文件系统]一些问题
1,如何读取一个超过4G大小的文件原创 2014-09-23 19:50:52 · 639 阅读 · 0 评论 -
[文件系统]应用层编程(一)
一,多个进程是否会共享文件描述符原创 2014-11-06 16:08:02 · 480 阅读 · 0 评论 -
[文件系统]文件系统学习笔记(八)---mount系统调用(代码相关)
1,mount系统调用(2)--相关代码源码位置:kernel/fs/Namespace.c文件的do_mount()函数,long do_mount(char *dev_name,char*dir_name,char*type_page,unsigned long flags,void *data_page)dev_name指的是要挂载文件系统的名字,如tmpfs,dir_name指原创 2014-07-15 17:50:44 · 1132 阅读 · 0 评论 -
[文件系统]fuse学习笔记(一)
1,fuse的基本介绍原创 2014-08-18 19:54:43 · 1534 阅读 · 0 评论 -
[文件系统]文件系统学习笔记(一)---基本概念以及inode
1,硬链接和软链接的区别硬链接和软链接的区别– 符号链接– ln –s file1 file2• 目录项,内容为指向文件名的指针,并不存在其他数据。目标文件删除时,符号链接仍然继续保持。使用了一个独立的inode。Inode的数据段包含了一个字符串,给出了链接目录的路径。(相当于windows中的快捷键) – 硬原创 2014-04-30 19:35:30 · 1185 阅读 · 0 评论 -
[文件系统]文件系统学习笔记(四)---常用数据结构
1,基本数据结构:file_system_type 每种文件系统对应一个文件系统类型结构,注册之后形成单链表,链表表头为file_systems(全局变量).Superblock 反应文件系统整体的控制信息,超级块以多种方式存在。(磁盘超级快、内存超级块、VFS超级块)Inode 反应了某个文件系统对象的一般元信息(metadata)。(磁盘inode、内存inode、VF原创 2014-07-02 19:45:14 · 2846 阅读 · 0 评论 -
[文件系统]文件系统学习笔记(二)---task_struct
一,task_struct和文件系统相关的一些信息原创 2014-06-27 16:33:35 · 1152 阅读 · 0 评论 -
[文件系统]文件系统学习笔记(五)---mount系统调用(1)
1,mount系统调用中flag参数的含义#define MS_RDONLY 1 /* Mount read-only */#define MS_NOSUID 2 /* Ignore suid and sgid bits */#define MS_NODEV 4 /* Disallow access to device special files */#define MS_原创 2014-07-03 20:01:01 · 884 阅读 · 0 评论 -
[文件系统]文件系统学习笔记(十)---杂项
1,一个系统上可以同时装载几个同一类型的文件系统(比如手机上system和userdata都为ext4分区),一个分区里的一个文件系统对应一个超级快对象,因此一个系统上的同一文件系统类型可能对应多个超级快结构,这些超级快聚集在一个链表中,fs_supers是对应的表头。原创 2014-07-28 19:56:16 · 783 阅读 · 0 评论 -
[文件系统]fuse学习笔记(二)
1,内核代码分析:原创 2014-09-05 11:39:19 · 888 阅读 · 0 评论 -
FAT学习笔记(三)--FSInfo
1,FSInfo region一般是紧跟着boot sector,以下是FSInfo的详细信息:NameOffsetSizeDescriptionFSI_LeadSig04固定值0x41615252FSI_Reservedl4480原创 2014-08-22 16:05:17 · 3141 阅读 · 0 评论 -
FAT32学习笔记(二)——spec
1,如何区别FAT12 FAT16和FAT32区分FAT12,FAT16,FAT32的主要依据是该分区上cluster的个数(注意:第一个cluster是以cluster2开始计数的)。FAT32的RootDirSectors大小始终为0TotSec=BPB_TotSec32DataSec = TotSec – (BPB_ResvdSecCnt + (BPB_NumFATs * F原创 2014-08-22 11:37:57 · 2157 阅读 · 0 评论 -
FAT32学习笔记(一)
1,FAT32的历史FAT的全称是File Allocation Table,FAT是在1980s年代初由微软开发的,主要有FAT12,FAT16,FAT32三种,分为这三种的主要原因是FAT12的FAT entry有12bits,FAT16的FAT entry有16bits,FAT32的FAT entry有32bit原创 2014-08-19 20:51:58 · 1581 阅读 · 0 评论 -
[文件系统]Inotify机制介绍
一,Inotify机制介绍原创 2014-09-19 17:05:34 · 539 阅读 · 0 评论 -
MBR&GPT
1,MBR和GPT的概念MBR和GPT的概念转载 2014-08-25 20:44:52 · 651 阅读 · 0 评论 -
FAT学习笔记(四)——Dir Entry
短目录和长目录:1,短目录和长目录都是放在Data region里的,一个directory entry占用32byte,具体参考下表:Short directory entryNameOffset (byte)Size (bytes)DescriptionDIR_Name011原创 2014-08-25 17:00:54 · 2627 阅读 · 0 评论 -
FAT32学习笔记(五)——fat相关工具
1,将一个块设备格式化为fat32的工具有mkfs.fat32(linux自带该工具)原创 2014-08-21 09:19:32 · 4585 阅读 · 0 评论 -
[文件系统]文件系统学习笔记(十一)——部分代码详解
1,alloc_vfsmnt()函数static struct mount *alloc_vfsmnt(const char *name){ struct mount *mnt = kmem_cache_zalloc(mnt_cache, GFP_KERNEL);//在slab高速缓存mnt_cache上分配一个mount结构体,在Namespace.c文件的mnt_int()函数中调原创 2014-08-12 15:12:43 · 726 阅读 · 0 评论 -
FAT学习笔记(五)——FAQ
1,fat32中一个文件至少要占用整数个cluster,一个cluster要占用2的整数次幂个数的cluster,fat32中要使用cluster的原因是:因为如果要写入一个大档案,如果用sector的配置方式,那么sector数量就很大,并且分配在零散的空间,不便于管理,又由于cluster是连续的sector,所以可以加快访问时间。如何知道某个file/dir占用的起始cluster? 答原创 2014-08-26 15:58:58 · 905 阅读 · 0 评论 -
FAT driver学习笔记(一)
1,基本结构体的作用:StructDescriptionstruct fat_boot_sector Boot sector Struct fat_boot_fsinfo Fsinfo信息struct msdos_dir_entry 表示目录项,短文件名原创 2014-08-26 17:21:49 · 1860 阅读 · 0 评论 -
[文件系统]文件系统学习笔记(六)———pathwalk(1)
path_lookup函数 path_walk函数一:基本概念:path_lookup函数的适用场景:open() stat() 等等函数穿进去的字符串的路径在内核里面都要转换成相应的inode节点和dentry结构体。由于这些操作经常会用到,所以这部分代码必须最优化。执行这一任务的标准过程就是分析路径名并把它拆分成一个文件名序列。除了最后一个文件名以外,所有的文件名都必定是目原创 2014-07-08 17:44:24 · 2126 阅读 · 0 评论