没想到Virtual File System VFS还是比较受欢迎的,所以今天详细写一下这一部分。VFS是一个抽象层,对不同文件系统的实现屏蔽,对上提供统一的接口。这张图是Linux内核中对于VFS相关数据结构的描述。每一个进程在内核中,都对应一个task_struct结构include/linux/sched.h中有struct task_struct { /* Open file information: */ struct files_struct *files;从注释就可以看出是对所有打开的文件的一个结构。struct files_struct { struct file __rcu * fd_array[NR_OPEN_DEFAULT];这里面有一个数据,保存了打开的所有文件,每个文件有一个文件描述符File Desicriptor FD,其中默认开启的有stdin, stdout, stderr,分别为0,1,2。所以在命令行执行一个后台命令的时候常这样用:nohup run_command.sh > run.log 2>&1 &也即我们把stderr
………………………………