
文件系统
文章平均质量分 50
文件系统
sydyh43
这个作者很懒,什么都没留下…
展开
-
通过inode获取文件名信息
1、当某个进程处理文件时,需要根据文件路径名打开某个文件,然后根据返回值fd完成对文件的操作。如:fd = open("/new/xxx.txt", O_RDWR);参考多进程打开同一个文件问题分析_sydyh43的博客-优快云博客。在内核层,最终反映文件的属性是struct inode,一个文件对应着一个strtuct inode。linux下的每一个文件都有对应着一个inode id。//https://elixir.bootlin.com/linux/latest/source/incl.原创 2022-01-15 12:35:31 · 3091 阅读 · 0 评论 -
initRD的启动流程分析
1、根文件系统存放在flash中,设备启动过程中会耗时比较久时间。这是因为从flash中读取rootfs的数据操作比较耗时,同时读取存放在rootfs中的*.so,*.ko等文件也比较耗时。这都是由flash本身的读写属性决定的。对于一些需要快速启动的设备,flash的读写速率无法满足,因此可以考虑挂载到内存中的rootfs,即ramdisk。2、使用ramdisk需要内核的支持,需要打开CONFIG_BLK_DEV_INITRD宏3、initramfs初始化流程图如下图所示,主要分成两部分原创 2022-01-14 21:02:26 · 1442 阅读 · 0 评论 -
根文件系统挂载流程
1、普通的根文件系统存放在flash中的某个分区。因此需要告知内核根文件系统存放在哪个分区中,同时需要知道根文件系统的rootfstype类型。见mount挂载分析_sydyh43的博客-优快云博客2、设备启动阶段,在内核加载最后阶段,需要挂载根文件系统,然后访问根文件系统中的第一个用户进程init3、挂载函数流程//init/main.cstart_kernel rest_init kernel_init //kernel_thread(kernel_in原创 2022-01-14 20:09:47 · 1232 阅读 · 0 评论 -
软链接和硬链接
1、先看下面的脚本。其中hello.txt文件已经存在,创建hello1.txt和hell2.txt文件。ln hello.txt hello1.txtln -s hello.txt hello2.txt2、使用stat命令查看文件的属性2.1、在没有执行上述两个命令前,其中硬链接是1,当执行完第一条命令后发现硬链接变成2,因此第一条指令是硬链接的命令。查看硬链接生成的文件属性发现硬链接生成文件的inode和原始文件hello.txt的 inode是一样的,因此可以说明两个是原创 2022-01-14 14:27:34 · 246 阅读 · 0 评论 -
open操作后是如何找到具体文件的
一、描述文件的结构体是stuct file通过文件路径,找到描述文件的编号inode原创 2021-08-28 23:00:46 · 162 阅读 · 0 评论 -
多进程打开同一个文件问题分析
一、疑问1、当多个进程同时打开同一个文件,同时对同一个文件写操作,文件的内容是会被覆盖只有一份还是不会覆盖会有两份内容?二、问题验证1、来点代码2、运行结果三、问题分析...原创 2021-08-21 11:14:33 · 3745 阅读 · 0 评论 -
mount挂载分析
一、挂载文件系统的命令mount -t ext4 /dev/sdb1 /mnt/sdb1把设备节点/dev/sdb1,即插入的硬盘设备,cat /dev/sdb1可以直接访问硬盘的二进制数据,以ext4文件系统格式挂载到/mnt/sdb1目录下。挂载结束后,就可以访问/mnt/sdb1目录的方式访问磁盘空间的数据了。二、如何挂载1、mount命令会去执行mount系统调用fs/namespace.cSYSCALL_DEFINE5(mount, char __user *, dev_n原创 2021-08-20 21:25:15 · 423 阅读 · 0 评论 -
一个空文件夹和空文件占多少空间?
用于显示文件夹和文件大小的命令du -h一、空文件夹占多少空间二、空文件占多少空间原创 2021-06-26 14:28:53 · 6392 阅读 · 0 评论