
文件系统
文章平均质量分 70
papaofdoudou
我的藏经阁,用数学解释问题,用编程解决问题
展开
-
文件共享传输的几种方式
Linux系统下可以通过open/create/socket/socketpair/pipe等系统调用创建文件描述符fds.之后可以基于创建的文件描述符进行IO操作,操作完毕之后执行close(fd)关闭文件描述符。原创 2023-12-05 14:57:32 · 1060 阅读 · 0 评论 -
一种细粒度资源锁的内核模块实现
本实现参考内核模块中的lock_page/unlock_page以及wait_bit实现,以LOCK PAGE为例,struct page数据结构中的成员flags定义了一个标志位PG_locked,内核通常利用PG_locked来设置一个页锁,lock_page函数用于申请页锁,如果页锁被其他进程占用了,那么进程会睡眠等待。原创 2023-07-02 18:57:55 · 338 阅读 · 0 评论 -
Linux块设备读写测试-page cache/buffer cache
一个O_DIRECT读写用例堆栈:用普通方式带有page cache(非DIRECT模式)操作文件的调用堆栈。原创 2021-07-23 23:16:57 · 998 阅读 · 1 评论 -
Linux系统的各个mount点以及文件系统挂载分析
分析代码,内核的do_sys_open加入检查点,过滤进程touch的目的是,这样可以简单的在用户态通过touch命令创建文件的方式触发进入此分支。df命令查看文件系统挂载情况创建脚本,分别在上述路径下创建一个.txt后缀名的文件执行sudo bash ./a.sh, 可以看到有些文件无法写入,所以touch写的方式调试失效了,不过没关系,先看其它几个文件系统。dmesg查看内核打印输出。原创 2021-07-02 06:49:58 · 3800 阅读 · 0 评论 -
page cache和buffer cache之间的关系以及验证
Linux系统存在两种缓存机制,分别是Page Cache和Buffer Cache, 其中Page Cache缓存文件的页以优化文件IO。Buffer Cache缓存块设备的块以优化块设备IO。原创 2021-07-25 09:45:48 · 1892 阅读 · 1 评论