Linux System’s Filesystem Table
- Block file(b)
- Character device file(c)
- Named pipe file or just a pipe file(p)
- Symbolic link file(l)
- 不能对目录创建硬链接，不能对不同文件系统创建硬链接，不能对不存在的文件创建硬链接;可以对目录创建软链接，可以跨文件系统创建软连接，可以对不 存在的文件创建软链接。
- Socket file(s)
- Block layer provides an interface between the file system and the physical storage device, allowing the file system to read and write data to the device
- Block devices are usually implemented with a File System meant for storing files. Now whenever an userspace application initiates a File O operation (read, write), the kernel in turn initiates a sequence of Block I/O operation through File System Manager. The
struct bio keeps track of all Block I/O transactions (initiated by user app) that is to be processed. That’s what is mentioned here as flight/active regions.
- Memory buffers are required by the kernel to hold data to/from Block device.
- The block I/O layer also provides functions that allow the kernel to put data buffers in high memory and implement a “zero-copy” schema, where disk data is directly put in the User Mode address space without being copied to kernel memory first