用户态在APP通过open,read操作时,会通过glibc里面的函数,根据不同的标准去传递命令--异常命令,去进去内核态,然后内核会通过不同的标准去取出导致异常的命令参数,将其带入到sys_call_table[__NR,open] or sys_call_table[__NR,read]通过传递的不同的参数去调用相应的内核系统函数。
然而内核的系统函数会做什么呢?
首先会分辨文件的类型,要么是普通文件,要么是字符设备节点。
根据不同的类型,进行相应的处理,比如普通文件是以某种格式
(FAT32,EST4)存储在块设备上的。那么会访问这些不同格式的文件系统的块驱动设备。如果是字符设备节点,那么就以主设备号来寻找其驱动。