- 博客(7)
- 收藏
- 关注
原创 ext4_fill_super 二
根据es(ext4_super_block)中的 s_default_mount_opts,设置sb中的 s_mount_opt,宏定义中的 ## 是字符连接的意思对日志的一些标志位的设置设置 sbi的 s_resuid、s_resgid、s_commit_interval等属性设置一些UNICODE相关的标志位,后面也是一些标志位的设置,以及...
2019-10-06 19:56:46 346
原创 ext4_fill_super
首先是一些变量的声明与获取:1) struct dax_device *dax_dev = fs_dax_get_by_bdev(sb->s_bdev);在源码中搜索到如下,是从 block_device得到 dax_deviceE:\books\内核源码\linux-5.2.11\linux-5.2.11\drivers\dax\super.c: 57 ...
2019-10-06 03:43:02 422
原创 Ext4 挂载
要使用一块磁盘,首先要以某种文件系统格式化该介质。然后执行mount,才能在Linux中使用。假设一块磁盘 /dev/sda1 被格式化为ext4,然后执行 mount -t ext4/dev/sda1 /home/之后就可以通过 /home 目录去访问这块磁盘Linux支持多种文件系统,文件系统在内核中对应一个结构体 file_system_typeext4的声明如下:...
2019-10-04 22:18:27 2832
原创 Ext4相关数据结构
vfs层:(include/linux/Fs.h)文件描述符 struct file地址空间 structaddress_space文件节点 struct inode超级块struct super_block块设备struct block_device磁盘描述struct gendisk目录项struct dentry文件系统 struct file_...
2019-09-30 00:28:12 464
原创 Ext4 基本数据结构之buffer_head
预备知识块设备 Linux系统中能够随机访问的数据片(chunk)的设备称为块设备,这些数据片称为片。而字符设备是按照字符流的方式有序访问。常见的块设备如硬盘、CD-ROM,而字符设备主要有串口和键盘。块设备最小可寻址的单元称为扇区,通常为512 Byte。而文件系统最小逻辑可寻址单元称为块。块的大小比扇区大,但比页小,常见为4K。内核执行磁盘的所有操作是按照块来操作的,又称为“文件块”或...
2019-09-30 00:07:57 544 1
原创 Ext4 文件系统
预备知识虽然是为Linux编写的,但EXT文件系统起源于Minix操作系统,不过这不影响Ext 成为Linux中最常见的文件系统。在学习Ext4 文件系统之前,请自行学习下磁盘的结构,了解相关名词:磁头(head)磁道(track)柱面(cylinder)扇区(sector)圆盘(platter)磁盘扇区大小一般为 512 Byte, 1GB = 2^30 B...
2019-09-29 23:50:22 479
原创 Linux I/O简介
简单理解上图,对I/O有个宏观的概念I/O 即为 input / ouput , 是指数据在存储介质(常见为磁盘)中的读写操作以output为例,那么一般来自用户空间运行的应用程序产生的数据是怎么最终写入磁盘中的呢?按照上图简单理解,用户空间的应用程序,通过调用C库函数(常称为系统库函数)write(),而write()其实是对系统调用 sys_write()进行了...
2019-09-29 23:41:18 268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人