
linux
文章平均质量分 56
-孙悟空-
熟悉Linux内核和文件系统,欢迎邮件交流:wulinzhu1954@gmail.com
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
f2fs文件系统的页缓存
f2fs有三种inode,meta_inode,node_inode和普通的文件inode,前两种inode只存在于vfs层,且数量只有一个。meta_inode对应于SIT,NAT,SSA,checkpoint和super block这些文件系统元数据,node inode对应于main area的node segment的数据,普通文件inode读写的区域对应于main area的data s原创 2015-05-11 20:20:17 · 3958 阅读 · 0 评论 -
f2fs的journal机制
由于f2fs的log-structure特性,每次写一个数据块,需要相应更改direct node,NAT和SIT,尤其是NAT和SIT区域,可能仅仅需要修改一个entry几个字节的信息,就要重写整个page,这会严重降低文件系统的性能和SSD的使用寿命,因此,f2fs使用了journal的机制来减少NAT和SIT的写次数。所谓journal,其实就是把NAT和SIT的更改写到f2fs_summa原创 2015-05-12 16:31:38 · 3419 阅读 · 0 评论 -
f2fs创建一个文件的具体过程
假设需要创建一个文件/dir/file:f2fs_sb_info保存了根目录的inode number,假设是0,此时NAT布局如下:由于inode number就是node number,查找第0个node的块地址,得到4,然后f2fs读SSD上第4个块的数据,得到了根目录的inode:解析inode的信息,他的数据依次存在了120,200,300,400的块上,读入原创 2015-05-12 18:56:14 · 3948 阅读 · 0 评论 -
学习HMFS源码(一):编译、安装HMFS与观察HMFS的运行状态参数
简介HMFS安装、挂载配置和怎么查看他的运行信息原创 2016-03-15 22:10:05 · 2747 阅读 · 0 评论 -
在编译时检查sizeof
今天在写文件系统时,想在编译时检查一些struct的大小,就发现了这篇blog,讲得是内核里面的BUILD_BUG_ON的实现,这个优雅精妙的实现让我对内核开发者的敬佩之情真是油然而生啊!!有时候,我们在写C程序的时候需要对struct的大小做一些限制。比如说,struct需要以某些字节大小进行对齐,以符合硬件的支持(也许是某个设备的DMA缓冲区,要使用地址的低位做一些其他的计算),并且这些s翻译 2016-03-21 10:52:36 · 3249 阅读 · 1 评论 -
使用grub的memmap的预留内存时系统死机问题的一个解决方案
今天在测试文件系统时,改了以下grub的启动参数,从memmap=2G$1G改为memmap=8G$1G,然后写文件的时候,写了几个文件,系统就不响应了。刚开始还以为是文件系统的问题,排除了死锁、内存越界等情况后,忽然注意到,文件系统挂载时,系统发出的一个warning。然后我想着会不会跟这个有关呢。然后用dmesg看看相关信息。注意到在dmesg的开头有bios关于内存的信息原创 2016-03-23 22:10:25 · 3352 阅读 · 3 评论